---
openapi: 3.0.3
info:
  title: Gantt manager - Core APIs
  description: All core and principal API used in GanttManager.
  contact:
    name: rguyard
    email: rguyard@projetlineaire.com
  version: "0.1"
security:
- SecurityScheme: []
tags:
- name: Folder
  description: Operations related to Folder
- name: Folder authorization
  description: Operations related to access rights and authorization in Folder
- name: Planning
  description: Operations related to Planning
- name: Planning Draft
  description: Planning draft operations
- name: Activity
  description: Operations related to Activity
- name: Activity - IO
  description: Operations related to Activity import and export
- name: UnifiedField
  description: Operations related to UnifiedField
- name: Gantt
  description: Gantt operations
- name: Gantt - Link
  description: GanttLink and LinkCategory operations
- name: Planify
  description: Planification operation
- name: Need
  description: Need resource operations
- name: Allocated Need
  description: Allocated Need operations
- name: Cost Center
- name: Cost
- name: Calendar
  description: Calendar operations
- name: Calendar - Day-definitions
  description: Day-definition operations
- name: Calendar - Periods
  description: Calendar period's operations
- name: Calendar - Specific-periods
  description: Calendar specific-period's operations
- name: Calendar - Time-slots
  description: Calendar time-slots operations
- name: Team
  description: Operations related to Team
- name: Internal-API
  description: Operations related to Team
- name: Version
- name: User
- name: Print Template
- name: Tab Preferences
  description: All endpoints for user tab preferences
- name: InternalAPI
- name: Program-infos
  description: |-
    All infos related to the connection and action of the user on a program.
     * Infos about the current planning, the user is working on.
     * The last time the user is connected to the program.
     * List of favorite planning(s) in the program.
paths:
  /activities/activity:
    post:
      tags:
      - Activity
      summary: Create new Activity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                calendarId: "1"
                dayDefinitionId: "1"
                job:
                - OPC
                activityParentId: "1"
                avancement: string
                description: string
                startDate: "1621478820000"
                endDate: "1622475000000"
                name: string
                order: "1"
                quantity: "1.0"
                yield: "1"
                quantityUnit: KM
      responses:
        "201":
          description: Activity successfuly created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: Required field empty or blanked | Activity is cycling | Identity
            already in use | StartDate cannot be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id | No GanttLink found
            with the specified id | No DayDefinition found with the specified id  |
            No Calendar found with the specified id | No Job found with the specified
            id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Activity
      summary: Delete Activity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Deleted successfully
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/avancement:
    put:
      tags:
      - Activity
      summary: Update Activity Advancement
      description: Update the advancement of multiple activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                avancement: new string
      responses:
        "200":
          description: Activity successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/calendar-id:
    put:
      tags:
      - Activity
      summary: Update Activity Calendar
      description: Update the calendarId of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 1
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activities successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id | No Calendar found
            with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/champ-pm-auto/{unifiedFieldId}:
    put:
      tags:
      - Activity
      summary: Changing the automatically calculated Unified field.
      parameters:
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: isRoundedDuration
        in: query
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity/UnifiedField found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/conf-root-activity/{rootActivityId}:
    get:
      tags:
      - Activity
      summary: Get RootActivity Configuration
      description: Get RootActivity Configuration with an id
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    format: int64
                    type: integer
                  rootActivityId:
                    format: int64
                    type: integer
                  prefixID:
                    type: string
                  defaultLevelId:
                    format: int64
                    type: integer
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/description:
    put:
      tags:
      - Activity
      summary: Update Activity Description
      description: Update the description of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: new description
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/duplicate-multiple:
    post:
      tags:
      - Activity
      summary: Duplicate multiple Activities
      description: Duplicate multiple Activities with theirs Ids
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NumericIdListDTO'
      responses:
        "200":
          description: Activities duplicated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/duration:
    put:
      tags:
      - Activity
      summary: Update Activity Duration
      description: Update the duration of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 2
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/end-date:
    put:
      tags:
      - Activity
      summary: Update Activity End Date
      description: Update the EndDate of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 1621478820000
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannto be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/first-worked-time:
    put:
      tags:
      - Activity
      summary: Update Activity First Worked Time
      description: "Update the startDate of multiple Activities, with the fist worked\
        \ time in day."
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 1621478820000
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannot be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/import/{rootActivityId}:
    post:
      tags:
      - Activity - IO
      summary: Import activities
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                activityRequests:
                  type: array
                  items:
                    $ref: '#/components/schemas/ImportActivityRequestDTO'
                linkRequests:
                  type: array
                  items:
                    $ref: '#/components/schemas/ImportLinkRequestDTO'
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/job:
    put:
      tags:
      - Activity
      summary: Update Activity Job
      description: "Update the job of multiple Activity, allow only job that user\
        \ was affected."
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value:
                - Job 1
                - Job 2
                activityIdList:
                - 2042
                - 2043
      responses:
        default:
          description: Activities successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id | No Job found | Job
            wasn't a valid user job.
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/last-worked-time:
    put:
      tags:
      - Activity
      summary: Update Activity Last Worker Time
      description: "Update the endDate of multiple Activities, with the last worked\
        \ time in day."
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 1621478820000
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannot be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/move-end-date:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: move the EndDate of the Activity without checking constraints
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                endDate: "1622475000000"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/move-start-date:
    put:
      tags:
      - Activity
      summary: Update Activity Move Start Date
      description: Move th startDate of the Activity without checking constraints
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 1621478820000
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/name:
    put:
      tags:
      - Activity
      summary: Update Activity Name
      description: Update the name of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: new name
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activities successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/order:
    put:
      tags:
      - Activity
      summary: Update Activity Order
      description: Update the order of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 1
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/quantity:
    put:
      tags:
      - Activity
      summary: Update Activity Quantity
      description: Update the quantity of the Activity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 2.0
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/quantity-unit:
    put:
      tags:
      - Activity
      summary: Update Activity Quantity Unit
      description: Update the quantityUnit of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: FT
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/start-date:
    put:
      tags:
      - Activity
      summary: Update Activity Start date
      description: Update the startDate of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 1621478820000
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannot be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/time-unit:
    put:
      tags:
      - Activity
      summary: Update Time Unit for multiple activities.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                dayDefinitionId: 1.0
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity/DayDefinition found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/yield:
    put:
      tags:
      - Activity
      summary: Update Activity Yield
      description: Update the yield of multiple Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value: 2.0
                activityIdList:
                - 1
                - 2
      responses:
        "200":
          description: Activity successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}:
    get:
      tags:
      - Activity
      summary: Get Activity
      description: Get Activity with an id
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Activity
      summary: Delete Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Deleted successfuly
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/avancement:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the avancement of the activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                avancement: new string
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/calendar-id:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the calendarId of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                calendarId: "2"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id | No Calendar found
            with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/champ-pm-auto/{unifiedFieldId}:
    put:
      tags:
      - Activity
      summary: Changing the automatically calculated Unified field.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: isRoundedDuration
        in: query
        schema:
          type: boolean
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity/UnifiedField found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/color-field/{colorFieldId}:
    get:
      tags:
      - Activity
      summary: Get Activity with color
      description: Get Activity by id with color
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: colorFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No UnifiedField found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/description:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the description of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                description: new string
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/duplicate:
    post:
      tags:
      - Activity
      summary: Duplicate an Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "201":
          description: Activity successfully duplicated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/duration:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the duration of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                duration: "2"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/end-date:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the EndDate of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                endDate: "1622475000000"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannto be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/first-worked-time:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: "Update the startDate of the Activity, with the fist worked time\
        \ in day."
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                startDate: "1621478820000"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannot be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/identity:
    put:
      tags:
      - Activity
      summary: Update Activity Identity
      description: Update the identity of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                identity: new unique identity
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: Identity already in use
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/is-critic:
    get:
      tags:
      - Activity
      summary: Check if activity is critic.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        "404":
          description: No Activity found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/job:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: "Update the job of the Activity, allow only job that user was affected."
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                value:
                - Job 1
                - Job 2
                - Job 3
      responses:
        default:
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id | No Job found | Job
            wasn't a valid user job.
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/last-worked-time:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: "Update the endDate of the Activity, with the last worked time\
        \ in day."
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                endDate: "1621478820000"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannot be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/marge-libre-duration:
    get:
      tags:
      - Activity
      summary: Get marge libre duration for the activity.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                format: duration
                type: object
                example: P1D
        "404":
          description: No Activity found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/marge-total-duration:
    get:
      tags:
      - Activity
      summary: Get marge total duration for the activity.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                format: duration
                type: object
                example: P1D
        "404":
          description: No Activity found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/move:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: "Move Activity with duration in milliseconde, without checking\
        \ constraints. Useless."
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                duration: "2"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      deprecated: true
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/move-after:
    put:
      tags:
      - Activity
      summary: Move all child after another child in a parent.
      description: "All activities are moved after another child in the a parent,\
        \ added at after a child of parent a subactivities list in same order then\
        \ list."
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                activities:
                - "3"
                - "4"
      responses:
        "200":
          description: Activities successfully moved in parent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: Activity is cycling
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "404":
          description: No Activity found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/move-end-date:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: move the EndDate of the Activity without checking constraints
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                endDate: "1622475000000"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/move-start-date:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Move th startDate of the Activity without checking constraints
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                startDate: "1621478820000"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/name:
    put:
      tags:
      - Activity
      summary: Update Activity Name
      description: Update the name of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                name: new string
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/needed-skill-quantity:
    put:
      tags:
      - Activity
      summary: Update Activity needed Skill quantity
      description: Update Activity needed Skill quantity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                neededSkillQuantity:
                  type: object
                  additionalProperties:
                    format: int32
                    type: integer
      responses:
        "200":
          description: Activity successfully updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      deprecated: true
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/order:
    put:
      tags:
      - Activity
      summary: Update Activity Order
      description: Update the order of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                order: "2"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/quantity:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the quantity of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                quantity: 2.0
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/quantity-unit:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the quantityUnit of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                quantityUnit: FT
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/start-date:
    put:
      tags:
      - Activity
      summary: Update Activity
      description: Update the startDate of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                startDate: "1621478820000"
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: StartDate cannot be after EndDate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/time-unit:
    put:
      tags:
      - Activity
      summary: Update Time Unit for the activity.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                dayDefinitionId: 1.0
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity/DayDefinition found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/update-state:
    put:
      tags:
      - Activity
      summary: Update the state of an activity and its sub-activities
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StateRequestDTO'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/yield:
    put:
      tags:
      - Activity
      summary: Update Activity Yield
      description: Update the yield of the Activity
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                yield: 2.0
      responses:
        "200":
          description: Activity successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityId}/{ascendantActivityId}/is-ascendent:
    get:
      tags:
      - Activity
      summary: Check if the activity is ascendent compared to the other activity.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: ascendantActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: boolean
        "404":
          description: No Activity found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityParentId}/create-filtered-group:
    post:
      tags:
      - Gantt
      summary: create a group of filtered Activity
      description: create a group of filtered activity based on the value of its UnifiedField
      parameters:
      - name: activityParentId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewSortOptionDTO'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityColoredTreeDTO'
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityParentId}/create-group:
    post:
      tags:
      - Gantt
      summary: create a group of Activity
      description: create a group of activity based on the value of its UnifiedField
      parameters:
      - name: activityParentId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ViewSortOptionDTO'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityColoredTreeDTO'
        "422":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityParentId}/export-activities:
    get:
      tags:
      - Activity - IO
      summary: Generate a flatten list of activities ready for import.
      description: Generate a flatten list in the same format than export entries.
      parameters:
      - name: activityParentId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityParentId}/filter:
    post:
      tags:
      - Gantt
      summary: Get filtered activities
      description: "List all filtered activities from a parent activity using the\
        \ user filter, in a tree with minimal values."
      parameters:
      - name: activityParentId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                sortOptions:
                  type: array
                  items:
                    $ref: '#/components/schemas/SortOptionDTO'
                activitySimpleOnly:
                  type: boolean
                unifiedFieldId:
                  format: int64
                  type: integer
                filters:
                  type: array
                  items:
                    $ref: '#/components/schemas/FilterRequestDTO'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityColoredTreeDTO'
        "404":
          description: No filter found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityParentId}/generate-flatten:
    get:
      tags:
      - Gantt
      summary: Generate a flatten list of activities with all values.
      description: Generate a flatten list containing all sub activities from a parent
      parameters:
      - name: activityParentId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{activityParentId}/reduced-content:
    get:
      tags:
      - Gantt
      summary: "Get a minimal version of Activities in a tree, return only branch\
        \ node. Usefull for exploring."
      parameters:
      - name: activityParentId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ActivityIdNameTreeDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{id}/move-into:
    put:
      tags:
      - Activity
      summary: Move all activities in a parent's activity.
      description: "All activities are move into a new parent, added at the end of\
        \ parent subactivities list in same order then list."
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                activities:
                - "3"
                - "4"
      responses:
        "200":
          description: Activities successfully added in parent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActivityResponseDTO'
        "422":
          description: Activity is cycling
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "404":
          description: No Activity found with the specified id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{rootActivityId}/check-invalid-activities:
    get:
      tags:
      - Activity
      summary: Perform check for invalid activities
      description: "Before performing a planning validation, must check if all activities\
        \ inside this planning are all VALID.use this endpoint to check that. If there\
        \ are some invalid activities, user can be asked if he wants to force Archive\
        \ operation anyway"
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidatorResponseDTO'
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/activity/{rootActivityId}/prefix-identity:
    get:
      tags:
      - Activity
      summary: Get Identity prefix
      description: Get the Identity prefix by Root Activity
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  prefixId:
                    type: string
        "404":
          description: No element found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Activity
      summary: Update Identity prefix
      description: Update the Identity prefix by Root Activity
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrefixIdentityDTO'
      responses:
        "200":
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  prefixId:
                    type: string
        "404":
          description: No element found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/allocated-need/slice/activity/{activityId}:
    get:
      tags:
      - Allocated Need
      summary: Get sliced allocated need by planning
      description: Get sliced allocated need by planning.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningNeedSliceResponseDTO'
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/allocated-need/slice/need:
    get:
      tags:
      - Allocated Need
      summary: Get sliced allocated need by need
      description: Get sliced allocated need by need.
      parameters:
      - name: visibility
        in: query
        schema:
          $ref: '#/components/schemas/NeedVisibility'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningNeedSliceResponseDTO'
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/allocated-need/slice/need/{needId}:
    get:
      tags:
      - Allocated Need
      summary: Get sliced allocated need by need
      description: Get sliced allocated need by need.
      parameters:
      - name: needId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningNeedSliceResponseDTO'
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/allocated-need/slice/need/{needId}/planning/{rootActivityId}:
    get:
      tags:
      - Allocated Need
      summary: Get sliced need by planning for a specific need
      description: Get sliced need by planning for a specific need.
      parameters:
      - name: needId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningNeedSliceResponseDTO'
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/allocated-need/slice/planning/{rootActivityId}:
    get:
      tags:
      - Allocated Need
      summary: Get sliced allocated need by planning
      description: Get sliced allocated need by planning.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningNeedSliceResponseDTO'
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/allocated-need/{activityId}:
    get:
      tags:
      - Allocated Need
      summary: Get allocated need
      description: Get all allocated need for an activity with coast value.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllocatedNeedResponseDTO'
        "404":
          description: No activity found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    post:
      tags:
      - Allocated Need
      summary: Add a new allocated need.
      description: Add a new allocated need for an activity.
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                needId:
                  format: int64
                  type: integer
                quantity:
                  format: double
                  type: number
                factor:
                  format: double
                  type: number
                mode:
                  $ref: '#/components/schemas/QuantityMode'
                timeUnitId:
                  format: int64
                  type: integer
                costIds:
                  type: array
                  items:
                    format: int64
                    type: integer
      responses:
        "201":
          description: Allocated need successfully added
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    format: int64
                    type: integer
                  activityId:
                    format: int64
                    type: integer
                  need:
                    $ref: '#/components/schemas/AbstractNeedResponseDTO'
                  quantity:
                    format: double
                    type: number
                  factor:
                    format: double
                    type: number
                  mode:
                    $ref: '#/components/schemas/QuantityMode'
                  timeUnitId:
                    format: int64
                    type: integer
        "404":
          description: No activity found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/allocated-need/{allocatedNeedId}:
    put:
      tags:
      - Allocated Need
      summary: Edit allocated need
      description: Edit allocated need quantity.
      parameters:
      - name: allocatedNeedId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                factor:
                  format: double
                  type: number
                quantity:
                  format: double
                  type: number
                mode:
                  $ref: '#/components/schemas/QuantityMode'
                timeUnitId:
                  format: int64
                  type: integer
      responses:
        "200":
          description: Allocated need successfully updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    format: int64
                    type: integer
                  activityId:
                    format: int64
                    type: integer
                  need:
                    $ref: '#/components/schemas/AbstractNeedResponseDTO'
                  quantity:
                    format: double
                    type: number
                  factor:
                    format: double
                    type: number
                  mode:
                    $ref: '#/components/schemas/QuantityMode'
                  timeUnitId:
                    format: int64
                    type: integer
        "422":
          description: The quantity is not valid.
        "404":
          description: No allocated need found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    delete:
      tags:
      - Allocated Need
      summary: Remove the allocated need.
      description: Remove the allocated need for an activity
      parameters:
      - name: allocatedNeedId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "201":
          description: Allocated need successfully deleted
        "404":
          description: No allocated need found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/cost-center:
    post:
      tags:
      - Cost Center
      summary: Add a new cost center.
      description: Add a new cost center.
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "201":
          description: Cost center successfully added
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/cost-center/{costCenterId}:
    delete:
      tags:
      - Cost Center
      summary: Remove a cost center.
      description: Remove a cost center only if not used in Need
      parameters:
      - name: costCenterId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "201":
          description: Cost center successfully deleted
        "404":
          description: No cost center found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/cost-center/{costCenterId}/name:
    put:
      tags:
      - Cost Center
      summary: Edit cost center
      description: Edit cost center name.
      parameters:
      - name: costCenterId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          description: Cost center successfully updated
          content:
            application/json:
              schema:
                type: object
        "422":
          description: The name is not valid.
        "404":
          description: No cost center found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/cost/{allocatedNeedId}:
    post:
      tags:
      - Cost
      summary: Add a new cost.
      description: Add a new cost.
      parameters:
      - name: allocatedNeedId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Specify the cost data
        content:
          application/json:
            schema:
              type: object
      responses:
        "201":
          description: Cost successfully added
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/cost/{costId}:
    put:
      tags:
      - Cost
      summary: Edit cost
      description: Edit a cost.
      parameters:
      - name: costId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          description: Cost successfully updated
          content:
            application/json:
              schema:
                type: object
        "404":
          description: No cost found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    delete:
      tags:
      - Cost
      summary: Remove the cost.
      description: Remove the cost.
      parameters:
      - name: costId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "201":
          description: Cost successfully deleted
        "404":
          description: No cost found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/gantt-link:
    post:
      tags:
      - Gantt - Link
      summary: Create a new GanttLink
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                activityPredecessorId: "1"
                activitySuccessorId: "2"
                decalage: "0.0"
                linkType: DD
                nextCalendar: "false"
                used: "false"
                dayDefinitionId: "1"
      responses:
        "201":
          description: GanttLink successfuly created
          headers:
            location:
              description: url for access to ganttlink.
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "422":
          description: Required field empty or blanked | Activity is cycling
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "404":
          description: No Activity found with the specified id | No DayDefinition
            found with the specified id |No LinkCategory found with the specified
            id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/link-activities:
    post:
      tags:
      - Gantt - Link
      summary: Link many Activities
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                activityIdList:
                  type: array
                  items:
                    format: int64
                    type: integer
                decalage:
                  format: double
                  type: number
                linkType:
                  $ref: '#/components/schemas/LinkType'
                dayDefinitionId:
                  format: int64
                  type: integer
                linkMode:
                  $ref: '#/components/schemas/LinkMode'
                used:
                  type: boolean
      responses:
        "201":
          description: Activities successfully linked
        "422":
          description: Required field empty or blanked | Activity is cycling
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "404":
          description: No Activity found with the specified id | No DayDefinition
            found with the specified id |No LinkCategory found with the specified
            id
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  timestamp:
                    format: int64
                    type: integer
                  code:
                    format: int32
                    type: integer
                  type:
                    type: string
                  info:
                    type: string
                  value:
                    type: string
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/planning/{planningRootActivityId}:
    get:
      tags:
      - Gantt - Link
      summary: Get all GanttLink in Planning
      description: 'Get all GanttLink in a planning from his Root Activity Id '
      parameters:
      - name: planningRootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: "The response is a List of GanttLink, return empty list if\
            \ there is no record of GanttLink yet in the specified Planning root activity"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/planning/{planningRootActivityId}/export:
    get:
      tags:
      - Activity - IO
      summary: Get all GanttLink in Planningfor export
      description: 'Get all GanttLink in a planning from his Root Activity Id '
      parameters:
      - name: planningRootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: "The response is a List of GanttLink, return empty list if\
            \ there is no record of GanttLink yet in the specified Planning root activity"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/planning/{planningRootActivityId}/import:
    post:
      tags:
      - Activity - IO
      summary: Import ganttLink in a planning
      description: 'Import ganttlink in a planning from his Root Activity Id '
      parameters:
      - name: planningRootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/GanttLinkExportDTO'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}:
    get:
      tags:
      - Gantt - Link
      summary: Get ganttLink
      description: Get GanttLink with and id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: No GanttLink found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Gantt - Link
      summary: Delete GanttLink
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Deleted successfuly
        "404":
          description: No GanttLink found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}/activity-predecessor:
    put:
      tags:
      - Gantt - Link
      summary: Update GanttLink
      description: Update the activityPredecessor of the GanttLink
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                activityPredecessorId: "2"
      responses:
        "200":
          description: GanttLink successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: No GanttLink found with the specified id | No Activity found
            with the specified id
        "422":
          description: The specified Activity is cycling
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}/activity-successor:
    put:
      tags:
      - Gantt - Link
      summary: Update GanttLink
      description: Update the activitySuccessor of the GanttLink
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                activitySuccessorId: "3"
      responses:
        "200":
          description: GanttLink successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: No GanttLink found with the specified id | No Activity found
            with the specified id
        "422":
          description: The specified Activity is cycling
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}/day-definition-id:
    put:
      tags:
      - Gantt - Link
      summary: Update GanttLink
      description: Update the dayDefinitionId of the GanttLink
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                dayDefinitionId: "2"
      responses:
        "200":
          description: GanttLink successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: 'No GanttLink found with the specified id | No DayDefinition
            found with the specified id '
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}/decalage:
    put:
      tags:
      - Gantt - Link
      summary: Update GanttLink
      description: Update the decalage of the GanttLink
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                decalage: 1.0
      responses:
        "200":
          description: GanttLink successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: No GanttLink found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}/is-next-calendar:
    put:
      tags:
      - Gantt - Link
      summary: Update GanttLink
      description: Update the nextCalendar field of the GanttLink
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                nextCalendar: "true"
      responses:
        "200":
          description: GanttLink successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: No GanttLink found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}/link-type:
    put:
      tags:
      - Gantt - Link
      summary: Update GanttLink
      description: Update the linktype of the GanttLink
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                linkType: FF
      responses:
        "200":
          description: GanttLink successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: No GanttLink found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/gantt-link/{id}/used:
    put:
      tags:
      - Gantt - Link
      summary: Update GanttLink
      description: Update the link if it is used(used=true) or ignored(used=false)
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                used: "true"
      responses:
        "200":
          description: GanttLink successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttLink'
        "404":
          description: No GanttLink found with the specified id | No Activity found
            with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/link-category:
    get:
      tags:
      - Gantt - Link
      summary: Get LinkCategory
      description: Get LinkCategory with id
      responses:
        "200":
          description: LinkCategory successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkCategory'
        "404":
          description: No LinkCategory found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Gantt - Link
      summary: Create a new LinkCategory
      description: A LinkCategory is an qualifier for a Link and indicate Color and
        Name for it
      requestBody:
        description: Both of Name and Color are required for LinkCategory creation
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkCategoryRequestDTO'
      responses:
        "201":
          description: LinkCategory successfuly created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkCategoryRequestDTO'
        "422":
          description: Invalid hexadecimal color | Missing required field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/link-category/{id}:
    get:
      tags:
      - Gantt - Link
      summary: Get LinkCategory
      description: Get LinkCategory with id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: LinkCategory successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkCategory'
        "404":
          description: No LinkCategory found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Gantt - Link
      summary: Delete LinkCategory
      description: Delet LinkCategory with the specified id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "204":
          description: LinkCategory deleted successfuly
        "404":
          description: No LinkCategory found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/link-category/{id}/color:
    put:
      tags:
      - Gantt - Link
      summary: Update color of LinkCategory
      description: Update for the color property of LinkCategory only
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: The id of the LinkCategory to be updated is required
        content:
          application/json:
            schema:
              type: object
              example:
                id: "1"
                color: '#faf'
      responses:
        "200":
          description: LinkCategory successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkCategory'
        "422":
          description: Invalid hexadecimal color | Missing required field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No LinkCategory found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/link-category/{id}/name:
    put:
      tags:
      - Gantt - Link
      summary: Update the name LinkCategory
      description: Update for the color property of LinkCategory only
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: The id of the LinkCategory to be updated is required
        content:
          application/json:
            schema:
              type: object
              example:
                id: "1"
                name: update name
      responses:
        "200":
          description: LinkCategory successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkCategory'
        "422":
          description: Invalid hexadecimal color | Missing required field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No LinkCategory found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/need:
    get:
      tags:
      - Need
      summary: Get need
      description: Get all need in tree form.
      parameters:
      - name: needType
        in: query
        schema:
          $ref: '#/components/schemas/NeedMode'
      - name: visibility
        in: query
        schema:
          $ref: '#/components/schemas/NeedVisibility'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NeedTreeResponseDTO'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    post:
      tags:
      - Need
      summary: Add a new need.
      description: Add a new need.
      requestBody:
        description: Specify the need data
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                visibility:
                  enum:
                  - GLOBAL
                  - PLANNING
                  type: string
                  allOf:
                  - $ref: '#/components/schemas/NeedVisibility'
                  example: PLANNING
                parentId:
                  format: int64
                  type: integer
                rootActivityId:
                  format: int64
                  type: integer
                color:
                  type: string
                  example: '#FFF000'
                needType:
                  $ref: '#/components/schemas/NeedMode'
                quantityMode:
                  $ref: '#/components/schemas/QuantityMode'
                timeUnitId:
                  format: int64
                  type: integer
                quantityUnit:
                  $ref: '#/components/schemas/QuantityUnit'
      responses:
        "201":
          description: Need successfully added
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/need/level:
    post:
      tags:
      - Need
      summary: Add a new need Level.
      description: Add a new need Level.
      requestBody:
        description: Specify the need Level data
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                visibility:
                  enum:
                  - GLOBAL
                  - PLANNING
                  type: string
                  allOf:
                  - $ref: '#/components/schemas/NeedVisibility'
                  example: PLANNING
                parentId:
                  format: int64
                  type: integer
                rootActivityId:
                  format: int64
                  type: integer
                color:
                  type: string
                  example: '#FFF000'
                needType:
                  $ref: '#/components/schemas/NeedMode'
                quantityMode:
                  $ref: '#/components/schemas/QuantityMode'
                timeUnitId:
                  format: int64
                  type: integer
                quantityUnit:
                  $ref: '#/components/schemas/QuantityUnit'
      responses:
        "201":
          description: Level successfully added
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/need/tree/{needId}:
    get:
      tags:
      - Need
      summary: 'Get need tree '
      description: Get a need tree.
      parameters:
      - name: needId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NeedTreeResponseDTO'
        "404":
          description: No need found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/need/{needId}:
    get:
      tags:
      - Need
      summary: Get all need tree
      description: Get a need.
      parameters:
      - name: needId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NeedResponseDTO'
        "404":
          description: No need found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    put:
      tags:
      - Need
      summary: Edit need
      description: Edit a need.
      parameters:
      - name: needId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                description:
                  type: string
                color:
                  type: string
                  example: '#FFF000'
                quantityMode:
                  $ref: '#/components/schemas/QuantityMode'
                timeUnitId:
                  format: int64
                  type: integer
                quantityUnit:
                  $ref: '#/components/schemas/QuantityUnit'
                parentId:
                  format: int64
                  type: integer
      responses:
        "200":
          description: Need successfully updated
          content:
            application/json:
              schema:
                type: object
                properties:
                  needId:
                    format: int64
                    type: integer
                  name:
                    type: string
                  description:
                    type: string
                  color:
                    type: string
                  needType:
                    $ref: '#/components/schemas/NeedMode'
                  visibility:
                    $ref: '#/components/schemas/NeedVisibility'
                  parentId:
                    format: int64
                    type: integer
                  childIds:
                    type: array
                    items:
                      format: int64
                      type: integer
        "404":
          description: No Need found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    delete:
      tags:
      - Need
      summary: Remove the need.
      description: Remove the need if it is not used.
      parameters:
      - name: needId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "201":
          description: Need successfully deleted
        "404":
          description: No need found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /activities/team/planning/{rootActivityId}:
    get:
      tags:
      - Team
      summary: Get all job  in specified planning.
      description: Get all job in specified planning.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Return the job's name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/team/planning/{rootActivityId}/shared:
    get:
      tags:
      - Team
      summary: Get all teams to whom the specified planning is shared.
      description: Get all teams to whom the specified planning is shared. Include
        the owner of the planning
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Return the job's name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/team/{teamId}/planning/{rootActivityId}/job:
    get:
      tags:
      - Team
      summary: Get a job for a Team in specified planning.
      description: Get a job for a Team in specified planning.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Return the job's name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Team
      summary: "Add or modify a job for a team, in a planning."
      description: "Add or modify a new job for a defined team, in a planning. Job\
        \ was defined in specific default unifiedfield named \"Metier\". Jobs allows\
        \ are only defined jobs in unifiedfield list."
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Specify the id for root activity of planning and the job name
          for team.
        content:
          application/json:
            schema:
              type: object
              example:
                value:
                - Job 1
                - Job 2
                - Job 3
      responses:
        "201":
          description: Job defined for Team with success.
        "422":
          description: Job's name doesn't present in unifiedfield list; Team not find;
            Current user haven't enough level access on planning
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Team
      summary: "Delete an user job acces for an Team, in a planning."
      description: "Delete an user job acces for an Team, in a planning.Team without\
        \ job can't modify planning."
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "201":
          description: Job deleted for Team with success.
        "422":
          description: Team not find; Current user haven't enough level access on
            planning
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field:
    post:
      tags:
      - UnifiedField
      summary: Create new UnifiedField
      description: "Create a new UnifiedField, a custom field that can be associated\
        \ with an activity."
      requestBody:
        description: "Name parameter is for UnifiedField name, PlanningId the planning\
          \ that contains unifiedfield.If both numeric and text are true, or false,\
          \ the UnifiedField will have a list of Choicetype. If numeric or text only\
          \ is true, then the ChoiceType will have a single value 'Numeric' or 'Text'."
        content:
          application/json:
            schema:
              type: object
              properties:
                planningId:
                  format: int64
                  type: integer
                name:
                  type: string
                numeric:
                  type: boolean
                text:
                  type: boolean
                multipleChoice:
                  type: boolean
      responses:
        "201":
          description: UnifiedField successfuly created
          content:
            application/json:
              schema:
                type: object
                properties:
                  planningId:
                    format: int64
                    type: integer
                  name:
                    type: string
                  numeric:
                    type: boolean
                  text:
                    type: boolean
                  multipleChoice:
                    type: boolean
        "422":
          description: Name already in use | Required field empty or blanked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/defaults:
    get:
      tags:
      - UnifiedField
      summary: Get Defaults UnifiedField
      description: Get all defaults UnifiedField
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedFields'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/planning/{planningId}:
    get:
      tags:
      - UnifiedField
      summary: Get all UnifiedField in a planning
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
        "404":
          description: No UnifiedField found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{planningId}/{unifiedFieldId}:
    delete:
      tags:
      - UnifiedField
      summary: Delete a UnifiedField
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Day definition successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{planningRootActivityId}/{unifiedFieldId}/add-choice:
    put:
      tags:
      - UnifiedField
      summary: Add choice to specified UnifiedField
      parameters:
      - name: planningRootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnifiedRequestDTO2'
      responses:
        "200":
          description: Choice successfully added
        "404":
          description: UnifiedField not found
        "401":
          description: The current user is not allow for this operation
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{planningRootActivityId}/{unifiedFieldId}/{choiceName}/update-choice:
    put:
      tags:
      - UnifiedField
      summary: Update ChoiceType of an UnifiedField
      parameters:
      - name: choiceName
        in: path
        required: true
        schema:
          type: string
      - name: planningRootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnifiedRequestDTO2'
      responses:
        "200":
          description: ChoiceType updated successfully
        "404":
          description: Choice not found | UnifiedField not found
        "401":
          description: The current user is not allow for this operation
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{planningRootActivityId}/{unifiedFieldId}/{name}/delete-choice:
    delete:
      tags:
      - UnifiedField
      summary: Delete a choice of an UnifiedFiled
      parameters:
      - name: name
        in: path
        required: true
        schema:
          type: string
      - name: planningRootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Choice deleted successfully
        "404":
          description: Choice not found | UnifiedField not found
        "401":
          description: The current user is not allow for this operation
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{unifiedFieldId}:
    get:
      tags:
      - UnifiedField
      summary: Get UnifiedField
      description: Get one UnifiedField with an id
      parameters:
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedFields'
        "404":
          description: No UnifiedField found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{unifiedFieldId}/value:
    put:
      tags:
      - UnifiedField
      summary: Add value of multiple activities to the specified UnifiedField
      parameters:
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ActivityMultipleUpdaterRequestDTO'
      responses:
        "200":
          description: Value successfully added
        "404":
          description: Activity not found | UnifiedField not found
        "401":
          description: The current user is not allow for this operation
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{unifiedFieldId}/{activityId}/color:
    get:
      tags:
      - UnifiedField
      summary: Get color for an activity on specified mulitple choices UnifiedField
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaintPM'
        "404":
          description: Activity not found | UnifiedField not found
        "401":
          description: The current user is not allow for this operation
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{unifiedFieldId}/{activityId}/value:
    get:
      tags:
      - UnifiedField
      summary: Get value an activity on specified UnifiedField
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueDTO1'
        "404":
          description: Activity not found | UnifiedField not found
        "401":
          description: The current user is not allow for this operation
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - UnifiedField
      summary: Add value of an activity to the specified UnifiedField
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                value:
                  type: object
              example:
                value:
                - Value 1
                - Value 2
      responses:
        "200":
          description: Value successfuly added
        "404":
          description: Activity not found | UnifiedField not found
        "401":
          description: The current user is not allow for this operation
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/unified-field/{unifiedFieldId}/{planningId}/name:
    put:
      tags:
      - UnifiedField
      summary: Update UnifiedField by planning
      description: 'Update only the name of UnifiedField by planning '
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: unifiedFieldId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                name: new name
      responses:
        "200":
          description: UnifiedField successfuly updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedFields'
        "422":
          description: id empty or blanked
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No UnifiedField found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/user/planning/{rootActivityId}/job:
    get:
      tags:
      - User
      summary: Get a job for a user in specified planning.
      description: Get a job for a user in specified planning.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Return the job's name.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValueDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/user/{userId}/planning/{rootActivityId}/job:
    delete:
      tags:
      - User
      summary: "Delete an user job acces for an user, in a planning."
      description: "Delete an user job acces for an user, in a planning.User without\
        \ job can't modify planning."
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "201":
          description: Job deleted for User with success.
        "422":
          description: User not find; Current user haven't enough level access on
            planning
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /activities/user/{userId}/planning/{rootActivityId}/lastModified:
    get:
      tags:
      - User
      summary: Get the time of last modification in planning for user.
      description: Each modification in planning update the last modification time.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Filter'
        "404":
          description: No filter found with the specified id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /broadcast:
    get:
      tags:
      - Notifier Ressource
      summary: Broadcast notifier for live update.
      description: "Return in live, type, id, hashcode and if possible url access\
        \ for all updated objects in database. Trying with google chrome."
      responses:
        "200":
          description: Successful operation.
          content:
            text/event-stream:
              schema:
                example: classname:id:hashcode:url
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /broadcast-delay:
    get:
      tags:
      - Notifier Ressource
      summary: Broadcast notifier for delay update.
      description: "Return in  2 seconds, type, id, hashcode and if possible url access\
        \ for all updated objects in database. Trying with google chrome."
      responses:
        "200":
          description: Successful operation.
          content:
            text/event-stream:
              schema:
                example: classname:id:hashcode:url
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /broadcast-pusher/{rootActivityId}:
    get:
      tags:
      - Activity Notifier Resource
      summary: "Broadcast Notifier for live update specific to a planning, this broadcast\
        \ push data directly."
      description: "Return in live, new data for an entity for a planning. Trying\
        \ with google chrome."
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            text/event-stream: {}
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar:
    get:
      tags:
      - Internal-API
      summary: Get all calendar
      description: You can use filter
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CalendarPMResponseDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Calendar
      summary: Create a new calendar.
      requestBody:
        description: Name for the new calendar.
        content:
          application/json:
            schema:
              type: object
              example:
                name: new_value
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to calendar
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "422":
          description: The name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/name:
    get:
      tags:
      - Calendar
      summary: Get all calendar's id and name.
      description: Return all calendar's id and name.
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdNameDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{calendarId}:
    get:
      tags:
      - Calendar
      summary: Get one calendar.
      description: Return one calendar with same id
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Calendar
      summary: Modify or update calendar name
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New name for the calendar.
        content:
          application/json:
            schema:
              type: object
              example:
                name: new_value
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Calendar
      summary: Delete calendar.
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Time-slot successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Default calendar can not be removed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{calendarId}/add-period:
    put:
      tags:
      - Calendar
      summary: Add a period to calendar.
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New period values.
        content:
          application/json:
            schema:
              type: object
              example:
                periodId: 0
                start: 2021-03-31
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{calendarId}/add-specific-period:
    put:
      tags:
      - Calendar - Specific-periods
      summary: Add a specific period(exception) to calendar.
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New specific period values.
        content:
          application/json:
            schema:
              type: object
              example:
                name: string
                startDate: 2021-03-31
                endDate: 2021-03-31
                dayDefinitionId: 0
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: "Specific Period [name] overlap an other specific period. |\
            \ Time is invalid or duration is negative. "
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OverlappingException'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{calendarId}/as-default:
    put:
      tags:
      - Calendar
      summary: Set calendar as default.
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{calendarId}/remove-period:
    put:
      tags:
      - Calendar
      summary: Remove a period from calendar.
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Id of the period to remove.
        content:
          application/json:
            schema:
              type: object
              example:
                start: 2021-03-31
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{calendarId}/remove-specific-period:
    put:
      tags:
      - Calendar - Specific-periods
      summary: Remove a specific period(exception) from calendar.
      parameters:
      - name: calendarId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Id of the specific period to remove.
        content:
          application/json:
            schema:
              type: object
              example:
                specificPeriodId: 0
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPMResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/adjust-end:
    get:
      tags:
      - Calendar
      summary: ' Adjust start date.'
      description: Return floor working end date on calendar.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: endDateTime
        in: query
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Epoch time in millisecond.
          content:
            application/json:
              schema:
                format: int64
                type: integer
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/adjust-start:
    get:
      tags:
      - Calendar
      summary: ' Adjust start date.'
      description: Return ceil working start date on calendar.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: startDate
        in: query
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Epoch time in millisecond.
          content:
            application/json:
              schema:
                format: int64
                type: integer
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/compute-end:
    get:
      tags:
      - Calendar
      summary: "Compute end time, base on start time more duration."
      description: Return end time worked on calendar.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: duration
        in: query
        schema:
          format: int64
          type: integer
      - name: startDateTime
        in: query
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Epoch time in millisecond.
          content:
            application/json:
              schema:
                format: int64
                type: integer
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/compute-start:
    get:
      tags:
      - Calendar
      summary: "Compute start time, base on end time less duration."
      description: Return start date worked on calendar.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: dureeMilli
        in: query
        schema:
          format: int64
          type: integer
      - name: endDateTime
        in: query
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Epoch time in millisecond.
          content:
            application/json:
              schema:
                format: int64
                type: integer
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/duration:
    get:
      tags:
      - Calendar
      summary: Get duration in milliseconds between startTime and endTime on calendar.
      description: Return duration in milliseconds between startTime and endTime on
        calendar.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: end
        in: query
        schema:
          format: int64
          type: integer
      - name: start
        in: query
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DurationDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/icalendar/{idDayDefinition}:
    post:
      tags:
      - Calendar - Specific-periods
      summary: Import an icalendar in ics format.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: idDayDefinition
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: ICS format file.
        content:
          application/octet-stream:
            schema:
              format: binary
              type: object
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CalendarPMResponseDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/is-working:
    get:
      tags:
      - Calendar
      summary: Date is a working time on calendar ?.
      description: Return true if it's a working time.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: dateTime
        in: query
        schema:
          format: int64
          type: integer
      requestBody:
        description: "Calendar Id, start time values."
        content:
          application/json: {}
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/name:
    get:
      tags:
      - Calendar
      summary: Get a calendar's id and name.
      description: Return a calendar's id and name.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdNameDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/no-working-real:
    get:
      tags:
      - Calendar
      summary: List all not working hour between start and end date.
      description: Return list of date in Epoch milliseconde format.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: end
        in: query
        schema:
          format: int64
          type: integer
      - name: start
        in: query
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/calendar/{id}/working-slice:
    get:
      tags:
      - Calendar
      summary: List all working slice between start and end date.
      description: Return list of slice with start en end in Epoch milliseconde format.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: end
        in: query
        schema:
          format: int64
          type: integer
      - name: start
        in: query
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartEndDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions:
    get:
      tags:
      - Internal-API
      summary: Get all day definition
      description: Return day definition.
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DayDefinition'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Calendar - Day-definitions
      summary: Create a Daydefinition
      requestBody:
        description: New day definition values.
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                color:
                  type: string
                  example: '#55aa99ff'
                timeslotIds:
                  type: array
                  items:
                    format: int64
                    type: integer
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to daydefinition
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayDefinition'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/name:
    get:
      tags:
      - Internal-API
      summary: Get all id-name day definition
      description: Return all id-name day definition.
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/IdNameDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/time-units:
    get:
      tags:
      - Calendar - Day-definitions
      summary: Get all day definition used for time unit
      description: Return day definition that is work.
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DayDefinition'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/{id}:
    get:
      tags:
      - Calendar - Day-definitions
      summary: Get a day definition
      description: Return one day definition with same id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayDefinitionWithDurationResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Calendar - Day-definitions
      summary: Modify or update day definition name
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New name for the day definition.
        content:
          application/json:
            schema:
              type: object
              example:
                name: new_value
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayDefinition'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Calendar - Day-definitions
      summary: Delete dayDefinition.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Day definition successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The entity is used by other entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/{id}/add-timeslot:
    put:
      tags:
      - Calendar - Day-definitions
      summary: Add a timeslot in day definition
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Id of the timeslot to add.
        content:
          application/json:
            schema:
              type: object
              example:
                timeslotIds:
                - 0
                - 1
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayDefinition'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: "Timeslot [name] overlap an other timeslot.\""
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OverlappingException'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/{id}/as-default:
    put:
      tags:
      - Calendar - Day-definitions
      summary: Set day definition as default time-units.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CalendarPM'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/{id}/duration:
    get:
      tags:
      - Calendar - Day-definitions
      summary: Get duration of day definition in milliseconde.
      description: Return duration of day definition in milliseconde with same id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DurationDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/{id}/modify-color:
    put:
      tags:
      - Calendar - Day-definitions
      summary: Modify or update day definition color
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New color for the day definition.
        content:
          application/json:
            schema:
              type: object
              example:
                color: '#aaffaaff'
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DayDefinition'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/day-definitions/{id}/remove-timeslot:
    put:
      tags:
      - Calendar - Day-definitions
      summary: Delete a time-slot in daydefinition.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Id of the timeslot to remove.
        content:
          application/json:
            schema:
              type: object
              example:
                timeslotIds:
                - 0
                - 1
      responses:
        "200":
          description: Successful operation.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/periods:
    get:
      tags:
      - Internal-API
      summary: Get all periods
      description: You can use filter
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Period'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Calendar - Periods
      summary: Create a new period.
      requestBody:
        description: New period values.
        content:
          application/json:
            schema:
              type: object
              example:
                name: newPeriod
                dayDefinitionsIds:
                - 19
                - 19
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to period
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Period'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/periods/{id}:
    get:
      tags:
      - Calendar - Periods
      summary: Get a period.
      description: Return one period with same id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Period'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Calendar - Periods
      summary: Modify or update period name
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New name for the period.
        content:
          application/json:
            schema:
              type: object
              example:
                name: new_value
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Period'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Calendar - Periods
      summary: Delete a period.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Period successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The entity is used by other entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/periods/{id}/update-days-number:
    put:
      tags:
      - Calendar - Periods
      summary: Modify the number of day in a period.
      description: This allows you to modify the number of day in a period.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New number of day definition in the period.
        content:
          application/json:
            schema:
              type: object
              example:
                periodDaysNumber: 0
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Period'
        "422":
          description: Period must be at least one day-definition.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/specific-period:
    get:
      tags:
      - Internal-API
      summary: Get all specificPeriods.
      description: You can use filter
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SpecificPeriod'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/specific-period/{id}:
    get:
      tags:
      - Calendar - Specific-periods
      summary: Get a specific period
      description: Return one specificperiod with same id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpecificPeriod'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/time-slots:
    get:
      tags:
      - Internal-API
      summary: Get all time-slot
      description: Return timeslots.
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TimeSlot'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Calendar - Time-slots
      summary: Create time-slot
      requestBody:
        description: New timeslot values.
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                start_time:
                  $ref: '#/components/schemas/LocalTime'
                end_time:
                  $ref: '#/components/schemas/LocalTime'
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to timeslot
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeSlot'
        "422":
          description: Time is invalid or duration is negative | The name cannot be
            empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/time-slots/duration/{id}:
    get:
      tags:
      - Calendar - Time-slots
      summary: Compute time-slot duration in milliseconds
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              example:
                duration: 3600000
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /calendars/time-slots/{id}:
    get:
      tags:
      - Calendar - Time-slots
      summary: Get a time-slot
      description: Return one timeslot with same id
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeSlot'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Calendar - Time-slots
      summary: Modify or update time-slot name
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New name for the timeslot.
        content:
          application/json:
            schema:
              type: object
              example:
                name: new_value
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimeSlot'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Calendar - Time-slots
      summary: Delete time-slot
      parameters:
      - name: id
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Time-slot successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The entity is used by other entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder:
    get:
      tags:
      - Folder
      summary: Get root folder
      description: Return all root folder
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Folder
      summary: Create folder
      requestBody:
        description: New folders values.
        content:
          application/json:
            schema:
              type: object
              properties:
                parentId:
                  format: int64
                  type: integer
                name:
                  type: string
                inheritParentPermission:
                  type: boolean
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to folder
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Folder'
        "422":
          description: 'Invalid name | Folder already exist | Folder too deep '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}:
    get:
      tags:
      - Folder
      summary: Get a folder
      description: "Return a folder with same id, and only id of childrens."
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdFolderResponseDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Folder
      summary: Delete folder
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Folder successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The entity is used by other entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}/add-permission:
    put:
      tags:
      - Folder
      summary: Add a permission for accessing to the folder.
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New permission values.
        content:
          application/json:
            schema:
              type: object
              properties:
                teamId:
                  format: int64
                  type: integer
                access:
                  $ref: '#/components/schemas/Access'
                giveAccessOnParent:
                  type: boolean
      responses:
        "200":
          description: Permission successfully add.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}/archive:
    get:
      tags:
      - Folder
      summary: "Get all archived - planning in folder, if user can access."
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}/name:
    put:
      tags:
      - Folder
      summary: Modify the name of a folder.
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameDTO'
      responses:
        "200":
          description: Palling Name updated.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}/permissions:
    get:
      tags:
      - Folder
      summary: "Get all permission access for folder, if user can access."
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}/planning:
    get:
      tags:
      - Folder
      summary: "Get all non archived - planning in folder, if user can access."
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}/remove-permission/{permissionId}:
    put:
      tags:
      - Folder
      summary: Remove a permission for accessing to the folder.
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: permissionId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Permission successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/folder/{folderId}/subfolder:
    get:
      tags:
      - Folder
      summary: "Get folder and all recursive subfolder, that user can access."
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning:
    post:
      tags:
      - Planning
      summary: Create a planning.
      requestBody:
        description: New planning values.
        content:
          application/json:
            schema:
              type: object
              properties:
                parentId:
                  format: int64
                  type: integer
                name:
                  type: string
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to planning
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Planning'
        "422":
          description: Name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/all-related-planning/{planningId}:
    get:
      tags:
      - Planning
      summary: List all archived planning related to a planning.
      description: "For compare two planning, we needs to know which planning have\
        \ been created with the reference planning passed in parameter.Function return\
        \ all related archive and the base planning, at condition that user have access\
        \ to read it."
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningDTO'
        "404":
          description: No planning found with this id.
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/notify-users:
    post:
      tags:
      - Planning
      summary: Notify a list of Users or Teams on Planning archive.
      requestBody:
        description: "List of the User ID OR/AND, list of the Team ID"
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotifyUsersRequestDTO'
      responses:
        "200":
          description: Successfully moved
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/{planningId}:
    get:
      tags:
      - Planning
      summary: Get a planning
      description: "Return a planning with same id, if user can access"
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Planning'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Planning
      summary: Moving planning
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Target folder id's value.
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  format: int64
                  type: integer
      responses:
        "200":
          description: Planning successfully moved.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: "An other entity with same name, is present in folder."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Planning
      summary: Archive planning.
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Archive name.
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
      responses:
        "201":
          description: Successsful operation.
          headers:
            location:
              description: url for access to planning
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ArchivedPlanning'
        "422":
          description: Name cannot be empty and must be unique.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Planning
      summary: Delete planning
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Planning successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The entity is used by other entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/{planningId}/add-permission:
    put:
      tags:
      - Planning
      summary: Add a permission for accessing to the planning.
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New permission values.
        content:
          application/json:
            schema:
              type: object
              properties:
                teamId:
                  format: int64
                  type: integer
                access:
                  $ref: '#/components/schemas/Access'
                dispatchPermission:
                  type: boolean
      responses:
        "200":
          description: Permission successfully add.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/{planningId}/move:
    put:
      tags:
      - Planning
      summary: Move a planning.
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ParentIdNameDTO'
      responses:
        "200":
          description: Successfuly moved
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/{planningId}/name:
    put:
      tags:
      - Planning
      summary: Modify the name of a planning.
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameDTO'
      responses:
        "200":
          description: Palling Name updated.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/{planningId}/permissions:
    get:
      tags:
      - Planning
      summary: "Get all permission access for planning, if user can access."
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Folder'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/planning/{planningId}/remove-permission/{permissionId}:
    put:
      tags:
      - Planning
      summary: Remove a permission for accessing to the planning.
      parameters:
      - name: permissionId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Permission successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid value.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/sandbox/planning:
    get:
      tags:
      - Planning Draft
      summary: Getting all planning in user sandbox
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Planning'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Planning Draft
      summary: Create a new Planning for Sandbox
      requestBody:
        description: "To create a new planning for sandbox, name only is needed."
        content:
          application/json:
            schema:
              type: object
              example:
                name: my new sandbox planning
      responses:
        "201":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Planning'
        "422":
          description: Invalid name
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Planning'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /folders/sandbox/planning/{planningId}:
    get:
      tags:
      - Planning Draft
      summary: Getting a specific planning in user sandbox
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Planning'
        "503":
          description: Unreadable planning (not owned)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: Planning not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Planning Draft
      summary: Updating name of a specific planning in user sandbox
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameUpdaterDTO1'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Planning'
        "503":
          description: Unreadable planning (not owned)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Invalid name
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: Planning not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Planning Draft
      summary: Deleting a specific planning in user sandbox
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Planning'
        "503":
          description: Unreadable planning (not owned)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: Planning not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /planify/{rootActivityId}:
    post:
      tags:
      - Planify
      summary: Planify activities from a planning.
      description: "Planify activities from a planning. Can specified wich activities\
        \ must be planified, if selected activities list is empty all activities will\
        \ be planified."
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NumericIdListDTO'
      responses:
        "200":
          description: Successful operation
        "404":
          description: No Activity found with the specified id
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /print/template:
    get:
      tags:
      - Print Template
      summary: Get all template
      description: Get all public template and owned template.This will not show other
        user's private template
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Template'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Print Template
      summary: Create a new template
      description: Creating new print template. Template can be personal or public.
        Personal template can only be accessed by its owner.Public template is available
        for everyone but admin only can create public template.
      requestBody:
        description: "To create a new template, 'name' and 'personal' field are required.The\
          \ six elements (headerLeft, headerCenter, headerRight, footerLeft, footerCenter\
          \ and footerRight in the template can be null.An element contain its Position\
          \ (TOP, CENTER or BOTTOM), its Alignment (LEFT, CENTER or RIGHT),its Type\
          \ (TEXT, IMAGE, DATE, PROJECT_NAME or PAGE),and finally its value (String\
          \ in base64 for image type, and raw value for text type"
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateRequestDTO'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        "422":
          description: Created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Required admin operation when creating public Template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/personal:
    get:
      tags:
      - Print Template
      summary: Get a list of all owned personal template
      description: Get a list of all owned personal template in a minimal version
        containing only 'id' and 'name' of the template
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Minimal'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/privatize/{publicTemplateId}:
    post:
      tags:
      - Print Template
      summary: Privatize a public template
      description: Privatizing a public template and make it personal
      parameters:
      - name: publicTemplateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameUpdaterDTO'
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        "422":
          description: not unique name
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/public:
    get:
      tags:
      - Print Template
      summary: Get a list of all public template
      description: Get a list of all public template in a minimal version containing
        only 'id' and 'name' of the template
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Minimal'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/{templateId}:
    get:
      tags:
      - Print Template
      summary: Get a template
      description: Return a public or a personal template.
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        "404":
          description: No template found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Print Template
      summary: Update template
      description: Update template.Private template can only be updated by its owner.Public
        template can only be updated by admin.
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateUpdateReqDTO'
      responses:
        "200":
          description: Updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TemplateResponseDTO'
        "403":
          description: Cannot update others private template | Required admin privilege
            to update public template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No template found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Print Template
      summary: Delete template
      description: Deleting template. A private template can only be deleted by its
        owner.Public Template can only be deleted by admin
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Deleted successfully
        "403":
          description: Cannot delete others private template | Required admin privilege
            to delete public template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No template found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/{templateId}/color:
    put:
      tags:
      - Print Template
      summary: Update template color
      description: Update template color.Private template can only be updated by its
        owner.Public template can only be updated by admin.
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: "The color field is in HTML color code format (eg: #AA34F1)."
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ColorUpdaterDTO'
      responses:
        "200":
          description: Updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        "403":
          description: Cannot update others private template | Required admin privilege
            to update public template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No template found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/{templateId}/elements:
    put:
      tags:
      - Print Template
      summary: Update template elements
      description: Update template elements.Private template can only be updated by
        its owner.Public template can only be updated by admin
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: "The field \"container\" define the element of the template to\
          \ be updated.For example, for updating the template's headerLeft, we can\
          \ put \"container\" : \"HEADER_LEFT\" and then we put the new values.'container'\
          \ can have [HEADER_LEFT, HEADER_CENTER, HEADER_RIGHT, FOOTER_LEFT, FOOTER_CENTER,\
          \ FOOTER_RIGHT] as value.This DTO consist of an Array of element updater.\
          \ If we have two duplicated value of container to update in the array, the\
          \ last one is the one that will be considered."
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateElementUpdaterDTO'
      responses:
        "200":
          description: Updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        "403":
          description: Cannot update others private template | Required admin privilege
            to update public template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No template found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/{templateId}/name:
    put:
      tags:
      - Print Template
      summary: Update template name
      description: Update template name.Private template can only be updated by its
        owner.Public template can only be updated by admin.
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NameUpdaterDTO'
      responses:
        "200":
          description: Updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Template'
        "403":
          description: Cannot update others private template | Required admin privilege
            to update public template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No template found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
  /print/template/{templateId}/remove-element:
    put:
      tags:
      - Print Template
      summary: Remove one element from template
      description: Removing one element from template. A private template can only
        be updated by its owner.Public Template can only be update by admin
      parameters:
      - name: templateId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: "The container of the element to remove (ex: HEADER_LEFT."
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContainerRequestDTO'
      responses:
        "200":
          description: Deleted successfully
        "403":
          description: Cannot update others private template | Required admin privilege
            to update public template
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "404":
          description: No template found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
  /program-infos:
    get:
      tags:
      - Program-infos
      summary: All infos related to the connection and action of the user on a program.
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: object
                properties:
                  userId:
                    type: string
                  favoritePlanningList:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlanningTO'
                  currentPlanning:
                    $ref: '#/components/schemas/PlanningTO'
                  lastConnectionTime:
                    format: int64
                    type: integer
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /program-infos/current-planning:
    put:
      tags:
      - Program-infos
      summary: Update the current planning the user is working on.
      requestBody:
        description: ID of the current planning the user is working on..
        content:
          application/json:
            schema:
              type: object
              properties:
                planningId:
                  format: int64
                  type: integer
                planningName:
                  type: string
                connectionTime:
                  format: int64
                  type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlanningRequestDTO'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /program-infos/favorite-planning:
    post:
      tags:
      - Program-infos
      summary: Add a new favorite planning of the user.
      requestBody:
        description: The favorites planning.
        content:
          application/json:
            schema:
              type: object
              properties:
                planningId:
                  format: int64
                  type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProgramInfoTO'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /program-infos/favorite-planning/{planningId}:
    delete:
      tags:
      - Program-infos
      summary: Delete a favorite planning of the user from list.
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProgramInfoTO'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /program-infos/{planningId}/is-favorite:
    get:
      tags:
      - Program-infos
      summary: Return if a planning is favorite for the current user.
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: boolean
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /secure/folder-access/{folderId}:
    get:
      tags:
      - Folder authorization
      summary: Get access on folder for current user.
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /secure/folder-access/{folderId}/user/{userId}:
    get:
      tags:
      - Folder authorization
      summary: Get access on folder for current user.
      parameters:
      - name: folderId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /secure/planning-access/{planingId}:
    get:
      tags:
      - Folder authorization
      summary: Get access on planning for current user.
      parameters:
      - name: planingId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /secure/planning-access/{planingId}/user/{userId}:
    get:
      tags:
      - Folder authorization
      summary: Get access on planning for current user.
      parameters:
      - name: planingId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /secure/root-activity-access/{rootActivityId}:
    get:
      tags:
      - Folder authorization
      summary: Get access on planning with rootActivityId for current user.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /secure/root-activity-access/{rootActivityId}/user/{userId}:
    get:
      tags:
      - Folder authorization
      summary: Get access on planning with rootActivityId for current user.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Access'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/by-planning/{planningId}:
    get:
      tags:
      - Tab Preferences
      summary: Get all Tab's preferences related to a planning without preferences
        data
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TabPreferenceResponseDTO'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/preferences:
    get:
      tags:
      - Tab Preferences
      summary: Get user global preferences
      description: Get user global preferences
      responses:
        "200":
          description: Success.
          content:
            application/json:
              schema:
                type: object
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Tab Preferences
      summary: Update a global user preference
      requestBody:
        description: "User global preference json object, only well-formated validation."
        content:
          application/json:
            schema:
              type: object
      responses:
        "200":
          description: Global preference updated.
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: "JsonParseException, Invalid JSON or value badly formatted."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/shared-prefs-by-planning/{planningId}:
    get:
      tags:
      - Tab Preferences
      summary: Get shared Tab's preferences by planning
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Success.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TabPreferenceResponseDTO'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{planningId}/duplicate-on-new-planning/{newPlanningId}:
    post:
      tags:
      - Tab Preferences
      summary: Duplicate all Tab preference on new planning.
      parameters:
      - name: newPlanningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "201":
          description: All Tab preference duplicated successfully.
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{planningId}/new-tab-preference:
    post:
      tags:
      - Tab Preferences
      summary: Create a new Tab preference
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Tab preference to be created
        content:
          application/json:
            schema:
              type: object
              example:
                tabType: AGENDA
                name: string
      responses:
        "201":
          description: Tab preference created successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TabPreferenceResponseDTO'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{tabPreferenceId}:
    get:
      tags:
      - Tab Preferences
      summary: Get preference for one Tab with the json file
      parameters:
      - name: tabPreferenceId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Success.
          content:
            application/json:
              schema:
                type: object
                example:
                  id: 0
                  userId: string
                  planningId: 0
                  tabType: AGENDA
                  name: string
                  order: 0
                  display: true
                  sendByUserId: string
                  accepted: true
                  preferences: {}
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Tab Preferences
      summary: remove a Tab preference
      parameters:
      - name: tabPreferenceId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Tab preference removed successfully.
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{tabPreferenceId}/accept:
    put:
      tags:
      - Tab Preferences
      summary: Accept a shared Tab preference
      parameters:
      - name: tabPreferenceId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: "True if accepted, False if not."
        content:
          application/json:
            schema:
              type: object
              properties:
                value:
                  type: object
      responses:
        "200":
          description: Shared Tab preference accepted successfully.
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{tabPreferenceId}/duplicate:
    post:
      tags:
      - Tab Preferences
      summary: Duplicate a Tab preference
      parameters:
      - name: tabPreferenceId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Tab preference to be duplicate
        content:
          application/json:
            schema:
              type: object
              example:
                name: string
      responses:
        "201":
          description: Tab preference created successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/TabPreferenceResponseDTO'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{tabPreferenceId}/edit-tab-pref-blob:
    put:
      tags:
      - Tab Preferences
      summary: Update a Tab's preference with the JSON
      parameters:
      - name: tabPreferenceId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Tab preference with json file.
        content:
          application/json:
            schema:
              type: object
              example:
                tabData:
                  userId: string
                  planningId: 0
                  tabType: AGENDA
                  name: string
                  order: 0
                  display: true
                  sendByUserId: string
                  accepted: true
                preferences: {}
                filters: {}
      responses:
        "200":
          description: Tab preference and json file updated.
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{tabPreferenceId}/share-tab-preference/{teamId}:
    post:
      tags:
      - Tab Preferences
      summary: Share a Tab preference to a Team
      description: Share a Tab preference to a Team. An user is a team where there
        is only him in the team
      parameters:
      - name: tabPreferenceId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Tab preference shared successfully.
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /tab-preferences/{tabPreferenceId}/update:
    put:
      tags:
      - Tab Preferences
      summary: Update a Tab's preference
      parameters:
      - name: tabPreferenceId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: Tab preference with json file.
        content:
          application/json:
            schema:
              type: object
              properties:
                userId:
                  type: string
                planningId:
                  format: int64
                  type: integer
                tabType:
                  $ref: '#/components/schemas/TabType'
                name:
                  type: string
                order:
                  format: int32
                  type: integer
                display:
                  type: boolean
                sendByUserId:
                  type: string
                accepted:
                  type: boolean
      responses:
        "200":
          description: Tab preference updated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    format: int64
                    type: integer
                  userId:
                    type: string
                  planningId:
                    format: int64
                    type: integer
                  tabType:
                    $ref: '#/components/schemas/TabType'
                  name:
                    type: string
                  order:
                    format: int32
                    type: integer
                  display:
                    type: boolean
                  sendByUser:
                    $ref: '#/components/schemas/UserResponseDTO'
                  accepted:
                    type: boolean
                  preferences:
                    $ref: '#/components/schemas/JsonNode'
                  filters:
                    $ref: '#/components/schemas/JsonNode'
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: Unprocessable entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/item-access:
    get:
      tags:
      - Internal-API
      summary: Get all item-access
      description: You can use filter
      responses:
        "200":
          description: Successsful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ItemAccess'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    post:
      tags:
      - Team
      summary: Create a item access
      requestBody:
        description: New item access values.
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  format: int64
                  type: integer
                team:
                  $ref: '#/components/schemas/TeamDTO'
                access:
                  $ref: '#/components/schemas/Access'
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to item access
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemAccess'
        "422":
          description: ' '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /teams/item-access/copy-item-access:
    post:
      tags:
      - Internal-API
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                format: int64
                type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  format: int64
                  type: integer
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /teams/item-access/from-id-list:
    post:
      tags:
      - Internal-API
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                format: int64
                type: integer
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ItemAccessResponseDTO'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /teams/item-access/{itemAccessId}:
    get:
      tags:
      - Team
      summary: Get a item-access
      description: Return a item-access.
      parameters:
      - name: itemAccessId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemAccess'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
    delete:
      tags:
      - Team
      summary: Delete a item-access
      parameters:
      - name: itemAccessId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Item-access successfully deleted.
          content:
            application/json:
              schema:
                type: boolean
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The entity is used by other entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme: []
  /teams/team:
    get:
      tags:
      - Internal-API
      summary: Get all teams
      description: You can use filter
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Team'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    post:
      tags:
      - Team
      summary: Create a team
      requestBody:
        description: New team values.
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to team
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        "422":
          description: 'Invalid name | Team already exist '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/adminTeam:
    post:
      tags:
      - Team
      summary: Create an admin team.
      requestBody:
        description: New team values with admin permission.
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to team
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        "422":
          description: 'Invalid name | Team already exist '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/is-admin:
    get:
      tags:
      - Team
      summary: User is a admin ?
      description: 'Return if user is subscribe to an admin team''s. '
      responses:
        "200":
          description: Admin ? True | False
          content:
            application/json:
              schema:
                type: boolean
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      deprecated: true
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/single-user-team:
    post:
      tags:
      - Internal-API
      summary: Create a single user team's. Only for internal usage.
      requestBody:
        description: New team values.
        content:
          application/json:
            schema:
              type: object
              properties:
                userId:
                  type: string
                username:
                  type: string
      responses:
        "201":
          description: Successful operation.
          headers:
            location:
              description: url for access to team
              style: simple
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        "422":
          description: 'Invalid name | Team already exist '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/user:
    get:
      tags:
      - Team
      summary: Get a all team for current user.
      description: Return a all team where user is subscribe.
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/user/{userId}:
    get:
      tags:
      - Team
      summary: Get a all team for a user.
      description: Return a all team where user is subscribe.
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/{teamId}:
    get:
      tags:
      - Team
      summary: Get a team by his id
      description: Return a team.
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Team'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    put:
      tags:
      - Team
      summary: Rename a team.
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: New name for team.
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  format: int64
                  type: integer
                admin:
                  type: boolean
                single:
                  type: boolean
                name:
                  type: string
                userIds:
                  type: array
                  items:
                    type: string
      responses:
        "200":
          description: Team successfully renamed.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: ' '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - Team
      summary: Delete a team
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Team successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/{teamId}/id-name:
    get:
      tags:
      - Team
      summary: Get only id and name team value's
      description: Return a team object where only id and name were inform.
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdNameDTO'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/{teamId}/member:
    get:
      tags:
      - Team
      summary: Get member IDs in a Team
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        "404":
          description: Not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/{teamId}/subscribe:
    put:
      tags:
      - Team
      summary: Subscribe user from a team.
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: User id to subscribe.
        content:
          application/json:
            schema:
              type: object
              properties:
                userId:
                  type: string
      responses:
        "200":
          description: User successfully added.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: ' '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /teams/team/{teamId}/unsubscribe:
    put:
      tags:
      - Team
      summary: Unsubscribe user from team.
      parameters:
      - name: teamId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      requestBody:
        description: User id to subscribe.
        content:
          application/json:
            schema:
              type: object
              properties:
                userId:
                  type: string
      responses:
        "200":
          description: User successfully removed from the team.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: ' '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /users/sandbox/planning:
    get:
      tags:
      - InternalAPI
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /users/sandbox/planning/{planningId}:
    post:
      tags:
      - InternalAPI
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
    delete:
      tags:
      - InternalAPI
      parameters:
      - name: planningId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: OK
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - restricted-access
  /users/user:
    get:
      tags:
      - InternalAPI
      summary: Get all users
      description: You can use filter
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
        "401":
          description: Not Authorized
        "403":
          description: Not Allowed
      deprecated: true
      security:
      - SecurityScheme:
        - restricted-access
  /users/user/active:
    get:
      tags:
      - User
      summary: Get all active users
      description: Get all active (not deleted) users
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - '**'
  /users/user/init-user/{userId}:
    post:
      tags:
      - User
      summary: Create the user if he is not present in the program user database.
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: User successfully initialized.
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - '**'
  /users/user/shared-planning-users/{rootActivityId}:
    get:
      tags:
      - User
      summary: Get all users to whom the planning is shared by the root activity id
      description: Return a list of users.
      parameters:
      - name: rootActivityId
        in: path
        required: true
        schema:
          format: int64
          type: integer
      responses:
        "200":
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - '**'
  /users/user/try-access:
    get:
      tags:
      - User
      summary: Try access to program.
      description: "Try to access to program, if user can access response 200, else\
        \ response 403 forbidden because user no subscribe to the program."
      responses:
        "200":
          description: Successful operation.
        "403":
          description: Forbidden access.
        "401":
          description: Not Authorized
      security:
      - SecurityScheme:
        - restricted-access
  /users/user/{userId}:
    delete:
      tags:
      - User
      summary: Delete an user
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: User successfully deleted.
        "404":
          description: Id not found. The entity doesn't exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "422":
          description: The entity is used by other entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "401":
          description: Unauthorized access.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GanttOnlineError'
        "403":
          description: Not Allowed
      security:
      - SecurityScheme:
        - '**'
  /version:
    get:
      tags:
      - Version
      summary: Get micro service version
      description: Get version number of micro service.
      responses:
        "200":
          description: OK
          content:
            text/plain:
              schema:
                type: number
components:
  schemas:
    AbstractNeedResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        parentId:
          format: int64
          type: integer
        name:
          type: string
        description:
          type: string
        isLevel:
          type: boolean
        isDefault:
          type: boolean
        visibility:
          $ref: '#/components/schemas/NeedVisibility'
        rootActivityId:
          format: int64
          type: integer
    Access:
      enum:
      - READ
      - WRITE
      - NONE
      - FULLACCESS
      - EMPTY
      type: string
    ActivityColoredTreeDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        colors:
          type: array
          items:
            $ref: '#/components/schemas/PaintPMResponseDTO'
        startDate:
          format: int64
          type: integer
        endDate:
          format: int64
          type: integer
        virtual:
          type: boolean
        subActivities:
          type: array
          items:
            $ref: '#/components/schemas/ActivityColoredTreeDTO'
    ActivityIdNameTreeDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        subActivities:
          type: array
          items:
            $ref: '#/components/schemas/ActivityIdNameTreeDTO'
    ActivityMultipleUpdaterRequestDTO:
      type: object
      properties:
        value:
          type: object
        activityIdList:
          type: array
          items:
            format: int64
            type: integer
    Alignment:
      enum:
      - LEFT
      - CENTER
      - RIGHT
      type: string
    AllocatedNeedResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        activityId:
          format: int64
          type: integer
        need:
          $ref: '#/components/schemas/AbstractNeedResponseDTO'
        quantity:
          format: double
          type: number
        factor:
          format: double
          type: number
        mode:
          $ref: '#/components/schemas/QuantityMode'
        timeUnitId:
          format: int64
          type: integer
    AllocatedNeedSliceDTO:
      type: object
      properties:
        needId:
          format: int64
          type: integer
        start:
          format: int64
          type: integer
        end:
          format: int64
          type: integer
        quantity:
          format: double
          type: number
    ArchivedPlanning:
      description: "ArchivedPlanning is a subtype of Planning, that has been archived\
        \ : read only acces, origin planning reference and archived date."
      type: object
      properties:
        id:
          format: int64
          type: integer
        ownerId:
          type: string
        name:
          type: string
        rootActivityId:
          format: int64
          type: integer
        zipped:
          type: boolean
        originalPlanningId:
          format: int64
          type: integer
        archivedDate:
          $ref: '#/components/schemas/LocalDateTime'
    CalendarPM:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        defaultCalendar:
          type: boolean
        periods:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/Period'
        specificPeriods:
          type: array
          items:
            $ref: '#/components/schemas/SpecificPeriod'
    CalendarPMResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        defaultCalendar:
          type: boolean
        periods:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/PeriodResponseDTO'
        specificPeriods:
          type: array
          items:
            $ref: '#/components/schemas/SpecificPeriodResponseDTO'
    Color:
      type: object
      properties:
        id:
          format: int64
          type: integer
          writeOnly: true
        header:
          type: string
        footer:
          type: string
    ColorResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        header:
          type: string
        footer:
          type: string
    ColorUpdaterDTO:
      type: object
      properties:
        headerColor:
          type: string
        footerColor:
          type: string
    ConditionRequestDTO:
      type: object
      properties:
        unifiedFieldId:
          format: int64
          description: Le champ de l'activite pour comparé la condition
          type: integer
        type:
          description: Le type de operateur de comparaison pour la condition
          type: string
          allOf:
          - $ref: '#/components/schemas/TypeCondition'
        value:
          description: La valeur a comparé de la condition
          type: string
      example:
        name: ""
        unifiedFieldId: unifiedField
        type: string
        value: string | double | timestamp
        parentOperator: string
    Container:
      enum:
      - HEADER_LEFT
      - HEADER_CENTER
      - HEADER_RIGHT
      - FOOTER_LEFT
      - FOOTER_CENTER
      - FOOTER_RIGHT
      type: string
    ContainerRequestDTO:
      type: object
      properties:
        container:
          $ref: '#/components/schemas/Container'
    DayDefinition:
      type: object
      properties:
        generateId:
          format: int64
          type: integer
        id:
          format: int64
          type: integer
        name:
          type: string
        color:
          type: string
        defaultDayDefinition:
          type: boolean
        timeSlots:
          type: array
          items:
            $ref: '#/components/schemas/TimeSlot'
    DayDefinitionResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        color:
          type: string
          example: '#55aa99ff'
        defaultDayDefinition:
          type: boolean
        timeSlots:
          type: array
          items:
            $ref: '#/components/schemas/TimeSlotResponseDTO'
    DayDefinitionWithDurationResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        color:
          type: string
          example: '#55aa99ff'
        defaultDayDefinition:
          type: boolean
        timeSlots:
          type: array
          items:
            $ref: '#/components/schemas/TimeSlotResponseDTO'
        duration:
          format: int64
          type: integer
    DurationDTO:
      type: object
      properties:
        duration:
          format: int64
          type: integer
    Element:
      type: object
      properties:
        id:
          format: int64
          type: integer
          writeOnly: true
        position:
          $ref: '#/components/schemas/Position'
        alignment:
          $ref: '#/components/schemas/Alignment'
        type:
          $ref: '#/components/schemas/Type'
        value:
          type: string
    ElementRequestDTO:
      type: object
      properties:
        position:
          $ref: '#/components/schemas/Position'
        alignment:
          $ref: '#/components/schemas/Alignment'
        type:
          $ref: '#/components/schemas/Type'
        value:
          type: string
    ElementResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        position:
          $ref: '#/components/schemas/Position'
        alignment:
          $ref: '#/components/schemas/Alignment'
        type:
          $ref: '#/components/schemas/Type'
        value:
          type: string
    ElementTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        container:
          $ref: '#/components/schemas/Container'
        position:
          $ref: '#/components/schemas/Position'
        alignment:
          $ref: '#/components/schemas/Alignment'
        type:
          $ref: '#/components/schemas/Type'
        value:
          type: string
    ElementUpdaterDTO:
      type: object
      properties:
        container:
          $ref: '#/components/schemas/Container'
        position:
          $ref: '#/components/schemas/Position'
        alignment:
          $ref: '#/components/schemas/Alignment'
        type:
          $ref: '#/components/schemas/Type'
        value:
          type: string
    Filter:
      type: object
      properties:
        name:
          type: string
        root:
          $ref: '#/components/schemas/Operator'
    FilterRequestDTO:
      type: object
      properties:
        name:
          type: string
        root:
          $ref: '#/components/schemas/OperatorRequestDTO'
    Folder:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        ownerId:
          type: string
        parent:
          $ref: '#/components/schemas/Folder'
        childFolders:
          type: array
          items:
            $ref: '#/components/schemas/Folder'
        plannings:
          type: array
          items:
            $ref: '#/components/schemas/Planning'
    GanttLinkExportDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        predecessorIdentity:
          type: string
        successorIdentity:
          type: string
        decalage:
          format: double
          type: number
        type:
          $ref: '#/components/schemas/LinkType'
        nextCalendar:
          type: boolean
        planified:
          type: boolean
        actived:
          type: boolean
        used:
          type: boolean
        dayDefinitionName:
          type: string
        categoryName:
          type: string
    GanttOnlineError:
      type: object
      properties:
        success:
          type: boolean
        timestamp:
          format: int64
          type: integer
        code:
          format: int32
          type: integer
        type:
          type: string
        info:
          type: string
        value:
          type: string
    Hachure:
      enum:
      - HORIZONTAL
      - VERTICAL
      - BIAI
      - BIAI1
      type: string
    IdFolderResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        ownerId:
          type: string
        parentId:
          format: int64
          type: integer
        childFolderIds:
          type: array
          items:
            format: int64
            type: integer
    IdNameDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
    ImportActivityRequestDTO:
      type: object
      properties:
        wbs:
          type: string
        parentId:
          type: string
        identity:
          type: string
        jobId:
          format: int64
          type: integer
        name:
          type: string
        description:
          type: string
        order:
          format: int32
          type: integer
        avancement:
          format: double
          type: number
        startDate:
          format: int64
          type: integer
        endDate:
          format: int64
          type: integer
        duration:
          format: double
          type: number
        quantity:
          format: double
          type: number
        yield:
          format: double
          type: number
        quantityUnit:
          type: string
        calendarName:
          type: string
        dayDefinitionName:
          type: string
        successorsId:
          type: array
          items:
            format: int64
            type: integer
        ascendantActivityId:
          format: int64
          type: integer
        customFields:
          type: array
          items:
            type: object
            additionalProperties:
              type: object
        champPMAutoId:
          format: int64
          type: integer
    ImportLinkRequestDTO:
      type: object
      properties:
        activityPredecessorId:
          type: string
        activitySuccessorId:
          type: string
        decalage:
          format: double
          type: number
        linkType:
          $ref: '#/components/schemas/LinkType'
        nextCalendar:
          type: boolean
        dayDefinitionName:
          type: string
        planified:
          type: boolean
        actived:
          type: boolean
        used:
          type: boolean
        categoryName:
          type: string
    ItemAccess:
      type: object
      properties:
        id:
          format: int64
          type: integer
        team:
          $ref: '#/components/schemas/Team'
        access:
          $ref: '#/components/schemas/Access'
    ItemAccessResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        team:
          $ref: '#/components/schemas/TeamDTO'
        access:
          $ref: '#/components/schemas/Access'
    Job:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        description:
          type: string
      deprecated: true
    JsonNode:
      type: array
    LinkCategory:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        color:
          type: string
          example: '#55aa99ff'
    LinkCategoryRequestDTO:
      type: object
      properties:
        name:
          type: string
        color:
          type: string
    LinkMode:
      enum:
      - LINK_BETWEEN
      - LINK_FIRST_WITH_OTHER
      type: string
    LinkType:
      enum:
      - DD
      - DF
      - FD
      - FF
      type: string
    LocalDate:
      format: date
      type: string
      example: 2022-03-10
    LocalDateTime:
      format: date-time
      type: string
      example: 2022-03-10T12:15:50
    LocalTime:
      format: local-time
      type: string
      externalDocs:
        description: As defined by 'partial-time' in RFC3339
        url: https://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14
      example: 13:45.30.123456789
    Minimal:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
    NameDTO:
      type: object
      properties:
        name:
          type: string
    NameUpdaterDTO:
      type: object
      properties:
        name:
          type: string
    NameUpdaterDTO1:
      type: object
      properties:
        name:
          type: string
    NeedMode:
      enum:
      - CONSUMABLE
      - NON_CONSUMABLE
      type: string
    NeedResponseDTO:
      type: object
      properties:
        needId:
          format: int64
          type: integer
        name:
          type: string
        description:
          type: string
        color:
          type: string
        needType:
          $ref: '#/components/schemas/NeedMode'
        visibility:
          $ref: '#/components/schemas/NeedVisibility'
        parentId:
          format: int64
          type: integer
        childIds:
          type: array
          items:
            format: int64
            type: integer
    NeedSliceResponseDTO:
      type: object
      properties:
        needId:
          format: int64
          type: integer
        slice:
          type: array
          items:
            $ref: '#/components/schemas/NeedSliceWrapperDTO'
    NeedSliceWrapperDTO:
      type: object
      properties:
        rootActivityId:
          format: int64
          type: integer
        startDatePlanning:
          format: int64
          type: integer
        endDatePlanning:
          format: int64
          type: integer
        slices:
          type: array
          items:
            $ref: '#/components/schemas/AllocatedNeedSliceDTO'
    NeedTreeResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        parentId:
          format: int64
          type: integer
        name:
          type: string
        description:
          type: string
        isLevel:
          type: boolean
        isDefault:
          type: boolean
        visibility:
          $ref: '#/components/schemas/NeedVisibility'
        rootActivityId:
          format: int64
          type: integer
        color:
          type: string
        needType:
          $ref: '#/components/schemas/NeedMode'
        quantityMode:
          $ref: '#/components/schemas/QuantityMode'
        timeUnitId:
          format: int64
          type: integer
        quantityUnit:
          $ref: '#/components/schemas/QuantityUnit'
    NeedVisibility:
      enum:
      - GLOBAL
      - PLANNING
      type: string
    NotifyUsersRequestDTO:
      type: object
      properties:
        userIds:
          type: array
          items:
            type: string
        teamIds:
          type: array
          items:
            format: int64
            type: integer
        planningName:
          type: string
        userName:
          type: string
        archiveUrl:
          type: string
    NumericIdListDTO:
      type: object
      properties:
        idList:
          type: array
          items:
            format: int64
            type: integer
    Operator:
      type: object
      properties:
        name:
          type: string
        operatorLogic:
          $ref: '#/components/schemas/OperatorLogic'
        parent:
          type: object
          allOf:
          - $ref: '#/components/schemas/Operator'
          writeOnly: true
        childs:
          type: array
          items:
            $ref: '#/components/schemas/PredicateEntity'
    OperatorLogic:
      enum:
      - ET
      - OU
      type: string
    OperatorRequestDTO:
      type: object
      properties:
        operatorLogic:
          $ref: '#/components/schemas/OperatorLogic'
        children:
          type: array
          items:
            type: object
      example:
        name: This is an Operator
        operatorLogic: ET
        parent: op_Ref
        children:
        - name: This is an Operator
          operatorLogic: OU
          parent: op_ref
          children:
          - name: This is a condition
            unifiedFieldId: unifiedField
            type: DIFFERENT
            value: string | number | date
            parentOperator: op_ref
          - name: This is an operator
            operatorLogic: ET
            parent: op_ref
            children:
            - name: This is a condition
              unifiedFieldId: unifiedField
              type: DIFFERENT
              value: string | number | date
              parentOperator: op_ref
            - name: This is a condition
              unifiedFieldId: unifiedField
              type: SUPERIEUR
              value: string | number | date
              parentOperator: op_ref
        - name: This is an operatore
          operatorLogic: OU
          parent: op_ref
          children:
          - name: This is a condition
            unifiedFieldId: unifiedField
            type: EGAL
            value: string | number | date
            parentOperator: op_ref
        - name: This is a condition
          unifiedFieldId: unifiedField
          type: SUPERIEUROUEGAL
          value: string | number | date
          parentOperator: op_ref
    OverlappingException:
      type: object
      properties:
        field:
          type: string
        message:
          type: string
    PaintPM:
      type: object
      properties:
        id:
          format: int64
          type: integer
        color:
          type: string
          example: '#54ab87'
        trame:
          type: string
          example: '#54ff87'
        hachure:
          $ref: '#/components/schemas/Hachure'
        rainbow:
          type: array
          items:
            type: string
          deprecated: true
    PaintPMResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        color:
          type: string
        trame:
          type: string
        hachure:
          $ref: '#/components/schemas/Hachure'
        rainbow:
          type: array
          items:
            type: string
    ParentIdNameDTO:
      type: object
      properties:
        parentId:
          format: int64
          type: integer
        name:
          type: string
    Period:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        dayDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/DayDefinition'
    PeriodResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        dayDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/DayDefinitionResponseDTO'
    Planning:
      type: object
      properties:
        id:
          format: int64
          type: integer
        ownerId:
          type: string
        name:
          type: string
        rootActivityId:
          format: int64
          type: integer
    PlanningDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        ownerId:
          type: string
        name:
          type: string
        rootActivityId:
          format: int64
          type: integer
    PlanningNeedSliceResponseDTO:
      type: object
      properties:
        global:
          $ref: '#/components/schemas/TypedNeedSliceDTO'
        planning:
          $ref: '#/components/schemas/TypedNeedSliceDTO'
    PlanningRequestDTO:
      type: object
      properties:
        planningId:
          format: int64
          type: integer
    PlanningTO:
      type: object
      properties:
        planningId:
          format: int64
          type: integer
        planningName:
          type: string
        connectionTime:
          format: int64
          type: integer
    Position:
      enum:
      - TOP
      - CENTER
      - BOTTOM
      type: string
    PredicateEntity:
      type: object
      properties:
        parent:
          type: object
          allOf:
          - $ref: '#/components/schemas/Operator'
          writeOnly: true
    Preference:
      type: object
      properties:
        userId:
          type: string
        datas:
          format: binary
          type: string
    PrefixIdentityDTO:
      type: object
      properties:
        prefixId:
          type: string
    ProgramInfo:
      type: object
      properties:
        userId:
          type: string
        favoritePlanningIds:
          type: array
          items:
            format: int64
            type: integer
        currentPlanningId:
          format: int64
          type: integer
        lastConnectionTime:
          $ref: '#/components/schemas/LocalDateTime'
        currentPlanningConnectionTime:
          $ref: '#/components/schemas/LocalDateTime'
    ProgramInfoTO:
      type: object
      properties:
        userId:
          type: string
        favoritePlanningList:
          type: array
          items:
            $ref: '#/components/schemas/PlanningTO'
        currentPlanning:
          $ref: '#/components/schemas/PlanningTO'
        lastConnectionTime:
          format: int64
          type: integer
    QuantityMode:
      enum:
      - FIXE
      - TEMPORAL
      - QUANTITY
      type: string
    QuantityUnit:
      enum:
      - M
      - M2
      - M3
      - TO
      - L
      - KG
      - SANS
      - FT
      - FT100
      - FT2
      - FT3
      - YD
      - YD2
      - YD3
      - MI
      - KM
      type: string
    Sandbox:
      type: object
      properties:
        id:
          format: int64
          type: integer
        plannings:
          type: array
          items:
            format: int64
            type: integer
    SortOptionDTO:
      type: object
      properties:
        unifiedFieldId:
          format: int64
          type: integer
        color:
          type: string
          example: '#fff'
    SpecificPeriod:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        dayDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/DayDefinition'
        startDate:
          $ref: '#/components/schemas/LocalDate'
        endDate:
          $ref: '#/components/schemas/LocalDate'
    SpecificPeriodResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        dayDefinitions:
          type: array
          items:
            $ref: '#/components/schemas/DayDefinitionResponseDTO'
        startDate:
          $ref: '#/components/schemas/LocalDate'
        endDate:
          $ref: '#/components/schemas/LocalDate'
    StartEndDTO:
      type: object
      properties:
        start:
          format: int64
          type: integer
        end:
          format: int64
          type: integer
    StateRequestDTO:
      type: object
      properties:
        state:
          type: string
    TabPreferenceResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        userId:
          type: string
        planningId:
          format: int64
          type: integer
        tabType:
          $ref: '#/components/schemas/TabType'
        name:
          type: string
        order:
          format: int32
          type: integer
        display:
          type: boolean
        sendByUser:
          $ref: '#/components/schemas/UserResponseDTO'
        accepted:
          type: boolean
        preferences:
          $ref: '#/components/schemas/JsonNode'
        filters:
          $ref: '#/components/schemas/JsonNode'
    TabType:
      enum:
      - GANTT
      - RESSOURCE
      - AGENDA
      - CALENDRIER
      type: string
    Team:
      type: object
      properties:
        id:
          format: int64
          type: integer
        admin:
          type: boolean
        single:
          type: boolean
        name:
          type: string
        userIds:
          type: array
          items:
            type: string
    TeamDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        admin:
          type: boolean
        single:
          type: boolean
        name:
          type: string
        userIds:
          type: array
          items:
            type: string
    Template:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        ownerId:
          type: string
        personal:
          type: boolean
        headerLeft:
          $ref: '#/components/schemas/Element'
        headerCenter:
          $ref: '#/components/schemas/Element'
        headerRight:
          $ref: '#/components/schemas/Element'
        footerLeft:
          $ref: '#/components/schemas/Element'
        footerCenter:
          $ref: '#/components/schemas/Element'
        footerRight:
          $ref: '#/components/schemas/Element'
        color:
          $ref: '#/components/schemas/Color'
    TemplateElementUpdaterDTO:
      type: object
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/ElementUpdaterDTO'
        elementsTO:
          type: array
          items:
            $ref: '#/components/schemas/ElementTO'
    TemplateRequestDTO:
      type: object
      properties:
        name:
          type: string
        personal:
          type: boolean
        headerLeft:
          $ref: '#/components/schemas/ElementRequestDTO'
        headerCenter:
          $ref: '#/components/schemas/ElementRequestDTO'
        headerRight:
          $ref: '#/components/schemas/ElementRequestDTO'
        footerLeft:
          $ref: '#/components/schemas/ElementRequestDTO'
        footerCenter:
          $ref: '#/components/schemas/ElementRequestDTO'
        footerRight:
          $ref: '#/components/schemas/ElementRequestDTO'
    TemplateResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        ownerId:
          type: string
        personal:
          type: boolean
        headerLeft:
          $ref: '#/components/schemas/ElementResponseDTO'
        headerCenter:
          $ref: '#/components/schemas/ElementResponseDTO'
        headerRight:
          $ref: '#/components/schemas/ElementResponseDTO'
        footerLeft:
          $ref: '#/components/schemas/ElementResponseDTO'
        footerCenter:
          $ref: '#/components/schemas/ElementResponseDTO'
        footerRight:
          $ref: '#/components/schemas/ElementResponseDTO'
        color:
          $ref: '#/components/schemas/ColorResponseDTO'
    TemplateUpdateReqDTO:
      type: object
      properties:
        name:
          type: string
        personal:
          type: boolean
    TimeSlot:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        start:
          $ref: '#/components/schemas/LocalTime'
        end:
          $ref: '#/components/schemas/LocalTime'
    TimeSlotResponseDTO:
      type: object
      properties:
        id:
          format: int64
          type: integer
        name:
          type: string
        start_time:
          $ref: '#/components/schemas/LocalTime'
        end_time:
          $ref: '#/components/schemas/LocalTime'
    Type:
      enum:
      - IMAGE
      - TEXT
      - DATE
      - PAGE
      - PROJECT_NAME
      type: string
    TypeCondition:
      enum:
      - SUPERIEUR
      - INFERIEUR
      - DIFFERENT
      - EGAL
      - SUPERIEUROUEGAL
      - INFERIEUROUEGAL
      - MULTICONTIENT
      - MULTINECONTIENTPAS
      - MULTICONTIENT_CHAINE
      - MULTINECONTIENTPAS_CHAINE
      type: string
    TypedNeedSliceDTO:
      type: object
      properties:
        consumable:
          type: array
          items:
            $ref: '#/components/schemas/NeedSliceResponseDTO'
        nonConsumable:
          type: array
          items:
            $ref: '#/components/schemas/NeedSliceResponseDTO'
    UnifiedRequestDTO2:
      type: object
      properties:
        name:
          type: string
        color:
          type: string
          example: '#ffaa45'
        trame:
          type: string
          example: '#ffaa45'
        hachure:
          $ref: '#/components/schemas/Hachure'
    User:
      type: object
      properties:
        id:
          type: string
        job:
          $ref: '#/components/schemas/Job'
        sandbox:
          type: object
          allOf:
          - $ref: '#/components/schemas/Sandbox'
          writeOnly: true
        deleted:
          type: boolean
        preference:
          $ref: '#/components/schemas/Preference'
        programInfo:
          $ref: '#/components/schemas/ProgramInfo'
    UserResponseDTO:
      type: object
      properties:
        userId:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        phoneNumber:
          type: string
        jobId:
          format: int64
          type: integer
        company:
          type: string
        notes:
          type: string
        readOnly:
          type: boolean
        enable:
          type: boolean
    ValidatorResponseDTO:
      type: object
      properties:
        allValidate:
          type: boolean
        notValidate:
          type: array
          items:
            type: string
    ValueDTO:
      type: object
      properties:
        value:
          type: object
    ValueDTO1:
      type: object
      properties:
        value:
          type: object
    ViewSortOptionDTO:
      type: object
      properties:
        sortOptions:
          type: array
          items:
            $ref: '#/components/schemas/SortOptionDTO'
        activitySimpleOnly:
          type: boolean
        unifiedFieldId:
          format: int64
          type: integer
        filters:
          type: array
          items:
            $ref: '#/components/schemas/FilterRequestDTO'
  securitySchemes:
    SecurityScheme:
      type: openIdConnect
      description: Authentication
      openIdConnectUrl: https://keycloak.ganttmanager.com/realms/GanttOnline/.well-known/openid-configuration
