components:
    requestBodies:
        InterviewService_AddSkillsToInterviewBody:
            content:
                application/json:
                    schema:
                        properties:
                            page:
                                $ref: '#/components/schemas/v2ListRequest'
                        type: object
            required: true
        InterviewService_ResumeSkillEvaluationsFromPreviousBody:
            content:
                application/json:
                    schema:
                        type: object
            required: true
        v2BulkCreateParticipantsRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2BulkCreateParticipantsRequest'
            required: true
        v2ListCampaignRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2ListCampaignRequest'
            required: true
        v2ListInterviewSessionRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2ListInterviewSessionRequest'
            required: true
        v2ListParticipantsRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2ListParticipantsRequest'
            required: true
        v2ListRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2ListRequest'
            description: |-
                ListRequest is all the generic term to list resources at empowill, it's applicable to all list request today
                For bulk pagination is ignored.
            required: true
        v2MoveRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2MoveRequest'
            required: true
        v2ReplaceScaleRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2ReplaceScaleRequest'
            required: true
        v2SummaryRequest:
            content:
                application/json:
                    schema:
                        $ref: '#/components/schemas/v2SummaryRequest'
            required: true
    schemas:
        apicommonsv2ExportResponse:
            properties:
                exportId:
                    type: string
            type: object
        apidummyv2ExportResponse:
            type: object
        apiqollectivv2ListPotentialUsersRequest:
            properties:
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - campaignId
            type: object
        apiqollectivv2Settings:
            properties:
                allowAssessorRoleTransfer:
                    type: boolean
                notifyAutoEvaluationEvenWithoutQuestion:
                    type: boolean
                showValidatedAssessedSideDuringPreparation:
                    type: boolean
                signatureRequired:
                    type: boolean
            type: object
        apischemaField:
            properties:
                artefact:
                    description: Artefact is the reference to the artefact holding this field.
                    type: string
                dolmenField:
                    $ref: '#/components/schemas/gendolmenField'
                enum:
                    $ref: '#/components/schemas/schemaEnumInfo'
                grpcFullName:
                    description: |-
                        GrpcFullName is the full name of the field in the grpc service.
                        In the form of `package.path.message_name.Field`.
                    type: string
                isRepeated:
                    description: IsRepeated is a boolean that indicates if the field is repeated. An array if you prefer.
                    type: boolean
                name:
                    description: |-
                        Name is the name of the field.
                        Be careful, this is the name of the field identifier, not a translated name.
                    type: string
                ref:
                    description: |-
                        Ref, also called FieldRef, is the unique identifier of the field in a message context.
                        Widely used to reference a field in a message during generic operations.
                    type: string
                type:
                    $ref: '#/components/schemas/apischemaType'
                virtualField:
                    $ref: '#/components/schemas/schemaVirtualField'
            type: object
        apischemaSchema:
            properties:
                artefacts:
                    items:
                        $ref: '#/components/schemas/schemaArtefactRef'
                    type: array
                customsFields:
                    items:
                        $ref: '#/components/schemas/apischemaField'
                    type: array
                fields:
                    items:
                        $ref: '#/components/schemas/apischemaField'
                    type: array
                name:
                    type: string
            type: object
        apischemaType:
            default: UNDEFINED
            enum:
                - UNDEFINED
                - String
                - Bool
                - Int32
                - Int64
                - Double
                - Date
                - Time
                - Enum
                - Duration
                - Priority
            type: string
        apisynv2Settings:
            properties:
                logo:
                    example: https://cdn.empowill.com/uploads/company/my-copmpany/logo.png
                    readOnly: true
                    title: |-
                        Company logo is never changed directly, you must call a separated procedure
                        Empty logo should default to empowill logo, the field will be returned null
                    type: string
                personNamingConvention:
                    $ref: '#/components/schemas/v2PersonNamingConvention'
            title: |-
                All infos that can be changed by the customer to modify empowill global experience
                When creating a company, fields from the company that creates are copied by default
            type: object
        commonsPeriod:
            default: PERIOD_UNSPECIFIED
            enum:
                - PERIOD_UNSPECIFIED
                - PERIOD_NANOSECOND
                - PERIOD_MILLISECOND
                - PERIOD_SECOND
                - PERIOD_MINUTE
                - PERIOD_HOUR
                - PERIOD_DAY
                - PERIOD_WEEK
                - PERIOD_MONTH
                - PERIOD_YEAR
            type: string
        commonsv2Search:
            description: |-
                Search is a message describing how to filter a resource by some text.
                The text is applied on an artefact's fields configured with a proto dolmen search field descriptor.
            properties:
                search:
                    description: Search contains the value to filter on.
                    type: string
                threshold:
                    description: Threshold applies a limit on fields that must call a remote resource to be filtered.
                    format: int32
                    type: integer
            type: object
        dolmenArchival:
            description: Archival marks a proto field as an archival control (distinct from importable eligibility).
            properties:
                confirmI18n:
                    $ref: '#/components/schemas/dolmenArchivalConfirmI18n'
                enabled:
                    type: boolean
            type: object
        dolmenArchivalConfirmI18n:
            description: I18n copy for bulk archival confirmation (frontend Leaf toast).
            properties:
                bodyKeys:
                    items:
                        type: string
                    title: 'template: :1: function "count" not defined'
                    type: array
                namespace:
                    description: Locales namespace (e.g. pages-people, tables).
                    type: string
                titleKey:
                    title: 'template: :1: function "count" not defined'
                    type: string
            type: object
        dolmenArtefact:
            properties:
                tableName:
                    type: string
            type: object
        dolmenAttachment:
            properties:
                filenameExtension:
                    description: |-
                        FilenameExtension is appended to the rendered name when it has none (e.g.
                        paths ending in "/pdf"). Used ONLY for ATTACHMENT_TYPE_FILE; ignored for
                        ATTACHMENT_TYPE_FOLDER, whose files keep the names returned by GCS listing.
                    type: string
                filenameTemplate:
                    description: |-
                        FilenameTemplate builds a human-readable name for exported attachment files.
                        Placeholders are export field refs (relative to the message owning this
                        field) wrapped in braces, and support the export jumpy syntax "ref->subref":
                          "{campaign_id->name} - {assessed_id->person.first_name} - {session_time}"
                        Applies to both attachment types: for ATTACHMENT_TYPE_FILE it names the
                        exported file, for ATTACHMENT_TYPE_FOLDER it names the per-row subfolder
                        (the folder's individual files keep the names returned by GCS listing).
                    type: string
                type:
                    $ref: '#/components/schemas/dolmenAttachmentType'
            type: object
        dolmenAttachmentType:
            default: ATTACHMENT_TYPE_UNSPECIFIED
            description: |4-
                 - ATTACHMENT_TYPE_FILE: Single file located at the path.
                 - ATTACHMENT_TYPE_FOLDER: Folder containing multiple files at the path.
            enum:
                - ATTACHMENT_TYPE_UNSPECIFIED
                - ATTACHMENT_TYPE_FILE
                - ATTACHMENT_TYPE_FOLDER
            type: string
        dolmenImportable:
            description: Importable configures file-import patch eligibility and optional bulk-update drawer visibility.
            properties:
                bulkable:
                    description: When true (and enabled=true), field appears in the bulk-update drawer.
                    type: boolean
                enabled:
                    description: Field may be patched via file import (and bulk API when bulkable is true).
                    type: boolean
                importColumn:
                    description: |-
                        Optional extract OUTPUT column name (e.g. member.manager_id).
                        When empty, inferred from the dolmen schema field ref (api.schema.Field.ref).
                        This is not the legacy file-import input name (e.g. manager_email in static yaml).
                    type: string
                writeRequires:
                    $ref: '#/components/schemas/dolmenPermission'
            type: object
        dolmenPermission:
            properties:
                action:
                    type: string
                scope:
                    type: string
            type: object
        dolmenResource:
            properties:
                type:
                    $ref: '#/components/schemas/dolmenResourceType'
            type: object
        dolmenResourceType:
            default: RESOURCE_TYPE_UNSPECIFIED
            description: |4-
                 - RESOURCE_TYPE_UNSPECIFIED: Unspecified means the field is an id to a resource that does not complies to a resource convention yet.
                Widely used for all table referring to internal resources or
                resources that does not have to be searchable or filterable.
                 - RESOURCE_TYPE_URN: URN refers to a field holding an empowill urn convention.
                This means it can be used to refer to a various set of resources.
                 - RESOURCE_TYPE_PERSON: Person refer the the actuel human across all companies.
                Used only in audit headers for tracking.
                Not in business cases.
                 - RESOURCE_TYPE_OAUTH_CLIENT: OauthClient refer to a secret open id client able to generate tokens.
                It can be either empowill infrastructure client or a client generated by a company (a customer).
                 - RESOURCE_TYPE_TEST_AGGREGATE: For Design System use cases.
            enum:
                - RESOURCE_TYPE_UNSPECIFIED
                - RESOURCE_TYPE_URN
                - RESOURCE_TYPE_USER
                - RESOURCE_TYPE_EMPLOYEE
                - RESOURCE_TYPE_PERSON
                - RESOURCE_TYPE_USER_CONTRACT
                - RESOURCE_TYPE_USER_AUDIT
                - RESOURCE_TYPE_OAUTH_CLIENT
                - RESOURCE_TYPE_ROLE
                - RESOURCE_TYPE_ACCOUNT
                - RESOURCE_TYPE_COMPANY_ACCESS_GRANT
                - RESOURCE_TYPE_SESSION
                - RESOURCE_TYPE_NOTE_CATEGORY
                - RESOURCE_TYPE_NOTE
                - RESOURCE_TYPE_NEWS
                - RESOURCE_TYPE_JOB
                - RESOURCE_TYPE_JOB_SKILLS
                - RESOURCE_TYPE_SKILL
                - RESOURCE_TYPE_SKILL_SCALE_OPTION
                - RESOURCE_TYPE_SKILL_THEMATIC
                - RESOURCE_TYPE_GOAL
                - RESOURCE_TYPE_GOAL_FOLDER
                - RESOURCE_TYPE_GOAL_TARGET
                - RESOURCE_TYPE_CAMPAIGN
                - RESOURCE_TYPE_CAMPAIGN_AGGREGATE
                - RESOURCE_TYPE_CAMPAIGN_TEMPLATE
                - RESOURCE_TYPE_PARTICIPANT_LAST_INTERVIEW
                - RESOURCE_TYPE_ANSWER_HISTORIC
                - RESOURCE_TYPE_SKILL_EVALUATION_HISTORIC
                - RESOURCE_TYPE_GOAL_EVALUATION_HISTORIC
                - RESOURCE_TYPE_CACHED_QUESTION
                - RESOURCE_TYPE_INTERVIEW_TYPE
                - RESOURCE_TYPE_INTERVIEW_SESSIONS
                - RESOURCE_TYPE_EMPLOYEE_TO_INTERVIEW
                - RESOURCE_TYPE_ACHIEVED_INTERVIEW
                - RESOURCE_TYPE_INTERVIEW_SUMMARY
                - RESOURCE_TYPE_INTERVIEW_CONCLUSION
                - RESOURCE_TYPE_PEOPLE_REVIEW
                - RESOURCE_TYPE_PEOPLE_REVIEW_PARTICIPANT
                - RESOURCE_TYPE_PEOPLE_REVIEW_AXIS
                - RESOURCE_TYPE_PEOPLE_REVIEW_MATRIX
                - RESOURCE_TYPE_PEOPLE_REVIEW_MATRIX_CELL
                - RESOURCE_TYPE_PARTICIPANT_POSITION
                - RESOURCE_TYPE_PEOPLE_REVIEW_TO_REVIEW
                - RESOURCE_TYPE_SUCCESSION_PLAN
                - RESOURCE_TYPE_JOB_SKILL_ADEQUATION
                - RESOURCE_TYPE_JOB_ADEQUATION
                - RESOURCE_TYPE_TRAINING_REQUEST
                - RESOURCE_TYPE_TRAINING_AGGREGATE
                - RESOURCE_TYPE_TRAINING_PROVIDER
                - RESOURCE_TYPE_TRAINING_PARTICIPATION
                - RESOURCE_TYPE_TRAINING_ORDER_PROVISIONAL
                - RESOURCE_TYPE_TRAINING_ORDER_PROVISIONAL_ATTENDEE
                - RESOURCE_TYPE_TRAINING_CERTIFICATION
                - RESOURCE_TYPE_TRAINING_ORDER_PROVISIONAL_TRAINER
                - RESOURCE_TYPE_TRAINING_PLAN
                - RESOURCE_TYPE_TRAINING_ORDER_REAL
                - RESOURCE_TYPE_TRAINING_ORDER_REAL_ATTENDEE
                - RESOURCE_TYPE_TRAINING_ORDER_REAL_SESSION
                - RESOURCE_TYPE_TRAINING_ORDER_REAL_TRAINER
                - RESOURCE_TYPE_TRAINING_ORDER_DOCUMENT
                - RESOURCE_TYPE_EMPLOYEE_TO_CERTIFY
                - RESOURCE_TYPE_ACHIEVED_CERTIFICATION
                - RESOURCE_TYPE_MEDIC_EXAM_TYPE
                - RESOURCE_TYPE_EMPLOYEE_TO_MEDIC_EXAM
                - RESOURCE_TYPE_ACHIEVED_MEDIC_EXAM
                - RESOURCE_TYPE_CLEARANCE_TEMPLATE
                - RESOURCE_TYPE_CLEARANCE
                - RESOURCE_TYPE_ORDER_ATTENDEE_STATUS
                - RESOURCE_TYPE_TRAINING_ORDER_PROVISIONAL_SESSION
                - RESOURCE_TYPE_IMPORT_AGGREGATE
                - RESOURCE_TYPE_EXPORT_COMMAND
                - RESOURCE_TYPE_ACTION_CATEGORY
                - RESOURCE_TYPE_ACTION
                - RESOURCE_TYPE_AI_BILLING_USAGE
                - RESOURCE_TYPE_TEST_AGGREGATE
            type: string
        dolmenRestriction:
            properties:
                requires:
                    $ref: '#/components/schemas/dolmenPermission'
            type: object
        gendolmenField:
            properties:
                archival:
                    $ref: '#/components/schemas/dolmenArchival'
                attachment:
                    $ref: '#/components/schemas/dolmenAttachment'
                ignore:
                    description: Ignore will ignore field in schema creation.
                    type: boolean
                importable:
                    $ref: '#/components/schemas/dolmenImportable'
                jsonb:
                    description: JSONB declares a field as a JSONB field for storage supporting it like postgres.
                    type: boolean
                resource:
                    $ref: '#/components/schemas/dolmenResource'
                restrict:
                    $ref: '#/components/schemas/dolmenRestriction'
                search:
                    $ref: '#/components/schemas/gendolmenSearch'
            type: object
        gendolmenSearch:
            default: SEARCH_UNSPECIFIED
            description: |4-
                 - SEARCH_STRICT: Do a strict string comparison.
                 - SEARCH_FULL: Do a completely loose search.
                 - SEARCH_FOLLOW_RESOURCE: Do a remote call to filter by a remote resource.
                The field Resource must be set.
            enum:
                - SEARCH_UNSPECIFIED
                - SEARCH_STRICT
                - SEARCH_FULL
                - SEARCH_FOLLOW_RESOURCE
            type: string
        protobufAny:
            additionalProperties: {}
            description: |-
                `Any` contains an arbitrary serialized protocol buffer message along with a
                URL that describes the type of the serialized message.

                Protobuf library provides support to pack/unpack Any values in the form
                of utility functions or additional generated methods of the Any type.

                Example 1: Pack and unpack a message in C++.

                    Foo foo = ...;
                    Any any;
                    any.PackFrom(foo);
                    ...
                    if (any.UnpackTo(&foo)) {
                      ...
                    }

                Example 2: Pack and unpack a message in Java.

                    Foo foo = ...;
                    Any any = Any.pack(foo);
                    ...
                    if (any.is(Foo.class)) {
                      foo = any.unpack(Foo.class);
                    }
                    // or ...
                    if (any.isSameTypeAs(Foo.getDefaultInstance())) {
                      foo = any.unpack(Foo.getDefaultInstance());
                    }

                 Example 3: Pack and unpack a message in Python.

                    foo = Foo(...)
                    any = Any()
                    any.Pack(foo)
                    ...
                    if any.Is(Foo.DESCRIPTOR):
                      any.Unpack(foo)
                      ...

                 Example 4: Pack and unpack a message in Go

                     foo := &pb.Foo{...}
                     any, err := anypb.New(foo)
                     if err != nil {
                       ...
                     }
                     ...
                     foo := &pb.Foo{}
                     if err := any.UnmarshalTo(foo); err != nil {
                       ...
                     }

                The pack methods provided by protobuf library will by default use
                'type.googleapis.com/full.type.name' as the type URL and the unpack
                methods only use the fully qualified type name after the last '/'
                in the type URL, for example "foo.bar.com/x/y.z" will yield type
                name "y.z".

                JSON
                ====
                The JSON representation of an `Any` value uses the regular
                representation of the deserialized, embedded message, with an
                additional field `@type` which contains the type URL. Example:

                    package google.profile;
                    message Person {
                      string first_name = 1;
                      string last_name = 2;
                    }

                    {
                      "@type": "type.googleapis.com/google.profile.Person",
                      "firstName": <string>,
                      "lastName": <string>
                    }

                If the embedded message type is well-known and has a custom JSON
                representation, that representation will be embedded adding a field
                `value` which holds the custom JSON in addition to the `@type`
                field. Example (for message [google.protobuf.Duration][]):

                    {
                      "@type": "type.googleapis.com/google.protobuf.Duration",
                      "value": "1.212s"
                    }
            properties:
                '@type':
                    description: |-
                        A URL/resource name that uniquely identifies the type of the serialized
                        protocol buffer message. This string must contain at least
                        one "/" character. The last segment of the URL's path must represent
                        the fully qualified name of the type (as in
                        `path/google.protobuf.Duration`). The name should be in a canonical form
                        (e.g., leading "." is not accepted).

                        In practice, teams usually precompile into the binary all types that they
                        expect it to use in the context of Any. However, for URLs which use the
                        scheme `http`, `https`, or no scheme, one can optionally set up a type
                        server that maps type URLs to message definitions as follows:

                        * If no scheme is provided, `https` is assumed.
                        * An HTTP GET on the URL must yield a [google.protobuf.Type][]
                          value in binary format, or produce an error.
                        * Applications are allowed to cache lookup results based on the
                          URL, or have them precompiled into a binary to avoid any
                          lookup. Therefore, binary compatibility needs to be preserved
                          on changes to types. (Use versioned type names to manage
                          breaking changes.)

                        Note: this functionality is not currently available in the official
                        protobuf release, and it is not used for type URLs beginning with
                        type.googleapis.com. As of May 2023, there are no widely used type server
                        implementations and no plans to implement one.

                        Schemes other than `http`, `https` (or the empty scheme) might be
                        used with implementation specific semantics.
                    type: string
            type: object
        qollectivv2Content:
            description: |-
                Content describe all the layout of questions for a interview.
                Most of the fields are described as optional for the api
                to allow storing work in progress during content building.
                Another validation pass before campaign launch to tell if each element is valid.
                This validation process is called content verification.
            properties:
                elements:
                    items:
                        $ref: '#/components/schemas/v2Element'
                    type: array
            type: object
        rpcStatus:
            properties:
                code:
                    format: int32
                    type: integer
                details:
                    items:
                        $ref: '#/components/schemas/protobufAny'
                    type: array
                message:
                    type: string
            type: object
        schemaArtefactRef:
            properties:
                artefact:
                    $ref: '#/components/schemas/dolmenArtefact'
                fieldRef:
                    type: string
            type: object
        schemaEnumInfo:
            properties:
                values:
                    additionalProperties:
                        $ref: '#/components/schemas/schemaEnumValue'
                    description: |-
                        Values expose predefined informations on all possible values.
                        The key is the proto enum value as int32.
                    type: object
            type: object
        schemaEnumValue:
            properties:
                fullname:
                    type: string
            type: object
        schemaVirtualField:
            description: |-
                VirtualField is a field extension that describes an SQL expression to query this field.
                A virtual field can only exists within an aggregate, and is automatically determined when creating the schema when iterating on fields.
                The SQL expression have access to all other fields even from other artefacts.
                Beware of SQL injection as the expression is raw SQL and you can inject user's input in the expression.
            properties:
                expression:
                    type: string
            type: object
        treeNode:
            properties:
                companyId:
                    readOnly: true
                    type: string
                id:
                    type: string
                name:
                    maxLength: 550
                    minLength: 1
                    type: string
                treePath:
                    readOnly: true
                    title: |-
                        TreePath is a list of node id seperated by points representing node's parents.
                        It also contains the current node.
                        Path must be formatted as specified in https://www.postgresql.org/docs/current/ltree.html
                    type: string
                type:
                    readOnly: true
                    type: string
            required:
                - name
            type: object
        v2AIBillingUsage:
            properties:
                event:
                    $ref: '#/components/schemas/v2AIBillingUsageEvent'
            type: object
        v2AIBillingUsageEvent:
            properties:
                agentName:
                    type: string
                clientId:
                    type: string
                companyId:
                    type: string
                completionTokens:
                    format: int64
                    type: string
                cost:
                    format: double
                    readOnly: true
                    type: number
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                modelName:
                    type: string
                promptTokens:
                    format: int64
                    type: string
                subject:
                    type: string
                totalTokens:
                    format: int64
                    type: string
            type: object
        v2AIPlan:
            default: AI_PLAN_UNSPECIFIED
            description: AIPlan is the customer-facing subscription tier for AI features.
            enum:
                - AI_PLAN_UNSPECIFIED
                - AI_PLAN_FREE
                - AI_PLAN_PRO
            type: string
        v2Account:
            description: Account is a company view from a distributor perspective.
            properties:
                activeEmployeesTotal:
                    description: ActiveEmployeesTotal is the number of non visitor, non archived users.
                    format: int32
                    type: integer
                activeVisitorsTotal:
                    description: ActiveVisitorsTotal is the number of non archived visitors.
                    format: int32
                    type: integer
                archivedUsersTotal:
                    description: ArchivedUsersTotal is the number of archived users.
                    format: int32
                    type: integer
                company:
                    $ref: '#/components/schemas/v2Company'
                member:
                    $ref: '#/components/schemas/v2Member'
                usersTotal:
                    format: int32
                    title: UsersTotal is the number of archived visitors
                    type: integer
            type: object
        v2AchievedCertification:
            properties:
                achievedAt:
                    format: date-time
                    type: string
                certificationId:
                    type: string
                companyId:
                    readOnly: true
                    title: Associated company id
                    type: string
                expiresAt:
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                trainingOrderId:
                    readOnly: true
                    type: string
                userId:
                    type: string
            required:
                - achievedAt
            type: object
        v2AchievedCertificationAggregate:
            properties:
                achievedCertification:
                    $ref: '#/components/schemas/v2AchievedCertification'
                achievedCertificationExpires:
                    description: This field is the future closest expiry of all attached certification.
                    format: date-time
                    readOnly: true
                    type: string
                achievedCertificationStatus:
                    $ref: '#/components/schemas/v2CertificationStatus'
                attachmentsPath:
                    description: |-
                        GCS folder path where attachment files for this achieved certification are stored.
                        Virtual field built from achieved_certification.{company_id, user_id, id}.
                    readOnly: true
                    type: string
                certification:
                    $ref: '#/components/schemas/v2TrainingCertification'
                employeeToCertify:
                    readOnly: true
                    type: boolean
            type: object
        v2AchievedCertificationIds:
            properties:
                achievedCertificationIds:
                    items:
                        type: string
                    type: array
            type: object
        v2AchievedInterview:
            properties:
                achievedAt:
                    format: date-time
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                interviewId:
                    readOnly: true
                    type: string
                userId:
                    type: string
                userInterviewTypeId:
                    type: string
            required:
                - userInterviewTypeId
                - achievedAt
            type: object
        v2AchievedInterviewAggregate:
            properties:
                achievedInterview:
                    $ref: '#/components/schemas/v2AchievedInterview'
                achievedInterviewExpires:
                    description: This field is the future closest expiry of all attached interview type.
                    format: date-time
                    readOnly: true
                    type: string
                achievedInterviewStatus:
                    $ref: '#/components/schemas/v2InterviewTypeStatus'
                interviewTypeIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
            type: object
        v2AchievedMedicExam:
            properties:
                achievedAt:
                    format: date-time
                    type: string
                aptitudeNotice:
                    $ref: '#/components/schemas/v2AptitudeNotice'
                companyId:
                    readOnly: true
                    type: string
                description:
                    description: Description is generally a note from the doctor.
                    type: string
                expiresAt:
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                nextExamAt:
                    format: date-time
                    type: string
                typeId:
                    type: string
                userId:
                    type: string
            required:
                - typeId
                - achievedAt
                - aptitudeNotice
            type: object
        v2AchievedMedicExamAggregate:
            properties:
                achievedMedicExam:
                    $ref: '#/components/schemas/v2AchievedMedicExam'
                expiresAt:
                    description: ExpiresAt will either be AchievedMedicExam.ExpiresAt or computed from MedicExamType.ValidityPeriodMonth.
                    format: date-time
                    readOnly: true
                    type: string
                status:
                    $ref: '#/components/schemas/v2MedicExamStatus'
            type: object
        v2Action:
            properties:
                assigneeId:
                    type: string
                categoryId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                concernedId:
                    description: |-
                        ConcernedId is required for now. To make it optional we will need to introduce a perm for actions with no assignee
                        and no concerned or otherwise see how to list these actions.
                    type: string
                contextUrn:
                    type: string
                deadline:
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                priority:
                    format: int32
                    type: integer
                status:
                    $ref: '#/components/schemas/v2ActionStatus'
            required:
                - name
                - categoryId
            type: object
        v2ActionAggregate:
            properties:
                action:
                    $ref: '#/components/schemas/v2Action'
            type: object
        v2ActionCategory:
            properties:
                color:
                    $ref: '#/components/schemas/v2ActionCategoryColor'
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
            required:
                - name
                - color
            type: object
        v2ActionCategoryAggregate:
            properties:
                actionCount:
                    format: int32
                    readOnly: true
                    type: integer
                category:
                    $ref: '#/components/schemas/v2ActionCategory'
            type: object
        v2ActionCategoryColor:
            default: ACTION_CATEGORY_COLOR_UNSPECIFIED
            enum:
                - ACTION_CATEGORY_COLOR_UNSPECIFIED
                - ACTION_CATEGORY_COLOR_ORANGE
                - ACTION_CATEGORY_COLOR_GREEN
                - ACTION_CATEGORY_COLOR_PURPLE
                - ACTION_CATEGORY_COLOR_BLUE
                - ACTION_CATEGORY_COLOR_PINK
            type: string
        v2ActionDefinition:
            properties:
                dependencies:
                    description: |-
                        Dependencies defines a list of scope.action required to access the described permission.
                        If the permission is population activated, all dependencies must have at least the current pop as well.
                    items:
                        $ref: '#/components/schemas/v2ActionDependency'
                    type: array
                description:
                    description: Description is a translated description of the action for the scope.
                    type: string
                module:
                    $ref: '#/components/schemas/v2Module'
                populationRestricted:
                    description: |-
                        PopulationRestricted tells if the action can be restricted to a list of associated users.
                        If the action is not restrict able, only self is accepted as a population.
                    type: boolean
                power:
                    $ref: '#/components/schemas/v2RoleType'
                title:
                    description: Title is a translated title for the action in the scope.
                    type: string
            type: object
        v2ActionDependency:
            properties:
                action:
                    type: string
                scope:
                    type: string
            type: object
        v2ActionStatus:
            default: ACTION_STATUS_UNSPECIFIED
            enum:
                - ACTION_STATUS_UNSPECIFIED
                - ACTION_STATUS_READY
                - ACTION_STATUS_COMPLETED
            type: string
        v2AddPeopleReviewParticipantsRequest:
            properties:
                reviewId:
                    description: People review you want to add participants to.
                    type: string
                usersQuery:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - reviewId
                - usersQuery
            type: object
        v2AggregatedCertificationStatus:
            default: AGGREGATED_CERTIFICATION_STATUS_UNSPECIFIED
            description: |4-
                 - AGGREGATED_CERTIFICATION_STATUS_UP_TO_DATE: A certification is up to date if no employee is attached to the certification, or if the certification has no validity period.
                 - AGGREGATED_CERTIFICATION_STATUS_NEVER_OBTAINED: A certification is never obtained when no employee got this certification.
                 - AGGREGATED_CERTIFICATION_STATUS_EXPIRING_SOON: A certification is expiring soon when at least one employee has its certification expiring soon.
                 - AGGREGATED_CERTIFICATION_STATUS_EXPIRED: A certification is expired when at least one employee has its certification expired.
            enum:
                - AGGREGATED_CERTIFICATION_STATUS_UNSPECIFIED
                - AGGREGATED_CERTIFICATION_STATUS_UP_TO_DATE
                - AGGREGATED_CERTIFICATION_STATUS_NEVER_OBTAINED
                - AGGREGATED_CERTIFICATION_STATUS_EXPIRING_SOON
                - AGGREGATED_CERTIFICATION_STATUS_EXPIRED
            type: string
        v2AggregatedInterviewTypeStatus:
            default: AGGREGATED_INTERVIEW_TYPE_STATUS_UNSPECIFIED
            enum:
                - AGGREGATED_INTERVIEW_TYPE_STATUS_UNSPECIFIED
                - AGGREGATED_INTERVIEW_TYPE_STATUS_UP_TO_DATE
                - AGGREGATED_INTERVIEW_TYPE_STATUS_NEVER_OBTAINED
                - AGGREGATED_INTERVIEW_TYPE_STATUS_EXPIRING_SOON
                - AGGREGATED_INTERVIEW_TYPE_STATUS_EXPIRED
            title: |-
                - AGGREGATED_INTERVIEW_TYPE_STATUS_UP_TO_DATE: An interview type is up to date if no employee is assigned to it, or if the interview type has no validity period
                 - AGGREGATED_INTERVIEW_TYPE_STATUS_NEVER_OBTAINED: An interview type has never been obtained when no employee has completed this interview type
                 - AGGREGATED_INTERVIEW_TYPE_STATUS_EXPIRING_SOON: An interview type is expiring soon when at least one employee's interview is approaching expiration
                 - AGGREGATED_INTERVIEW_TYPE_STATUS_EXPIRED: An interview type is expired when at least one employee's interview has expired
            type: string
        v2Aggregation:
            description: |-
                Aggregation defines how to perform database aggregation operations on a result set.
                It allows specifying which fields to aggregate and how to group the results.
            properties:
                fieldsAggregations:
                    description: |-
                        FieldsAggregations defines which fields to aggregate and which functions to apply.
                        Each entry specifies a field, an optional alias, and the aggregation function to use.
                    items:
                        $ref: '#/components/schemas/v2FieldAggregation'
                    type: array
                groupRefs:
                    description: |-
                        GroupRefs specifies the fields to group by when performing aggregations.
                        Results will be grouped according to the unique combinations of values in these fields.
                        This field is optional meaning that aggregations can be requested against a whole result set.
                    items:
                        $ref: '#/components/schemas/v2GroupRef'
                    type: array
            required:
                - fieldsAggregations
            type: object
        v2AggregationFunction:
            default: AGGREGATION_FUNCTION_UNSPECIFIED
            description: |-
                AggregationFunction defines the supported aggregation operations for database queries.
                These functions can be applied to fields when performing aggregation operations.

                 - AGGREGATION_FUNCTION_UNSPECIFIED: UNSPECIFIED is the default value when no function is specified.
                 - AGGREGATION_FUNCTION_COUNT: COUNT returns the number of rows that match the query criteria.
                 - AGGREGATION_FUNCTION_SUM: SUM calculates the sum of all values in the specified field.
                 - AGGREGATION_FUNCTION_AVG: AVG calculates the average (mean) of all values in the specified field.
                 - AGGREGATION_FUNCTION_MIN: MIN returns the minimum value found in the specified field.
                 - AGGREGATION_FUNCTION_MAX: MAX returns the maximum value found in the specified field.
            enum:
                - AGGREGATION_FUNCTION_UNSPECIFIED
                - AGGREGATION_FUNCTION_COUNT
                - AGGREGATION_FUNCTION_SUM
                - AGGREGATION_FUNCTION_AVG
                - AGGREGATION_FUNCTION_MIN
                - AGGREGATION_FUNCTION_MAX
            type: string
        v2AllowAssessedEditionRequest:
            properties:
                allowEdition:
                    type: boolean
                interviewId:
                    type: string
            required:
                - interviewId
            type: object
        v2Answer:
            properties:
                answerer:
                    $ref: '#/components/schemas/v2Answerer'
                assessedId:
                    readOnly: true
                    type: string
                body:
                    $ref: '#/components/schemas/v2AnswerBody'
                campaignId:
                    description: CampaignId is filled with interview session information.
                    readOnly: true
                    type: string
                companyId:
                    description: CompanyId is filled with authentication session information.
                    readOnly: true
                    type: string
                filled:
                    description: Filled describes whether if the answer is filled or not.
                    readOnly: true
                    type: boolean
                headers:
                    $ref: '#/components/schemas/v2Headers'
                interviewId:
                    type: string
                questionId:
                    type: string
            required:
                - body
            type: object
        v2AnswerBinary:
            properties:
                binary:
                    $ref: '#/components/schemas/v2BinaryChoices'
            required:
                - binary
            type: object
        v2AnswerBody:
            properties:
                binary:
                    $ref: '#/components/schemas/v2AnswerBinary'
                extraText:
                    description: |-
                        ExtraText is an optional open text field to add context for the answer.
                        It will be ignored for:
                        - AnswerOpen answer type.
                    type: string
                open:
                    $ref: '#/components/schemas/v2AnswerOpen'
                scale:
                    $ref: '#/components/schemas/v2AnswerScale'
                select:
                    $ref: '#/components/schemas/v2AnswerSelect'
                trainings:
                    $ref: '#/components/schemas/v2AnswerTrainings'
            type: object
        v2AnswerHistoric:
            properties:
                cachedQuestion:
                    $ref: '#/components/schemas/v2CachedQuestion'
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                commentAssessed:
                    readOnly: true
                    type: string
                commentAssessor:
                    readOnly: true
                    type: string
                evalAssessed:
                    readOnly: true
                    type: string
                evalAssessor:
                    readOnly: true
                    type: string
                evaluationAssessed:
                    $ref: '#/components/schemas/v2Answer'
                evaluationAssessor:
                    $ref: '#/components/schemas/v2Answer'
                id:
                    readOnly: true
                    title: Id is equivalent to "interview.id:question.id"
                    type: string
                interview:
                    $ref: '#/components/schemas/v2Interview'
                questionTitle:
                    readOnly: true
                    type: string
            type: object
        v2AnswerOpen:
            properties:
                text:
                    type: string
            type: object
        v2AnswerScale:
            properties:
                value:
                    description: Value will be checked against MinRange and MaxRange of the related scale question.
                    format: int32
                    type: integer
            type: object
        v2AnswerSelect:
            properties:
                select:
                    description: |-
                        Select must be in list of accepted selection in question.
                        If the "other choose" is allowed, one and only one string can be given outside the proposed selection.
                        The string for other choose max len must in 1-256 chars.
                    items:
                        type: string
                    type: array
            required:
                - select
            type: object
        v2AnswerTraining:
            properties:
                address:
                    type: string
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                description:
                    type: string
                duration:
                    type: string
                id:
                    description: Id will be compute by Trainsmith microservice when the training request will be created.
                    readOnly: true
                    type: string
                name:
                    type: string
                priority:
                    format: int32
                    type: integer
                trainingId:
                    type: string
            required:
                - name
            type: object
        v2AnswerTrainings:
            properties:
                trainings:
                    items:
                        $ref: '#/components/schemas/v2AnswerTraining'
                    type: array
            type: object
        v2Answerer:
            default: ANSWERER_UNSPECIFIED
            enum:
                - ANSWERER_UNSPECIFIED
                - ANSWERER_ASSESSED
                - ANSWERER_ASSESSOR
            type: string
        v2AptitudeNotice:
            default: APTITUDE_NOTICE_UNSPECIFIED
            enum:
                - APTITUDE_NOTICE_UNSPECIFIED
                - APTITUDE_NOTICE_FIT
                - APTITUDE_NOTICE_FIT_WITH_RESTRICTIONS
                - APTITUDE_NOTICE_UNFIT
            type: string
        v2Assignee:
            default: ASSIGNEE_UNSPECIFIED
            enum:
                - ASSIGNEE_UNSPECIFIED
                - ASSIGNEE_ASSESSED
                - ASSIGNEE_ASSESSOR
                - ASSIGNEE_BOTH
            type: string
        v2AttendeeCost:
            properties:
                cpfSubsidiesAmount:
                    format: double
                    type: number
                logisticCostAmount:
                    format: double
                    type: number
                opcoSubsidiesAmount:
                    format: double
                    type: number
                otherSubsidiesAmount:
                    format: double
                    type: number
                salaryAmount:
                    format: double
                    type: number
                trainersCostAmount:
                    format: double
                    type: number
                trainingCostAmount:
                    format: double
                    type: number
            type: object
        v2AxisParticipantAssessor:
            properties:
                assessorId:
                    type: string
                axisId:
                    type: string
                companyId:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                participantId:
                    type: string
            type: object
        v2AxisQuestion:
            properties:
                axisId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                label:
                    type: string
                maxRange:
                    description: MaxRange is inclusive.
                    format: int32
                    type: integer
                maxRangeLabel:
                    type: string
                minRange:
                    description: MinRange is inclusive.
                    format: int32
                    type: integer
                minRangeLabel:
                    type: string
                reviewId:
                    readOnly: true
                    type: string
            required:
                - axisId
                - label
                - minRange
                - maxRange
                - minRangeLabel
                - maxRangeLabel
            type: object
        v2AxisQuestionAggregate:
            properties:
                question:
                    $ref: '#/components/schemas/v2AxisQuestion'
            type: object
        v2AxisQuestionEvaluation:
            properties:
                assessorId:
                    readOnly: true
                    type: string
                axisId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                extraComment:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                locked:
                    type: boolean
                normalizedPercentage:
                    format: float
                    readOnly: true
                    type: number
                participantId:
                    type: string
                questionId:
                    type: string
                value:
                    format: int32
                    type: integer
            required:
                - participantId
                - axisId
                - questionId
                - value
            type: object
        v2AxisQuestionEvaluationAggregate:
            properties:
                evaluation:
                    $ref: '#/components/schemas/v2AxisQuestionEvaluation'
            type: object
        v2AxisScore:
            properties:
                axisId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                participantId:
                    type: string
                percentage:
                    format: float
                    type: number
            required:
                - axisId
                - participantId
                - percentage
            type: object
        v2AxisScoreAggregate:
            properties:
                axisScore:
                    $ref: '#/components/schemas/v2AxisScore'
            type: object
        v2BacktrackInterviewRequest:
            properties:
                campaignId:
                    type: string
                destinationInterviewStatus:
                    $ref: '#/components/schemas/v2InterviewStatus'
                interviewId:
                    type: string
                notifyAssessed:
                    type: boolean
                notifyAssessor:
                    type: boolean
            required:
                - campaignId
                - interviewId
                - destinationInterviewStatus
            type: object
        v2BinaryChoices:
            default: BINARY_CHOICES_UNSPECIFIED
            enum:
                - BINARY_CHOICES_UNSPECIFIED
                - BINARY_CHOICES_YES
                - BINARY_CHOICES_NO
            type: string
        v2BooleanComparison:
            properties:
                fieldRef:
                    type: string
                op:
                    $ref: '#/components/schemas/v2BooleanOp'
                value:
                    description: |-
                        Value is the value to compare to.
                        Be aware that null values are not compared and does not equals to false.
                    type: boolean
            required:
                - fieldRef
            type: object
        v2BooleanOp:
            default: BOOLEAN_OP_UNSPECIFIED
            enum:
                - BOOLEAN_OP_UNSPECIFIED
                - BOOLEAN_OP_EQUAL
            title: '- BOOLEAN_OP_UNSPECIFIED: BOOLEAN_OP_UNSPECIFIED default to BOOLEAN_OP_EQUAL'
            type: string
        v2BulkCreateParticipantsRequest:
            properties:
                campaignId:
                    description: Campaign you want to add participant to.
                    type: string
                evaluatorId:
                    description: EvaluatorID should hold the evaluator ID you want to use for the listed participants.
                    type: string
                evaluatorManager:
                    description: |-
                        EvaluatorManager param will set the manager's ID as evaluator for participants.
                        If this param is set to true, it'll override the EvaluatorID param.
                    type: boolean
                nextSession:
                    description: NextSession is the timestamp you want to set for the participants' next session time.
                    format: date-time
                    type: string
                secondaryAssessorIsNPlusTwo:
                    description: |-
                        SecondaryAssessorN2Manager param will set the N+2 ID as secondary assessor for participants.
                        If this param is set to true, it'll override the secondaryAssessorIds param.
                    type: boolean
                secondaryAssessors:
                    $ref: '#/components/schemas/v2SecondaryAssessors'
                usersQuery:
                    $ref: '#/components/schemas/v2ListUsersRequest'
            required:
                - campaignId
                - usersQuery
            type: object
        v2BulkGeneratePasswordResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                personIds:
                    description: |-
                        modified person_ids
                        the request is always across a single company given in request params.
                    items:
                        type: string
                    type: array
                totalAffectedRows:
                    format: int64
                    type: string
            required:
                - pagination
                - totalAffectedRows
            type: object
        v2BulkLockAxisQuestionEvaluationsRequest:
            properties:
                locked:
                    type: boolean
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - locked
            type: object
        v2BulkLockAxisQuestionEvaluationsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2BulkReplaceAssessorsRequest:
            properties:
                assessorId:
                    type: string
                axisId:
                    type: string
                managerAssessor:
                    type: boolean
                participantsFilters:
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                peopleReviewId:
                    type: string
            required:
                - peopleReviewId
            type: object
        v2BulkReplaceParticipantSkillsRequest:
            properties:
                campaignId:
                    type: string
                job:
                    description: Job boolean allows to set that participants skills can come from jobs.
                    type: boolean
                participantsFilters:
                    description: |-
                        ParticipantsFilters param is a list filters applied on Participant model.
                        For example, if you want to filter on a list of participants' users id, you can use as field ref "assessed_id".
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                skillsFilters:
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    title: 'template: :2: function "thematic_id" not defined'
                    type: array
            required:
                - campaignId
            type: object
        v2BulkReplaceParticipantSkillsResponse:
            type: object
        v2BulkSendRemindersRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
                sendToAssessed:
                    description: 'Recipient flags: at least one must be true for the endpoint to do anything.'
                    type: boolean
                sendToAssessor:
                    type: boolean
                sendToSecondaryAssessors:
                    type: boolean
                status:
                    $ref: '#/components/schemas/v2ReminderTargetedStatus'
                targetDuration:
                    description: |-
                        Duration allow to specify a required distance between now and each target status.
                        Must be superior or equal to 0, default to 0.
                        This will filter interviews on the start time matching their status where:
                        ref_time_for_status + target_duration = now.
                        Resulting precision is a day in UTC.
                    type: string
            required:
                - page
            type: object
        v2BulkTransferAssessorRoleRequest:
            properties:
                assessorId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - assessorId
            type: object
        v2BulkTransferAssessorRoleResponse:
            properties:
                interviewIds:
                    items:
                        type: string
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                totalAffectedRows:
                    format: int64
                    type: string
            required:
                - pagination
                - totalAffectedRows
            type: object
        v2BulkUpdateFieldAssignment:
            properties:
                fieldRef:
                    description: Dolmen schema ref, e.g. member.manager_id (must be importable and bulkable in proto).
                    type: string
                value:
                    description: Patch value as string (dataframe is string-typed). Coerced to field type in write().
                    type: string
            required:
                - fieldRef
            type: object
        v2BulkUpdateGoalsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
                sharingMode:
                    $ref: '#/components/schemas/v2Mode'
            type: object
        v2BulkUpdateInterviewsRequest:
            properties:
                assessorId:
                    description: AssessorID value to update within the bulk update interviews.
                    type: string
                assessorManager:
                    description: |-
                        AssessorManager param will set the manager's ID as evaluator for participants.
                        If this param is set to true, it will override the EvaluatorID param.
                    type: boolean
                campaignId:
                    description: CampaignID is added as a filter within the bulk update request.
                    type: string
                listParams:
                    $ref: '#/components/schemas/v2ListRequest'
                secondaryAssessorIsNPlusTwo:
                    description: |-
                        SecondaryAssessorN2Manager param will set the N+2 ID as secondary assessor for participants.
                        If this param is set to true, it will override the secondaryAssessorIds param.
                    type: boolean
                secondaryAssessors:
                    $ref: '#/components/schemas/v2SecondaryAssessors'
                status:
                    $ref: '#/components/schemas/v2InterviewStatus'
            required:
                - campaignId
            type: object
        v2BulkUpdateInterviewsResponse:
            properties:
                interviewIds:
                    items:
                        type: string
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                totalAffectedRows:
                    format: int64
                    type: string
            required:
                - pagination
                - totalAffectedRows
            type: object
        v2BulkUpdateParticipantsRequest:
            properties:
                assessorId:
                    description: |-
                        AssessorID should hold the evaluator ID you want to use for the listed participants.
                        If AssessorManager is set to true but an assessed does not have a manager, it'll still take the AssessorID.
                    type: string
                assessorManager:
                    description: |-
                        AssessorManager param will set the manager's ID as evaluator for participants.
                        If this param is set to true, it'll override the EvaluatorID param.
                    type: boolean
                listParams:
                    $ref: '#/components/schemas/v2ListParticipantsRequest'
                nextSession:
                    description: NextSession is the timestamp you want to set for the participants' next session time.
                    format: date-time
                    type: string
                secondaryAssessorIsNPlusTwo:
                    description: |-
                        SecondaryAssessorN2Manager param will set the N+2 ID as secondary assessor for participants.
                        If this param is set to true, it'll override the secondaryAssessorIds param.
                    type: boolean
                secondaryAssessors:
                    $ref: '#/components/schemas/v2SecondaryAssessors'
            type: object
        v2BulkUpdateParticipantsResponse:
            properties:
                assessedIds:
                    description: the list of assessed modified.
                    items:
                        type: string
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                totalAffectedRows:
                    format: int64
                    type: string
            required:
                - pagination
                - totalAffectedRows
            type: object
        v2BulkUpdateUsersResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                personIds:
                    description: |-
                        modified person_ids
                        the request is always across a single company given in request params.
                    items:
                        type: string
                    type: array
                totalAffectedRows:
                    format: int64
                    type: string
            required:
                - pagination
                - totalAffectedRows
            type: object
        v2BulkUpsertFlexiSkillEvaluationRequest:
            properties:
                assessedId:
                    type: string
                expectedLevel:
                    description: ExpectedLevel is an optional expected scale option ID to set on each evaluation.
                    type: string
                extraText:
                    description: ExtraText is an optional free-text comment to attach to each evaluation.
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
                scaleOptionId:
                    description: |-
                        ScaleOptionId is an optional scale option ID to apply to each evaluation.
                        If not set, empty evaluations are created.
                    type: string
            required:
                - assessedId
            type: object
        v2CachedQuestion:
            properties:
                campaignId:
                    readOnly: true
                    title: à challenger
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                question:
                    $ref: '#/components/schemas/v2Question'
                questionBody:
                    $ref: '#/components/schemas/v2QuestionBody'
                type:
                    $ref: '#/components/schemas/v2CachedQuestionType'
            type: object
        v2CachedQuestionAggregate:
            properties:
                cachedQuestion:
                    $ref: '#/components/schemas/v2CachedQuestion'
            type: object
        v2CachedQuestionType:
            default: CACHED_QUESTION_TYPE_UNSPECIFIED
            enum:
                - CACHED_QUESTION_TYPE_UNSPECIFIED
                - CACHED_QUESTION_TYPE_OPEN
                - CACHED_QUESTION_TYPE_SELECT
                - CACHED_QUESTION_TYPE_BINARY
                - CACHED_QUESTION_TYPE_SCALE
                - CACHED_QUESTION_TYPE_TRAINING
            type: string
        v2CalendarEvent:
            properties:
                calendarEventId:
                    readOnly: true
                    type: string
                calendarEventProvider:
                    $ref: '#/components/schemas/v2CalendarProvider'
                calendarEventUserId:
                    readOnly: true
                    type: string
            type: object
        v2CalendarProvider:
            default: CALENDAR_PROVIDER_UNSPECIFIED
            enum:
                - CALENDAR_PROVIDER_UNSPECIFIED
                - CALENDAR_PROVIDER_OUTLOOK
                - CALENDAR_PROVIDER_GOOGLE
            type: string
        v2CalendarStatusResponse:
            properties:
                provider:
                    $ref: '#/components/schemas/v2CalendarProvider'
            type: object
        v2Campaign:
            description: |-
                Campaign facilitate scheduling of interview allowing user to sequence, repeat, follow,
                measure massive numbers of people interaction around a given content.
            properties:
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id
                    type: string
                contextUrn:
                    description: A empowill urn compliant location telling were the campaign was created.
                    type: string
                description:
                    description: Description help understanding campaign context.
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                kind:
                    $ref: '#/components/schemas/v2CampaignKind'
                kindSpecificInfo:
                    $ref: '#/components/schemas/v2KindSpecificInfo'
                name:
                    example: Annual review
                    maxLength: 550
                    minLength: 3
                    type: string
                personalInformationSettings:
                    $ref: '#/components/schemas/v2PersonalInformationSettings'
                reminders:
                    $ref: '#/components/schemas/v2Reminders'
                scheduling:
                    $ref: '#/components/schemas/v2Scheduling'
                secondaryAssessorSettings:
                    $ref: '#/components/schemas/v2SecondaryAssessorSettings'
                settings:
                    $ref: '#/components/schemas/apiqollectivv2Settings'
                sharing:
                    $ref: '#/components/schemas/v2Sharing'
                startedAt:
                    description: |-
                        StartedAt is set to current time when campaign begin.
                        It's empty beforehand.
                    format: date-time
                    readOnly: true
                    type: string
                status:
                    $ref: '#/components/schemas/v2CampaignStatus'
                templateId:
                    type: string
            required:
                - kind
                - name
            type: object
        v2CampaignAISettings:
            properties:
                aiEnabled:
                    description: When false (default), interview AI analysis is skipped for this campaign.
                    type: boolean
                campaignId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                scoringCriteria:
                    description: |-
                        Custom scoring criteria prompt (markdown).
                        When nil, the embedded default scoring criteria is used.
                    type: string
            type: object
        v2CampaignAISettingsView:
            description: |-
                API envelope for Get/Set campaign AI settings: persisted row plus derived flags.
                Kept separate from CampaignAISettings so the artefact maps 1:1 to DB columns (no gorm:"-" scalars).
            properties:
                hasSummaries:
                    readOnly: true
                    type: boolean
                settings:
                    $ref: '#/components/schemas/v2CampaignAISettings'
            required:
                - settings
            type: object
        v2CampaignAggregate:
            description: CampaignAggregate describes a message that contains a campaign and its interview types ids.
            properties:
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                campaignManyInterviewType:
                    $ref: '#/components/schemas/v2CampaignInterviewTypesIds'
                content:
                    $ref: '#/components/schemas/v2PartialContent'
            type: object
        v2CampaignContent:
            properties:
                campaignId:
                    type: string
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id
                    type: string
                content:
                    $ref: '#/components/schemas/qollectivv2Content'
                contentSummary:
                    $ref: '#/components/schemas/v2ContentSummary'
                headers:
                    $ref: '#/components/schemas/v2Headers'
            required:
                - content
            type: object
        v2CampaignIds:
            properties:
                campaignIds:
                    items:
                        type: string
                    type: array
            type: object
        v2CampaignInterviewTypesIds:
            properties:
                interviewTypesIds:
                    items:
                        type: string
                    type: array
            type: object
        v2CampaignKind:
            default: CAMPAIGN_KIND_UNSPECIFIED
            description: |-
                CampaignKind divides campaigns into kinds. Different kinds have many different behaviours,
                different perms, different displays...

                 - CAMPAIGN_KIND_INTERVIEW: Interviews include questions for two people who drive an interview. They are divided in three phases: preparation
                by both participants, the actual one to one interview, and signature.
                Interview campaigns are accessible with `campaigns` perms.
                 - CAMPAIGN_KIND_TRAINING_SURVEY: Surveys only have questions for one person. Each respondent answers and validates their responses in a single
                phase.
                Survey campaigns are accessible with `training-plan` perms.
                 - CAMPAIGN_KIND_SKILL: Skills is a system campaign for out-of-interview skill evaluations.
                It is created automatically and is not visible in regular campaign listings.
            enum:
                - CAMPAIGN_KIND_UNSPECIFIED
                - CAMPAIGN_KIND_INTERVIEW
                - CAMPAIGN_KIND_TRAINING_SURVEY
                - CAMPAIGN_KIND_SKILL
            type: string
        v2CampaignStatus:
            default: CAMPAIGN_STATUS_UNSPECIFIED
            enum:
                - CAMPAIGN_STATUS_UNSPECIFIED
                - CAMPAIGN_STATUS_DRAFT
                - CAMPAIGN_STATUS_ONGOING
                - CAMPAIGN_STATUS_CANCELLED
                - CAMPAIGN_STATUS_FINISHED
            type: string
        v2CampaignTemplate:
            description: CampaignTemplate is a template from which campaigns can be created.
            properties:
                archived:
                    type: boolean
                companyId:
                    readOnly: true
                    type: string
                content:
                    $ref: '#/components/schemas/qollectivv2Content'
                contentSummary:
                    $ref: '#/components/schemas/v2ContentSummary'
                description:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                kind:
                    $ref: '#/components/schemas/v2CampaignKind'
                name:
                    example: Annual review
                    maxLength: 100
                    minLength: 3
                    type: string
            required:
                - kind
                - name
                - content
            type: object
        v2CampaignTemplateAggregate:
            properties:
                template:
                    $ref: '#/components/schemas/v2CampaignTemplate'
            type: object
        v2CancelOrderRealResponse:
            properties:
                order:
                    $ref: '#/components/schemas/v2TrainingOrderReal'
            type: object
        v2CertificationIds:
            properties:
                certificationIds:
                    items:
                        type: string
                    type: array
            type: object
        v2CertificationStatus:
            default: CERTIFICATION_STATUS_UNSPECIFIED
            enum:
                - CERTIFICATION_STATUS_UNSPECIFIED
                - CERTIFICATION_STATUS_NEVER_OBTAINED
                - CERTIFICATION_STATUS_UP_TO_DATE
                - CERTIFICATION_STATUS_EXPIRING_SOON
                - CERTIFICATION_STATUS_EXPIRED
            type: string
        v2ChecklistContent:
            properties:
                items:
                    items:
                        $ref: '#/components/schemas/v2ChecklistItem'
                    type: array
            type: object
        v2ChecklistItem:
            properties:
                completed:
                    type: boolean
                name:
                    type: string
            required:
                - name
            type: object
        v2ChecklistSummary:
            properties:
                checklistCompletedTotal:
                    format: int32
                    readOnly: true
                    type: integer
                checklistTotal:
                    format: int32
                    readOnly: true
                    type: integer
            type: object
        v2ChecklistTemplates:
            properties:
                templates:
                    items:
                        $ref: '#/components/schemas/v2ChecklistContent'
                    type: array
            type: object
        v2ChoiceString:
            properties:
                id:
                    type: string
                name:
                    type: string
            type: object
        v2Clearance:
            properties:
                achievedMedicExamId:
                    readOnly: true
                    type: string
                companyId:
                    readOnly: true
                    type: string
                description:
                    type: string
                generatedAt:
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                includeExpiredCerts:
                    type: boolean
                includeMedicExam:
                    type: boolean
                includeNeverObtainedCerts:
                    type: boolean
                name:
                    type: string
                signedAt:
                    format: date-time
                    readOnly: true
                    type: string
                signerId:
                    type: string
                signerSignature:
                    description: SignerSignature is a base64 encoded image JPEG/PNG.
                    readOnly: true
                    type: string
                templateId:
                    type: string
                userId:
                    type: string
            required:
                - name
            type: object
        v2ClearanceAggregate:
            properties:
                achievedCertificationIds:
                    $ref: '#/components/schemas/v2AchievedCertificationIds'
                certificationIds:
                    $ref: '#/components/schemas/v2CertificationIds'
                clearance:
                    $ref: '#/components/schemas/v2Clearance'
                expiresAt:
                    description: ExpiresAt is the earliest ExpiresAt of linked achieved certifications and achieved medic exam.
                    format: date-time
                    readOnly: true
                    type: string
                status:
                    $ref: '#/components/schemas/v2ClearanceStatus'
            type: object
        v2ClearanceStatus:
            default: CLEARANCE_STATUS_UNSPECIFIED
            enum:
                - CLEARANCE_STATUS_UNSPECIFIED
                - CLEARANCE_STATUS_UP_TO_DATE
                - CLEARANCE_STATUS_EXPIRING_SOON
                - CLEARANCE_STATUS_EXPIRED
                - CLEARANCE_STATUS_NEVER_OBTAINED
            type: string
        v2ClearanceTemplate:
            properties:
                companyId:
                    readOnly: true
                    type: string
                description:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                includeExpiredCerts:
                    type: boolean
                includeMedicExam:
                    type: boolean
                includeNeverObtainedCerts:
                    type: boolean
                name:
                    type: string
                signerId:
                    type: string
            required:
                - name
            type: object
        v2ClearanceTemplateAggregate:
            properties:
                certificationIds:
                    $ref: '#/components/schemas/v2CertificationIds'
                template:
                    $ref: '#/components/schemas/v2ClearanceTemplate'
            type: object
        v2Client:
            description: |-
                Companies either have a contract or an holding company, otherwise they don't access the platform
                They can have both in case a subsidiary tested the platform and convinced the holding
                In case a contract is not present, company's members numbers are reported to the holding for billing followup
                This field is required at creation then default on database content during updates.
            properties:
                contract:
                    $ref: '#/components/schemas/v2Contract'
                holdingCompanyId:
                    description: |-
                        Company id that holds this one, this is created when a regular company creates another one
                        Useful to know whom should address notion like data standardisation across companies.
                        Holding company can be regular customers, not only distributors.
                    example: holding-company-id
                    type: string
            type: object
        v2Company:
            description: |-
                Company is a empowill client, an empowill distributor or both.
                Related client and distributor fields are set only if the company relate to one of them.
            properties:
                client:
                    $ref: '#/components/schemas/v2Client'
                distributor:
                    $ref: '#/components/schemas/v2Distributor'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Company id is a human memorable term, unique in base, derived from name with no special characters.
                        It can be chosen at creation but never changes later.
                        This is not used for display purposes and should have no impact if the company name changes.
                    example: my-company
                    type: string
                name:
                    example: Empowill
                    maxLength: 100
                    minLength: 3
                    title: Name of the company
                    type: string
                settings:
                    $ref: '#/components/schemas/apisynv2Settings'
            required:
                - name
            type: object
        v2CompanyAccessGrant:
            properties:
                companyId:
                    description: the id of the company a request have been made for.
                    readOnly: true
                    type: string
                granterId:
                    title: |-
                        GranterId is only present if the request is not pending.
                        Contract specificity and good to know for contractors followup
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: Immutable UUID v4 generated at insertion.
                    type: string
                requesterId:
                    description: the id of a person making the request.
                    readOnly: true
                    type: string
                state:
                    $ref: '#/components/schemas/v2CompanyAccessGrantState'
            required:
                - state
            type: object
        v2CompanyAccessGrantAggregate:
            properties:
                company:
                    $ref: '#/components/schemas/v2Company'
                request:
                    $ref: '#/components/schemas/v2CompanyAccessGrant'
            type: object
        v2CompanyAccessGrantState:
            default: COMPANY_ACCESS_GRANT_STATE_UNSPECIFIED
            enum:
                - COMPANY_ACCESS_GRANT_STATE_UNSPECIFIED
                - COMPANY_ACCESS_GRANT_STATE_PENDING
                - COMPANY_ACCESS_GRANT_STATE_ACCEPTED
                - COMPANY_ACCESS_GRANT_STATE_REFUSED
            type: string
        v2CompanyTrainingSettings:
            properties:
                attendeeDefaultAbsentStatusId:
                    description: Status assigned to attendees under presence threshold in orders with a presence threshold.
                    type: string
                attendeeDefaultCanceledStatusId:
                    description: Status assigned to attendees when an order is canceled.
                    type: string
                attendeeDefaultPendingStatusId:
                    description: Status assigned to new attendees.
                    type: string
                attendeeDefaultValidatedStatusId:
                    description: Status assigned when an attendee is marked validated.
                    type: string
                checklistTemplates:
                    $ref: '#/components/schemas/v2ChecklistTemplates'
                companyId:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                includeNonProductionCosts:
                    description: |-
                        if false, total costs for orders and attendees are not taking into account non-production costs.
                        Trainers cost are always taken into account, they are training costs.
                    type: boolean
                logisticCostCustomFields:
                    $ref: '#/components/schemas/v2LogisticCostCustomFields'
                orderCertificateMoreInfo:
                    description: Default text for the "more info" section added to generated training order certificates.
                    type: string
                orderConvocationAutoGen:
                    description: Whether training order convocations are automatically generated and sent to attendees before trainings start.
                    type: boolean
                orderConvocationAutoGenNotifyManager:
                    description: Whether attendee managers are CCed when auto sending order convocations.
                    type: boolean
                orderConvocationAutoGenThreshold:
                    description: How long before a training order starts will convocations be auto generated and sent.
                    type: string
                orderConvocationMoreInfo:
                    description: Default text for the "more info" section added to generated training order convocations.
                    type: string
                otherApproverIds:
                    $ref: '#/components/schemas/v2OtherApproverIds'
                satisfactionQuestion:
                    $ref: '#/components/schemas/v2QuestionScale'
                trainingRequestNPlusOneApproval:
                    description: Whether trainee managers are invited to approve training requests.
                    type: boolean
                trainingRequestNPlusTwoApproval:
                    description: Whether trainee n+2s are invited to approve training requests.
                    type: boolean
                trainingRequestNotifyApprovers:
                    description: Whether approvers are emailed on training request creation.
                    type: boolean
                workHoursPerMonth:
                    description: Hours per month means total hours worked by an employee per month.
                    format: double
                    type: number
                workHoursPerYear:
                    description: Hours per year means total hours worked by an employee per year.
                    format: double
                    type: number
            required:
                - attendeeDefaultPendingStatusId
                - attendeeDefaultValidatedStatusId
                - attendeeDefaultAbsentStatusId
                - attendeeDefaultCanceledStatusId
            type: object
        v2ComputeParticipantsNextSessionsRequest:
            properties:
                campaignId:
                    type: string
            required:
                - campaignId
            type: object
        v2ComputePositionsRequest:
            properties:
                ignoreAlreadyPositioned:
                    type: boolean
                matrixId:
                    type: string
            required:
                - matrixId
            type: object
        v2Conclusion:
            description: Conclusion is the last message written by assessed, assessor and any additional people taking part in an interview.
            properties:
                campaignId:
                    description: CampaignId is filled with interview session information.
                    readOnly: true
                    type: string
                companyId:
                    description: CompanyId is filled with authentication session information.
                    readOnly: true
                    type: string
                conclusion:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                interviewId:
                    type: string
                signature:
                    description: |-
                        Signature is filled when a user's sign an interview.
                        It should be a base64 encoded image JPEG/PNG.
                        This field is only updated when calling SignSession rpc endpoint.
                    readOnly: true
                    type: string
                signatureDate:
                    format: date-time
                    readOnly: true
                    type: string
                userId:
                    description: |-
                        UserId is automatically filled with the session of the user writing a conclusion.
                        Consider this field OUTPUT_ONLY.
                    type: string
            type: object
        v2Config:
            description: |-
                Config represents an opaque configuration blob for a given
                (company_id, user_id, key) triple. The payload is stored as a
                google.protobuf.Any and is not interpreted by the service itself.
            properties:
                companyId:
                    description: |-
                        Company owning the configuration. Immutable after creation.
                        Default on current user's company.
                    readOnly: true
                    type: string
                config:
                    $ref: '#/components/schemas/protobufAny'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                key:
                    description: Key differentiating configuration blobs for the same (company_id, user_id). Immutable after creation.
                    type: string
                userId:
                    description: |-
                        User associated to the configuration. Immutable after creation.
                        Default on current user, protects access by the user itself.
                    readOnly: true
                    type: string
            required:
                - key
                - config
            type: object
        v2ConnectionContext:
            properties:
                clientId:
                    type: string
                companyId:
                    type: string
                subject:
                    type: string
            type: object
        v2ContentSummary:
            properties:
                hasGoalEvaluation:
                    type: boolean
                hasGoalFixation:
                    type: boolean
                hasSkillQuestion:
                    type: boolean
                totalQuestions:
                    format: int32
                    type: integer
                totalQuestionsAssessed:
                    format: int32
                    type: integer
                totalQuestionsAssessor:
                    format: int32
                    type: integer
            type: object
        v2Contract:
            properties:
                aiPlan:
                    $ref: '#/components/schemas/v2AIPlan'
                automaticRenewal:
                    type: boolean
                description:
                    title: Contract specificity and good to know for contractors followup
                    type: string
                engagement:
                    $ref: '#/components/schemas/v2ContractEngagement'
                lastRenewal:
                    format: date-time
                    title: date of the last renewal, default to now at creation if the contract exists
                    type: string
                seats:
                    description: Number of contractual seats (paid users) for this client.
                    format: int64
                    type: integer
                signatureDate:
                    description: |-
                        Date at which the subscription starts. The actual contract signature date
                        can differ depending on commercial practice or negotiation; only this
                        single field is kept to simplify the data layout. It is also the
                        anchor used to compute the contract year (anniversary roll-over).
                    format: date-time
                    type: string
                signedWithCompanyId:
                    description: |-
                        Company that created the company or / and currently handling the contract.
                        Empowill itself is the only company allowed to leave this NULL: it has no
                        parent in the company graph, so its contract does not reference anyone.
                        Every other contract must reference an existing distributing company.
                    type: string
            required:
                - signatureDate
                - engagement
            title: |-
                Contract information are visible only by the company owning the contract
                The company signing the contract is always a distributor
            type: object
        v2ContractEngagement:
            default: UNDEFINED
            enum:
                - UNDEFINED
                - ONE
                - TWO
                - THREE
                - FOUR
            title: ContractEngagement represent client engagement in years
            type: string
        v2CostType:
            default: COST_TYPE_UNSPECIFIED
            enum:
                - COST_TYPE_UNSPECIFIED
                - COST_TYPE_COMPANY
                - COST_TYPE_PARTICIPANT
            type: string
        v2CreateAchievedInterviewRequest:
            properties:
                achievedInterview:
                    $ref: '#/components/schemas/v2AchievedInterview'
            type: object
        v2CreateAxisQuestionEvaluationRequest:
            properties:
                evaluation:
                    $ref: '#/components/schemas/v2AxisQuestionEvaluationAggregate'
            required:
                - evaluation
            type: object
        v2CreateAxisQuestionRequest:
            properties:
                question:
                    $ref: '#/components/schemas/v2AxisQuestionAggregate'
            required:
                - question
            type: object
        v2CreateAxisRequest:
            properties:
                axis:
                    $ref: '#/components/schemas/v2PeopleReviewAxisAggregate'
            required:
                - axis
            type: object
        v2CreateBulkUpdateResponse:
            properties:
                importId:
                    type: string
            required:
                - importId
            type: object
        v2CreateCalendarEvent:
            properties:
                description:
                    type: string
                end:
                    format: date-time
                    type: string
                location:
                    type: string
                name:
                    type: string
                start:
                    format: date-time
                    type: string
                withMeeting:
                    type: boolean
            type: object
        v2CreateCampaignRequest:
            properties:
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                interviewTypesIds:
                    items:
                        type: string
                    type: array
            type: object
        v2CreateCampaignTemplateRequest:
            properties:
                template:
                    $ref: '#/components/schemas/v2CampaignTemplate'
            type: object
        v2CreateGoalFixationRequest:
            properties:
                goal:
                    $ref: '#/components/schemas/v2Goal'
                interviewId:
                    type: string
                parentId:
                    type: string
            required:
                - interviewId
            type: object
        v2CreateGoalFolderFixationRequest:
            properties:
                goalFolder:
                    $ref: '#/components/schemas/v2GoalFolder'
                interviewId:
                    type: string
                parentId:
                    type: string
            required:
                - interviewId
            type: object
        v2CreateGoalFolderRequest:
            properties:
                goalFolder:
                    $ref: '#/components/schemas/v2GoalFolder'
                parentId:
                    type: string
            type: object
        v2CreateGoalRequest:
            properties:
                goal:
                    $ref: '#/components/schemas/v2Goal'
                parentId:
                    type: string
            type: object
        v2CreateInterviewCalendarEventRequest:
            properties:
                calendarEvent:
                    $ref: '#/components/schemas/v2CreateCalendarEvent'
                interviewId:
                    type: string
            required:
                - interviewId
                - calendarEvent
            type: object
        v2CreateInterviewTypeRequest:
            properties:
                interviewType:
                    $ref: '#/components/schemas/v2InterviewType'
            type: object
        v2CreateJobRequest:
            properties:
                job:
                    $ref: '#/components/schemas/v2Job'
            type: object
        v2CreateMatrixRequest:
            properties:
                matrix:
                    $ref: '#/components/schemas/v2PeopleReviewMatrixAggregate'
            required:
                - matrix
            type: object
        v2CreateParticipantPositionRequest:
            properties:
                locked:
                    type: boolean
                participantPosition:
                    $ref: '#/components/schemas/v2ParticipantPositionAggregate'
            required:
                - participantPosition
            type: object
        v2CreatePeopleReviewRequest:
            properties:
                peopleReview:
                    $ref: '#/components/schemas/v2PeopleReviewAggregate'
            required:
                - peopleReview
            type: object
        v2CreateSessionGoalFolderRequest:
            properties:
                goalFolder:
                    $ref: '#/components/schemas/v2GoalFolder'
                interviewId:
                    type: string
                parentId:
                    type: string
            required:
                - interviewId
            type: object
        v2CreateSessionGoalRequest:
            properties:
                goal:
                    $ref: '#/components/schemas/v2Goal'
                interviewId:
                    type: string
                parentId:
                    type: string
            required:
                - interviewId
            type: object
        v2CreateSessionTargetRequest:
            properties:
                interviewId:
                    type: string
                target:
                    $ref: '#/components/schemas/v2Target'
            required:
                - interviewId
            type: object
        v2CreateSkillRequest:
            properties:
                parentId:
                    type: string
                skill:
                    $ref: '#/components/schemas/v2Skill'
            required:
                - parentId
            type: object
        v2CreateSuccessionPlanRequest:
            properties:
                successionPlan:
                    $ref: '#/components/schemas/v2SuccessionPlanAggregate'
            required:
                - successionPlan
            type: object
        v2CreateTargetFixationRequest:
            properties:
                interviewId:
                    type: string
                target:
                    $ref: '#/components/schemas/v2Target'
            required:
                - interviewId
            type: object
        v2CreateTargetRequest:
            properties:
                target:
                    $ref: '#/components/schemas/v2Target'
            type: object
        v2CreateThematicRequest:
            properties:
                parentId:
                    type: string
                thematic:
                    $ref: '#/components/schemas/v2Thematic'
            type: object
        v2CreateTrainingRequestsResponse:
            properties:
                requests:
                    items:
                        $ref: '#/components/schemas/v2TrainingRequest'
                    type: array
            type: object
        v2CreateWebSocketTicketResponse:
            properties:
                ticket:
                    type: string
                ttl:
                    type: string
            required:
                - ticket
            type: object
        v2CustomCostSetting:
            properties:
                breakdownType:
                    $ref: '#/components/schemas/v2OrderCostType'
                input:
                    format: double
                    type: number
            type: object
        v2CustomCostSettings:
            properties:
                settings:
                    additionalProperties:
                        $ref: '#/components/schemas/v2CustomCostSetting'
                    type: object
            type: object
        v2CustomFieldInfo:
            properties:
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id for the CustomField
                    type: string
                confidential:
                    default: "false"
                    description: Confidential fields will only be readable and writable by users having a corresponding permission.
                    type: boolean
                description:
                    description: |-
                        Description help understanding custom field context.
                        Never hesitate to reference a potential source of truth in charge of this field in case you make an automation.
                    type: string
                entityReference:
                    $ref: '#/components/schemas/v2Entity'
                enum:
                    default: "false"
                    description: |-
                        Define if the custom field have a predefined set o values allowed for users.
                        This does not restrict new values for service in order to avoid having to define them for integrations.

                        This field can be set to false after creation but cannot be set to true.
                        Meaning a custom field must be declared as enum, a custom field cannot become an enum after creation.
                    type: boolean
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    title: id is the CustomField key that will appear in maps resulting from CustomField actual values
                    type: string
                multiple:
                    default: "false"
                    description: |-
                        Define if the custom field may contain several values or only one.
                        Cannot be change after declaration.
                    type: boolean
                name:
                    title: name is the CustomField display name
                    type: string
                resourceType:
                    $ref: '#/components/schemas/dolmenResourceType'
                type:
                    $ref: '#/components/schemas/v2CustomFieldType'
                values:
                    $ref: '#/components/schemas/v2CustomFieldPossibleValues'
            required:
                - name
                - entityReference
                - type
            title: CustomFieldInfo reference all information about an CustomField configuration
            type: object
        v2CustomFieldPossibleValues:
            description: |-
                CustomFieldPossibleValue is a definition of values possible in enum custom field type.
                For now only string are possible.
            properties:
                strings:
                    items:
                        type: string
                    type: array
            type: object
        v2CustomFieldType:
            default: UNSPECIFIED
            enum:
                - UNSPECIFIED
                - STRING
                - TIME
                - DOUBLE
            title: |-
                CustomFieldValueType define all possible types but does not contain the actual values
                Enums is today the only type where values must be predeclared for usage
            type: string
        v2CustomFieldValue:
            description: |-
                CustomFieldValue carry actual CustomField value.
                This is a polymorphic data container that can contain only one of any field.
                For instance it can have multiple_string assigned or value.string but not both.
            properties:
                number:
                    format: double
                    type: number
                string:
                    type: string
                strings:
                    items:
                        type: string
                    type: array
                time:
                    format: date-time
                    type: string
            type: object
        v2CustomFields:
            properties:
                values:
                    additionalProperties:
                        $ref: '#/components/schemas/v2CustomFieldValue'
                    type: object
            title: |-
                CustomFields is a client defined map of generic values.
                Schema is defined by CustomFields settings.
                Order in CustomFields key is considered random, refer to the schema to get a consistent ordering
            type: object
        v2CustomSSO:
            properties:
                config:
                    $ref: '#/components/schemas/v2CustomSSOSecrets'
                customSsoIssuer:
                    type: string
                customSsoName:
                    description: CustomSsoName is the displayed name in the SSO buton on the login page.
                    type: string
            required:
                - customSsoName
                - customSsoIssuer
                - config
            type: object
        v2CustomSSOSecrets:
            properties:
                clientId:
                    description: ClientID can fetched in the api and is stored in a separated secure storage.
                    type: string
                clientSecret:
                    description: |-
                        ClientSecret will never we provided again.
                        If you need to change it, provide a new one and it will replace the former secret.
                    type: string
            required:
                - clientId
                - clientSecret
            type: object
        v2Dataframe:
            description: |-
                Dataframe contains the data as apache arrow format.
                To be used in conjunction with as_dataframe field in ListRequest.
            properties:
                data:
                    format: byte
                    type: string
            type: object
        v2DeleteOrderAttendeesResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2DeletePeopleReviewParticipantsRequest:
            properties:
                ids:
                    items:
                        type: string
                    type: array
            required:
                - ids
            type: object
        v2DistinctField:
            properties:
                fieldRef:
                    type: string
                orderDesc:
                    type: boolean
            required:
                - fieldRef
            type: object
        v2DistinctOn:
            properties:
                additionalOrder:
                    items:
                        $ref: '#/components/schemas/v2Order'
                    type: array
                distinctFields:
                    items:
                        $ref: '#/components/schemas/v2DistinctField'
                    type: array
            required:
                - distinctFields
            type: object
        v2Distributor:
            description: |-
                Distributor rapports all back office functionalities.
                A company that is not distributing, cannot access the back office.
            properties:
                isDistributor:
                    title: First condition for back office access
                    type: boolean
            type: object
        v2DuplicateCampaignRequest:
            properties:
                duplicateParticipants:
                    type: boolean
                duplicateSettings:
                    type: boolean
                newName:
                    type: string
                srcCampaignId:
                    description: SrcCampaignID is the source campaign to get participants from.
                    type: string
            required:
                - srcCampaignId
                - newName
            type: object
        v2DuplicateParticipantsRequest:
            properties:
                campaignId:
                    type: string
                srcCampaignId:
                    type: string
            required:
                - srcCampaignId
                - campaignId
            type: object
        v2DynamicFilters:
            properties:
                filters:
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                op:
                    $ref: '#/components/schemas/v2FilterGroupOP'
            type: object
        v2Element:
            description: Element is every type of things that constitute a content part.
            properties:
                binary:
                    $ref: '#/components/schemas/v2QuestionBinary'
                goalEvaluation:
                    $ref: '#/components/schemas/v2QuestionGoalEvaluation'
                goalFixation:
                    $ref: '#/components/schemas/v2QuestionGoalFixation'
                id:
                    description: |-
                        Id of elements are unique only across a campaign content.
                        Each element have an id mostly used to handle changes across device or during drag and drop
                        or answer to questions.
                    type: string
                open:
                    $ref: '#/components/schemas/v2QuestionOpen'
                scale:
                    $ref: '#/components/schemas/v2QuestionScale'
                section:
                    $ref: '#/components/schemas/v2Section'
                select:
                    $ref: '#/components/schemas/v2QuestionSelect'
                skill:
                    $ref: '#/components/schemas/v2QuestionSkillEvaluation'
                text:
                    $ref: '#/components/schemas/v2Text'
                training:
                    $ref: '#/components/schemas/v2QuestionTraining'
            type: object
        v2EmployeeLastCertification:
            properties:
                achievedCertification:
                    $ref: '#/components/schemas/v2AchievedCertification'
                achievedCertificationExpires:
                    description: |-
                        This field is equal to the manual input of an expiration
                        or the automatic expiration from the certification based on the obtention date.
                    format: date-time
                    readOnly: true
                    type: string
                achievedCertificationStatus:
                    $ref: '#/components/schemas/v2CertificationStatus'
                attachmentsPath:
                    description: |-
                        GCS folder path where attachment files for the achieved certification are stored.
                        NULL when the employee has not yet achieved the certification (LEFT JOIN miss).
                    readOnly: true
                    type: string
                certification:
                    $ref: '#/components/schemas/v2TrainingCertification'
                employee:
                    $ref: '#/components/schemas/v2EmployeeToCertify'
                id:
                    description: |-
                        Id has the format `certification_id:employee_id:achieved_certification_id` with achieved_certification_id possibly empty if the employee has
                        not yet achieved the certification.
                    readOnly: true
                    type: string
                ongoingTrainingOrderIds:
                    description: |-
                        OngoingTrainingOrdersIds are the planned real orders for this employee.
                        If the training is done or the user canceled in the order, it won't appear here.
                        This field helps follow people at risk of being expired on a given certification
                        but with appropriate actions being already taken.
                    items:
                        type: string
                    readOnly: true
                    type: array
            required:
                - employee
                - achievedCertification
            type: object
        v2EmployeeLastMedicExam:
            properties:
                achievedMedicExam:
                    $ref: '#/components/schemas/v2AchievedMedicExam'
                employeeToMedicExam:
                    $ref: '#/components/schemas/v2EmployeeToMedicExam'
                expiresAt:
                    description: ExpiresAt will either be AchievedMedicExam.ExpiresAt or computed from MedicExamType.ValidityPeriodMonth.
                    format: date-time
                    readOnly: true
                    type: string
                status:
                    $ref: '#/components/schemas/v2MedicExamStatus'
            type: object
        v2EmployeeToCertify:
            description: |-
                EmployeeToCertify describes a table that stores users with their associated certification.
                Employees must be active and not visitors.
                A scheduler is setup to build EmployeeToCertify every 20 minutes, the scheduler reads from EmployeeToCertifyFilters filters then creates the cache.
            properties:
                certificationId:
                    type: string
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                userId:
                    type: string
            type: object
        v2EmployeeToCertifyFilters:
            properties:
                certificationId:
                    type: string
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                everyone:
                    description: |-
                        Everyone means every active employee of the whole company.
                        All other parameters are ignored if everyone is selected.
                    type: boolean
                filterGroupPopulation:
                    $ref: '#/components/schemas/v2DynamicFilters'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                includeAchieved:
                    description: |-
                        IncludeAchieved means every employee who already has an achieved certification
                        for this same certification_id will be included in the employees to certify.
                    type: boolean
                jobsIds:
                    description: JobIds are the jobs linked to the certification.
                    items:
                        type: string
                    type: array
                usersIds:
                    description: PersonIds are individual people.
                    items:
                        type: string
                    type: array
            type: object
        v2EmployeeToInterviewType:
            properties:
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                interviewTypeId:
                    type: string
                userId:
                    type: string
            type: object
        v2EmployeeToInterviewTypeAggregate:
            properties:
                achievedAt:
                    format: date-time
                    type: string
                achievedInterviewExpires:
                    description: AchievedInterviewExpires is the future closest expiry of all attached interview type.
                    format: date-time
                    type: string
                achievedInterviewId:
                    type: string
                achievedInterviewTypeStatus:
                    $ref: '#/components/schemas/v2InterviewTypeStatus'
                activeCampaignIds:
                    description: |-
                        ActiveCampaignIds is a list of active campaign IDs where:
                        - The employee is a participant
                        - The campaign has a scheduled next session
                        - The campaign is not cancelled or completed
                        - The campaign's interview type matches this one.
                    items:
                        type: string
                    readOnly: true
                    type: array
                activeInterviewIds:
                    description: |-
                        ActiveInterviewIds is a list of interview IDs for this user where:
                        - The interview status is "Preparation", "Interview" or "Signature"
                        - The interview's campaign matches this interview type.
                    items:
                        type: string
                    readOnly: true
                    type: array
                employee:
                    $ref: '#/components/schemas/v2EmployeeToInterviewType'
                interviewId:
                    type: string
                interviewType:
                    $ref: '#/components/schemas/v2InterviewType'
            required:
                - employee
            type: object
        v2EmployeeToInterviewTypeFilter:
            properties:
                companyId:
                    readOnly: true
                    type: string
                everyone:
                    description: |-
                        Everyone means every active employee of the whole company.
                        All other parameters are ignored if everyone is selected.
                    type: boolean
                filterGroupPopulation:
                    $ref: '#/components/schemas/v2DynamicFilters'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                includeAchieved:
                    description: |-
                        IncludeAchieved means every employee who already has an achieved interview
                        for this same interview type will be included in the employees to interview.
                    type: boolean
                interviewTypeId:
                    type: string
                jobsIds:
                    description: JobIds are the jobs linked to the interview type.
                    items:
                        type: string
                    type: array
                usersIds:
                    items:
                        type: string
                    type: array
            type: object
        v2EmployeeToMedicExam:
            description: |-
                EmployeeToMedicExam references all employees since everyone is legally required to pass a medic exam.
                A scheduler updates the table every 20 minutes with employees not archived nor visitors.
            properties:
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                userId:
                    type: string
            type: object
        v2Entity:
            default: ENTITY_UNSPECIFIED
            enum:
                - ENTITY_UNSPECIFIED
                - ENTITY_USER
                - ENTITY_TRAINING
            type: string
        v2ExistsIn:
            description: |-
                ExistsIn allows filtering entities where a field value exists in another field of other entities
                from a resource type. This uses a resource query with distinct to fetch values,
                ensuring proper permission handling and domain-wide compatibility.
                This is useful for finding entities that are referenced by other entities, like finding managers
                (users whose person.id appears in member.manager_id of at least one other user).
            properties:
                fieldRef:
                    title: |-
                        FieldRef is the field to check.
                        For managers: "member.person_id"
                    type: string
                filters:
                    description: |-
                        Filters to apply to the remote resource query (e.g., filter out visitors).
                        These filters are applied when querying the remote resource for distinct values.
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                resourceType:
                    $ref: '#/components/schemas/dolmenResourceType'
                targetFieldRef:
                    title: |-
                        TargetFieldRef is the field in the remote resource where we check if field_ref value exists.
                        For managers: "member.manager_id"
                    type: string
            required:
                - fieldRef
                - resourceType
                - targetFieldRef
                - filters
            type: object
        v2ExpectedSkill:
            properties:
                flexiUserId:
                    description: |-
                        FlexiUserId is the subject of the user who added this skill via AddSkillsToInterview.
                        It is a virtual field computed in application code, not stored directly in this aggregate's columns.
                    readOnly: true
                    type: string
                jobSkill:
                    $ref: '#/components/schemas/v2JobSkills'
                skillContent:
                    $ref: '#/components/schemas/v2SkillContent'
                skillNode:
                    $ref: '#/components/schemas/v2SkillNode'
            type: object
        v2ExportCommand:
            description: |-
                ExportCommand represents an export operation request.
                It stores all the information needed to execute an export, including the export request details,
                connection context, and the status of the export operation.
                The export is done asynchronously in the background, and the resulting file is made available
                for download by the requester. If the caller is a user, an email with the export attached will be sent.
            properties:
                connectionContext:
                    $ref: '#/components/schemas/v2ConnectionContext'
                exportRequest:
                    $ref: '#/components/schemas/v2ExportRequest'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: Unique identifier for the export command.
                    type: string
                path:
                    description: Path is the location where the exported file is stored and can be accessed.
                    readOnly: true
                    type: string
                resourceType:
                    $ref: '#/components/schemas/dolmenResourceType'
                status:
                    $ref: '#/components/schemas/v2ExportStatus'
            type: object
        v2ExportRequest:
            description: |-
                ExportRequest is used to export the result-set in a file and send it asynchronously.
                The export is done in the background and the file is available for download for the requester later on.
                If the caller is a user, a mail will be sent with the export attached.

                NB: If this field is used, the result will be empty and does not apply selects nor pagination.
            properties:
                alsoByEmail:
                    description: AlsoByEmail will send the data by email, false by default to avoid copying data on email servers.
                    type: boolean
                downloadWithAttachments:
                    description: |-
                        DownloadWithAttachments bundles attachment files into a ZIP alongside the Excel export.
                        When false (default), attachment columns still appear in the export with the platform API URL as plain text.
                        When true, the export produces a ZIP containing the Excel file and a files/ folder with the actual documents,
                        with HYPERLINK formulas in the Excel pointing to the local files.
                    type: boolean
                fieldsOptions:
                    items:
                        $ref: '#/components/schemas/v2FieldRefOption'
                    type: array
                fileFormat:
                    $ref: '#/components/schemas/v2FileFormat'
                fileName:
                    description: |-
                        File name is the name of the file to be exported. If empty, will default to "name_ressource_export.format".
                        The name should not contain the format or the file, nor / or . characters or it will result in an error.
                    type: string
                listRequest:
                    $ref: '#/components/schemas/v2ListRequest'
                resourceType:
                    $ref: '#/components/schemas/dolmenResourceType'
            required:
                - resourceType
                - listRequest
            type: object
        v2ExportStatus:
            default: EXPORT_STATUS_UNSPECIFIED
            description: |4-
                 - EXPORT_STATUS_PENDING: EXPORT_STATUS_PENDING is when the export has been created but not started yet.
                 - EXPORT_STATUS_ONGOING: EXPORT_STATUS_ONGOING is when the export is currently running.
                 - EXPORT_STATUS_DONE: EXPORT_STATUS_DONE is when the export has been successfully completed.
                 - EXPORT_STATUS_ERROR: EXPORT_STATUS_ERROR is when the export has been completed with an error.
            enum:
                - EXPORT_STATUS_UNSPECIFIED
                - EXPORT_STATUS_PENDING
                - EXPORT_STATUS_ONGOING
                - EXPORT_STATUS_DONE
                - EXPORT_STATUS_ERROR
            type: string
        v2FieldAggregation:
            description: |-
                FieldAggregation defines a single aggregation operation to be performed on a specific field.
                It specifies which field to aggregate, an optional alias for the result, and which aggregation function to apply.
            properties:
                alias:
                    description: |-
                        Alias is an optional name to give to the aggregation result.
                        If not provided, a default name will be generated based on the function and field.
                    type: string
                fieldRef:
                    description: |-
                        FieldRef is the reference to the field on which to perform the aggregation.
                        This should be a valid field reference in the format used throughout the API.
                    type: string
                function:
                    $ref: '#/components/schemas/v2AggregationFunction'
            required:
                - fieldRef
                - function
            type: object
        v2FieldCast:
            properties:
                as:
                    $ref: '#/components/schemas/dolmenResourceType'
                ref:
                    type: string
            type: object
        v2FieldRefOption:
            properties:
                fieldName:
                    description: |-
                        FieldName is the name of the field in the export.
                        A simple way to rename columns in the export to ensure the export is user friendly.
                    type: string
                fieldRef:
                    description: FieldRef is the reference to the field in the schema.
                    type: string
                width:
                    description: |-
                        Width is the desired width of the exported column in number of characters.
                        Frontend stores widths in pixels; they must be converted to character units
                        before being sent here.
                        If not provided, the default width will be used.
                        Only supported for XLSX exports.
                    format: int32
                    type: integer
            type: object
        v2FileFormat:
            default: FILE_FORMAT_UNSPECIFIED
            enum:
                - FILE_FORMAT_UNSPECIFIED
                - FILE_FORMAT_CSV
                - FILE_FORMAT_XLSX
            type: string
        v2Filter:
            description: |-
                Filters all rely on field_ref:

                field_ref is a reference to the field in our common domain language.

                Considering the messages:
                MyEntity {
                   MySubEntity sub_message
                }

                MySubEntity {
                   string my_field
                   CustomFields custom_fields
                }

                The field_ref for my_field is "sub_message.my_field".
                For custom field the field ref for a field is the ref for the custom field message + the id of the custom field.
                With a custom_fields having for id "my_custom" declared for the entity,
                it would be: "sub_message.custom_fields.my_custom".
            properties:
                boolean:
                    $ref: '#/components/schemas/v2BooleanComparison'
                existsIn:
                    $ref: '#/components/schemas/v2ExistsIn'
                filterGroup:
                    $ref: '#/components/schemas/v2FilterGroup'
                graphSelf:
                    $ref: '#/components/schemas/v2SelfReferringGraphSearch'
                ltreeSearch:
                    $ref: '#/components/schemas/v2LtreeSearch'
                "null":
                    $ref: '#/components/schemas/v2Null'
                number:
                    $ref: '#/components/schemas/v2NumberComparison'
                people:
                    $ref: '#/components/schemas/v2PeopleSearch'
                population:
                    $ref: '#/components/schemas/v2MyPopulation'
                resource:
                    $ref: '#/components/schemas/v2ResourceSearch'
                string:
                    $ref: '#/components/schemas/v2StringComparison'
                stringIn:
                    $ref: '#/components/schemas/v2StringIn'
                time:
                    $ref: '#/components/schemas/v2TimeComparison'
                "true":
                    $ref: '#/components/schemas/v2True'
                users:
                    $ref: '#/components/schemas/v2UserSearch'
            title: |-
                Filters represents valid operations on fields.
                Today all operation are strictly typed.
                The root query with several filter always apply then with AND operator
            type: object
        v2FilterGroup:
            description: SubWhere allow sending group of filter that behave differently together.
            properties:
                filters:
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                op:
                    $ref: '#/components/schemas/v2FilterGroupOP'
            type: object
        v2FilterGroupOP:
            default: FILTER_GROUP_OP_UNSPECIFIED
            enum:
                - FILTER_GROUP_OP_UNSPECIFIED
                - FILTER_GROUP_OP_AND
                - FILTER_GROUP_OP_OR
                - FILTER_GROUP_OP_NOT
            title: |-
                - FILTER_GROUP_OP_UNSPECIFIED: FILTER_GROUP_OP_UNSPECIFIED default to AND
                 - FILTER_GROUP_OP_AND: FILTER_GROUP_OP_AND all filters must be true together
                 - FILTER_GROUP_OP_OR: FILTER_GROUP_OP_OR one of the filters must be true
                 - FILTER_GROUP_OP_NOT: FILTER_GROUP_OP_NOT all filters must be false together
            type: string
        v2ForcedPlanningValidation:
            properties:
                forcedPlanningAt:
                    format: date-time
                    readOnly: true
                    type: string
                forcedPlanningBy:
                    readOnly: true
                    type: string
                forcedPlanningReason:
                    type: string
            type: object
        v2ForcedSignatureValidation:
            properties:
                forcedSignatureAt:
                    format: date-time
                    readOnly: true
                    type: string
                forcedSignatureBy:
                    readOnly: true
                    type: string
                forcedSignatureReason:
                    type: string
            type: object
        v2Gender:
            default: UNSPECIFIED
            description: |-
                Gender follow standard ISO/IEC 5218 even if, following the standard, it should be referred as SEX...
                We decided to call it gender to soften our speech.
                We are open to change this if you did an advanced documentary research on the matter.
            enum:
                - UNSPECIFIED
                - MALE
                - FEMALE
                - NOT_APPLICABLE
            type: string
        v2GenerateClearancesResponse:
            properties:
                clearanceIds:
                    items:
                        type: string
                    type: array
            required:
                - clearanceIds
            type: object
        v2GenerateEmailConnectResponse:
            properties:
                emailConnectToken:
                    type: string
                user:
                    $ref: '#/components/schemas/v2Person'
            type: object
        v2GetAttendanceSheetResponse:
            properties:
                companyId:
                    type: string
                orderAttendees:
                    items:
                        $ref: '#/components/schemas/v2MinimalUser'
                    type: array
                orderName:
                    type: string
                sessionAddress:
                    type: string
                sessionAttendanceSignature:
                    $ref: '#/components/schemas/v2SessionAttendanceSignature'
                sessionEnd:
                    format: date-time
                    type: string
                sessionName:
                    type: string
                sessionPresentAttendees:
                    items:
                        type: string
                    type: array
                sessionStart:
                    format: date-time
                    type: string
            required:
                - orderName
                - sessionName
                - sessionAttendanceSignature
            type: object
        v2GetClearanceSheetResponse:
            properties:
                achievedCertifications:
                    items:
                        $ref: '#/components/schemas/v2AchievedCertificationAggregate'
                    type: array
                certifications:
                    items:
                        $ref: '#/components/schemas/v2TrainingCertificationAggregate'
                    type: array
                clearance:
                    $ref: '#/components/schemas/v2ClearanceAggregate'
                medicExam:
                    $ref: '#/components/schemas/v2AchievedMedicExamAggregate'
                userJobName:
                    type: string
            required:
                - clearance
                - userJobName
            type: object
        v2GetInterviewCalendarEventResponse:
            properties:
                weblink:
                    type: string
            type: object
        v2GetMusicResponse:
            properties:
                style:
                    $ref: '#/components/schemas/v2MusicStyle'
            type: object
        v2GetOrderRealSessionCalendarEventResponse:
            properties:
                weblink:
                    type: string
            type: object
        v2GetScaleUsedValuesResponse:
            properties:
                values:
                    items:
                        format: int32
                        type: integer
                    type: array
            type: object
        v2Goal:
            description: |-
                Goal represents a goal definition and content.
                It can only exists within a folder.
            properties:
                folderIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                goalContent:
                    $ref: '#/components/schemas/v2GoalContent'
                goalNode:
                    $ref: '#/components/schemas/v2GoalNode'
            type: object
        v2GoalContent:
            properties:
                archived:
                    description: Archived is a soft delete field.
                    type: boolean
                description:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion.
                        It'll take a goal ID as value.
                    readOnly: true
                    type: string
                type:
                    $ref: '#/components/schemas/v2GoalType'
            type: object
        v2GoalEvaluation:
            properties:
                answerer:
                    $ref: '#/components/schemas/v2Answerer'
                answererId:
                    readOnly: true
                    type: string
                assessedId:
                    readOnly: true
                    type: string
                campaignId:
                    readOnly: true
                    type: string
                companyId:
                    description: CompanyId is filled with authentication session information.
                    readOnly: true
                    type: string
                extraText:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                interviewId:
                    description: InterviewId may be optional as skill evaluation may be done out of an interview context.
                    type: string
                normalizedPercentage:
                    format: double
                    readOnly: true
                    title: |-
                        NormalizedPercentage is a percentage computed based on the type of the associated target.
                        The calculation is done for each goal type as follow:
                        - boolean: the percentage is set to 0% when false, 100% when true
                        - satisfaction: the percentage equals the value
                        - percentage: the percentage equals the value
                        - number: the percentage is calculated based on the target expectation and the evaluation's value
                    type: number
                targetId:
                    type: string
                value:
                    description: |-
                        Value is the notation given for the evaluation.
                        It'll be validated differently depending on the target type.
                        It can be null so that at first, an extra text can be put without the answer.
                        Though in interview context, the value must be set before being able to validate the interview.
                    format: double
                    type: number
            required:
                - targetId
            type: object
        v2GoalEvaluationHistoric:
            properties:
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                evaluationAssessed:
                    $ref: '#/components/schemas/v2GoalEvaluation'
                evaluationAssessor:
                    $ref: '#/components/schemas/v2GoalEvaluation'
                goal:
                    $ref: '#/components/schemas/v2GoalNode'
                goalContent:
                    $ref: '#/components/schemas/v2GoalContent'
                goalFreeze:
                    $ref: '#/components/schemas/v2InterviewGoalFreeze'
                goalTarget:
                    $ref: '#/components/schemas/v2Target'
                interview:
                    $ref: '#/components/schemas/v2Interview'
            type: object
        v2GoalFolder:
            description: |-
                GoalFolder is a directory for goals in this context.
                There can only be a specific folder depth available, you can't create more than 5 level of folders.
            properties:
                goalNode:
                    $ref: '#/components/schemas/v2GoalNode'
            type: object
        v2GoalNode:
            description: |-
                GoalNode is a representation of a node stored in database.
                It can either be a goal or a folder.
            properties:
                headers:
                    $ref: '#/components/schemas/v2Headers'
                node:
                    $ref: '#/components/schemas/treeNode'
                sharing:
                    $ref: '#/components/schemas/v2Sharing'
            type: object
        v2GoalTarget:
            properties:
                expectationIsEditable:
                    readOnly: true
                    type: boolean
                folderIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                goalContent:
                    $ref: '#/components/schemas/v2GoalContent'
                goalNode:
                    $ref: '#/components/schemas/v2GoalNode'
                lastGoalEvaluation:
                    $ref: '#/components/schemas/v2GoalEvaluation'
                target:
                    $ref: '#/components/schemas/v2Target'
            type: object
        v2GoalTargetFreeze:
            properties:
                expectationIsEditable:
                    readOnly: true
                    type: boolean
                goalContent:
                    $ref: '#/components/schemas/v2GoalContent'
                goalNode:
                    $ref: '#/components/schemas/v2GoalNode'
                interviewGoalFreeze:
                    $ref: '#/components/schemas/v2InterviewGoalFreeze'
                target:
                    $ref: '#/components/schemas/v2Target'
            type: object
        v2GoalType:
            default: GOAL_TYPE_UNSPECIFIED
            description: GoalType represent the evaluation method or a given goal.
            enum:
                - GOAL_TYPE_UNSPECIFIED
                - GOAL_TYPE_BOOLEAN
                - GOAL_TYPE_SATISFACTION
                - GOAL_TYPE_PERCENTAGE
                - GOAL_TYPE_NUMBER
            type: string
        v2GroupRef:
            properties:
                fieldRef:
                    description: |-
                        FieldRef is the reference to the field on which to group by.
                        This should be a valid field reference in the format used throughout the API.
                    type: string
                granularity:
                    $ref: '#/components/schemas/commonsPeriod'
            required:
                - fieldRef
            type: object
        v2Headers:
            description: |-
                Headers are traditional fields for all resources.
                Those are used for audit and tracking purposes.
                None of them is required and you can ignore them when starting to use the api.
            properties:
                createProcessId:
                    description: |-
                        CreateProcessId is an id of a resource that created this header.
                        It can be used to add context for the origin of the data.
                    readOnly: true
                    type: string
                createdAt:
                    description: Creation time for resource.
                    format: date-time
                    readOnly: true
                    type: string
                createdBy:
                    description: |-
                        CreatedBy represent the actor that created the resource.
                        For people the prefix is "urn:empowill:person:" followed by a person id.
                        For client the prefix is "urn:empowill:oauth:client:" followed by a client id.
                    readOnly: true
                    type: string
                isV1:
                    description: |-
                        IsV1 marks the resource as a migrated resource from the v1.
                        It defaults to false and is set to true when a resource is created/updated by a specific client.
                    readOnly: true
                    type: boolean
                updateProcessId:
                    description: UpdateProcessId is an id of a resource that updated this header.
                    readOnly: true
                    type: string
                updatedAt:
                    description: Update time for resource, default on creation time the first time.
                    format: date-time
                    readOnly: true
                    type: string
                updatedBy:
                    description: |-
                        UpdatedBy represent the last actor modifying the resource.
                        For people the prefix is "urn:empowill:person:" followed by a person id.
                        For client the prefix is "urn:empowill:oauth:client:" followed by a client id.
                    readOnly: true
                    type: string
            type: object
        v2Import:
            properties:
                companyId:
                    description: CompanyId is the company for which an import has been required/done.
                    type: string
                end:
                    description: End represents the time when the import finish running (either with an error or not).
                    format: date-time
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: Id is a unique identifier generated at insertion.
                    type: string
                inputPath:
                    description: InputPath is the GCS path of the import input matrix, set when the input location is known.
                    readOnly: true
                    type: string
                planningEnd:
                    format: date-time
                    readOnly: true
                    type: string
                planningStart:
                    format: date-time
                    readOnly: true
                    type: string
                source:
                    $ref: '#/components/schemas/v2ImportSource'
                start:
                    description: Start represents the time when the import starts running.
                    format: date-time
                    readOnly: true
                    type: string
                status:
                    $ref: '#/components/schemas/v2ImportStatus'
                transformedInput:
                    description: TransformedInput contains a path on where the csv input has been enriched with errors and IDs.
                    readOnly: true
                    type: string
                transformedLineCount:
                    description: TransformedLineCount is set when ONGOING starts (after extract), for file and bulk update.
                    format: int32
                    readOnly: true
                    type: integer
                type:
                    $ref: '#/components/schemas/v2ImportType'
                userId:
                    description: UserId is the user's ID who requested the import.
                    type: string
            required:
                - companyId
                - userId
                - type
            type: object
        v2ImportAggregate:
            properties:
                import:
                    $ref: '#/components/schemas/v2Import'
            type: object
        v2ImportSource:
            default: IMPORT_SOURCE_UNSPECIFIED
            enum:
                - IMPORT_SOURCE_UNSPECIFIED
                - IMPORT_SOURCE_FILE
                - IMPORT_SOURCE_BULK_UPDATE
            type: string
        v2ImportStatus:
            default: IMPORT_STATUS_UNSPECIFIED
            description: |4-
                 - IMPORT_STATUS_PENDING: IMPORT_STATUS_PENDING is when the import has been created but not started yet.
                 - IMPORT_STATUS_ONGOING: IMPORT_STATUS_ONGOING is when the import is currently running.
                 - IMPORT_STATUS_DONE: IMPORT_STATUS_DONE is when the import has been successfully completed.
                 - IMPORT_STATUS_ERROR: IMPORT_STATUS_ERROR is when the import has been completed with an error.
                 - IMPORT_STATUS_PLANNING: IMPORT_STATUS_PLANNING is when a bulk-update job prepares export + input file.
            enum:
                - IMPORT_STATUS_UNSPECIFIED
                - IMPORT_STATUS_PENDING
                - IMPORT_STATUS_ONGOING
                - IMPORT_STATUS_DONE
                - IMPORT_STATUS_ERROR
                - IMPORT_STATUS_PLANNING
            type: string
        v2ImportType:
            default: IMPORT_TYPE_UNSPECIFIED
            enum:
                - IMPORT_TYPE_UNSPECIFIED
                - IMPORT_TYPE_USERS
                - IMPORT_TYPE_NOTES
                - IMPORT_TYPE_USERS_CONTRACTS
                - IMPORT_TYPE_ROLES
                - IMPORT_TYPE_THEMATICS
                - IMPORT_TYPE_SKILLS
                - IMPORT_TYPE_JOBS
                - IMPORT_TYPE_LINK_JOBS_SKILLS
                - IMPORT_TYPE_ACHIEVED_INTERVIEWS
                - IMPORT_TYPE_GOAL_FOLDERS
                - IMPORT_TYPE_GOALS
                - IMPORT_TYPE_GOAL_TARGETS
                - IMPORT_TYPE_GOAL_FIXATION
                - IMPORT_TYPE_TRAINING_CERTIFICATIONS
                - IMPORT_TYPE_TRAINING_ACHIEVED_CERTIFICATIONS
                - IMPORT_TYPE_TRAINING_PROVIDERS
                - IMPORT_TYPE_TRAININGS
                - IMPORT_TYPE_TRAINING_ORDER_REALS
                - IMPORT_TYPE_TRAINING_ORDER_REAL_ATTENDEES
                - IMPORT_TYPE_TRAINING_ORDER_PROVISIONAL_ATTENDEES
                - IMPORT_TYPE_TRAINING_ORDER_PROVISIONALS
                - IMPORT_TYPE_TRAINING_REQUESTS
                - IMPORT_TYPE_ACHIEVED_MEDIC_EXAMS
            title: |-
                - IMPORT_TYPE_USERS: syn 1 -> 100
                 - IMPORT_TYPE_THEMATICS: qollectiv 101 -> 200
                 - IMPORT_TYPE_TRAINING_CERTIFICATIONS: trainsmith 201 -> 300
            type: string
        v2Interview:
            properties:
                assessedEditionAllowedBy:
                    description: |-
                        AssessedEditionAllowedBy is used to allow the assessed to edit their answers when they otherwise shouldn't such
                        as after preparation phase.
                    readOnly: true
                    type: string
                assessedId:
                    description: |-
                        AssessedId is the person being evaluated.
                        It represent the participant to a campaign.
                    type: string
                assessorId:
                    description: |-
                        AssessorId is the main evaluator for the interview. he his responsible for the session and can drive the interview.
                        It can be changed only until signature state excluded.
                    type: string
                calendarEvent:
                    $ref: '#/components/schemas/v2CalendarEvent'
                campaignId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                forcedPlanningValidation:
                    $ref: '#/components/schemas/v2ForcedPlanningValidation'
                forcedSignatureValidation:
                    $ref: '#/components/schemas/v2ForcedSignatureValidation'
                goalEvaluationNumber:
                    description: Goal evaluation summary when status is DONE. Cleared on status rollback.
                    format: int32
                    readOnly: true
                    type: integer
                goalEvaluationPercentage:
                    format: double
                    readOnly: true
                    type: number
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                interviewSummaryId:
                    description: |-
                        InterviewSummaryId links to the AI-generated InterviewSummary artifact.
                        Set at the same time as markdown by UpdateInterviewMarkdown.
                    readOnly: true
                    type: string
                lastReminderSent:
                    description: LastReminderSent is the last reminder sent date of the interview.
                    format: date-time
                    readOnly: true
                    type: string
                markdown:
                    description: |-
                        Markdown is the link pointing to the interview's markdown file.
                        It is only computed in backend and will be a BLOB link.
                    readOnly: true
                    type: string
                pdf:
                    description: |-
                        PDF is the link pointing to the interview's pdf.
                        It is only computed in backend and will be a BLOB link.
                    readOnly: true
                    type: string
                secondaryAssessors:
                    $ref: '#/components/schemas/v2SecondaryAssessors'
                secondaryAssessorsValidations:
                    $ref: '#/components/schemas/v2SecondaryAssessorValidations'
                sessionInterviewEnd:
                    description: |-
                        SessionInterviewEnd is the end date of the interview.
                        Filled only when the interview reach the state INTERVIEW_STATUS_DONE.
                    format: date-time
                    readOnly: true
                    type: string
                sessionInterviewStart:
                    description: |-
                        SessionInterviewStart is the start date of the interview from the state INTERVIEW_STATUS_INTERVIEW.
                        Filled only when the interview reach this state, this field can be null.
                    format: date-time
                    readOnly: true
                    type: string
                sessionTime:
                    description: |-
                        SessionTime is the start date of the interview including planning phase.
                        Filled when created, this field is never null.
                    format: date-time
                    readOnly: true
                    type: string
                status:
                    $ref: '#/components/schemas/v2InterviewStatus'
                statusBeforeCancel:
                    $ref: '#/components/schemas/v2InterviewStatus'
                validation:
                    $ref: '#/components/schemas/v2Validations'
            required:
                - assessorId
            type: object
        v2InterviewAnswer:
            properties:
                answer:
                    $ref: '#/components/schemas/v2Answer'
                interview:
                    $ref: '#/components/schemas/v2Interview'
                kind:
                    $ref: '#/components/schemas/v2CampaignKind'
            type: object
        v2InterviewGoalFreeze:
            description: |-
                InterviewGoalFreeze represents goals targets that are frozen when an interview is launched for a goal evaluation.
                The data is generated on backend side so all fields are immutable.
            properties:
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                interviewId:
                    readOnly: true
                    type: string
                targetId:
                    readOnly: true
                    type: string
                weight:
                    description: Weight is the weight for evaluation applied for this target.
                    format: double
                    type: number
            type: object
        v2InterviewReminder:
            properties:
                interview:
                    $ref: '#/components/schemas/v2Interview'
                reminder:
                    $ref: '#/components/schemas/v2ReminderSent'
            type: object
        v2InterviewSecondaryAssessment:
            properties:
                comment:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                interviewId:
                    type: string
                userId:
                    type: string
            type: object
        v2InterviewSession:
            properties:
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                conclusionIds:
                    description: ConclusionIds are the ids of the conclusions written for this interview.
                    items:
                        type: string
                    readOnly: true
                    type: array
                interview:
                    $ref: '#/components/schemas/v2Interview'
            type: object
        v2InterviewSessionWithContent:
            properties:
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                content:
                    $ref: '#/components/schemas/v2CampaignContent'
                interview:
                    $ref: '#/components/schemas/v2Interview'
            type: object
        v2InterviewSkillEvaluation:
            properties:
                interview:
                    $ref: '#/components/schemas/v2Interview'
                kind:
                    $ref: '#/components/schemas/v2CampaignKind'
                skillEvaluation:
                    $ref: '#/components/schemas/v2SkillEvaluation'
            type: object
        v2InterviewSkillFreeze:
            description: |-
                InterviewSkillFreeze represents skills that are frozen when an interview is validated (either by the assessor or assessed).
                The data is generated on backend side so all fields are immutable.
            properties:
                companyId:
                    readOnly: true
                    type: string
                flexiUserId:
                    description: |-
                        FlexiUserId is the subject of the user who added this skill via AddSkillsToInterview.
                        It is nil for skills frozen through the normal interview lifecycle.
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                interviewId:
                    readOnly: true
                    type: string
                jobId:
                    readOnly: true
                    type: string
                skillId:
                    readOnly: true
                    type: string
            type: object
        v2InterviewStatus:
            default: INTERVIEW_STATUS_UNSPECIFIED
            enum:
                - INTERVIEW_STATUS_UNSPECIFIED
                - INTERVIEW_STATUS_PLANNING
                - INTERVIEW_STATUS_INTERVIEW
                - INTERVIEW_STATUS_SIGNATURE
                - INTERVIEW_STATUS_DONE
                - INTERVIEW_STATUS_CANCELLED
            type: string
        v2InterviewSummary:
            description: |-
                InterviewSummary is an AI-generated analysis of a completed interview.
                Its ID is deterministic: "itw-s-" + interview_id.
            properties:
                companyId:
                    description: Company owning the interview.
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: Deterministic ID derived from the interview ID ("itw-s-" + interview_id).
                    type: string
                improvements:
                    description: |-
                        Areas for improvement identified during the interview,
                        attributed to assessed, assessor, or both.
                    items:
                        type: string
                    readOnly: true
                    type: array
                interviewId:
                    description: The interview this summary was generated from.
                    type: string
                psychosocialRiskReport:
                    description: Psychosocial risk report from the AI analysis.
                    readOnly: true
                    type: string
                psychosocialRiskScore:
                    description: Psychosocial risk score from 0 to 100 based on psychosocial and social risk analysis.
                    format: int32
                    readOnly: true
                    type: integer
                recommendations:
                    description: |-
                        AI-driven career development recommendations grounded
                        in points raised during the interview.
                    items:
                        type: string
                    readOnly: true
                    type: array
                recommendedActions:
                    description: |-
                        Concrete, actionable items for HR follow-up.
                        Empty when no follow-up is needed.
                    items:
                        type: string
                    readOnly: true
                    type: array
                score:
                    description: AI-generated score from 0 to 100 based on configurable scoring criteria.
                    format: int32
                    readOnly: true
                    type: integer
                strengths:
                    description: |-
                        Key strengths identified during the interview,
                        attributed to assessed, assessor, or both.
                    items:
                        type: string
                    readOnly: true
                    type: array
                summary:
                    description: |-
                        Overall synthesis of the interview (4-5 lines), capturing tone,
                        key outcomes, and general assessment.
                    readOnly: true
                    type: string
                verbatims:
                    $ref: '#/components/schemas/v2InterviewVerbatims'
            type: object
        v2InterviewSummaryAggregate:
            properties:
                interviewSummary:
                    $ref: '#/components/schemas/v2InterviewSummary'
            type: object
        v2InterviewType:
            properties:
                archived:
                    description: Archived is a soft delete field.
                    type: boolean
                companyId:
                    readOnly: true
                    type: string
                endValidityAlert:
                    description: |-
                        How long before expiration should admins be alerted that an employee needs to pass an interview again.
                        Example: John passes an interview of type "yearly interview" on 2000-05-01.
                        Yearly interviews have a validity period of 12 months and end of validity alert of 1 month.
                        John's interview will be valid until 2001-05-01 and admins will be alerted that John needs to renew his yearly interview on 2000-04-01.
                        Defaults to 0, which means no alert.
                        In payload if end validity alert is superior at validity period month,
                        the end validity alert value will be reasigned to validity period month.
                    format: int32
                    type: integer
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                required:
                    description: |-
                        Interviews are typically marked as required,
                        when there is a legal obligation for employees to pass them.
                        They are put forward by the app to help work on them in priority.
                    type: boolean
                validityPeriodMonth:
                    description: |-
                        Period during which an interview is considered to be valid,
                        after which the given employee needs to pass it again.
                        Defaults to 0, which means this interview type never expires.
                    format: int32
                    type: integer
            required:
                - name
            type: object
        v2InterviewTypeAggregate:
            properties:
                achievedInterviewTypeStatus:
                    $ref: '#/components/schemas/v2AggregatedInterviewTypeStatus'
                interviewType:
                    $ref: '#/components/schemas/v2InterviewType'
            type: object
        v2InterviewTypeStatus:
            default: INTERVIEW_TYPE_STATUS_UNSPECIFIED
            enum:
                - INTERVIEW_TYPE_STATUS_UNSPECIFIED
                - INTERVIEW_TYPE_STATUS_NEVER_OBTAINED
                - INTERVIEW_TYPE_STATUS_UP_TO_DATE
                - INTERVIEW_TYPE_STATUS_EXPIRING_SOON
                - INTERVIEW_TYPE_STATUS_EXPIRED
            title: |-
                - INTERVIEW_TYPE_STATUS_NEVER_OBTAINED: An interview type has never been obtained when no employee has completed this interview type
                 - INTERVIEW_TYPE_STATUS_UP_TO_DATE: An interview type is up to date if no employee is assigned to it, or if the interview type has no validity period
                 - INTERVIEW_TYPE_STATUS_EXPIRING_SOON: An interview type is expiring soon when at least one employee's interview is approaching expiration
                 - INTERVIEW_TYPE_STATUS_EXPIRED: An interview type is expired when at least one employee's interview has expired
            type: string
        v2InterviewVerbatims:
            description: InterviewVerbatims wraps a list of verbatims for JSONB storage.
            properties:
                items:
                    items:
                        $ref: '#/components/schemas/v2Verbatim'
                    type: array
            type: object
        v2IsAIUsageExhaustedResponse:
            properties:
                annualLimit:
                    description: Annual AI cap allowed by the company's contract.
                    format: double
                    type: number
                exhausted:
                    type: boolean
                nextReset:
                    description: |-
                        Date at which the AI usage counter is reset, i.e. the start of the next
                        contract year (next anniversary of the contract signature date).
                    format: date-time
                    type: string
                yearUsage:
                    description: |-
                        AI usage accumulated since the start of the current contract year.
                        The contract year starts on the company's contract signature date and
                        rolls over on each anniversary.
                    format: double
                    type: number
            type: object
        v2Job:
            properties:
                archived:
                    description: Archived means it will not show in job list by default.
                    type: boolean
                companyId:
                    description: CompanyID is the id of the related company.
                    readOnly: true
                    type: string
                description:
                    description: Description hold markdown text explaining the job context and expectation.
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: Immutable UUID v4 generated at insertion.
                    type: string
                name:
                    type: string
            required:
                - name
            type: object
        v2JobAdequation:
            description: |-
                JobAdequation is a read-only virtual aggregate (user x job) built from
                job_skill_adequation rows. Every column is a virtual field and the GROUP BY
                query is provided through a prepared DB: it has no table of its own and is
                never an artefact (so virtual fields are honored by schema.New).
            properties:
                assessedId:
                    type: string
                companyId:
                    type: string
                evaluatedSkillsCount:
                    format: int32
                    type: integer
                id:
                    type: string
                jobId:
                    type: string
                matchScorePct:
                    format: float
                    type: number
                totalSkillsCount:
                    format: int32
                    type: integer
            type: object
        v2JobSkillAdequation:
            properties:
                assessedId:
                    type: string
                companyId:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                jobSkillId:
                    type: string
                skillEvaluationId:
                    description: 'Nullable: NULL means the user is in scope for the job but has not evaluated this skill.'
                    type: string
            type: object
        v2JobSkillAdequationAggregate:
            properties:
                jobSkill:
                    $ref: '#/components/schemas/v2JobSkills'
                jobSkillAdequation:
                    $ref: '#/components/schemas/v2JobSkillAdequation'
                percentage:
                    format: float
                    type: number
                skillEvaluation:
                    $ref: '#/components/schemas/v2SkillEvaluation'
            type: object
        v2JobSkills:
            properties:
                companyId:
                    readOnly: true
                    type: string
                expectedScaleOptionId:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                jobId:
                    type: string
                skillId:
                    type: string
            required:
                - id
                - jobId
                - skillId
            type: object
        v2JobSkillsThematic:
            properties:
                skillCount:
                    $ref: '#/components/schemas/v2SkillCount'
                skillNode:
                    $ref: '#/components/schemas/v2SkillNode'
            type: object
        v2KindSpecificInfo:
            properties:
                trainingSurvey:
                    $ref: '#/components/schemas/v2TrainingSurveyInfo'
            type: object
        v2LaunchMode:
            default: LAUNCH_MODE_UNSPECIFIED
            description: LaunchMode specifies how a campaign's interview sessions are scheduled.
            enum:
                - LAUNCH_MODE_UNSPECIFIED
                - LAUNCH_MODE_FIXED
                - LAUNCH_MODE_RELATIVE
            type: string
        v2Life:
            properties:
                activities:
                    $ref: '#/components/schemas/v2PoleActivities'
                companyId:
                    description: CompanyID is the id of the related company.
                    readOnly: true
                    type: string
                conclusion:
                    description: |-
                        Conclusion represent a structured text in markdown about the given life experience feedback.
                        Set to a null string if the life is not a matched life (LifeMatchId is empty).
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: Immutable UUID v4 generated at insertion.
                    type: string
                lifeMatchId:
                    description: |-
                        LifeMatchId is the corresponding life matched with the current life.
                        When present It always represent the opposite share vs seek.
                    readOnly: true
                    type: string
                mode:
                    $ref: '#/components/schemas/v2LifeMode'
                nps:
                    description: |-
                        Nps is the answer to "How much would you recommend to live a life to your colleagues ?"
                        Set to null if the life is not a matched life (LifeMatchId is empty).
                    format: int32
                    readOnly: true
                    type: integer
                status:
                    $ref: '#/components/schemas/v2LifeStatus'
                userId:
                    type: string
            required:
                - activities
            type: object
        v2LifeMode:
            default: LIFE_MODE_UNSPECIFIED
            enum:
                - LIFE_MODE_UNSPECIFIED
                - LIFE_MODE_SHARING
                - LIFE_MODE_SEEKING
            type: string
        v2LifeStatus:
            default: LIFE_STATUS_UNSPECIFIED
            enum:
                - LIFE_STATUS_UNSPECIFIED
                - LIFE_STATUS_UNMATCHED
                - LIFE_STATUS_MATCHED
                - LIFE_STATUS_CLOSED
            type: string
        v2Link:
            properties:
                value:
                    type: string
            type: object
        v2LinkJobSkillRequest:
            properties:
                jobId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - jobId
            type: object
        v2LinkJobSkillResponse:
            properties:
                jobSkills:
                    items:
                        $ref: '#/components/schemas/v2JobSkills'
                    type: array
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListAIBillingUsageResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                usage:
                    items:
                        $ref: '#/components/schemas/v2AIBillingUsage'
                    type: array
            type: object
        v2ListAccountsResponse:
            properties:
                accounts:
                    items:
                        $ref: '#/components/schemas/v2Account'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListAchievedCertificationsResponse:
            properties:
                achievedCertifications:
                    items:
                        $ref: '#/components/schemas/v2AchievedCertificationAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - achievedCertifications
            type: object
        v2ListAchievedInterviewsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListAchievedInterviewsResponse:
            properties:
                achievedInterviews:
                    items:
                        $ref: '#/components/schemas/v2AchievedInterviewAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - achievedInterviews
            type: object
        v2ListAchievedMedicExamsResponse:
            properties:
                achievedMedicExams:
                    items:
                        $ref: '#/components/schemas/v2AchievedMedicExamAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - achievedMedicExams
            type: object
        v2ListActionCategoriesResponse:
            properties:
                actionCategories:
                    items:
                        $ref: '#/components/schemas/v2ActionCategoryAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListActionsResponse:
            properties:
                actions:
                    items:
                        $ref: '#/components/schemas/v2ActionAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListAnswersHistoricRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListAnswersHistoricResponse:
            properties:
                answersHistoric:
                    items:
                        $ref: '#/components/schemas/v2AnswerHistoric'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - answersHistoric
            type: object
        v2ListAnswersRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListAnswersResponse:
            properties:
                answers:
                    items:
                        $ref: '#/components/schemas/v2Answer'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - answers
            type: object
        v2ListAssessedGoalsEvaluationsHistoricRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListAssessedGoalsEvaluationsHistoricResponse:
            properties:
                assessedGoalsEvaluations:
                    items:
                        $ref: '#/components/schemas/v2GoalEvaluationHistoric'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - assessedGoalsEvaluations
            type: object
        v2ListAssessedNotesRequest:
            properties:
                categoryId:
                    type: string
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
                - categoryId
            type: object
        v2ListAssessedNotesResponse:
            properties:
                noteCategory:
                    $ref: '#/components/schemas/v2NoteCategory'
                notes:
                    items:
                        $ref: '#/components/schemas/v2Note'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListAssessedSessionHistoricRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListAssessedSkillEvaluationsHistoricRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
                - page
            type: object
        v2ListAssessedSkillEvaluationsHistoricResponse:
            properties:
                assessedSkillEvaluation:
                    items:
                        $ref: '#/components/schemas/v2SkillEvaluationHistoric'
                    type: array
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListAxesResponse:
            properties:
                axes:
                    items:
                        $ref: '#/components/schemas/v2PeopleReviewAxisAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListAxisQuestionEvaluationRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListAxisQuestionEvaluationResponse:
            properties:
                evaluations:
                    items:
                        $ref: '#/components/schemas/v2AxisQuestionEvaluationAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListAxisQuestionsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                questions:
                    items:
                        $ref: '#/components/schemas/v2AxisQuestionAggregate'
                    type: array
            type: object
        v2ListAxisScoresRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListAxisScoresResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                scores:
                    items:
                        $ref: '#/components/schemas/v2AxisScoreAggregate'
                    type: array
            type: object
        v2ListCampaignAggregateResponse:
            properties:
                campaigns:
                    description: list of campaigns resulting form the search.
                    items:
                        $ref: '#/components/schemas/v2CampaignAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - campaigns
            type: object
        v2ListCampaignRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListCampaignResponse:
            properties:
                campaigns:
                    description: list of campaigns resulting form the search.
                    items:
                        $ref: '#/components/schemas/v2Campaign'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - campaigns
            type: object
        v2ListCampaignTemplateRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListCampaignTemplateResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                templates:
                    items:
                        $ref: '#/components/schemas/v2CampaignTemplateAggregate'
                    type: array
            type: object
        v2ListClearanceTemplatesResponse:
            properties:
                clearanceTemplates:
                    items:
                        $ref: '#/components/schemas/v2ClearanceTemplateAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - clearanceTemplates
            type: object
        v2ListClearancesResponse:
            properties:
                clearances:
                    items:
                        $ref: '#/components/schemas/v2ClearanceAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - clearances
            type: object
        v2ListCommentsResponse:
            properties:
                comments:
                    items:
                        $ref: '#/components/schemas/v2TrainingRequestCommentAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - comments
            type: object
        v2ListCompaniesResponse:
            properties:
                companies:
                    description: list of companies resulting form the search.
                    items:
                        $ref: '#/components/schemas/v2Company'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - companies
            type: object
        v2ListCompanyAccessGrantsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                requests:
                    items:
                        $ref: '#/components/schemas/v2CompanyAccessGrantAggregate'
                    type: array
            type: object
        v2ListConclusionsRequest:
            properties:
                interviewId:
                    description: |-
                        InterviewId scopes the conclusions to a single interview.
                        When empty, conclusions of every interview session visible to the caller
                        are listed, but the conclusion text and signature image are not returned.
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListConclusionsResponse:
            properties:
                conclusions:
                    items:
                        $ref: '#/components/schemas/v2Conclusion'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - conclusions
            type: object
        v2ListContractHistoryRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
                - page
            type: object
        v2ListCustomFieldsInfosResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                schema:
                    items:
                        $ref: '#/components/schemas/v2CustomFieldInfo'
                    type: array
            type: object
        v2ListEmployeesToCertifyResponse:
            properties:
                employeesLastCertification:
                    items:
                        $ref: '#/components/schemas/v2EmployeeLastCertification'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - employeesLastCertification
            type: object
        v2ListEmployeesToInterviewTypeRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListEmployeesToInterviewTypeResponse:
            properties:
                employeesToInterviewType:
                    items:
                        $ref: '#/components/schemas/v2EmployeeToInterviewTypeAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - employeesToInterviewType
            type: object
        v2ListEmployeesToMedicExamResponse:
            properties:
                employeesLastMedicExam:
                    items:
                        $ref: '#/components/schemas/v2EmployeeLastMedicExam'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - employeesLastMedicExam
            type: object
        v2ListExportCommandResponse:
            properties:
                exportCommands:
                    items:
                        $ref: '#/components/schemas/v2ExportCommand'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListGoalEvaluationsHistoricRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListGoalEvaluationsHistoricResponse:
            properties:
                goalEvals:
                    items:
                        $ref: '#/components/schemas/v2GoalEvaluationHistoric'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListGoalFolderResponse:
            properties:
                goalFolders:
                    items:
                        $ref: '#/components/schemas/v2GoalFolder'
                    type: array
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListGoalResponse:
            properties:
                goals:
                    items:
                        $ref: '#/components/schemas/v2Goal'
                    type: array
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListGoalsEvaluationsRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListGoalsEvaluationsResponse:
            properties:
                goalsEvaluations:
                    items:
                        $ref: '#/components/schemas/v2GoalEvaluation'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - goalsEvaluations
            type: object
        v2ListGoalsFoldersRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListGoalsRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListGoalsTargetsFixationRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListGoalsTargetsFreezeRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
                - page
            type: object
        v2ListGoalsTargetsFreezeResponse:
            properties:
                goalsTargets:
                    items:
                        $ref: '#/components/schemas/v2GoalTargetFreeze'
                    type: array
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListGoalsTargetsResponse:
            properties:
                goalsTargets:
                    items:
                        $ref: '#/components/schemas/v2GoalTarget'
                    type: array
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListImportsResponse:
            properties:
                imports:
                    description: list of companies resulting form the search.
                    items:
                        $ref: '#/components/schemas/v2ImportAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - imports
            type: object
        v2ListInterviewSecondaryAssessmentsRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListInterviewSecondaryAssessmentsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                secondaryAssessments:
                    items:
                        $ref: '#/components/schemas/v2SecondaryAssessmentAggregate'
                    type: array
            required:
                - secondaryAssessments
            type: object
        v2ListInterviewSessionRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListInterviewSessionResponse:
            properties:
                interviews:
                    items:
                        $ref: '#/components/schemas/v2InterviewSession'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListInterviewSummariesRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListInterviewSummariesResponse:
            properties:
                interviewSummaries:
                    items:
                        $ref: '#/components/schemas/v2InterviewSummaryAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - interviewSummaries
            type: object
        v2ListInterviewTypeRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListInterviewTypeResponse:
            properties:
                interviewTypes:
                    items:
                        $ref: '#/components/schemas/v2InterviewTypeAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - interviewTypes
            type: object
        v2ListJobAdequationsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListJobAdequationsResponse:
            properties:
                adequations:
                    items:
                        $ref: '#/components/schemas/v2JobAdequation'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListJobIdsForJobSkillsResponse:
            properties:
                jobIds:
                    items:
                        type: string
                    type: array
            type: object
        v2ListJobIdsForSkillsResponse:
            properties:
                jobIds:
                    items:
                        type: string
                    type: array
            type: object
        v2ListJobSkillAdequationsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListJobSkillAdequationsResponse:
            properties:
                adequations:
                    items:
                        $ref: '#/components/schemas/v2JobSkillAdequationAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListJobSkillsRequest:
            properties:
                jobId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - jobId
            type: object
        v2ListJobSkillsResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                skills:
                    items:
                        $ref: '#/components/schemas/v2ExpectedSkill'
                    type: array
            type: object
        v2ListJobSkillsThematicsRequest:
            properties:
                jobId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - jobId
            type: object
        v2ListJobSkillsThematicsResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                thematics:
                    items:
                        $ref: '#/components/schemas/v2JobSkillsThematic'
                    type: array
            type: object
        v2ListJobsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListJobsResponse:
            properties:
                jobs:
                    items:
                        $ref: '#/components/schemas/v2Job'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListMatricesResponse:
            properties:
                matrices:
                    items:
                        $ref: '#/components/schemas/v2PeopleReviewMatrixAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListMatrixCellsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListMatrixCellsResponse:
            properties:
                cells:
                    items:
                        $ref: '#/components/schemas/v2PeopleReviewMatrixCellAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListMedicExamTypesResponse:
            properties:
                medicExamTypes:
                    items:
                        $ref: '#/components/schemas/v2MedicExamTypeAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - medicExamTypes
            type: object
        v2ListMinimalUsersResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                users:
                    items:
                        $ref: '#/components/schemas/v2MinimalUser'
                    type: array
            type: object
        v2ListNewsResponse:
            properties:
                newsFeed:
                    description: News feed items for the current company.
                    items:
                        $ref: '#/components/schemas/v2NewsFeed'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - newsFeed
            type: object
        v2ListNoteAggregateResponse:
            properties:
                notes:
                    items:
                        $ref: '#/components/schemas/v2NoteAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - notes
            type: object
        v2ListNoteCategoryResponse:
            properties:
                notesCategories:
                    items:
                        $ref: '#/components/schemas/v2NoteCategory'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - notesCategories
            type: object
        v2ListNoteResponse:
            properties:
                notes:
                    items:
                        $ref: '#/components/schemas/v2Note'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - notes
            type: object
        v2ListOauthClientResponse:
            properties:
                clients:
                    items:
                        $ref: '#/components/schemas/v2OauthClient'
                    type: array
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListOrderAttendeeStatusesResponse:
            properties:
                orderAttendeeStatuses:
                    items:
                        $ref: '#/components/schemas/v2OrderAttendeeStatusAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - orderAttendeeStatuses
            type: object
        v2ListOrderDocumentsResponse:
            properties:
                documents:
                    items:
                        $ref: '#/components/schemas/v2TrainingOrderDocument'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - documents
            type: object
        v2ListOrderProvisionalAttendeesResponse:
            properties:
                attendees:
                    items:
                        $ref: '#/components/schemas/v2OrderProvisionalAttendeeAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - attendees
            type: object
        v2ListOrderProvisionalCommentsResponse:
            properties:
                comments:
                    items:
                        $ref: '#/components/schemas/v2OrderProvisionalCommentAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - comments
            type: object
        v2ListOrderProvisionalTrainersResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                trainers:
                    items:
                        $ref: '#/components/schemas/v2OrderProvisionalTrainerAggregate'
                    type: array
            required:
                - trainers
            type: object
        v2ListOrderRealAttendeesResponse:
            properties:
                attendees:
                    items:
                        $ref: '#/components/schemas/v2OrderRealAttendeeAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - attendees
            type: object
        v2ListOrderRealCommentsResponse:
            properties:
                comments:
                    items:
                        $ref: '#/components/schemas/v2OrderRealCommentAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - comments
            type: object
        v2ListOrderRealTrainersResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                trainers:
                    items:
                        $ref: '#/components/schemas/v2OrderRealTrainerAggregate'
                    type: array
            required:
                - trainers
            type: object
        v2ListParticipantAssessorRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListParticipantAssessorResponse:
            properties:
                assessors:
                    items:
                        $ref: '#/components/schemas/v2ParticipantAssessorAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - assessors
            type: object
        v2ListParticipantPositionsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                participantPositions:
                    items:
                        $ref: '#/components/schemas/v2ParticipantPositionAggregate'
                    type: array
            type: object
        v2ListParticipantSkillsRequest:
            properties:
                assessedId:
                    type: string
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - assessedId
                - campaignId
            type: object
        v2ListParticipantSkillsResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                participantSkills:
                    items:
                        $ref: '#/components/schemas/v2ExpectedSkill'
                    type: array
            title: |-
                ListParticipantSkillsResponse contains a list of participant skills.
                To check if the skill comes from a job,
            type: object
        v2ListParticipantSkillsThematicsRequest:
            properties:
                assessedId:
                    type: string
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - assessedId
                - campaignId
            type: object
        v2ListParticipantSkillsThematicsResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                participantSkillsThematics:
                    items:
                        $ref: '#/components/schemas/v2Thematic'
                    type: array
            type: object
        v2ListParticipantsLastInterviewRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListParticipantsLastInterviewResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                participants:
                    description: list of campaigns resulting form the search.
                    items:
                        $ref: '#/components/schemas/v2ParticipantInterviewSkill'
                    type: array
            required:
                - participants
            type: object
        v2ListParticipantsRequest:
            properties:
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - campaignId
            type: object
        v2ListParticipantsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                participants:
                    description: list of campaigns resulting form the search.
                    items:
                        $ref: '#/components/schemas/v2Participant'
                    type: array
            required:
                - participants
            type: object
        v2ListPeopleResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                persons:
                    description: list of Users resulting form the search.
                    items:
                        $ref: '#/components/schemas/v2Person'
                    type: array
            required:
                - persons
            type: object
        v2ListPeopleReviewParticipantsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListPeopleReviewParticipantsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                participants:
                    items:
                        $ref: '#/components/schemas/v2PeopleReviewParticipantAggregate'
                    type: array
            required:
                - participants
            type: object
        v2ListPeopleReviewToReviewRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListPeopleReviewToReviewResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                reviews:
                    items:
                        $ref: '#/components/schemas/v2PeopleReviewToReviewAggregate'
                    type: array
            type: object
        v2ListPeopleReviewsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListPeopleReviewsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                peopleReviews:
                    items:
                        $ref: '#/components/schemas/v2PeopleReviewAggregate'
                    type: array
            required:
                - peopleReviews
            type: object
        v2ListPredefinedRolesResponse:
            properties:
                role:
                    items:
                        $ref: '#/components/schemas/v2Role'
                    type: array
            type: object
        v2ListQuestionsRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListQuestionsResponse:
            properties:
                cachedQuestions:
                    items:
                        $ref: '#/components/schemas/v2CachedQuestionAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - cachedQuestions
            type: object
        v2ListQuestionsToReviewRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
                reviewId:
                    type: string
            required:
                - reviewId
            type: object
        v2ListQuestionsToReviewResponse:
            properties:
                items:
                    items:
                        $ref: '#/components/schemas/v2ParticipantQuestionAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2ListRequest:
            description: |-
                ListRequest is all the generic term to list resources at empowill, it's applicable to all list request today
                For bulk pagination is ignored.
            properties:
                aggregation:
                    $ref: '#/components/schemas/v2Aggregation'
                asDataframe:
                    description: |-
                        AsDataframe is used to return the result-set as a dataframe.

                        NB: If this field is used, the result will be empty and replaced by a dataframe in pagination response.
                    type: boolean
                distinctOn:
                    $ref: '#/components/schemas/v2DistinctOn'
                fieldCasts:
                    description: |-
                        FieldCasts allows overriding the resource type of fields of the schema in the context of one request.
                        It is used to cast `_urn` suffixed columns as specific resource types. For example, cast a
                        `context_urn` column as a USER resource type and you will be able to jumpy group or sort by
                        this column on rows that effectively had a user urn. User ids will also be returned instead of urns.
                        A FieldCast's ref cannot be jumpy (cannont contain '->').
                    items:
                        $ref: '#/components/schemas/v2FieldCast'
                    type: array
                filters:
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                pageNumber:
                    default: "1"
                    description: Page number is the actual page you are trying to access.
                    format: int32
                    type: integer
                pageSize:
                    description: |-
                        Page size is the max number of element in a page.
                        Default to 20.
                        If the number is -1, pagination is ignored.
                    format: int32
                    type: integer
                schemaOnly:
                    description: |-
                        SchemaOnly do not answer with the data but return the schema instead.
                        It includes custom fields and virtual fields that cannot be inferred from the data model.
                    type: boolean
                search:
                    $ref: '#/components/schemas/commonsv2Search'
                selects:
                    description: |-
                        Selects ask to return only a partial payload.
                        By default the whole object is returned.
                        If you ask for a valid reference like "person.id" in users list,
                        it will return only the given reference.
                    items:
                        type: string
                    type: array
                sorts:
                    description: |-
                        Sorts order the results taking first element in priority then the next, etc.
                        Field refs contained in Sorts field are also append to select.
                    items:
                        $ref: '#/components/schemas/v2Order'
                    type: array
            type: object
        v2ListResponse:
            properties:
                dataframe:
                    $ref: '#/components/schemas/v2Dataframe'
                paginationParameters:
                    $ref: '#/components/schemas/v2ListRequest'
                schema:
                    $ref: '#/components/schemas/apischemaSchema'
                total:
                    description: Total number of item present in database for the given request including potential filters.
                    format: int64
                    type: string
                totalPages:
                    description: |-
                        TotalPages is the total number of pages given input parameters
                        computed as total / page_size (+ 1 if total % page_size > 0).
                    format: int32
                    type: integer
            title: ListResponse is a generic response information that applies to all list response in the domain
            type: object
        v2ListRolesAggregateResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                roles:
                    items:
                        $ref: '#/components/schemas/v2RoleAggregate'
                    type: array
            required:
                - roles
            type: object
        v2ListRolesResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                roles:
                    items:
                        $ref: '#/components/schemas/v2Role'
                    type: array
            required:
                - roles
            type: object
        v2ListSessionAnswersRequest:
            properties:
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - campaignId
                - page
            type: object
        v2ListSessionAnswersResponse:
            properties:
                answers:
                    items:
                        $ref: '#/components/schemas/v2InterviewAnswer'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - answers
            type: object
        v2ListSessionSkillsEvaluationsRequest:
            properties:
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - campaignId
                - page
            type: object
        v2ListSessionSkillsEvaluationsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                skillsEvaluations:
                    items:
                        $ref: '#/components/schemas/v2InterviewSkillEvaluation'
                    type: array
            required:
                - skillsEvaluations
            type: object
        v2ListSessionsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                sessions:
                    items:
                        $ref: '#/components/schemas/v2Session'
                    type: array
            required:
                - sessions
            type: object
        v2ListSkillEvaluationsHistoricRequest:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            type: object
        v2ListSkillEvaluationsHistoricResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                skillEvals:
                    items:
                        $ref: '#/components/schemas/v2SkillEvaluationHistoric'
                    type: array
            type: object
        v2ListSkillResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                skills:
                    items:
                        $ref: '#/components/schemas/v2Skill'
                    type: array
            type: object
        v2ListSkillsEvaluationsRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
            type: object
        v2ListSkillsEvaluationsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                skillsEvaluations:
                    items:
                        $ref: '#/components/schemas/v2SkillEvaluation'
                    type: array
            required:
                - skillsEvaluations
            type: object
        v2ListSkillsRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
                - page
            type: object
        v2ListSkillsResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                skills:
                    items:
                        $ref: '#/components/schemas/v2ExpectedSkill'
                    type: array
            type: object
        v2ListSuccessionPlansResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                successionPlans:
                    items:
                        $ref: '#/components/schemas/v2SuccessionPlanAggregate'
                    type: array
            type: object
        v2ListThematicResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                thematics:
                    items:
                        $ref: '#/components/schemas/v2Thematic'
                    type: array
            type: object
        v2ListThematicsRequest:
            properties:
                interviewId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - interviewId
                - page
            type: object
        v2ListThematicsResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
                thematics:
                    items:
                        $ref: '#/components/schemas/v2Thematic'
                    type: array
            type: object
        v2ListTrainingCertificationAggregateResponse:
            properties:
                certifications:
                    items:
                        $ref: '#/components/schemas/v2TrainingCertificationAggregate'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - certifications
            type: object
        v2ListTrainingCertificationResponse:
            properties:
                certifications:
                    items:
                        $ref: '#/components/schemas/v2TrainingCertification'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - certifications
            type: object
        v2ListTrainingOrderProvisionalResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                trainingOrderProvisionals:
                    items:
                        $ref: '#/components/schemas/v2TrainingOrderProvisional'
                    type: array
            required:
                - trainingOrderProvisionals
            type: object
        v2ListTrainingOrderRealResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                trainingOrderReals:
                    items:
                        $ref: '#/components/schemas/v2TrainingOrderReal'
                    type: array
            required:
                - trainingOrderReals
            type: object
        v2ListTrainingOrderSessionProvisionalResponse:
            properties:
                orderSessions:
                    items:
                        $ref: '#/components/schemas/v2TrainingOrderProvisionalSession'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - orderSessions
            type: object
        v2ListTrainingOrderSessionRealResponse:
            properties:
                orderSessions:
                    items:
                        $ref: '#/components/schemas/v2TrainingOrderRealSession'
                    type: array
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
            required:
                - orderSessions
            type: object
        v2ListTrainingParticipationsResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                trainings:
                    items:
                        $ref: '#/components/schemas/v2TrainingParticipation'
                    type: array
            type: object
        v2ListTrainingPlanResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                plans:
                    items:
                        $ref: '#/components/schemas/v2TrainingPlan'
                    type: array
            required:
                - plans
            type: object
        v2ListTrainingProviderResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                providers:
                    items:
                        $ref: '#/components/schemas/v2TrainingProvider'
                    type: array
            required:
                - providers
            type: object
        v2ListTrainingRequestResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                requests:
                    items:
                        $ref: '#/components/schemas/v2TrainingRequestAggregate'
                    type: array
            required:
                - requests
            type: object
        v2ListTrainingResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                trainings:
                    items:
                        $ref: '#/components/schemas/v2TrainingAggregate'
                    type: array
            required:
                - trainings
            type: object
        v2ListUserContractsResponse:
            properties:
                canSeeSalaries:
                    title: |-
                        Indicates whether the current viewer has access to view salaries
                        This is computed server-side based on permissions (manager role, etc.)
                    type: boolean
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                userContracts:
                    items:
                        $ref: '#/components/schemas/v2UserContract'
                    type: array
            required:
                - userContracts
            type: object
        v2ListUsersRequest:
            properties:
                archived:
                    description: |-
                        The list of user return all users by default, even inactive ones.

                        If set to false, return the list of users that are active,
                        meaning they are not archived and can access the platform.

                        If set to true, return the list of archived users.
                    type: boolean
                companyId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
                personIds:
                    items:
                        type: string
                    type: array
                visitor:
                    description: |-
                        Visitor is a filter for users we does not consider as employee of the platform.

                        If unset, gives the full user list.

                        If set to false, gives only employees (no visitors)

                        If set to true, gives only visitors (multi account admins, distributors, empowill accounts manager attached...)
                    type: boolean
            type: object
        v2ListUsersResponse:
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                users:
                    items:
                        $ref: '#/components/schemas/v2User'
                    type: array
            type: object
        v2LogisticCostCustomField:
            properties:
                customFieldId:
                    type: string
                hidden:
                    type: boolean
            type: object
        v2LogisticCostCustomFields:
            properties:
                fields:
                    items:
                        $ref: '#/components/schemas/v2LogisticCostCustomField'
                    type: array
            type: object
        v2LtreeOperator:
            default: LTREE_OPERATOR_UNSPECIFIED
            description: |-
                LtreeOperator defines which operation wil be done to filter a ltree.

                 - LTREE_OPERATOR_ALL_DESCENDANTS: LTREE_OPERATOR_ALL_DESCENDANTS will filter the ltree to get all descendants of the given path within the value.
                 - LTREE_OPERATOR_DESCENDANT_DEPTH: LTREE_OPERATOR_DESCENDANT_DEPTH will filter the ltree to get all N descendants (N being the depth, so if you want only direct children, N should be 1)
            enum:
                - LTREE_OPERATOR_UNSPECIFIED
                - LTREE_OPERATOR_ALL_DESCENDANTS
                - LTREE_OPERATOR_DESCENDANT_DEPTH
            type: string
        v2LtreeSearch:
            description: LtreeSearch describes how to filter a ltree PGSQL type (https://www.postgresql.org/docs/current/ltree.html).
            properties:
                depth:
                    description: Depth value is used for certain operators to get N descendants/ancestors.
                    format: int64
                    type: string
                fieldRef:
                    description: FieldRef is the field name referencing a ltree.
                    type: string
                operator:
                    $ref: '#/components/schemas/v2LtreeOperator'
                path:
                    description: Path value is used as a base path comparison.
                    type: string
            required:
                - fieldRef
                - operator
            type: object
        v2MedicExamStatus:
            default: MEDIC_EXAM_STATUS_UNSPECIFIED
            enum:
                - MEDIC_EXAM_STATUS_UNSPECIFIED
                - MEDIC_EXAM_STATUS_NEVER_OBTAINED
                - MEDIC_EXAM_STATUS_UP_TO_DATE
                - MEDIC_EXAM_STATUS_EXPIRING_SOON
                - MEDIC_EXAM_STATUS_EXPIRED
            type: string
        v2MedicExamType:
            properties:
                companyId:
                    readOnly: true
                    type: string
                description:
                    type: string
                endValidityAlert:
                    description: |-
                        How long, in months, before expiration should admins be alerted that an employee needs to pass a medic exam again.
                        Defaults to 0, which means no alert.
                    format: int32
                    type: integer
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                validityPeriodMonth:
                    description: |-
                        Period during which a medic exam is considered to be valid,
                        after which the given employee needs to pass it again.
                        Defaults to 0, which means it never expires.
                    format: int32
                    type: integer
            required:
                - name
            type: object
        v2MedicExamTypeAggregate:
            properties:
                medicExamType:
                    $ref: '#/components/schemas/v2MedicExamType'
            type: object
        v2Member:
            properties:
                archived:
                    description: |-
                        False means access to the platform is granted and the member appears in lists of users in a company.
                        If the member is archived, connection is disabled and he gets out of ongoing events in the platform.
                        Be aware this field is extremely impactful and dissociate a member with all current processes,
                        setting it from true to false is called an archive process
                        A given user, cannot, in any circumstance archive itself.
                    type: boolean
                companyId:
                    example: my-company
                    title: Associated company id for the collaborator
                    type: string
                currentContractId:
                    description: CurrentContractId references the currently effective UserContract between this member and their company.
                    readOnly: true
                    type: string
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                employedSince:
                    description: |-
                        Last date where the employee signed a contract that make him work in the company.
                        Promoting a person should not change this date.
                    format: date-time
                    type: string
                externalId:
                    description: |-
                        Any identifier controlled by client to recognise employees
                        Usually used to annotate a user with a external id in order to identify / access it
                        The most common case is registration numbers from payroll systems.
                    example: "0123"
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                jobId:
                    description: |-
                        JobId reference the member job in the company.

                        A company member can only have one job, it's a design decision in Empowill to simplify processes and integrations.

                        During creation and update you can pass a job name instead of an id.
                        If the job is not found, it will be created empty and linked to the user.
                        If many are found, the last created will be used and linked to the user.
                        Seeking a matching job by name is case and accent insensitive.

                        If a incorrect id is passed, it will unset the job in the user without raising error.
                    type: string
                managerId:
                    description: |-
                        ManagerId reference the principal responsible of the employee.
                        During creation and update you can pass a email to match a manager,
                        it will be found and modified to the matching id.
                        Any error when passing an email don't modify the field.
                    type: string
                personId:
                    description: related person having this membership, in a user object, always comply with "person.id".
                    readOnly: true
                    type: string
                roleId:
                    description: |-
                        RoleId is output only and refer to the given role on a company.
                        No role id would mean no access at all and a bug since all user should be given a role.
                    readOnly: true
                    type: string
                visitor:
                    description: |-
                        Visitors are member that you do not want to see by default in list of users but need to access the platform
                        to give an helping hand. This is never used as an access restriction to resources.
                    type: boolean
            required:
                - companyId
            title: |-
                Represent a relation with a company being visited during the present connection
                or that can be visited in future ones.
                All those information formalise the relationship with a company
            type: object
        v2MinimalMember:
            description: MinimalMember shares the same artefact as Member but exposes less fields.
            properties:
                archived:
                    description: |-
                        False means access to the platform is granted and the member appears in lists of users in a company.
                        If the member is archived, connection is disabled and he gets out of ongoing events in the platform.
                        Be aware this field is extremely impactful and dissociate a member with all current processes,
                        setting it from true to false is called an archive process
                        A given user, cannot, in any circumstance archive itself.
                    type: boolean
                companyId:
                    title: Associated company id for the collaborator
                    type: string
                currentContractId:
                    description: CurrentContractId references the currently effective UserContract between this member and their company.
                    readOnly: true
                    type: string
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                employedSince:
                    description: |-
                        Last date where the employee signed a contract that make him work in the company.
                        Promoting a person should not change this date.
                    format: date-time
                    type: string
                externalId:
                    description: |-
                        Any identifier controlled by client to recognise employees
                        Usually used to annotate a user with a external id in order to identify / access it
                        The most common case is registration numbers from payroll systems.
                    example: "0123"
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                jobId:
                    description: |-
                        JobId reference the member job in the company.

                        A company member can only have one job, it's a design decision in Empowill to simplify processes and integrations.

                        During creation and update you can pass a job name instead of an id.
                        If the job is not found, it will be created empty and linked to the user.
                        If many are found, the last created will be used and linked to the user.
                        Seeking a matching job by name is case and accent insensitive.

                        If a incorrect id is passed, it will unset the job in the user without raising error.
                    type: string
                managerId:
                    description: |-
                        ManagerId reference the principal responsible of the employee.
                        During creation and update you can pass a email to match a manager,
                        it will be found and modified to the matching id.
                        Any error when passing an email don't modify the field.
                    type: string
                personId:
                    description: related person having this membership, in a user object, always comply with "person.id".
                    readOnly: true
                    type: string
                visitor:
                    description: |-
                        Visitors are member that you do not want to see by default in list of users but need to access the platform
                        to give an helping hand. This is never used as an access restriction to resources.
                    type: boolean
            required:
                - companyId
            type: object
        v2MinimalOrder:
            properties:
                archived:
                    type: boolean
                companyId:
                    readOnly: true
                    type: string
                end:
                    format: date-time
                    title: End is the date of the last training session
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    readOnly: true
                    type: string
                priority:
                    format: int32
                    type: integer
                start:
                    format: date-time
                    title: Start is the date of the first training session
                    type: string
                trainingId:
                    type: string
                trainingProviderId:
                    type: string
            type: object
        v2MinimalOrderAttendee:
            properties:
                canceled:
                    readOnly: true
                    type: boolean
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                orderId:
                    type: string
                statusId:
                    type: string
                userId:
                    type: string
            type: object
        v2MinimalPerson:
            properties:
                birthDate:
                    description: |-
                        Person date of birth in UTC
                        Be aware that a person born on the other side of the planet could see his date a day before or after depending on timezone.
                        This is scientifically correct but misleading for people.
                        To fixup this issue, we truncate the hour information and handle time in UTC for all countries for this specific case.
                    format: date-time
                    type: string
                email:
                    description: |-
                        Primary email for user, used at connection.

                        Later on we could provided a way to register several emails.

                        Today email are not always possessed by our users and can be generated as @empowill.com aliases.
                        In this case password generation is handled by administrators and accounts are not considered personal.
                        This is an edge case when user's don't have professional addresses and don't register personal addresses.
                    type: string
                firstName:
                    description: |-
                        Usual name of the user. Can contain several words.
                        Capitalized at insertion.
                    type: string
                gender:
                    $ref: '#/components/schemas/v2Gender'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                language:
                    description: |-
                        In BCP 47 standard, represent user preference in term translation
                        Default to browsers infos on web, French for email.
                    type: string
                lastName:
                    description: |-
                        Family name of the user. Can contain several words.
                        Capitalized at insertion.
                    type: string
                phoneNumber:
                    title: Phone number of the user to be used for 2fa or sms (optional)
                    type: string
                timezone:
                    type: string
            required:
                - email
                - firstName
                - lastName
            type: object
        v2MinimalPlan:
            properties:
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    readOnly: true
                    type: string
                sharing:
                    $ref: '#/components/schemas/v2Sharing'
            type: object
        v2MinimalUser:
            description: |-
                Minimal user is used exclusively during query.
                It doesn't require specific permission and expose all fields that are not too sensitive and
                mandatory for almost all use-cases of the platform.
            properties:
                age:
                    description: Age in full years, computed from person.birth_date to current date. Null when birth_date is not set.
                    format: int32
                    readOnly: true
                    type: integer
                member:
                    $ref: '#/components/schemas/v2MinimalMember'
                person:
                    $ref: '#/components/schemas/v2MinimalPerson'
            required:
                - person
                - member
            type: object
        v2Mode:
            default: MODE_UNSPECIFIED
            enum:
                - MODE_UNSPECIFIED
                - MODE_CONFIDENTIAL
                - MODE_PRIVATE
                - MODE_INTERNAL
            type: string
        v2Module:
            default: MODULE_UNSPECIFIED
            enum:
                - MODULE_UNSPECIFIED
                - MODULE_CORE_HR
                - MODULE_INTERVIEW_AND_CAREER
                - MODULE_TRAINING
                - MODULE_PEOPLE_REVIEW
                - MODULE_AI
            type: string
        v2MoveRequest:
            properties:
                fromIds:
                    description: FromIds is the list of ids to move. The list must contain IDs of any node types.
                    items:
                        type: string
                    type: array
                toId:
                    description: |-
                        ToId is the id of the destination node.
                        It must e a type that can contain other nodes like skill thematics or goal folders.
                        If not filled, the fromIds will be moved to root if possible in the for the given type.
                    type: string
            required:
                - fromIds
            type: object
        v2MusicStyle:
            default: UNSPECIFIED
            enum:
                - UNSPECIFIED
                - CLASSIC
                - JAZZ
                - METAL
                - DARK_METAL
            type: string
        v2MyPopulation:
            properties:
                fieldRef:
                    type: string
                selfIncluded:
                    description: |-
                        By default population filter on all people in your population except your-self.
                        You can apply the filter to you as well with this flag.
                    type: boolean
            required:
                - fieldRef
            type: object
        v2News:
            description: News is a company-scoped announcement shown in the news feed.
            properties:
                abstract:
                    description: Short summary for feed cards (max 128 chars). Not searchable.
                    type: string
                companyId:
                    readOnly: true
                    type: string
                coverUrl:
                    description: URL of the cover image. Set only after cover upload completes (internal endpoint).
                    readOnly: true
                    type: string
                description:
                    description: Optional body. Not included in list search.
                    type: string
                favorite:
                    description: When true, the item is pinned and appears before non-favorite news in the default list order.
                    type: boolean
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                publishedAt:
                    description: |-
                        Publication date. Omit on create/update to keep the current state.
                        Send a valid timestamp to publish. Send the zero time ("0001-01-01T00:00:00.000Z") to unpublish.
                    format: date-time
                    type: string
                publishedBy:
                    description: User who published the news. Set automatically on publish, cleared on unpublish.
                    readOnly: true
                    type: string
                title:
                    description: Searchable title displayed in the feed.
                    type: string
            required:
                - title
            type: object
        v2NewsFeed:
            description: |-
                NewsFeed wraps a news item for list responses.
                Extra read-only fields can be added here later without breaking clients.
            properties:
                news:
                    $ref: '#/components/schemas/v2News'
            type: object
        v2Note:
            properties:
                categoryId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                description:
                    type: string
                end:
                    description: End reflects the ending time of a note.
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                start:
                    description: Start reflects the starting time of a note.
                    format: date-time
                    type: string
                userId:
                    type: string
            required:
                - name
            type: object
        v2NoteAggregate:
            properties:
                note:
                    $ref: '#/components/schemas/v2Note'
            type: object
        v2NoteCategory:
            properties:
                archived:
                    description: Archived category means it will not show up in employee profiles anymore.
                    type: boolean
                companyId:
                    description: CompanyId for the note category.
                    example: my-company
                    readOnly: true
                    type: string
                confidential:
                    description: Confidential category means it will not show up to the user.
                    type: boolean
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    title: Id is UUID v4 generated at insertion
                    type: string
                name:
                    description: Name of the note category.
                    type: string
                selfAccess:
                    description: SelfAccess category means it will be accessible by the user for whom the note is intended.
                    type: boolean
                system:
                    $ref: '#/components/schemas/v2SystemNoteCategory'
            required:
                - name
            type: object
        v2NotificationConfiguration:
            properties:
                blacklistIds:
                    items:
                        type: string
                    title: |-
                        BlacklistIds are combined mail categories that are excluded from notifications.
                        Example: "campaign.interview-done.contributors,campaign.interview-done.assessor"
                    type: array
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                userId:
                    type: string
            type: object
        v2Null:
            properties:
                fieldRef:
                    type: string
            required:
                - fieldRef
            type: object
        v2NumberComparison:
            properties:
                fieldRef:
                    type: string
                op:
                    $ref: '#/components/schemas/v2NumberOp'
                value:
                    description: |-
                        Value is the value to compare to.
                        Be aware that null values are not compared and does not equals to 0.
                    format: double
                    type: number
            required:
                - fieldRef
            type: object
        v2NumberOp:
            default: NUMBER_OP_UNSPECIFIED
            enum:
                - NUMBER_OP_UNSPECIFIED
                - NUMBER_OP_EQUAL
                - NUMBER_OP_GREATER_THAN
                - NUMBER_OP_GREATER_THAN_EQUAL
                - NUMBER_OP_LESSER_THAN
                - NUMBER_OP_LESSER_THAN_EQUAL
            title: '- NUMBER_OP_UNSPECIFIED: NUMBER_OP_UNSPECIFIED default to NUMBER_OP_EQUAL'
            type: string
        v2OauthClient:
            properties:
                contact:
                    description: |-
                        Contact is an email that can by used for support.
                        By filling this you agree to be contacted by our team if any important news appear on the api.
                    example: abraham.maslow@empowill.com
                    minLength: 1
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    title: String composed of main company id and an UUID v4 generated at insertion,
                    type: string
                mainCompanyId:
                    example: my-company
                    readOnly: true
                    title: Associated company owning the oauth client
                    type: string
                name:
                    description: Name explains the purpose of your usage, or carry your program name.
                    example: Key for inserting payroll users
                    type: string
                roleId:
                    description: |-
                        The role assigned to the client.
                        The role definitions list and behavior is the same for both users and clients.
                    type: string
                secret:
                    description: |-
                        Secret created while creating the client.
                        If you need to change, create another client then delete the former one.
                    readOnly: true
                    type: string
                secretExpires:
                    description: |-
                        SecretExpires represent the expiry date.
                        When this date is reached, no other access token can be claimed.
                    format: date-time
                    type: string
                subCompaniesRoleId:
                    description: |-
                        The role used when the client operates on a sub-company (holding/contract subtree).
                        When not set, the client cannot do cross-company requests.
                    type: string
            required:
                - roleId
                - name
                - contact
            type: object
        v2Order:
            properties:
                desc:
                    description: Desc set as true make the order descendant when the default is ascendant.
                    type: boolean
                ref:
                    title: Ref is our common reference like headers.created_at
                    type: string
            type: object
        v2OrderAttendeeStatus:
            properties:
                category:
                    $ref: '#/components/schemas/v2OrderAttendeeStatusCategory'
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
            required:
                - category
                - name
            type: object
        v2OrderAttendeeStatusAggregate:
            properties:
                orderAttendeeStatus:
                    $ref: '#/components/schemas/v2OrderAttendeeStatus'
            type: object
        v2OrderAttendeeStatusCategory:
            default: ORDER_ATTENDEE_STATUS_CATEGORY_UNSPECIFIED
            enum:
                - ORDER_ATTENDEE_STATUS_CATEGORY_UNSPECIFIED
                - ORDER_ATTENDEE_STATUS_CATEGORY_PENDING
                - ORDER_ATTENDEE_STATUS_CATEGORY_VALIDATED
                - ORDER_ATTENDEE_STATUS_CATEGORY_UNVALIDATED
            type: string
        v2OrderCostType:
            default: ORDER_COST_TYPE_UNSPECIFIED
            description: |-
                - COMPANY: the cost is for the company, so the cost is broken down by participant
                - PARTICIPANT: the cost by participant, so the cost is number of participant * cost per participant
                - CUSTOMIZED: customized mean that the cost is neither broken down by participant nor calculate by participant.
            enum:
                - ORDER_COST_TYPE_UNSPECIFIED
                - ORDER_COST_TYPE_COMPANY
                - ORDER_COST_TYPE_PARTICIPANT
                - ORDER_COST_TYPE_CUSTOMIZED
            type: string
        v2OrderDocumentAccess:
            default: ORDER_DOCUMENT_ACCESS_UNSPECIFIED
            description: |4-
                 - ORDER_DOCUMENT_ACCESS_PRIVATE: ORDER_DOCUMENT_ACCESS_PRIVATE documents are visible by users with access to the order.
                 - ORDER_DOCUMENT_ACCESS_SHARED: ORDER_DOCUMENT_ACCESS_SHARED documents are visible by users with access to the order, and users with at least
                one attendee in their population.
                 - ORDER_DOCUMENT_ACCESS_PERSONAL: ORDER_DOCUMENT_ACCESS_PERSONAL documents are visible by users with access to the order.
            enum:
                - ORDER_DOCUMENT_ACCESS_UNSPECIFIED
                - ORDER_DOCUMENT_ACCESS_PRIVATE
                - ORDER_DOCUMENT_ACCESS_SHARED
                - ORDER_DOCUMENT_ACCESS_PERSONAL
            type: string
        v2OrderDocumentType:
            default: ORDER_DOCUMENT_TYPE_UNSPECIFIED
            enum:
                - ORDER_DOCUMENT_TYPE_UNSPECIFIED
                - ORDER_DOCUMENT_TYPE_OTHER
                - ORDER_DOCUMENT_TYPE_CONVOCATION
                - ORDER_DOCUMENT_TYPE_CERTIFICATE
            type: string
        v2OrderPlanNotification:
            properties:
                attachConvocations:
                    description: AttachConvocations whether already-generated attendee convocations are attached to the email.
                    type: boolean
                attachDocIds:
                    description: AttachDocIds TrainingOrderDocument ids (other documents of the order) to be attached to all emails.
                    items:
                        type: string
                    type: array
            type: object
        v2OrderProvisional:
            properties:
                address:
                    type: string
                autoValidateAttendees:
                    type: boolean
                autoValidatePresenceThreshold:
                    format: int32
                    type: integer
                checklist:
                    $ref: '#/components/schemas/v2ChecklistContent'
                checklistSummary:
                    $ref: '#/components/schemas/v2ChecklistSummary'
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                cost:
                    $ref: '#/components/schemas/v2TrainingOrderCost'
                customCostSettings:
                    $ref: '#/components/schemas/v2CustomCostSettings'
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                duration:
                    type: string
                durationCustomized:
                    default: "false"
                    description: |-
                        DurationCustomized is true when at least one attendee has a duration entered individually.
                        It will to switch back to false if the order duration is modified again.
                    readOnly: true
                    type: boolean
                enabled:
                    default: "true"
                    description: |-
                        Enabled only enabled orders are taken into account in provisional plan summaries such as budget, and migrated when
                        a provisional plan is turned into real.
                    type: boolean
                end:
                    format: date-time
                    title: End is the date of the last training session
                    type: string
                frozen:
                    default: "false"
                    description: |-
                        Frozen provisional orders cannot be edited, nor child data such as attendees or sessions. Provisional orders are
                        frozen when they or the plan they belong to are migrated.
                    readOnly: true
                    type: boolean
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                priority:
                    format: int32
                    type: integer
                start:
                    format: date-time
                    title: Start is the date of the first training session
                    type: string
                trainingId:
                    type: string
                trainingProviderId:
                    type: string
            type: object
        v2OrderProvisionalAttendee:
            description: OrderProvisionalAttendee describes the users attending a provisional training order.
            properties:
                anonymous:
                    readOnly: true
                    type: boolean
                companyId:
                    readOnly: true
                    type: string
                cost:
                    $ref: '#/components/schemas/v2AttendeeCost'
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                duration:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                orderId:
                    type: string
                salary:
                    $ref: '#/components/schemas/v2Salary'
                userId:
                    type: string
            type: object
        v2OrderProvisionalAttendeeAggregate:
            properties:
                attendee:
                    $ref: '#/components/schemas/v2OrderProvisionalAttendee'
                computedLogisticCostTotal:
                    format: double
                    readOnly: true
                    type: number
                requestId:
                    description: RequestId will be populated if there is a TrainingRequest accepted in this order for this attendee.
                    readOnly: true
                    type: string
                totalCost:
                    format: double
                    readOnly: true
                    type: number
            type: object
        v2OrderProvisionalComment:
            properties:
                companyId:
                    readOnly: true
                    type: string
                content:
                    description: Content accepts markdown format.
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                isEmail:
                    readOnly: true
                    type: boolean
                orderId:
                    type: string
                userId:
                    readOnly: true
                    type: string
            required:
                - orderId
                - content
            type: object
        v2OrderProvisionalCommentAggregate:
            properties:
                comment:
                    $ref: '#/components/schemas/v2OrderProvisionalComment'
            type: object
        v2OrderProvisionalTrainer:
            properties:
                companyId:
                    readOnly: true
                    type: string
                duration:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                orderId:
                    type: string
                salary:
                    $ref: '#/components/schemas/v2Salary'
                salaryAmount:
                    format: double
                    readOnly: true
                    type: number
                userId:
                    type: string
            type: object
        v2OrderProvisionalTrainerAggregate:
            properties:
                trainer:
                    $ref: '#/components/schemas/v2OrderProvisionalTrainer'
            type: object
        v2OrderProvisionalTrainerIds:
            properties:
                trainerIds:
                    items:
                        type: string
                    type: array
            type: object
        v2OrderReal:
            properties:
                address:
                    type: string
                archived:
                    type: boolean
                autoValidateAttendees:
                    type: boolean
                autoValidatePresenceThreshold:
                    format: int32
                    type: integer
                checklist:
                    $ref: '#/components/schemas/v2ChecklistContent'
                checklistSummary:
                    $ref: '#/components/schemas/v2ChecklistSummary'
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                cost:
                    $ref: '#/components/schemas/v2TrainingOrderCost'
                customCostSettings:
                    $ref: '#/components/schemas/v2CustomCostSettings'
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                duration:
                    type: string
                durationCustomized:
                    default: "false"
                    description: |-
                        DurationCustomized is true when at least one attendee has a duration entered individually.
                        It will to switch back to false if the order duration is modified again.
                    readOnly: true
                    type: boolean
                end:
                    format: date-time
                    title: End is the date of the last training session
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                priority:
                    format: int32
                    type: integer
                start:
                    format: date-time
                    title: Start is the date of the first training session
                    type: string
                state:
                    $ref: '#/components/schemas/v2OrderState'
                trainingId:
                    type: string
                trainingProviderId:
                    type: string
            type: object
        v2OrderRealAttendee:
            description: OrderRealAttendee describes the users attending a real training order.
            properties:
                anonymous:
                    readOnly: true
                    type: boolean
                canceled:
                    readOnly: true
                    type: boolean
                companyId:
                    readOnly: true
                    type: string
                cost:
                    $ref: '#/components/schemas/v2AttendeeCost'
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                duration:
                    type: string
                excludedFromCost:
                    readOnly: true
                    type: boolean
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                orderId:
                    type: string
                presenceRateInput:
                    format: int32
                    type: integer
                salary:
                    $ref: '#/components/schemas/v2Salary'
                statusId:
                    type: string
                userId:
                    type: string
            required:
                - statusId
            type: object
        v2OrderRealAttendeeAggregate:
            properties:
                attendee:
                    $ref: '#/components/schemas/v2OrderRealAttendee'
                certificate:
                    $ref: '#/components/schemas/v2TrainingOrderDocument'
                computedLogisticCostTotal:
                    format: double
                    readOnly: true
                    type: number
                convocation:
                    $ref: '#/components/schemas/v2TrainingOrderDocument'
                presenceRate:
                    description: |-
                        PresenceRate is the percentage of the order's sessions where the attendee was present. It will be empty unless
                        the attendee has a PresenceRateInput or at least one session attendance sheet has been signed.
                    format: int32
                    readOnly: true
                    type: integer
                requestId:
                    description: RequestId will be populated if there is a TrainingRequest accepted in this order for this attendee.
                    readOnly: true
                    type: string
                status:
                    $ref: '#/components/schemas/v2OrderAttendeeStatus'
                totalCost:
                    format: double
                    readOnly: true
                    type: number
            type: object
        v2OrderRealComment:
            properties:
                companyId:
                    readOnly: true
                    type: string
                content:
                    description: Content accepts markdown format.
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                isEmail:
                    readOnly: true
                    type: boolean
                orderId:
                    type: string
                userId:
                    readOnly: true
                    type: string
            required:
                - orderId
                - content
            type: object
        v2OrderRealCommentAggregate:
            properties:
                comment:
                    $ref: '#/components/schemas/v2OrderRealComment'
            type: object
        v2OrderRealTrainer:
            properties:
                companyId:
                    readOnly: true
                    type: string
                duration:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                orderId:
                    type: string
                salary:
                    $ref: '#/components/schemas/v2Salary'
                salaryAmount:
                    format: double
                    readOnly: true
                    type: number
                userId:
                    type: string
            type: object
        v2OrderRealTrainerAggregate:
            properties:
                trainer:
                    $ref: '#/components/schemas/v2OrderRealTrainer'
            type: object
        v2OrderRealTrainerIds:
            properties:
                trainerIds:
                    items:
                        type: string
                    type: array
            type: object
        v2OrderState:
            default: ORDER_STATE_UNSPECIFIED
            enum:
                - ORDER_STATE_UNSPECIFIED
                - ORDER_STATE_TO_PLAN
                - ORDER_STATE_PLANNED
                - ORDER_STATE_ONGOING
                - ORDER_STATE_DONE
                - ORDER_STATE_CANCELED
            type: string
        v2OtherApproverIds:
            properties:
                otherApproverIds:
                    items:
                        type: string
                    type: array
            type: object
        v2PartialContent:
            properties:
                contentSummary:
                    $ref: '#/components/schemas/v2ContentSummary'
            type: object
        v2Participant:
            properties:
                assessedId:
                    description: |-
                        AssessedId is the person being evaluated.
                        It represent the participant to a campaign.
                    type: string
                assessorId:
                    title: |-
                        AssessorId is the main evaluator for the interview. he his responsible for the session and can drive the interview.
                        Can be changed at any time on the campaign before cancelled / finished statuses.
                        On the interview session, the same field appears, driven by this campaign setting,
                        there it can be changed only until signature state excluded.
                        Empty by default, it's considered as a dirty state where no session can be triggered,
                    type: string
                campaignId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                job:
                    description: Job boolean describes if we need to take skills from the job.
                    type: boolean
                lastSession:
                    description: |-
                        LastSession is the time of the last scheduled interview session.
                        When a interview is created this time is the one from NextSession.
                    format: date-time
                    readOnly: true
                    type: string
                nextSession:
                    description: |-
                        NextSession is the next date were a session will happen.
                        While campaign is on draft it can be empty.
                        This can be modified by the campaign manager to postpone a given session.
                        On launch it is automatically set depending on scheduling parameters.
                        Like time.Now or anniversary date, etc...
                        It can be set during a campaign draft, then it will start the session only then.
                        Automatically incremented to next scheduled session when a session is created
                        and the campaign scheduling configured to repeat automatically.
                    format: date-time
                    type: string
                secondaryAssessors:
                    $ref: '#/components/schemas/v2SecondaryAssessors'
                sessionNumber:
                    description: |-
                        SessionNumber is the number of session that were planned for a participant.
                        Starts at 0 and can only increment.
                        It's created here to simplify display and sorting.
                        A count of session on ListSessions filtered by participant and campaign id should give the same result.
                    format: int32
                    readOnly: true
                    type: integer
            type: object
        v2ParticipantAssessorAggregate:
            properties:
                assessorAssignment:
                    $ref: '#/components/schemas/v2AxisParticipantAssessor'
                participant:
                    $ref: '#/components/schemas/v2PeopleReviewParticipant'
            type: object
        v2ParticipantInterviewSkill:
            properties:
                id:
                    description: |-
                        Id has the format `campaign_id:assessed_id:interview_id` with interview_id possibly empty if the participant has
                        no interview in the campaign.
                    readOnly: true
                    type: string
                interview:
                    $ref: '#/components/schemas/v2Interview'
                participant:
                    $ref: '#/components/schemas/v2Participant'
                skillCount:
                    $ref: '#/components/schemas/v2SkillCount'
            type: object
        v2ParticipantPosition:
            properties:
                cellId:
                    type: string
                companyId:
                    readOnly: true
                    type: string
                computedCellId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                lockedBy:
                    readOnly: true
                    type: string
                matrixId:
                    readOnly: true
                    type: string
                participantId:
                    type: string
                peopleReviewId:
                    readOnly: true
                    type: string
                positionedBy:
                    readOnly: true
                    type: string
            required:
                - participantId
                - cellId
            type: object
        v2ParticipantPositionAggregate:
            properties:
                participant:
                    $ref: '#/components/schemas/v2PeopleReviewParticipant'
                participantPosition:
                    $ref: '#/components/schemas/v2ParticipantPosition'
            type: object
        v2ParticipantQuestionAggregate:
            properties:
                participant:
                    $ref: '#/components/schemas/v2PeopleReviewParticipant'
                question:
                    $ref: '#/components/schemas/v2AxisQuestion'
            type: object
        v2PeopleReview:
            properties:
                companyId:
                    readOnly: true
                    type: string
                completedAt:
                    format: date-time
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                sharing:
                    $ref: '#/components/schemas/v2Sharing'
                status:
                    $ref: '#/components/schemas/v2PeopleReviewStatus'
            required:
                - name
            type: object
        v2PeopleReviewAggregate:
            properties:
                participantUserIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                peopleReview:
                    $ref: '#/components/schemas/v2PeopleReview'
            type: object
        v2PeopleReviewAxis:
            properties:
                assessorId:
                    description: AssessorId will set by default this assessor for all participants for this axis.
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                managerAssessor:
                    title: |-
                        ManagerAssessor tries to set default assessor to manager when adding new participant for an axis of type ASSESSOR_EVALUATION
                        or when creating an new axis of type ASSESSOR_EVALUATION
                    type: boolean
                name:
                    type: string
                peopleReviewId:
                    type: string
                thresholds:
                    description: |-
                        Thresholds defines the threshold values for the axis.
                        Values must be in the range of 1 to 99 (inclusive).
                        Duplicate values are not accepted.
                    items:
                        format: int32
                        type: integer
                    type: array
                type:
                    $ref: '#/components/schemas/v2PeopleReviewAxisType'
            required:
                - peopleReviewId
                - name
                - type
                - thresholds
            type: object
        v2PeopleReviewAxisAggregate:
            properties:
                axis:
                    $ref: '#/components/schemas/v2PeopleReviewAxis'
                campaignIds:
                    $ref: '#/components/schemas/v2CampaignIds'
            type: object
        v2PeopleReviewAxisType:
            default: PEOPLE_REVIEW_AXIS_TYPE_UNSPECIFIED
            enum:
                - PEOPLE_REVIEW_AXIS_TYPE_UNSPECIFIED
                - PEOPLE_REVIEW_AXIS_TYPE_CUSTOM
                - PEOPLE_REVIEW_AXIS_TYPE_SKILLS
                - PEOPLE_REVIEW_AXIS_TYPE_GOALS
                - PEOPLE_REVIEW_AXIS_TYPE_ASSESSOR_EVALUATION
            type: string
        v2PeopleReviewMatrix:
            properties:
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                lockedAt:
                    format: date-time
                    readOnly: true
                    type: string
                name:
                    type: string
                peopleReviewId:
                    type: string
                state:
                    $ref: '#/components/schemas/v2PeopleReviewMatrixState'
                xAxisId:
                    type: string
                yAxisId:
                    type: string
            required:
                - peopleReviewId
                - state
            type: object
        v2PeopleReviewMatrixAggregate:
            properties:
                matrix:
                    $ref: '#/components/schemas/v2PeopleReviewMatrix'
            type: object
        v2PeopleReviewMatrixCell:
            properties:
                color:
                    $ref: '#/components/schemas/v2PeopleReviewMatrixCellColor'
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                label:
                    type: string
                matrixId:
                    type: string
                posX:
                    format: int32
                    readOnly: true
                    type: integer
                posY:
                    format: int32
                    readOnly: true
                    type: integer
            required:
                - color
            type: object
        v2PeopleReviewMatrixCellAggregate:
            properties:
                cell:
                    $ref: '#/components/schemas/v2PeopleReviewMatrixCell'
            type: object
        v2PeopleReviewMatrixCellColor:
            default: PEOPLE_REVIEW_MATRIX_CELL_COLOR_UNSPECIFIED
            enum:
                - PEOPLE_REVIEW_MATRIX_CELL_COLOR_UNSPECIFIED
                - PEOPLE_REVIEW_MATRIX_CELL_COLOR_RED
                - PEOPLE_REVIEW_MATRIX_CELL_COLOR_GREEN
                - PEOPLE_REVIEW_MATRIX_CELL_COLOR_BLUE
            type: string
        v2PeopleReviewMatrixState:
            default: PEOPLE_REVIEW_MATRIX_STATE_UNSPECIFIED
            enum:
                - PEOPLE_REVIEW_MATRIX_STATE_UNSPECIFIED
                - PEOPLE_REVIEW_MATRIX_STATE_DRAFT
                - PEOPLE_REVIEW_MATRIX_STATE_READY
            type: string
        v2PeopleReviewParticipant:
            properties:
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                note:
                    type: string
                reviewId:
                    type: string
                userId:
                    type: string
            type: object
        v2PeopleReviewParticipantAggregate:
            properties:
                participant:
                    $ref: '#/components/schemas/v2PeopleReviewParticipant'
            type: object
        v2PeopleReviewStatus:
            default: PEOPLE_REVIEW_STATUS_UNSPECIFIED
            enum:
                - PEOPLE_REVIEW_STATUS_UNSPECIFIED
                - PEOPLE_REVIEW_STATUS_DRAFT
                - PEOPLE_REVIEW_STATUS_ONGOING
                - PEOPLE_REVIEW_STATUS_COMPLETED
            type: string
        v2PeopleReviewToReviewAggregate:
            properties:
                answeredQuestionCount:
                    format: int32
                    readOnly: true
                    title: Number of questions answered (evaluations with locked = true)
                    type: integer
                participantCount:
                    format: int32
                    readOnly: true
                    title: Number of distinct participants the assessor is assigned to
                    type: integer
                peopleReview:
                    $ref: '#/components/schemas/v2PeopleReview'
                questionCount:
                    format: int32
                    readOnly: true
                    title: Number of unique questions in ASSESSOR_EVALUATION axes
                    type: integer
            type: object
        v2PeopleSearch:
            description: |-
                PeopleSearch allow to filter on an a column representing a Person.id.
                Filters are the same as the filters available in UserService/ListPeople.
                The filter rely on your permission on "people.read".
            properties:
                fieldRef:
                    description: FieldRef is the column of ids to filter.
                    type: string
                filters:
                    description: The root operator for the list of filter is AND.
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
            required:
                - fieldRef
                - filters
            type: object
        v2PermissionsDefinition:
            properties:
                scopes:
                    additionalProperties:
                        $ref: '#/components/schemas/v2ScopeDefinition'
                    type: object
            type: object
        v2Person:
            properties:
                birthDate:
                    description: |-
                        Person date of birth in UTC
                        Be aware that a person born on the other side of the planet could see his date a day before or after depending on timezone.
                        This is scientifically correct but misleading for people.
                        To fixup this issue, we truncate the hour information and handle time in UTC for all countries for this specific case.
                    format: date-time
                    type: string
                companyMain:
                    description: |-
                        Company that impose required connection flow like 2FA or SSO
                        Default to the company creating the user.
                        Personal infos can only be changed by admin of the main company
                        Can be changed by empowill admins only for now since cases that require change are to low today
                        It defaults to the first company creating the user with a given email.
                    example: my-main-company-id
                    readOnly: true
                    type: string
                email:
                    description: |-
                        Primary email for user, used at connection.

                        Later on we could provided a way to register several emails.

                        Today email are not always possessed by our users and can be generated as @empowill.com aliases.
                        In this case password generation is handled by administrators and accounts are not considered personal.
                        This is an edge case when user's don't have professional addresses and don't register personal addresses.
                    example: abraham.maslow@empowill.com
                    maxLength: 300
                    minLength: 1
                    type: string
                firstName:
                    description: |-
                        Usual name of the user. Can contain several words.
                        Capitalized at insertion.
                    example: Abraham
                    maxLength: 300
                    minLength: 1
                    type: string
                gender:
                    $ref: '#/components/schemas/v2Gender'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                language:
                    description: |-
                        In BCP 47 standard, represent user preference in term translation
                        Default to browsers infos on web, French for email.
                    type: string
                lastName:
                    description: |-
                        Family name of the user. Can contain several words.
                        Capitalized at insertion.
                    example: Maslow
                    maxLength: 300
                    minLength: 1
                    type: string
                phoneNumber:
                    example: "33145453245"
                    title: Phone number of the user to be used for 2fa or sms (optional)
                    type: string
                timezone:
                    type: string
            required:
                - email
                - firstName
                - lastName
            title: |-
                Person contains all information linked to a individual Human.
                Information linked to this entity are preserved independently of a contract with a company.
                For instance a user could access acquired certification after a contract is finished.
                All these information should be enough to provide RGPD compliant connections
            type: object
        v2PersonNamingConvention:
            default: PERSON_NAMING_CONVENTION_UNSPECIFIED
            enum:
                - PERSON_NAMING_CONVENTION_UNSPECIFIED
                - PERSON_NAMING_CONVENTION_LAST_FIRST
                - PERSON_NAMING_CONVENTION_FIRST_LAST
                - PERSON_NAMING_CONVENTION_FIRST_C_LAST
                - PERSON_NAMING_CONVENTION_C_FIRST_LAST
                - PERSON_NAMING_CONVENTION_LAST_C_FIRST
                - PERSON_NAMING_CONVENTION_C_LAST_FIRST
            title: |-
                Order and capitalized preferences for first and last name employee display
                C means CAPITALIZED
                All combinations are not possible, we only retained the most used from a user research
            type: string
        v2Persona:
            default: PERSONA_UNSPECIFIED
            description: |-
                Persona qualifies the role for distributor context (e.g. Administrator).
                Value 1 is the default in DB and displayed as unspecified in app.
            enum:
                - PERSONA_UNSPECIFIED
                - PERSONA_NOT_SPECIFIED
                - PERSONA_ADMINISTRATOR
            type: string
        v2PersonalInformationSettings:
            description: |-
                PersonalInformationSettings setup personal information of the assessed to be displayed during an interview.
                Any changes on this model on a draft campaign will update all contained fields.
            properties:
                allowCustomFieldRefs:
                    description: AllowCustomFieldRefs allows the user to fetch a list of interviews for the assessed.
                    type: boolean
                allowFieldRefs:
                    description: AllowFieldRefs allows the user to fetch a list of interviews for the assessed.
                    type: boolean
                allowNoteCategories:
                    description: InterviewHistory allows the user to fetch a list of interviews for the assessed.
                    type: boolean
                certificationHistory:
                    description: CertificationHistory adds a list of certification followed by the assessed.
                    type: boolean
                contractHistory:
                    type: boolean
                fieldRefs:
                    description: |-
                        FieldRefs is a list aof field references to fetch for the user.
                        For example, for the user's email the field will look like "person.email", for the manager id "member.manager_id".
                        Default values are "person.email", "member.manager_id", "member.employed_since", "member.job_id".
                    items:
                        type: string
                    type: array
                interviewHistory:
                    description: InterviewHistory adds a list of interviews done by the assessed.
                    type: boolean
                noteCategoriesIds:
                    description: NotesCategoriesIds is a list of note category id.
                    items:
                        type: string
                    type: array
                trainingHistory:
                    description: TrainingHistory adds a list of training followed by the assessed.
                    type: boolean
            type: object
        v2PlanOrderRealResponse:
            properties:
                order:
                    $ref: '#/components/schemas/v2TrainingOrderReal'
            type: object
        v2PoleActivities:
            properties:
                pole:
                    type: string
                topics:
                    items:
                        type: string
                    type: array
            type: object
        v2Population:
            description: |-
                Represents a user's list of ids formalized into a "population".
                It should default to a manager's population, meaning all persons that a manager manages.
            properties:
                ids:
                    description: Can be empty if the user is responsible only for him / her-self.
                    items:
                        type: string
                    type: array
            type: object
        v2PopulationDefinition:
            description: |-
                PopulationDefinition is the query made to fetch a given user's population.
                Meaning all the people he / her can access except him / her-self
                This definition is combined to the permission system to limit a users scope of action.
            properties:
                companyId:
                    readOnly: true
                    type: string
                filterGroupPopulation:
                    $ref: '#/components/schemas/v2DynamicFilters'
                headers:
                    $ref: '#/components/schemas/v2Headers'
                hierarchyDepth:
                    description: |-
                        HierarchyDepth represent the number of company hierarchy level to traverse.
                        - Zero does not make a specific filter and skip the field.
                        - Negative numbers are invalid except -1
                        - MinusOne means all the underlying hierarchy chain (N - X)
                        - One means all people having this person as direct manager (N - 1) - DEFAULT
                        - Two means "One" + all people having them as direct manager (N - 2)
                        - ...
                    format: int32
                    type: integer
                memberId:
                    type: string
                personIds:
                    description: PersonIds are individual people.
                    items:
                        type: string
                    type: array
            required:
                - hierarchyDepth
            type: object
        v2PresentAttendees:
            properties:
                presentAttendees:
                    items:
                        type: string
                    type: array
            type: object
        v2ProgressResponse:
            properties:
                averageAnsweredQuestions:
                    format: float
                    type: number
                campaignContent:
                    $ref: '#/components/schemas/v2ContentSummary'
                interviewsPerStatus:
                    $ref: '#/components/schemas/v2SummaryResponse'
                percentValidatedInterviews:
                    description: ValidatedInterviews is the percentage of interviews having a status above or equal to done.
                    format: int32
                    type: integer
                percentValidatedPreparation:
                    description: |-
                        ValidatedPreparation is the percentage of interviews having a status above or equal to planning.
                        The total completed evaluation can be found within TotalPerStatus on interview done status.
                    format: int32
                    type: integer
                totalAnsweredQuestions:
                    format: int64
                    type: string
                totalAssessed:
                    format: int64
                    type: string
                totalAssessor:
                    format: int64
                    type: string
                totalInterviews:
                    format: int32
                    type: integer
            title: |-
                ProgressResponse contains:
                - the total of interviews
                - the total of interviews per status
                - % validated preparation (status = planning) (ignored cancelled status interviews)
                - % validated interviews (status = done) (ignored cancelled status interviews)
                - total assessed
                - total assessor
                - campaign content summary
                - total of questions answered
            type: object
        v2Question:
            properties:
                assignee:
                    $ref: '#/components/schemas/v2Assignee'
                description:
                    type: string
                descriptionForAssessor:
                    type: string
                extraText:
                    description: |-
                        ExtraText boolean specify that for this question, an extra text can be added.
                        it'll be ignored for open question type.
                    type: boolean
                mandatoryForAssessed:
                    type: boolean
                mandatoryForAssessor:
                    type: boolean
                revision:
                    description: |-
                        Revision is an id that should be unique for all questions.
                        It's user generated and should be changed each time you feel the question don't have the same meaning..
                        It's used to track answers analytics, all answers being KPI were the KPI name is the revision it-self.
                    type: string
                specificQuestionForAssessor:
                    type: boolean
                title:
                    description: 'Title is the question it self of the form: "Do you enjoy the company ?".'
                    type: string
                titleForAssessor:
                    description: |-
                        TitleForEvaluator is the question asked to the assessor.
                        If SpecificForAssessor is true, this title cannot be empty.
                    type: string
            required:
                - revision
            type: object
        v2QuestionBinary:
            description: |-
                QuestionBinary is a question where the answer is either yes/no.
                Unspecified value should unset the question's value.
            properties:
                question:
                    $ref: '#/components/schemas/v2Question'
            required:
                - question
            type: object
        v2QuestionBody:
            properties:
                binary:
                    $ref: '#/components/schemas/v2QuestionBinary'
                open:
                    $ref: '#/components/schemas/v2QuestionOpen'
                scale:
                    $ref: '#/components/schemas/v2QuestionScale'
                select:
                    $ref: '#/components/schemas/v2QuestionSelect'
                training:
                    $ref: '#/components/schemas/v2QuestionTraining'
            type: object
        v2QuestionGoalEvaluation:
            description: |-
                QuestionGoalEvaluation is a question that creates a goals evaluation list.
                The auto evaluation can be configured by putting ANSWERER_BOTH type of assignee in the question.
            properties:
                assignee:
                    $ref: '#/components/schemas/v2Assignee'
                selfEvaluationRequired:
                    description: SelfEvaluationRequired specifies if the self evaluation is required for the interview.
                    type: boolean
                targetExtendOption:
                    description: TargetExtendOption specifies if the target extend option should be displayed in the target evaluation.
                    type: boolean
            type: object
        v2QuestionGoalFixation:
            description: |-
                QuestionGoalFixation is a question that creates a goals fixation for next interviews.
                It can only be answered by the assessor.
            properties:
                includeInGoalEvaluation:
                    description: |-
                        IncludeInGoalEvaluation specifies if the the goal fixation should be displayed in QuestionGoalEvaluation or not.
                        This boolean cannot be set to true if there is no QuestionGoalEvaluation.
                    type: boolean
            type: object
        v2QuestionOpen:
            description: QuestionOpen is a question were the answer is a free text.
            properties:
                question:
                    $ref: '#/components/schemas/v2Question'
            required:
                - question
            type: object
        v2QuestionScale:
            description: QuestionScale is a question where the answer will be within a defined range.
            properties:
                maxRange:
                    description: |-
                        MaxRange accepted value for scale.
                        MaxRange is inclusive.
                    format: int32
                    type: integer
                maxRangeLabel:
                    type: string
                minRange:
                    description: |-
                        MinRange accepted value for scale.
                        MinRange is inclusive.
                    format: int32
                    type: integer
                minRangeLabel:
                    type: string
                question:
                    $ref: '#/components/schemas/v2Question'
            required:
                - question
            type: object
        v2QuestionSelect:
            description: QuestionSelect is a question were the answer must be in a prepared list of choices.
            properties:
                choices:
                    description: Choices are the possible answers.
                    items:
                        $ref: '#/components/schemas/v2ChoiceString'
                    type: array
                choicesForAssessor:
                    description: Choices are the possible answers.
                    items:
                        $ref: '#/components/schemas/v2ChoiceString'
                    type: array
                multipleChoices:
                    description: |-
                        MultipleChoices describe the expected behavior for the answer.
                        When false, only one choice is expected
                        When true, we rely on MaxNumberOfChoices to validate answers.
                    type: boolean
                otherChoice:
                    title: OtherChoice add a trailing input  "other"
                    type: boolean
                otherChoiceForAssessor:
                    title: OtherChoice add a trailing input  "other"
                    type: boolean
                question:
                    $ref: '#/components/schemas/v2Question'
            required:
                - question
            type: object
        v2QuestionSkillEvaluation:
            description: |-
                QuestionSkillEvaluation is a question that creates a skills evaluation grid.
                The auto evaluation can be configured by putting ANSWERER_BOTH type of assignee in the question.
            properties:
                assignee:
                    $ref: '#/components/schemas/v2Assignee'
                extraText:
                    description: ExtraText boolean specify that for this question, an extra text can be added for each skill.
                    type: boolean
                isExpectedLevelHidden:
                    description: IsExpectedLevelHidden defines if the expected level should be hidden or not during the interview.
                    type: boolean
                mandatory:
                    description: |-
                        Mandatory force the evaluator during interview to evaluate each skill or the interview cannot move forward.
                        Could be changed on a launched campaign since if needed be. Checks are pure ui.
                    type: boolean
            type: object
        v2QuestionTraining:
            description: |-
                QuestionTraining is a question where the assessor asks for a training and the evaluator validate/rejects it.
                There can be only one training question per campaign content.
            properties:
                question:
                    $ref: '#/components/schemas/v2Question'
            required:
                - question
            type: object
        v2RedirectResponse:
            properties:
                redirectUrl:
                    title: URL for next step for the flow
                    type: string
            required:
                - redirectUrl
            type: object
        v2RegenerateCampaignSummariesRequest:
            properties:
                campaignId:
                    type: string
            required:
                - campaignId
            type: object
        v2RelativeDateEvent:
            default: RELATIVE_DATE_EVENT_UNSPECIFIED
            description: RelativeDateEvent identifies a participant-specific date used as the reference event.
            enum:
                - RELATIVE_DATE_EVENT_UNSPECIFIED
                - RELATIVE_DATE_EVENT_EMPLOYED_SINCE
                - RELATIVE_DATE_EVENT_BIRTH_DATE
            type: string
        v2RelativeDateOperator:
            default: RELATIVE_DATE_OPERATOR_UNSPECIFIED
            description: RelativeDateOperator specifies whether the offset is applied before, after, or at the event anniversary.
            enum:
                - RELATIVE_DATE_OPERATOR_UNSPECIFIED
                - RELATIVE_DATE_OPERATOR_BEFORE
                - RELATIVE_DATE_OPERATOR_AFTER
                - RELATIVE_DATE_OPERATOR_EQUAL
            type: string
        v2RelativeDateUnit:
            default: RELATIVE_DATE_UNIT_UNSPECIFIED
            description: RelativeDateUnit is the time unit for the offset applied to the event anniversary.
            enum:
                - RELATIVE_DATE_UNIT_UNSPECIFIED
                - RELATIVE_DATE_UNIT_DAY
                - RELATIVE_DATE_UNIT_WEEK
                - RELATIVE_DATE_UNIT_MONTH
            type: string
        v2RememberSession:
            description: |-
                RememberSession is the session kept
                for the device when user clicked on remember me in a previous login flow.
            properties:
                email:
                    type: string
                firstName:
                    type: string
                lastName:
                    type: string
                userId:
                    type: string
            type: object
        v2ReminderSent:
            description: ReminderSent is a projection of mail sent as reminder, either auto or manual.
            properties:
                headers:
                    $ref: '#/components/schemas/v2Headers'
                interviewId:
                    type: string
                targetStatus:
                    $ref: '#/components/schemas/v2InterviewStatus'
                timeSent:
                    format: date-time
                    type: string
            type: object
        v2ReminderTargetedStatus:
            default: REMINDER_TARGETED_STATUS_UNSPECIFIED
            enum:
                - REMINDER_TARGETED_STATUS_UNSPECIFIED
                - REMINDER_TARGETED_STATUS_PLANNING
                - REMINDER_TARGETED_STATUS_INTERVIEW
                - REMINDER_TARGETED_STATUS_SIGNATURE
            type: string
        v2Reminders:
            properties:
                interviewReminder:
                    description: |-
                        InterviewReminder is a simple preconfigured reminder targeting only the assessor.
                        If superior to zero it will trigger an email.
                        The email will be sent at Interview.SessionInterviewStart + the given duration.
                        The mail is not sent to session already in the next phase.
                        The duration will be truncated to days duration.
                    type: string
                planningReminder:
                    description: |-
                        PlanningReminder is a simple preconfigured reminder targeting the assessor and the assessed.
                        If superior to zero it will trigger an email send to anyone having a preparation left to do.
                        The email will be sent at Interview.SessionTime + the given duration.
                        The mail is not sent to session already in the next phase.
                        The duration will be truncated to days duration.
                    type: string
            type: object
        v2ReplaceGoalEvaluationRequest:
            properties:
                goalEvaluation:
                    $ref: '#/components/schemas/v2GoalEvaluation'
            required:
                - goalEvaluation
            type: object
        v2ReplaceScaleRequest:
            properties:
                replacementScaleOptionId:
                    description: |-
                        ID of a scale option from the new scale that will replace the value of goal
                        evaluations currently using a removed scale value. Required whenever a removed
                        value is still referenced by existing evaluations.
                    type: string
                scale:
                    $ref: '#/components/schemas/v2Scale'
            required:
                - scale
            type: object
        v2RequestApproval:
            default: REQUEST_APPROVAL_UNSPECIFIED
            enum:
                - REQUEST_APPROVAL_UNSPECIFIED
                - REQUEST_APPROVAL_NONE
                - REQUEST_APPROVAL_FAVORABLE
                - REQUEST_APPROVAL_UNFAVORABLE
                - REQUEST_APPROVAL_NO_OPINION
            type: string
        v2RequestStatus:
            default: REQUEST_STATUS_UNSPECIFIED
            enum:
                - REQUEST_STATUS_UNSPECIFIED
                - REQUEST_STATUS_NONE
                - REQUEST_STATUS_REFUSED
                - REQUEST_STATUS_POSTPONED
                - REQUEST_STATUS_ACCEPTED
                - REQUEST_STATUS_ACCEPTED_IN_ORDER
            type: string
        v2ResourceSearch:
            description: ResourceSearch allow to filter on an a column representing a Resource.id using the related list schema.
            properties:
                fieldRef:
                    description: FieldRef is the column of ids to filter.
                    type: string
                filters:
                    description: The root operator for the list of filter is AND.
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                type:
                    $ref: '#/components/schemas/dolmenResourceType'
            required:
                - type
                - fieldRef
                - filters
            type: object
        v2Role:
            description: Role is a empowill definition of scopes access.
            properties:
                companyId:
                    description: Associated company id for the role.
                    example: my-company
                    readOnly: true
                    type: string
                description:
                    description: Description help understanding role context and usage.
                    example: Some description avout this role
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                name:
                    description: Name is the role display name.
                    example: Employee
                    maxLength: 100
                    minLength: 3
                    type: string
                permissions:
                    description: |-
                        Permissions associated with this role.
                        Permission are described like "users.write.self.public"
                        Here:
                        - users is a scope (api defined, usually the prefix of a rest endpoint)
                        - write is an action (api defined)
                        - self is a population that can be self (default), population (user's population) or all (entire company)
                        - public is a protection that can be public (default) or protected (access on restricted fields)
                        "users.write.self.public" is equivalent to:
                        - users.write
                        - users.write.self
                        - users.write.public
                        it's not equivalent to users.write.population.protected
                        reversing population and protection is an error: users.write.public.self.
                    items:
                        type: string
                    type: array
                persona:
                    $ref: '#/components/schemas/v2Persona'
                system:
                    description: |-
                        System tells if the role is system define.
                        System roles are defined once for everyone on empowill, cannot be modified by apis
                        Trying updates on system roles returns not found errors since they are outside the scope of editable resources.
                        We use system roles to have default existing roles defined on company to
                        give a simple RBAC definition to end users.
                        They are also default role at company creation but it can be changed at any time by administrator of the platform.
                        Empowill can add permission to system role when releasing new features, if you rely on those,
                        you accept the default behavior of new features when they become generally available on the platform.
                    type: boolean
                type:
                    $ref: '#/components/schemas/v2RoleType'
            required:
                - name
                - type
            type: object
        v2RoleAggregate:
            properties:
                assignedUsers:
                    description: AssignedUsers is the full list of users assigned.
                    items:
                        type: string
                    type: array
                assignedUsersNb:
                    description: AssignedUsersNb is the list of active users assigned.
                    format: int32
                    type: integer
                role:
                    $ref: '#/components/schemas/v2Role'
            type: object
        v2RoleCompanySettings:
            properties:
                aiEnabled:
                    description: |-
                        AI master toggle. When false, all AI features are disabled for this company.
                        Only updatable by users with ai.usage permission; ignored (set to null) otherwise.
                    type: boolean
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                defaultPopulation:
                    format: int32
                    type: integer
                headers:
                    $ref: '#/components/schemas/v2Headers'
                roleDefaultCreation:
                    type: string
                ssoProviderSettings:
                    $ref: '#/components/schemas/v2SSOProviderSettings'
            type: object
        v2RoleType:
            default: ROLE_TYPE_UNSPECIFIED
            enum:
                - ROLE_TYPE_UNSPECIFIED
                - ROLE_TYPE_EMPLOYEE
                - ROLE_TYPE_USER
                - ROLE_TYPE_COLLABORATOR
                - ROLE_TYPE_MANAGER
                - ROLE_TYPE_ADMINISTRATOR
                - ROLE_TYPE_DISTRIBUTOR
            type: string
        v2SSOProviderSettings:
            description: |-
                SSOProviderSettings contains configuration for different SSO providers that can be enabled for a company.
                When at least one provider is enabled, the force_sso field in RoleCompanySettings can be set to true.
            properties:
                azure:
                    type: boolean
                custom:
                    $ref: '#/components/schemas/v2CustomSSO'
                google:
                    type: boolean
                peopleSpheres:
                    type: boolean
            type: object
        v2Salary:
            properties:
                customSalaryAmount:
                    format: double
                    type: number
                hourlyRate:
                    format: double
                    readOnly: true
                    type: number
                salary:
                    format: double
                    readOnly: true
                    type: number
                salaryPeriod:
                    $ref: '#/components/schemas/commonsPeriod'
            type: object
        v2Scale:
            description: |-
                Scale represents a numeric scale.
                It embed a list of scale options that defines the scale range.
                There must be at least 2 items in the scale and 10 max items.
                The scale must begin either by 1 or 0.
            properties:
                pagination:
                    $ref: '#/components/schemas/v2ListResponse'
                scaleOptions:
                    items:
                        $ref: '#/components/schemas/v2ScaleOption'
                    type: array
            type: object
        v2ScaleOption:
            description: ScaleOption is what describe a value within a scale.
            properties:
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                label:
                    type: string
                type:
                    $ref: '#/components/schemas/v2ScaleOptionType'
                value:
                    format: int32
                    type: integer
            required:
                - value
                - label
            type: object
        v2ScaleOptionType:
            default: SCALE_OPTION_TYPE_UNSPECIFIED
            enum:
                - SCALE_OPTION_TYPE_UNSPECIFIED
                - SCALE_OPTION_TYPE_SKILL
                - SCALE_OPTION_TYPE_SATISFACTION
            type: string
        v2Scheduling:
            properties:
                deadlineAssessment:
                    description: |-
                        DeadlineAssessment is a duration computed after an interview session starts.
                        It represents the time given to sign the assessment.
                        By default there is unlimited time if the duration is zero.
                    type: string
                deadlineSelfAssessment:
                    description: |-
                        DeadlineSelfAssessment is a duration computed after an interview session starts.
                        It represents the time given to prepare assessment.
                        By default there is unlimited time if the duration is zero.
                    type: string
                launchHour:
                    description: |-
                        Launch hour (0-23) is the hour of day (in the requesting user's timezone)
                        at which interview sessions become eligible for creation.
                        When nil, 8 (8 AM) is used as default.
                    format: int32
                    type: integer
                launchMode:
                    $ref: '#/components/schemas/v2LaunchMode'
                relativeDateAmount:
                    description: RelativeDateAmount represents the number of time unit used to compute the offset.
                    format: int32
                    type: integer
                relativeDateEvent:
                    $ref: '#/components/schemas/v2RelativeDateEvent'
                relativeDateOperator:
                    $ref: '#/components/schemas/v2RelativeDateOperator'
                relativeDateUnit:
                    $ref: '#/components/schemas/v2RelativeDateUnit'
                sessionCreationStrategy:
                    $ref: '#/components/schemas/v2SessionCreationStrategy'
                starts:
                    description: |-
                        Start is optional and can be set at when launching the campaign manually.
                        When launch is start, the campaign tries be launched automatically.
                        Consider launch to default on time now if launched manually.
                    format: date-time
                    type: string
            type: object
        v2ScopeDefinition:
            properties:
                actions:
                    additionalProperties:
                        $ref: '#/components/schemas/v2ActionDefinition'
                    type: object
                title:
                    description: Title is a translated title for the scope.
                    type: string
            type: object
        v2SecondaryAssessmentAggregate:
            properties:
                secondaryAssessment:
                    $ref: '#/components/schemas/v2InterviewSecondaryAssessment'
            type: object
        v2SecondaryAssessorSettings:
            properties:
                notifySecondaryAssessor:
                    description: |-
                        Is a boolean that indicates if the secondary assessor should be notified
                        with the pdf of the interview when the primary assessor has finished the interview.
                    type: boolean
                secondaryAssessorRequired:
                    description: |-
                        is a boolean that indicates if a secondary assessor is required,
                        if true, the secondary assessor will be required for participants.
                    type: boolean
                secondaryAssessorSignatureRequired:
                    type: boolean
                showSecondaryAssessorComment:
                    description: Is a boolean that indicates if the secondary assessor comment can be shown to the participant.
                    type: boolean
            type: object
        v2SecondaryAssessorValidations:
            properties:
                validations:
                    additionalProperties:
                        type: boolean
                    type: object
            type: object
        v2SecondaryAssessors:
            properties:
                secondaryAssessorIds:
                    items:
                        type: string
                    type: array
            type: object
        v2Section:
            description: |-
                Section is a split between two segment of the layout.
                We consider that a section starts from this element.
                In pdf generation a new page is created from this element.
                On the platform, sections are displayed in the summary.
            properties:
                title:
                    type: string
            type: object
        v2SelfReferringGraphSearch:
            description: |-
                SelfReferringGraphSearch allow to filter on self referring table like member or company.
                The search never revisit the same node twice, therefore it never cycles.
            properties:
                depth:
                    description: |-
                        Depth relate the max depth to traverse during the search.
                        Default to 0 meaning only the first layer will be search with no recursion.
                        1 means the first layer (starting layer) + one recursion.
                        -1 means max limit. The actual value could change but for now it's 100 recursion.
                        All value after 100 are limited to 100.
                    format: int32
                    type: integer
                fieldRef:
                    description: |-
                        FieldRef is the reference field you want to acquire as a filter.
                        For instance users have a "member.manager_id" field referring to "member.person_id".
                        If you need to search the management hierarchy, this field would contain "member.person_id"
                        and filter all result on this equivalence.
                    type: string
                firstNodeFieldRefValue:
                    type: string
                foreignFieldRef:
                    description: |-
                        ForeignFieldRef is the field contained in children referring to parents.
                        For instance in the same example as above, this would contain "member.manager_id".
                    type: string
                multipleForeignFieldRefs:
                    description: |-
                        MultipleForeignFieldRefs allows specifying several foreign key fields instead of a single ForeignFieldRef.
                        When set, the recursive JOIN uses an OR across all listed foreign keys.
                        ForeignFieldRef is ignored when this field is non-empty.
                    items:
                        type: string
                    type: array
            required:
                - fieldRef
                - foreignFieldRef
                - firstNodeFieldRefValue
            type: object
        v2SendApplicationLinkResponse:
            properties:
                number:
                    format: int32
                    title: Number of emails sent
                    type: integer
            type: object
        v2SendCampaignReminderRequest:
            properties:
                campaignId:
                    type: string
                filters:
                    description: |-
                        filters apply on InterviewReminders aggregate.
                        For example:
                        - to filter on a specific interview you should use "interview.id" reference.
                        - to filter on a participant you can should use "interview.assessed_id" reference.
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                sendToAssessed:
                    description: 'Recipient flags: at least one must be true for the endpoint to do anything.'
                    type: boolean
                sendToAssessor:
                    type: boolean
                sendToSecondaryAssessors:
                    type: boolean
                status:
                    $ref: '#/components/schemas/v2ReminderTargetedStatus'
                targetDuration:
                    description: |-
                        Duration allow to specify a required distance between now and each target status.
                        Must be superior or equal to 0, default to 0.
                        This will filter interviews on the start time matching their status where:
                        ref_time_for_status + target_duration = now.
                        Resulting precision is a day in UTC.
                    type: string
            required:
                - campaignId
            type: object
        v2SendCampaignReminderResponse:
            properties:
                assessedEmailSent:
                    format: int32
                    type: integer
                assessorEmailSent:
                    format: int32
                    type: integer
            type: object
        v2SendOrderEmailRequest:
            properties:
                attachCertificates:
                    description: AttachCertificates whether attendees will have their certificate attached to the email.
                    type: boolean
                attachConvocations:
                    description: AttachConvocations whether attendees will have their convocation attached to the email.
                    type: boolean
                attachDocIds:
                    description: AttachDocIds TrainingOrderDocument ids to be attached to all emails.
                    items:
                        type: string
                    type: array
                attendeeIds:
                    description: AttendeeIds the ids of the attendees who will receive the email.
                    items:
                        type: string
                    type: array
                content:
                    type: string
                createComment:
                    description: CreateComment will record the email as a comment on the training order.
                    type: boolean
                notifyNPlusOnes:
                    description: NotifyNPlusOnes whether attendee n+1s will receive the email as CC.
                    type: boolean
                notifyUserIds:
                    description: NotifyUserIds additional users who will receive the email as CC.
                    items:
                        type: string
                    type: array
                orderId:
                    description: OrderId the id of either a real or provisional order.
                    type: string
                subject:
                    type: string
            required:
                - orderId
                - subject
                - content
            type: object
        v2SendTrainingRequestEmailRequest:
            properties:
                content:
                    type: string
                notifyNPlusOnes:
                    description: NotifyNPlusOnes whether trainee n+1s will receive the email.
                    type: boolean
                notifyNPlusTwos:
                    description: NotifyNPlusTwos whether trainee n+2s will receive the email.
                    type: boolean
                notifyPendingApprovers:
                    description: NotifyPendingApprovers whether pending approvers will receive the email.
                    type: boolean
                notifyReporters:
                    description: NotifyReporters whether reporters will receive the email.
                    type: boolean
                notifyTrainees:
                    description: NotifyTrainees whether trainees will receive the email.
                    type: boolean
                notifyUserIds:
                    description: NotifyUserIds additional users who will receive the email.
                    items:
                        type: string
                    type: array
                requestIds:
                    description: RequestIds the requests this email is about. If empty, no email will be sent.
                    items:
                        type: string
                    type: array
                subject:
                    type: string
            required:
                - requestIds
                - subject
                - content
            type: object
        v2Session:
            properties:
                companyId:
                    description: |-
                        company id is the company over which users login.
                        Connections are allowed to be showed across tenants for security audit.
                    readOnly: true
                    type: string
                connectionAcr:
                    description: |-
                        ConnectionAcr is a platform login method also written in the token claims "acr".
                        Can be:
                         - password: Email / password flow.
                         - sso: Going though a third party open id provider configured on the company.
                         - email-connect: A temporary token sent by email.
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                loginChallenge:
                    description: |-
                        LoginChallenge is the matching login temporary id used for open id connection.
                        This challenge is matching our open id compliant provider ory/hydra
                        and used during audit to match all open id flow related informations.
                    readOnly: true
                    type: string
                userId:
                    readOnly: true
                    type: string
            type: object
        v2SessionAttendanceSignature:
            properties:
                signerComment:
                    readOnly: true
                    type: string
                signerEmail:
                    readOnly: true
                    type: string
                signerFullName:
                    readOnly: true
                    type: string
                signerLinkSentAt:
                    format: date-time
                    readOnly: true
                    type: string
                signerSignature:
                    description: SignerSignature is a base64 encoded image JPEG/PNG.
                    readOnly: true
                    type: string
                signerSignedAt:
                    format: date-time
                    readOnly: true
                    type: string
            type: object
        v2SessionCreationStrategy:
            default: SESSION_CREATION_STRATEGY_UNSPECIFIED
            description: |-
                SessionCreationStrategy enum specifies how new session are created when launched:
                SESSION_CREATION_STRATEGY_CANCEL: cancels the ongoing interview for participants before creating the new one.
                SESSION_CREATION_STRATEGY_PREVENT: prevent the creation of a new interview if there is one ongoing.
            enum:
                - SESSION_CREATION_STRATEGY_UNSPECIFIED
                - SESSION_CREATION_STRATEGY_CANCEL
                - SESSION_CREATION_STRATEGY_PREVENT
            type: string
        v2SetCampaignAISettingsRequest:
            properties:
                settings:
                    $ref: '#/components/schemas/v2CampaignAISettings'
            required:
                - settings
            type: object
        v2SetContentRequest:
            properties:
                content:
                    $ref: '#/components/schemas/v2CampaignContent'
            type: object
        v2SetStatusRequest:
            properties:
                campaignId:
                    type: string
                companyId:
                    description: CompanyId can be filled with http header "company-id".
                    type: string
                status:
                    $ref: '#/components/schemas/v2CampaignStatus'
            required:
                - campaignId
                - status
            type: object
        v2Sharing:
            description: |-
                Sharing describes the owner(s) for a resource.
                It can be embedded within any artefact to be inserted in the database.
                It is used to filter resources with privileges.
            properties:
                contributors:
                    description: |-
                        Contributors is the list of persons' IDs that own this resource.
                        The resource's creator is added by default into the list.
                    items:
                        type: string
                    type: array
                sharingMode:
                    $ref: '#/components/schemas/v2Mode'
            required:
                - sharingMode
            type: object
        v2SigninOriginQueryParams:
            properties:
                email:
                    example: user@example.com
                    title: email address suggested for the authentication
                    type: string
                emailConnectTokenInvalid:
                    description: EmailConnectTokenInvalid is only set when the flow was initialize by an email connect flow with an invalid token.
                    type: boolean
                error:
                    description: Error is an optional parameter that let the user know what append during login flow.
                    type: string
                errorIssuedAt:
                    description: ErrorIssuedAt is an optional parameter that describe a timestamp in milliseconds when the error occurred.
                    format: int64
                    type: string
                provider:
                    description: Provider is an optional parameter that let the user initiates a sso login on the requested provider.
                    type: string
                resetPasswordToken:
                    description: |-
                        Reset Password Token is given if the flow was initiated with a reset password hook
                        It should replace default login page behavior by a reset password page.
                    type: string
                resetPasswordWelcome:
                    description: ResetPasswordWelcome explains the reset password is for first connection.
                    type: boolean
                sourceHref:
                    example: https://app.empowill.com/current
                    title: Return the origin location initiating the flow
                    type: string
            title: |-
                Context of the login flow provided by openid
                All those infos can be set at flow initiation
            type: object
        v2SigninStrategyResponse:
            properties:
                emailConnectRedirect:
                    $ref: '#/components/schemas/v2RedirectResponse'
                found:
                    example: true
                    title: true if a strategy was found for user
                    type: boolean
                password:
                    example: true
                    title: true when password is allowed as a first step
                    type: boolean
                queryParams:
                    $ref: '#/components/schemas/v2SigninOriginQueryParams'
                remembered:
                    $ref: '#/components/schemas/v2RememberSession'
                ssoProviders:
                    items:
                        type: string
                    type: array
            required:
                - found
                - password
                - queryParams
            type: object
        v2Skill:
            description: |-
                Skill represents a skill definition and content.
                It can only exists within a thematic.
            properties:
                skillContent:
                    $ref: '#/components/schemas/v2SkillContent'
                skillNode:
                    $ref: '#/components/schemas/v2SkillNode'
                thematicIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
            type: object
        v2SkillContent:
            properties:
                description:
                    description: Description allows markdown.
                    type: string
                expectedScaleOptionId:
                    description: ExpectedScaleOptionID is the expected level associated for this skill.
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion.
                        It'll take a skill ID as value.
                    readOnly: true
                    type: string
            type: object
        v2SkillCount:
            properties:
                skillCount:
                    format: int32
                    type: integer
            type: object
        v2SkillEvaluation:
            properties:
                answerer:
                    $ref: '#/components/schemas/v2Answerer'
                answererId:
                    readOnly: true
                    type: string
                assessedId:
                    readOnly: true
                    type: string
                campaignId:
                    readOnly: true
                    type: string
                companyId:
                    description: CompanyId is filled with authentication session information.
                    readOnly: true
                    type: string
                expectedScaleOptionId:
                    description: ExpectedScaleOptionId can be set to override the default one (if any) already set in job/skill.
                    type: string
                extraText:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    readOnly: true
                    type: string
                interviewId:
                    description: InterviewId may be optional as skill evaluation may be done out of an interview context.
                    type: string
                irrelevant:
                    type: boolean
                scaleOptionId:
                    description: |-
                        ScaleOptionId is the ID of the scale option used to evaluate the user.
                        It can be unset if the boolean irrelevant is true.
                    type: string
                skillId:
                    type: string
            required:
                - skillId
                - interviewId
            type: object
        v2SkillEvaluationHistoric:
            properties:
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                evaluationAssessed:
                    $ref: '#/components/schemas/v2SkillEvaluation'
                evaluationAssessedScaleOption:
                    $ref: '#/components/schemas/v2ScaleOption'
                evaluationAssessor:
                    $ref: '#/components/schemas/v2SkillEvaluation'
                evaluationAssessorScaleOption:
                    $ref: '#/components/schemas/v2ScaleOption'
                interview:
                    $ref: '#/components/schemas/v2Interview'
                skill:
                    $ref: '#/components/schemas/v2SkillNode'
                skillFreeze:
                    $ref: '#/components/schemas/v2InterviewSkillFreeze'
            type: object
        v2SkillNode:
            description: |-
                SkillNode is a representation of a node stored in database.
                It can either be a skill or a thematic.
            properties:
                archived:
                    type: boolean
                headers:
                    $ref: '#/components/schemas/v2Headers'
                node:
                    $ref: '#/components/schemas/treeNode'
            type: object
        v2StringComparison:
            properties:
                accentInsensitive:
                    description: AccentInsensitive remove accents by removing all accent before comparison on left and right values so "Définitions" equals "Definitions".
                    type: boolean
                caseInsensitive:
                    description: CaseInsensitive remove case by lowering left and right values so "Cat" equals "cat".
                    type: boolean
                fieldRef:
                    type: string
                numberOccurrences:
                    description: NumberOccurrences is used to check that there must be n occurrences in a string.
                    format: int32
                    type: integer
                op:
                    $ref: '#/components/schemas/v2StringOp'
                splitSpaces:
                    description: |-
                        SplitSpaces splits given input on spaces and accept values matching every words, no matter the order so.
                        - "cat run in front of dog" equals "dog cat".
                        - "cat run in front of dog" does not equal "bird cat".
                    type: boolean
                value:
                    description: |-
                        Value is the value to compare to.
                        Be aware that null values are not compared and does not equals empty strings.
                    type: string
            required:
                - fieldRef
            type: object
        v2StringIn:
            properties:
                fieldRef:
                    type: string
                includeNull:
                    description: IncludeNull will also add null values to the list of possible values.
                    type: boolean
                values:
                    items:
                        type: string
                    type: array
            required:
                - fieldRef
            type: object
        v2StringOp:
            default: STRING_OP_UNSPECIFIED
            description: |4-
                 - STRING_OP_UNSPECIFIED: STRING_OP_UNSPECIFIED default to STRING_OP_MATCH
                 - STRING_OP_MATCH: STRING_OP_MATCH is a strict string comparison where field_value == "my_string"
                 - STRING_OP_CONTAIN: STRING_OP_CONTAIN search a sub string inside the field value.
                It does not supports regular expression.
                 - STRING_OP_BEGIN_WITH: STRING_OP_BEGIN_WITH is similar as STRING_OP_CONTAIN but will check at the beginning of the string.
                It does not supports regular expression.
                 - STRING_OP_NUMBER_OCCURRENCE: STRING_OP_NUMBER_OCCURRENCE takes a substring values and count the number of time this substring is in the db value.
                The provided substring to match is embedded within a regular expression.
            enum:
                - STRING_OP_UNSPECIFIED
                - STRING_OP_MATCH
                - STRING_OP_CONTAIN
                - STRING_OP_BEGIN_WITH
                - STRING_OP_NUMBER_OCCURRENCE
            type: string
        v2SuccessionPlan:
            properties:
                companyId:
                    readOnly: true
                    type: string
                contextUrn:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                jobId:
                    type: string
                targetDate:
                    format: date-time
                    type: string
                targetJobId:
                    type: string
                userId:
                    type: string
            required:
                - targetDate
                - targetJobId
            type: object
        v2SuccessionPlanAggregate:
            properties:
                matchScorePct:
                    description: |-
                        Virtual field: matching percentage of the plan's user against the target
                        job, computed exactly like JobAdequation.match_score_pct (avg of the
                        per-skill adequation percentages). Left-joined in ListSuccessionPlans.
                    format: float
                    type: number
                successionPlan:
                    $ref: '#/components/schemas/v2SuccessionPlan'
            type: object
        v2Summary:
            properties:
                avg:
                    description: Avg is the average of the given field if the field is numeric, otherwise 0.
                    format: double
                    type: number
                groupRefValue:
                    description: |-
                        GroupRefValue is empty by default.
                        It contains the value of the groupRef field if requested in query.
                        All database values are converted to text in order to simplify payload types.
                        Be aware that system enum values are numbers, not strings.
                    type: string
                sum:
                    description: |-
                        Sum of the given field. Only field if numeric, otherwise default to 0.
                        Duration fields are converted to seconds.
                        Sum of the given field if the field is numeric, otherwise 0.
                    format: double
                    type: number
                total:
                    description: Total number of rows for the given filter / group clause.
                    format: int32
                    type: integer
            type: object
        v2SummaryParticipantsLastInterviewRequest:
            properties:
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2SummaryRequest'
            required:
                - campaignId
            type: object
        v2SummaryParticipantsRequest:
            properties:
                campaignId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2SummaryRequest'
            required:
                - campaignId
            type: object
        v2SummaryRequest:
            properties:
                filters:
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
                groupRef:
                    description: |-
                        GroupRef is the reference of a field you want to group over.
                        For instance a artefact having a "status" field could be summarized group by status,
                        giving a total per existing status.
                    type: string
                search:
                    $ref: '#/components/schemas/commonsv2Search'
                sorts:
                    description: |-
                        Sorts is used to sort the result-set in ascending or descending order.
                        For example, sorting by created_at descending will return a result-set with the first element created last.
                        The sorting is not applied to the result-set, but it is applied to the data used to do the result-set.
                    items:
                        $ref: '#/components/schemas/v2Order'
                    type: array
                summaryRef:
                    description: |-
                        SummaryRef is the reference of the field you want to summarize.
                        If the field is numeric, it will also returns sum and average, otherwise, only total is computed.
                        This field is required.
                        If you don't know what to use and only wanna know the total of some grouping clause,
                        you can summarize on created_at.
                    type: string
            type: object
        v2SummaryResponse:
            properties:
                summary:
                    description: |-
                        Summary have at least one element.
                        It have only one when there is no GroupRef in query.
                        It have one per GroupRefValue if a field is specified.
                    items:
                        $ref: '#/components/schemas/v2Summary'
                    type: array
            type: object
        v2SystemNoteCategory:
            default: SYSTEM_NOTE_CATEGORY_UNSPECIFIED
            enum:
                - SYSTEM_NOTE_CATEGORY_UNSPECIFIED
                - SYSTEM_NOTE_CATEGORY_JOB_HISTORIC
            title: '- SYSTEM_NOTE_CATEGORY_JOB_HISTORIC: SYSTEM_NOTE_CATEGORY_JOB_HISTORIC is deprecated'
            type: string
        v2Target:
            properties:
                assigneeId:
                    description: |-
                        AssigneeID is the an id of a user.
                        Creation of target on archived user is impossible.
                        This field is required and immutable.
                    type: string
                companyId:
                    readOnly: true
                    type: string
                ends:
                    description: |-
                        Ends represent the deadline of the target.
                        This means the target should be reached by the user at this very moment.
                    format: date-time
                    type: string
                expectation:
                    description: |-
                        Expectation is a phrase explaining the target end goal for the user.
                        This field is required for all goals type except for goals of type number where it will be emptied if passed.
                    type: string
                expectedNumber:
                    description: |-
                        Expectation is a phrase explaining the target end goal for the user.
                        This field is required for goals of type "number", it will be emptied for other types..
                    format: double
                    type: number
                goalId:
                    description: |-
                        GoalId is the an id of an existing goal.
                        Creation of target on archived goals is impossible.
                        This field is required and immutable.
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion.
                        It'll take a goal ID as value.
                    type: string
                interviewId:
                    description: |-
                        Interview ID for targets created during interview goal fixation.
                        This field is populated ONLY when a target is created via InterviewGoalFixationService.
                        It remains null/empty for regular targets and session targets.
                        For the assessed, targets planned in an interview that are still in planning phase are filtered out.
                    readOnly: true
                    type: string
                starts:
                    description: |-
                        Starts represent the starting date of the target.
                        This means the target expect the user to start working on this target only from this point over.
                    format: date-time
                    type: string
                status:
                    $ref: '#/components/schemas/v2TargetStatus'
                weight:
                    description: Weight is the weight for evaluation applied for this target.
                    format: double
                    type: number
            required:
                - starts
                - ends
            type: object
        v2TargetStatus:
            default: TARGET_STATUS_UNSPECIFIED
            enum:
                - TARGET_STATUS_UNSPECIFIED
                - TARGET_STATUS_ONGOING
                - TARGET_STATUS_CLOSED
                - TARGET_STATUS_CANCELLED
            type: string
        v2Text:
            properties:
                description:
                    type: string
            type: object
        v2Thematic:
            description: |-
                Thematic represents a thematic content.
                There can only be a specific thematic depth available, you can't create a sub sub thematic.
            properties:
                skillCount:
                    description: |-
                        SkillCount is the total number of non-archived skills under this thematic,
                        including those nested in its sub-thematics.
                    format: int32
                    readOnly: true
                    type: integer
                skillNode:
                    $ref: '#/components/schemas/v2SkillNode'
            type: object
        v2TimeComparison:
            properties:
                fieldRef:
                    type: string
                granularity:
                    $ref: '#/components/schemas/commonsPeriod'
                op:
                    $ref: '#/components/schemas/v2TimeOp'
                value:
                    description: Value is the value to compare to.
                    format: date-time
                    type: string
            required:
                - fieldRef
            type: object
        v2TimeOp:
            default: TIME_OP_UNSPECIFIED
            enum:
                - TIME_OP_UNSPECIFIED
                - TIME_OP_EQUAL
                - TIME_OP_GREATER_THAN
                - TIME_OP_GREATER_THAN_EQUAL
                - TIME_OP_LESSER_THAN
                - TIME_OP_LESSER_THAN_EQUAL
            title: '- TIME_OP_UNSPECIFIED: TIME_OP_UNSPECIFIED default to TIME_OP_EQUAL'
            type: string
        v2TokenUser:
            properties:
                cachedAt:
                    format: date-time
                    type: string
                clientId:
                    title: |-
                        ClientID is open id client used to generate client
                        if it equals subject, it means it's an authenticated confidential client's token
                    type: string
                companyId:
                    type: string
                email:
                    type: string
                impersonatedBy:
                    description: |-
                        ImpersonatedBy is set when a user is impersonated by another.
                        It's impossible to impersonate another service for now, we do not have any use cases.
                        It's filled by an urn representing either a service account or a human.
                        For instance an import will effectively run as a human asking to import a lot of elements,
                        but as a long running process, the empowill main service account is
                        using the user identity to apply the changes during the process.
                    type: string
                permissions:
                    items:
                        type: string
                    type: array
                population:
                    $ref: '#/components/schemas/v2Population'
                roleType:
                    $ref: '#/components/schemas/v2RoleType'
                subject:
                    title: Subject is open id's sub, can be either a client id or a user id
                    type: string
            required:
                - subject
                - clientId
                - companyId
                - email
                - roleType
                - permissions
            type: object
        v2Training:
            properties:
                address:
                    type: string
                archived:
                    type: boolean
                autoValidateAttendees:
                    type: boolean
                autoValidatePresenceThreshold:
                    format: int32
                    type: integer
                capacity:
                    description: Capacity represents the number of participants that can participate.
                    format: int32
                    type: integer
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id
                    type: string
                confidential:
                    type: boolean
                costAmount:
                    format: double
                    type: number
                costType:
                    $ref: '#/components/schemas/v2CostType'
                cpf:
                    type: boolean
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                description:
                    type: string
                duration:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                links:
                    items:
                        type: string
                    type: array
                name:
                    type: string
                qualiopi:
                    type: boolean
                trainerIds:
                    description: TrainerIds is a list of user IDs for internal training type.
                    items:
                        type: string
                    type: array
                type:
                    $ref: '#/components/schemas/v2TrainingType'
            required:
                - name
                - type
            type: object
        v2TrainingAggregate:
            description: TrainingAggregate bundles a training with associated data.
            properties:
                training:
                    $ref: '#/components/schemas/v2Training'
                trainingManyCertification:
                    $ref: '#/components/schemas/v2TrainingCertificationIds'
                trainingManyProvider:
                    $ref: '#/components/schemas/v2TrainingProviderIds'
                trainingManySkill:
                    $ref: '#/components/schemas/v2TrainingSkillIds'
            type: object
        v2TrainingCertification:
            description: TrainingCertification represent a certification to acquire in order to have the licence to do a job.
            properties:
                archived:
                    type: boolean
                category:
                    type: string
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id
                    type: string
                description:
                    type: string
                endValidityAlert:
                    description: |-
                        EndValidityAlert is the number of months before the end of validity of a certification
                        when an alert should be triggered toValidateEndValidityAlert the user.
                        If it equals 0, no alert will be triggered.
                        Default to 0.
                        The value can't be superior to ValidityPeriodMonth.
                    format: int32
                    type: integer
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                name:
                    example: English
                    maxLength: 550
                    minLength: 3
                    type: string
                required:
                    description: |-
                        Required represent a urgency.
                        A required certification will be considered as blocking to do a given job that needs a certification.
                        Required certification are automatically setup forward in order to see them and treat them in priority,
                        in homepage for instance.
                    type: boolean
                validityPeriodMonth:
                    description: |-
                        ValidityPeriodMonth is the default validity period for acquired certification attached.
                        If a certification is acquired on the 2000-01-02.
                        The computed end of validity or a ValidityPeriodMonth of 2 month,
                        will be 2000-03-02 for this newly acquired certification.
                        It gives a good idea about how to setup a good alerting over certification that could expire.
                        If it equals 0, it's considered as a certification that does not expire.
                        Default to 0.
                    format: int32
                    type: integer
            required:
                - name
            type: object
        v2TrainingCertificationAggregate:
            properties:
                achievedCertificationStatus:
                    $ref: '#/components/schemas/v2AggregatedCertificationStatus'
                certification:
                    $ref: '#/components/schemas/v2TrainingCertification'
                certifiedEmployeeIds:
                    description: CertifiedEmployeeIds are all users ids who have already achieved the certification.
                    items:
                        type: string
                    type: array
                employeeToCertifyIds:
                    description: EmployeeToCertifyIds are all users ids having to complete the certification.
                    items:
                        type: string
                    type: array
                expiration:
                    description: |-
                        Expiration is the minimum date matching a certification period
                        of validity expiration across all employees to certify.
                    format: date-time
                    type: string
            type: object
        v2TrainingCertificationIds:
            properties:
                required:
                    title: required a training is considered required if any of the linked certifications is required
                    type: boolean
                trainingCertificationIds:
                    items:
                        type: string
                    type: array
            type: object
        v2TrainingOrder:
            properties:
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    description: Name is the training order title, it's optional and defaults to the training name in app.
                    type: string
                trainingGoal:
                    description: Training goal(s) is the targets you want people to improve by following this order.
                    type: string
                trainingPlanId:
                    type: string
            type: object
        v2TrainingOrderCost:
            properties:
                cpfTotal:
                    description: CPF total is the sum of all attendees cpf subsidies.
                    format: double
                    readOnly: true
                    type: number
                logisticCostInput:
                    description: |-
                        Logistic cost input represents the cost linked to the training
                        logistic such as transportation, accommodation, etc.
                    format: double
                    type: number
                logisticCostTotal:
                    description: Logistic cost total is the sum of all attendees logistic cost.
                    format: double
                    readOnly: true
                    type: number
                logisticCostType:
                    $ref: '#/components/schemas/v2OrderCostType'
                nonProductionCostTotal:
                    description: Non production cost total is the sum of all attendees non production cost (duration * hourly rate).
                    format: double
                    readOnly: true
                    type: number
                opcoSubsidiesInput:
                    description: Opco subsidies input represents the subsidies linked to the training.
                    format: double
                    type: number
                opcoSubsidiesTotal:
                    description: Opco subsidies total is the sum of all attendees opco subsidies.
                    format: double
                    readOnly: true
                    type: number
                opcoSubsidiesType:
                    $ref: '#/components/schemas/v2OrderCostType'
                otherSubsidiesInput:
                    description: Other subsidies cost input represents the cost linked to the training.
                    format: double
                    type: number
                otherSubsidiesTotal:
                    description: Other subsidies cost total is the sum of all attendees other subsidies.
                    format: double
                    readOnly: true
                    type: number
                otherSubsidiesType:
                    $ref: '#/components/schemas/v2OrderCostType'
                trainersCostTotal:
                    description: Trainers cost total is the sum of all trainers cost for internal training (duration * hourly rate).
                    format: double
                    readOnly: true
                    type: number
                trainingCostInput:
                    description: Training cost input represents the cost linked to the training.
                    format: double
                    type: number
                trainingCostTotal:
                    description: Training cost total is the sum of all attendees training cost.
                    format: double
                    readOnly: true
                    type: number
                trainingCostType:
                    $ref: '#/components/schemas/v2OrderCostType'
            type: object
        v2TrainingOrderDocument:
            properties:
                access:
                    $ref: '#/components/schemas/v2OrderDocumentAccess'
                attendeeId:
                    description: AttendeeId is the attendee's UserId.
                    type: string
                companyId:
                    readOnly: true
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                orderId:
                    type: string
                ready:
                    description: Ready is true when the document is available on GCS.
                    type: boolean
                sentAt:
                    description: SentAt is set if the document was sent by email.
                    format: date-time
                    type: string
                type:
                    $ref: '#/components/schemas/v2OrderDocumentType'
            type: object
        v2TrainingOrderProvisional:
            properties:
                attendeeIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                computedLogisticCostTotal:
                    description: |-
                        ComputedLogisticCostTotal is the total logistic cost of the order.
                        if no custom cost settings are set, it will be equal to LogisticCostTotal.
                    format: double
                    readOnly: true
                    type: number
                orderProvisional:
                    $ref: '#/components/schemas/v2OrderProvisional'
                totalCost:
                    format: double
                    readOnly: true
                    type: number
                trainers:
                    $ref: '#/components/schemas/v2OrderProvisionalTrainerIds'
                trainingOrder:
                    $ref: '#/components/schemas/v2TrainingOrder'
            type: object
        v2TrainingOrderProvisionalSession:
            properties:
                address:
                    type: string
                breakTime:
                    title: BreakTime Time during which attendees will be able to take a break
                    type: string
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                end:
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                orderId:
                    type: string
                start:
                    format: date-time
                    type: string
            required:
                - name
            type: object
        v2TrainingOrderReal:
            properties:
                attendeeIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                computedLogisticCostTotal:
                    description: |-
                        ComputedLogisticCostTotal is the total logistic cost of the order.
                        if no custom cost settings are set, it will be equal to LogisticCostTotal.
                    format: double
                    readOnly: true
                    type: number
                orderReal:
                    $ref: '#/components/schemas/v2OrderReal'
                totalCost:
                    format: double
                    readOnly: true
                    type: number
                trainers:
                    $ref: '#/components/schemas/v2OrderRealTrainerIds'
                trainingName:
                    readOnly: true
                    type: string
                trainingOrder:
                    $ref: '#/components/schemas/v2TrainingOrder'
                trainingProviderName:
                    readOnly: true
                    type: string
                trainingType:
                    $ref: '#/components/schemas/v2TrainingType'
            type: object
        v2TrainingOrderRealSession:
            properties:
                address:
                    type: string
                attendanceSignature:
                    $ref: '#/components/schemas/v2SessionAttendanceSignature'
                breakTime:
                    title: BreakTime Time during which attendees will be able to take a break
                    type: string
                calendarEvent:
                    $ref: '#/components/schemas/v2CalendarEvent'
                companyId:
                    example: my-company
                    readOnly: true
                    type: string
                end:
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                name:
                    type: string
                orderId:
                    type: string
                presentAttendees:
                    $ref: '#/components/schemas/v2PresentAttendees'
                start:
                    format: date-time
                    type: string
            required:
                - name
            type: object
        v2TrainingParticipation:
            properties:
                attendee:
                    $ref: '#/components/schemas/v2MinimalOrderAttendee'
                isReal:
                    description: |-
                        IsReal if true, the minimal attendee and order will contain data from a real attendee and order. Otherwise
                        provisional.
                    readOnly: true
                    type: boolean
                minimalOrder:
                    $ref: '#/components/schemas/v2MinimalOrder'
                plan:
                    $ref: '#/components/schemas/v2MinimalPlan'
                status:
                    $ref: '#/components/schemas/v2TrainingParticipationStatus'
                training:
                    $ref: '#/components/schemas/v2Training'
                trainingProvider:
                    $ref: '#/components/schemas/v2TrainingProvider'
            type: object
        v2TrainingParticipationStatus:
            default: TRAINING_PARTICIPATION_STATUS_UNSPECIFIED
            enum:
                - TRAINING_PARTICIPATION_STATUS_UNSPECIFIED
                - TRAINING_PARTICIPATION_STATUS_PROVISIONAL_FROZEN
                - TRAINING_PARTICIPATION_STATUS_PROVISIONAL
                - TRAINING_PARTICIPATION_STATUS_REAL_TO_PLAN
                - TRAINING_PARTICIPATION_STATUS_REAL_PLANNED
                - TRAINING_PARTICIPATION_STATUS_REAL_ONGOING
                - TRAINING_PARTICIPATION_STATUS_REAL_DONE
                - TRAINING_PARTICIPATION_STATUS_REAL_CANCELED
            type: string
        v2TrainingPlan:
            description: TrainingPlan represent an entity to manage and organize all the approved training requests.
            properties:
                budget:
                    format: double
                    type: number
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                name:
                    type: string
                provisionalEnabled:
                    type: boolean
                provisionalFrozen:
                    description: |-
                        ProvisionalFrozen plans cannot have any edition to their provisional orders. Plans are provisional frozen when
                        they are migrated.
                    readOnly: true
                    type: boolean
                sharing:
                    $ref: '#/components/schemas/v2Sharing'
            required:
                - name
            type: object
        v2TrainingProvider:
            description: TrainingProvider represent an organization that provides trainings.
            properties:
                archived:
                    type: boolean
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id
                    type: string
                contactEmail:
                    type: string
                contactName:
                    type: string
                contactPhone:
                    type: string
                description:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                name:
                    example: my-provider
                    type: string
                website:
                    type: string
            required:
                - name
            type: object
        v2TrainingProviderIds:
            properties:
                trainingProviderIds:
                    items:
                        type: string
                    type: array
            type: object
        v2TrainingRequest:
            description: |-
                TrainingRequest represent a demand from a reporter to teach a subject (goal) to a trainee.
                The request is free of all other relation than the people involved
                but can be linked to additional information to ease the training organisation.
            properties:
                address:
                    type: string
                companyId:
                    example: my-company
                    readOnly: true
                    title: Associated company id
                    type: string
                contextUrn:
                    description: |-
                        A empowill urn compliant location telling were the request was made.
                        Most of the time localize an interview session.
                    type: string
                customFields:
                    $ref: '#/components/schemas/v2CustomFields'
                description:
                    description: Description help understanding the goal of the request.
                    type: string
                duration:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: |-
                        Immutable UUID v4 generated at insertion,
                        can be passed at resource creation but must be a correct unused UUID v4.
                    type: string
                nPlusOneApproval:
                    $ref: '#/components/schemas/v2RequestApproval'
                nPlusOneId:
                    description: NPlusOneId is computed at request creation only and should not be seen as an up to date n+1 id.
                    readOnly: true
                    type: string
                nPlusTwoApproval:
                    $ref: '#/components/schemas/v2RequestApproval'
                nPlusTwoId:
                    description: NPlusTwoId is computed at request creation only and should not be seen as an up to date n+2 id.
                    readOnly: true
                    type: string
                name:
                    description: Goal of the training request.
                    example: English
                    maxLength: 550
                    minLength: 3
                    type: string
                orderId:
                    description: OrderId is the id of the order the request was accepted in.
                    readOnly: true
                    type: string
                otherFavorableIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                otherNoOpinionIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                otherUnfavorableIds:
                    items:
                        type: string
                    readOnly: true
                    type: array
                priority:
                    description: Description help understanding the goal of the request.
                    format: int32
                    type: integer
                reporterId:
                    description: |-
                        Person making the request. Can be the same as TraineeId.
                        Can be changed but no unset.
                    example: my-company
                    type: string
                statusInput:
                    $ref: '#/components/schemas/v2RequestStatus'
                traineeId:
                    description: Trainee the request aim to train.
                    example: my-company
                    type: string
                trainingId:
                    type: string
            required:
                - traineeId
                - reporterId
                - name
            type: object
        v2TrainingRequestAggregate:
            properties:
                attendeeId:
                    description: |-
                        AttendeeId will be populated with the id of a real attendee if any is linked to this request, otherwise a
                        provisional attendee if any.
                    readOnly: true
                    type: string
                request:
                    $ref: '#/components/schemas/v2TrainingRequest'
                status:
                    $ref: '#/components/schemas/v2RequestStatus'
            type: object
        v2TrainingRequestComment:
            properties:
                companyId:
                    readOnly: true
                    type: string
                content:
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    type: string
                isEmail:
                    readOnly: true
                    type: boolean
                requestId:
                    type: string
                userId:
                    readOnly: true
                    type: string
            required:
                - requestId
                - content
            type: object
        v2TrainingRequestCommentAggregate:
            properties:
                comment:
                    $ref: '#/components/schemas/v2TrainingRequestComment'
            type: object
        v2TrainingSkillIds:
            properties:
                skillIds:
                    items:
                        type: string
                    type: array
            type: object
        v2TrainingSurveyAssessorKind:
            default: TRAINING_SURVEY_ASSESSOR_KIND_UNSPECIFIED
            enum:
                - TRAINING_SURVEY_ASSESSOR_KIND_UNSPECIFIED
                - TRAINING_SURVEY_ASSESSOR_KIND_ATTENDEE
                - TRAINING_SURVEY_ASSESSOR_KIND_MANAGER
                - TRAINING_SURVEY_ASSESSOR_KIND_OTHER
            type: string
        v2TrainingSurveyInfo:
            properties:
                assessedIds:
                    description: |-
                        AssessedIds if specified then:
                        If AssessorKind is ATTENDEE or MANAGER, then survey participants will be the intersection of these ids and the order's attendees.
                        If AssessorKind is OTHER, then survey participants will be exactly these ids.
                    items:
                        type: string
                    type: array
                assessorKind:
                    $ref: '#/components/schemas/v2TrainingSurveyAssessorKind'
            required:
                - assessorKind
            type: object
        v2TrainingType:
            default: TRAINING_TYPE_UNSPECIFIED
            enum:
                - TRAINING_TYPE_UNSPECIFIED
                - TRAINING_TYPE_INTERNAL
                - TRAINING_TYPE_EXTERNAL
            type: string
        v2True:
            description: True allows to add a filter equivalent to 1 = 1.
            type: object
        v2UnLinkJobSkillRequest:
            properties:
                jobId:
                    type: string
                page:
                    $ref: '#/components/schemas/v2ListRequest'
            required:
                - jobId
            type: object
        v2UncancelInterviewRequest:
            properties:
                id:
                    description: ID of the cancelled interview to restore.
                    type: string
            required:
                - id
            type: object
        v2UnlinkJobSKillResponse:
            properties:
                page:
                    $ref: '#/components/schemas/v2ListResponse'
            type: object
        v2UnvalidateSessionRequest:
            properties:
                interviewId:
                    type: string
                interviewStatus:
                    $ref: '#/components/schemas/v2InterviewStatus'
            required:
                - interviewId
                - interviewStatus
            type: object
        v2UpdateAchievedInterviewRequest:
            properties:
                achievedInterview:
                    $ref: '#/components/schemas/v2AchievedInterview'
            type: object
        v2UpdateAxisQuestionEvaluationRequest:
            properties:
                evaluation:
                    $ref: '#/components/schemas/v2AxisQuestionEvaluationAggregate'
            required:
                - evaluation
            type: object
        v2UpdateAxisQuestionRequest:
            properties:
                question:
                    $ref: '#/components/schemas/v2AxisQuestionAggregate'
            required:
                - question
            type: object
        v2UpdateAxisRequest:
            properties:
                axis:
                    $ref: '#/components/schemas/v2PeopleReviewAxisAggregate'
            required:
                - axis
            type: object
        v2UpdateCampaignRequest:
            properties:
                campaign:
                    $ref: '#/components/schemas/v2Campaign'
                campaignManyInterviewType:
                    $ref: '#/components/schemas/v2CampaignInterviewTypesIds'
            type: object
        v2UpdateCampaignTemplateRequest:
            properties:
                template:
                    $ref: '#/components/schemas/v2CampaignTemplate'
            type: object
        v2UpdateGoalFixationRequest:
            properties:
                goal:
                    $ref: '#/components/schemas/v2Goal'
                interviewId:
                    type: string
            required:
                - interviewId
            type: object
        v2UpdateGoalFolderFixationRequest:
            properties:
                goalFolder:
                    $ref: '#/components/schemas/v2GoalFolder'
                interviewId:
                    type: string
            required:
                - interviewId
            type: object
        v2UpdateGoalFolderRequest:
            properties:
                goalFolder:
                    $ref: '#/components/schemas/v2GoalFolder'
            type: object
        v2UpdateGoalRequest:
            properties:
                goal:
                    $ref: '#/components/schemas/v2Goal'
            type: object
        v2UpdateInterviewRequest:
            properties:
                interview:
                    $ref: '#/components/schemas/v2Interview'
            type: object
        v2UpdateInterviewTypeRequest:
            properties:
                interviewType:
                    $ref: '#/components/schemas/v2InterviewType'
            type: object
        v2UpdateJobRequest:
            properties:
                job:
                    $ref: '#/components/schemas/v2Job'
            type: object
        v2UpdateJobSkillRequest:
            properties:
                jobSkills:
                    $ref: '#/components/schemas/v2JobSkills'
            type: object
        v2UpdateMatrixCellRequest:
            properties:
                cell:
                    $ref: '#/components/schemas/v2PeopleReviewMatrixCell'
            required:
                - cell
            type: object
        v2UpdateMatrixRequest:
            properties:
                matrix:
                    $ref: '#/components/schemas/v2PeopleReviewMatrixAggregate'
            required:
                - matrix
            type: object
        v2UpdateParticipantPositionRequest:
            properties:
                locked:
                    type: boolean
                participantPosition:
                    $ref: '#/components/schemas/v2ParticipantPositionAggregate'
            required:
                - participantPosition
            type: object
        v2UpdateParticipantRequest:
            properties:
                participant:
                    $ref: '#/components/schemas/v2Participant'
            type: object
        v2UpdatePeopleReviewParticipantRequest:
            properties:
                participant:
                    $ref: '#/components/schemas/v2PeopleReviewParticipant'
            required:
                - participant
            type: object
        v2UpdatePeopleReviewRequest:
            properties:
                peopleReview:
                    $ref: '#/components/schemas/v2PeopleReviewAggregate'
            required:
                - peopleReview
            type: object
        v2UpdateQuestionsByRevisionRequest:
            properties:
                element:
                    $ref: '#/components/schemas/v2Element'
            required:
                - element
            type: object
        v2UpdateSessionGoalFolderRequest:
            properties:
                goalFolder:
                    $ref: '#/components/schemas/v2GoalFolder'
                interviewId:
                    type: string
            required:
                - interviewId
            type: object
        v2UpdateSessionGoalRequest:
            properties:
                goal:
                    $ref: '#/components/schemas/v2Goal'
                interviewId:
                    type: string
            required:
                - interviewId
            type: object
        v2UpdateSessionTargetRequest:
            properties:
                interviewId:
                    type: string
                target:
                    $ref: '#/components/schemas/v2Target'
            required:
                - interviewId
            type: object
        v2UpdateSkillRequest:
            properties:
                skill:
                    $ref: '#/components/schemas/v2Skill'
            type: object
        v2UpdateSuccessionPlanRequest:
            properties:
                successionPlan:
                    $ref: '#/components/schemas/v2SuccessionPlanAggregate'
            required:
                - successionPlan
            type: object
        v2UpdateTargetFixationRequest:
            properties:
                interviewId:
                    type: string
                target:
                    $ref: '#/components/schemas/v2Target'
            required:
                - interviewId
            type: object
        v2UpdateTargetRequest:
            properties:
                target:
                    $ref: '#/components/schemas/v2Target'
            type: object
        v2UpdateThematicRequest:
            properties:
                thematic:
                    $ref: '#/components/schemas/v2Thematic'
            type: object
        v2UpsertAnswerRequest:
            properties:
                answer:
                    $ref: '#/components/schemas/v2Answer'
            required:
                - answer
            type: object
        v2UpsertConclusionRequest:
            properties:
                conclusion:
                    $ref: '#/components/schemas/v2Conclusion'
            required:
                - conclusion
            type: object
        v2UpsertEmployeesToItwTypeFiltersRequest:
            properties:
                filters:
                    $ref: '#/components/schemas/v2EmployeeToInterviewTypeFilter'
            type: object
        v2UpsertInterviewSecondaryAssessmentRequest:
            properties:
                assessment:
                    $ref: '#/components/schemas/v2InterviewSecondaryAssessment'
            required:
                - assessment
            type: object
        v2UpsertSkillEvaluationRequest:
            properties:
                skillEvaluation:
                    $ref: '#/components/schemas/v2SkillEvaluation'
            required:
                - skillEvaluation
            type: object
        v2User:
            description: |-
                User is a person visiting a given company
                It contains personal infos necessary to label information that are considered not only companies property, but also personal.
                It also contains a member representing his/her relation to a given company, member ids label company property.
            properties:
                age:
                    description: Age in full years, computed from person.birth_date to current date. Null when birth_date is not set.
                    format: int32
                    readOnly: true
                    type: integer
                member:
                    $ref: '#/components/schemas/v2Member'
                person:
                    $ref: '#/components/schemas/v2Person'
            required:
                - person
                - member
            type: object
        v2UserContract:
            description: |-
                UserContract is a work agreement between a company and a user.

                It is intended to be historized. A given user can have several UserContracts, a new entry being added whenever
                their contract with the company changes. This allows HR to follow an employee's career in the company (when did they
                get a salary raise? a job promotion?...)

                It is tied to a users-contracts permissions scope, considered more sensitive than general user data, in
                particular given the presence of salaries.
            properties:
                companyId:
                    readOnly: true
                    type: string
                effectiveDate:
                    description: |-
                        EffectiveDate is the date at which this contractual information took effect.

                        Defaults to today.

                        Any write operation on a UserContract will trigger a recomputing of the user's CurrentContractId and JobId
                        to reflect the currently effective UserContract which is the last by effective date earlier than now.

                        Reciprocally, when a user's JobId changes, a UserContract is created to historize the change with today's date.
                    format: date-time
                    type: string
                end:
                    description: |-
                        End is the contract's end date.

                        Example reason for this to be set to null: the employee switches from CDD to CDI and does not have a contract end
                        date anymore.
                    format: date-time
                    type: string
                headers:
                    $ref: '#/components/schemas/v2Headers'
                id:
                    description: Immutable UUID v4 generated at insertion.
                    type: string
                jobId:
                    description: |-
                        JobId references the user's job in the company.

                        During creation and update you can pass a job name instead of an id.
                        If the job is not found, it will be created empty and linked to the contract.
                        If many are found, the last created will be used and linked to the contract.
                        Seeking a matching job by name is case and accent insensitive.

                        If an incorrect id is passed, it will unset the job in the contract without raising error.
                    type: string
                jobName:
                    description: |-
                        JobName is the name of the job referenced by JobId.

                        JobName is automatically set when and only when JobId is modified.
                    readOnly: true
                    type: string
                salaryAmount:
                    description: SalaryAmount is the employee's salary for the given SalaryPeriod in Euros.
                    format: double
                    type: number
                salaryPeriod:
                    $ref: '#/components/schemas/commonsPeriod'
                start:
                    description: |-
                        Start is the contract's start date.

                        Example reason for this NOT to change: the employee gets a salary raise, resulting in new contractual info, but
                        they did not sign an entirely new contract.
                        Example reason for this to change: the employee signs a new contract when switching from CDD to CDI.
                    format: date-time
                    type: string
                status:
                    description: 'Examples: Cadre, Ouvrier...'
                    example: Cadre
                    title: Status
                    type: string
                type:
                    description: 'Examples: CDI, CDD, Alternance...'
                    example: CDI
                    title: Type
                    type: string
                userId:
                    type: string
                weeklyWorkDuration:
                    type: string
                workDurationUnit:
                    $ref: '#/components/schemas/commonsPeriod'
            type: object
        v2UserJob:
            properties:
                job:
                    $ref: '#/components/schemas/v2Job'
                member:
                    $ref: '#/components/schemas/v2Member'
                person:
                    $ref: '#/components/schemas/v2Person'
            type: object
        v2UserSearch:
            description: |-
                UserSearch allow to filter on an a column representing a User.person.id.
                Filters are the same as the filters available in UserService/ListUsers.
                The data model schema is available on UserService/Schema.
                The filter rely on your permission on "users.read".
            properties:
                fieldRef:
                    description: FieldRef is the column of ids to filter.
                    type: string
                filters:
                    description: The root operator for the list of filter is AND.
                    items:
                        $ref: '#/components/schemas/v2Filter'
                    type: array
            required:
                - fieldRef
                - filters
            type: object
        v2Validations:
            description: |-
                Validations allow status transitions for interviews.
                For each states validation is expected from one side or both:
                - INTERVIEW_STATUS_PLANNING: both sides.
                - INTERVIEW_STATUS_INTERVIEW: assessor.
                - INTERVIEW_STATUS_DONE: none.
                - INTERVIEW_STATUS_CANCELLED: none.
            properties:
                stateValidatedByAssessed:
                    readOnly: true
                    type: boolean
                stateValidatedByAssessor:
                    readOnly: true
                    type: boolean
            type: object
        v2Verbatim:
            description: Verbatim is a single notable quote extracted from an interview.
            properties:
                text:
                    description: The direct quote text.
                    type: string
                type:
                    $ref: '#/components/schemas/v2VerbatimType'
                userId:
                    description: ID of the user who said this (assessed or assessor).
                    type: string
            type: object
        v2VerbatimType:
            default: VERBATIM_TYPE_UNSPECIFIED
            enum:
                - VERBATIM_TYPE_UNSPECIFIED
                - VERBATIM_TYPE_PSR
                - VERBATIM_TYPE_MOTIVATION
                - VERBATIM_TYPE_DEVELOPMENT
                - VERBATIM_TYPE_PERFORMANCE
                - VERBATIM_TYPE_FUN
            type: string
        v2WebSocketTicketPurpose:
            default: WEB_SOCKET_TICKET_PURPOSE_UNSPECIFIED
            description: |-
                WebSocketTicketPurpose identifies the feature a ticket authorizes. The relay
                service that consumes the ticket is expected to match its own purpose.

                 - WEB_SOCKET_TICKET_PURPOSE_DICTATION: Real-time voice dictation streamed to the dicti relay.
            enum:
                - WEB_SOCKET_TICKET_PURPOSE_UNSPECIFIED
                - WEB_SOCKET_TICKET_PURPOSE_DICTATION
            type: string
    securitySchemes:
        OAuth2:
            description: |-
                This method is only available for v2
                open id standard access token
                Api host is compliant with 0auth2 standard / open id standards
                Automatic configuration is supported: https://dev.api.empowill.com/.well-known/openid-configuration
                You can access one or several customers tenants depending on your given accesses
                Prefix with "Bearer " in authorization headers
            flows:
                clientCredentials:
                    scopes:
                        offline: allow refresh token generation
                        openid: access token hint and additional openid standard capacities
                    tokenUrl: /oauth2/token
            in: header
            type: oauth2
info:
    contact:
        email: toussaint.b@empowill.com
        name: Toussaint Boos
        url: https://calendar.app.google/ywCE5askKfof2mxD8
    description: 'Interview & Career module of the Empowill API v2: campaigns, interviews, interview types and templates, goals, jobs, skill frameworks, people reviews and succession plans. Shared concepts (authentication, required headers, time handling, errors, list requests) are described on the documentation portal home page.'
    title: Empowill API - Interview & Career
    version: "2.0"
openapi: 3.0.0
paths:
    /v2/campaign-template:
        patch:
            operationId: CampaignTemplateService_UpdateCampaignTemplate
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateCampaignTemplateRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignTemplate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - CampaignTemplateService
        post:
            operationId: CampaignTemplateService_CreateCampaignTemplate
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateCampaignTemplateRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignTemplate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - CampaignTemplateService
    /v2/campaign-template/{id}:
        delete:
            operationId: CampaignTemplateService_DeleteCampaignTemplate
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignTemplate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - CampaignTemplateService
        get:
            operationId: CampaignTemplateService_GetCampaignTemplate
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignTemplate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - CampaignTemplateService
    /v2/campaign-template/list:
        post:
            operationId: CampaignTemplateService_ListCampaignTemplate
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListCampaignTemplateRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListCampaignTemplateResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - CampaignTemplateService
    /v2/campaign-template/questions-by-revision:
        patch:
            description: |-
                The passed element should have an `elem` of a question type.
                Any question in any campaign template that has the same revision as the passed element will be replaced.
            operationId: CampaignTemplateService_UpdateQuestionsByRevision
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateQuestionsByRevisionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateQuestionsByRevision updates all questions of all templates that have the given revision.
            tags:
                - CampaignTemplateService
    /v2/campaigns:
        patch:
            operationId: CampaignService_Update
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateCampaignRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Campaign'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Update a campaign.
            tags:
                - CampaignService
        post:
            operationId: CampaignService_Create
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateCampaignRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Campaign'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Create a new campaign.
            tags:
                - CampaignService
    /v2/campaigns/{id}:
        delete:
            description: Limited to daft campaign status for users.
            operationId: CampaignService_Delete
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Campaign'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Hard delete a campaign.
            tags:
                - CampaignService
        get:
            operationId: CampaignService_Get
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Campaign'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Fetch a campaign.
            tags:
                - CampaignService
    /v2/campaigns/aggregate/list:
        post:
            description: Automatically filter campaigns the user has access to.
            operationId: CampaignService_ListCampaignAggregate
            requestBody:
                $ref: '#/components/requestBodies/v2ListCampaignRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListCampaignAggregateResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List all campaigns with interview types
            tags:
                - CampaignService
    /v2/campaigns/ai-settings/{campaignId}:
        get:
            operationId: CampaignService_GetCampaignAISettings
            parameters:
                - in: path
                  name: campaignId
                  required: true
                  schema:
                    type: string
                - in: query
                  name: companyId
                  required: false
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignAISettingsView'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Get AI settings for a campaign.
            tags:
                - CampaignService
    /v2/campaigns/ai-settings/regenerate:
        post:
            operationId: CampaignService_RegenerateCampaignSummaries
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2RegenerateCampaignSummariesRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Regenerate AI summaries for all done interviews in a campaign.
            tags:
                - CampaignService
    /v2/campaigns/ai-settings/set:
        post:
            operationId: CampaignService_SetCampaignAISettings
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2SetCampaignAISettingsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignAISettingsView'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Set or update AI settings for a campaign.
            tags:
                - CampaignService
    /v2/campaigns/compute-next-sessions:
        post:
            operationId: CampaignService_ComputeParticipantsNextSessions
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ComputeParticipantsNextSessionsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ComputeParticipantsNextSessions recalculates next_session for all participants
                of a draft campaign based on its current scheduling configuration.
            tags:
                - CampaignService
    /v2/campaigns/content/{campaignId}:
        get:
            operationId: CampaignService_GetContent
            parameters:
                - in: path
                  name: campaignId
                  required: true
                  schema:
                    type: string
                - description: CompanyId can be filled with http header "company-id".
                  in: query
                  name: companyId
                  required: false
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignContent'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Gat Campaign content
            tags:
                - CampaignService
    /v2/campaigns/content/set:
        post:
            operationId: CampaignService_SetContent
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2SetContentRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignContent'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Set campaign content
            tags:
                - CampaignService
    /v2/campaigns/duplicate:
        post:
            operationId: CampaignService_Duplicate
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2DuplicateCampaignRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Campaign'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Duplicate duplicates a campaign from a source to a new campaign.
            tags:
                - CampaignService
    /v2/campaigns/interviews-answers-analytics/list:
        post:
            operationId: InterviewService_ListAnswersHistoric
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAnswersHistoricRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAnswersHistoricResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListAnswersHistoric lists interviews associated with their answers.
            tags:
                - InterviewService
    /v2/campaigns/interviews-answers/list:
        post:
            description: |-
                It filters on the given campaign id in the request and the company's ID of the caller.
                As the result is an aggregation of interview and answer artefact, filters need to be prefixed by the artefact name.
                For example, filtering on the interview status can be done by filtering on `interview.status`.
                Same for the answer's answerer by filtering on `answer.answerer`.
            operationId: InterviewService_ListSessionAnswers
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListSessionAnswersRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListSessionAnswersResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListSessionAnswers lists interviews associated with their answers.
            tags:
                - InterviewService
    /v2/campaigns/interviews-skills-evaluations/list:
        post:
            description: |-
                It filters on the given campaign id in the request and the company's ID of the caller.
                As the result is an aggregation of interview and skill evaluation artefact, filters need to be prefixed by the artefact name.
                For example, filtering on the interview status can be done by filtering on `interview.status`.
                Same for the skill evaluation's answerer by filtering on `skill_evaluation.answerer`.
            operationId: InterviewService_ListSessionSkillsEvaluations
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListSessionSkillsEvaluationsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListSessionSkillsEvaluationsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListSessionSkillsEvaluations lists interviews associated with their skill evaluations.
            tags:
                - InterviewService
    /v2/campaigns/interviews/{interviewId}/assessed:
        post:
            description: The caller must have access to the interview to get the data.
            operationId: InterviewService_GetAssessed
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2UserJob'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetAssessed returns personal data for an interview's assessed.
            tags:
                - InterviewService
    /v2/campaigns/interviews/answers/summary:
        post:
            description: |-
                It filters on the given campaign id in the request and the company's ID of the caller.
                It also aggregates answer and interview artefacts to query the database, so filtering should be prefixed by the artefact's name.
                For example, filtering on the interview status can be done by filtering on `interview.status`.
                Same for the answer's answerer by filtering on `answer.answerer`.
            operationId: InterviewService_SummarySessionAnswers
            parameters:
                - in: query
                  name: campaignId
                  required: false
                  schema:
                    type: string
                - description: |-
                    SummaryRef is the reference of the field you want to summarize.
                    If the field is numeric, it will also returns sum and average, otherwise, only total is computed.
                    This field is required.
                    If you don't know what to use and only wanna know the total of some grouping clause,
                    you can summarize on created_at.
                  in: query
                  name: summary.summaryRef
                  required: false
                  schema:
                    type: string
                - description: |-
                    GroupRef is the reference of a field you want to group over.
                    For instance a artefact having a "status" field could be summarized group by status,
                    giving a total per existing status.
                  in: query
                  name: summary.groupRef
                  required: false
                  schema:
                    type: string
                - description: Search contains the value to filter on.
                  in: query
                  name: summary.search.search
                  required: false
                  schema:
                    type: string
                - description: Threshold applies a limit on fields that must call a remote resource to be filtered.
                  in: query
                  name: summary.search.threshold
                  required: false
                  schema:
                    format: int32
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SummaryResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: SummarySessionAnswers summarize answers.
            tags:
                - InterviewService
    /v2/campaigns/list:
        post:
            description: Automatically filter campaigns the user has access to.
            operationId: CampaignService_List
            requestBody:
                $ref: '#/components/requestBodies/v2ListCampaignRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListCampaignResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List all campaigns
            tags:
                - CampaignService
    /v2/campaigns/participants:
        delete:
            operationId: CampaignParticipantService_Delete
            parameters:
                - in: query
                  name: companyId
                  required: false
                  schema:
                    type: string
                - in: query
                  name: campaignId
                  required: true
                  schema:
                    type: string
                - in: query
                  name: assessedId
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Participant'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                Hard delete a participant,
                this is restricted if any session exists.
            tags:
                - CampaignParticipantService
        patch:
            operationId: CampaignParticipantService_Update
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateParticipantRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Participant'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Update a participant.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants-last-interview/list:
        post:
            operationId: CampaignParticipantService_ListParticipantsLastInterview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListParticipantsLastInterviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantsLastInterviewResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List all participants joined with matching last interview session.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants-last-interview/summary:
        post:
            operationId: CampaignParticipantService_SummaryParticipantsLastInterview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2SummaryParticipantsLastInterviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SummaryResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Summarize Participants joined to last interview sessions.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/bulk-create:
        post:
            description: |-
                There is no pagination.
                To better understand the result you will have, use the Preview of this method.
            operationId: CampaignParticipantService_BulkCreate
            requestBody:
                $ref: '#/components/requestBodies/v2BulkCreateParticipantsRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: BulkCreate add a lot of users in a given campaign participants.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/bulk-create-preview:
        post:
            description: |-
                Pagination is in place but handles only the first page for now.
                Contact our maintainers if more is needed.

                This will return only the list of participants that would be added.
                Meaning we filter participant already registered to the campaign.
            operationId: CampaignParticipantService_BulkCreatePreview
            requestBody:
                $ref: '#/components/requestBodies/v2BulkCreateParticipantsRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: BulkCreatePreview show the response of a bulk update without actually changing the database state.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/bulk-delete:
        post:
            operationId: CampaignParticipantService_BulkDeleteParticipants
            requestBody:
                $ref: '#/components/requestBodies/v2ListParticipantsRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2BulkUpdateParticipantsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: BulkDeleteParticipants deletes multiple users at once
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/bulk-update:
        patch:
            operationId: CampaignParticipantService_BulkUpdateParticipants
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkUpdateParticipantsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2BulkUpdateParticipantsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: BulkUpdateParticipants updates multiple users at once
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/duplicate:
        post:
            operationId: CampaignParticipantService_DuplicateParticipants
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2DuplicateParticipantsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Participant'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Duplicate participants from a campaign to a
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/interviews/bulk-update:
        patch:
            operationId: CampaignParticipantService_BulkUpdateInterviews
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkUpdateInterviewsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2BulkUpdateInterviewsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                BulkUpdateInterviews updates many interviews' assessor.
                It may be used when updating a campaign participant assessor.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/interviews/uncancel:
        post:
            operationId: CampaignParticipantService_UncancelInterview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UncancelInterviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                UncancelInterview restores a single cancelled interview to its previous status
                (stored in status_before_cancel). Rejected if the campaign itself is cancelled.
                Defaults to PLANNING if status_before_cancel is unspecified.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/interviews/update:
        patch:
            operationId: CampaignParticipantService_UpdateInterview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateInterviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                UpdateInterview updates specifically an interview's assessor.
                It could be used when the current interview's assessor is in vacation to get the interview going with another assessor.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/list:
        post:
            operationId: CampaignParticipantService_List
            requestBody:
                $ref: '#/components/requestBodies/v2ListParticipantsRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List all participants
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/potential-users:
        post:
            description: The list returned excludes currently configured participants.
            operationId: CampaignParticipantService_ListPotentialUsers
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/apiqollectivv2ListPotentialUsersRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListUsersResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListPotentialUsers returns a list of users to be used as new participants for a given campaign.
            tags:
                - CampaignParticipantService
    /v2/campaigns/participants/summary:
        post:
            operationId: CampaignParticipantService_Summary
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2SummaryParticipantsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SummaryResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Summarize participants.
            tags:
                - CampaignParticipantService
    /v2/campaigns/progress:
        post:
            operationId: CampaignService_Progress
            parameters:
                - description: required resource id
                  in: query
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ProgressResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - CampaignService
    /v2/campaigns/questions/list:
        post:
            operationId: CampaignService_ListQuestions
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListQuestionsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListQuestionsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - CampaignService
    /v2/campaigns/remind:
        post:
            operationId: CampaignService_SendReminder
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2SendCampaignReminderRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SendCampaignReminderResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: SendReminder allow users and systems to send an email for all participants having active sessions.
            tags:
                - CampaignService
    /v2/campaigns/set-status:
        post:
            operationId: CampaignService_SetStatus
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2SetStatusRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Campaign'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: SetStatus to ongoing, cancelled or ended.
            tags:
                - CampaignService
    /v2/campaigns/summary:
        post:
            operationId: CampaignService_Summary
            requestBody:
                $ref: '#/components/requestBodies/v2SummaryRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SummaryResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Summarize campaigns statuses
            tags:
                - CampaignService
    /v2/goals:
        delete:
            description: |-
                It'll propagate the delete to sub goalFolders and sub goals.
                Any deletion that tries to delete a goal with targets assigned will fail.
            operationId: GoalsService_Delete
            parameters:
                - description: required resource id
                  in: query
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalNode'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Delete deletes either a goal or a goalFolder.
            tags:
                - GoalsService
        patch:
            description: The path can't change during the update.
            operationId: GoalsService_UpdateGoal
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateGoalRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Goal'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateGoal updates an existing goal
            tags:
                - GoalsService
        post:
            description: |-
                It will first create a new entry in the goal node with parent_id being a folder id,
                then creates the goal content.
            operationId: GoalsService_CreateGoal
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateGoalRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Goal'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateGoal creates a new goal
            tags:
                - GoalsService
    /v2/goals/{id}:
        get:
            operationId: GoalsService_GetGoal
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Goal'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetGoal gets a goal by ID.
            tags:
                - GoalsService
    /v2/goals/bulk-update:
        put:
            operationId: GoalsService_BulkUpdateGoals
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkUpdateGoalsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: BulkUpdateGoals is back office action that will bulk update goals sharing mode.
            tags:
                - GoalsService
    /v2/goals/goalFolders:
        patch:
            description: |-
                The path can't change during the update.
                See Move method to change paths.
            operationId: GoalsService_UpdateGoalFolder
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateGoalFolderRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalFolder'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateGoalFolder updates an existing goalFolder
            tags:
                - GoalsService
        post:
            description: Sub folders depth cannot not be greater than 3.
            operationId: GoalsService_CreateGoalFolder
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateGoalFolderRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalFolder'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateGoalFolder creates a new goalFolder
            tags:
                - GoalsService
    /v2/goals/goalFolders/{id}:
        get:
            operationId: GoalsService_GetGoalFolder
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalFolder'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetGoalFolder gets a goalFolder by ID.
            tags:
                - GoalsService
    /v2/goals/goalFolders/list:
        post:
            operationId: GoalsService_ListGoalFolders
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalFolderResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all goalFolders.
            tags:
                - GoalsService
    /v2/goals/goals-targets/list:
        post:
            operationId: GoalsService_ListGoalsTargets
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalsTargetsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all target associated to users or goals depending on filters.
            tags:
                - GoalsService
    /v2/goals/goals-targets/summary:
        post:
            description: See ListGoalsTargets response for schema reference.
            operationId: GoalsService_SummaryGoalsTargets
            requestBody:
                $ref: '#/components/requestBodies/v2SummaryRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SummaryResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: SummaryGoalsTargets aggregated GoalsTargets
            tags:
                - GoalsService
    /v2/goals/list:
        post:
            operationId: GoalsService_ListGoals
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all goals.
            tags:
                - GoalsService
    /v2/goals/move:
        post:
            operationId: GoalsService_Move
            requestBody:
                $ref: '#/components/requestBodies/v2MoveRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Move moves goalFolders and goals to another goalFolder or at root.
            tags:
                - GoalsService
    /v2/goals/scales:
        get:
            operationId: GoalsService_GetScale
            parameters:
                - description: |-
                    Page size is the max number of element in a page.
                    Default to 20.
                    If the number is -1, pagination is ignored.
                  in: query
                  name: pageSize
                  required: false
                  schema:
                    format: int32
                    type: integer
                - description: Page number is the actual page you are trying to access.
                  in: query
                  name: pageNumber
                  required: false
                  schema:
                    default: "1"
                    format: int32
                    type: integer
                - description: Search contains the value to filter on.
                  in: query
                  name: search.search
                  required: false
                  schema:
                    type: string
                - description: Threshold applies a limit on fields that must call a remote resource to be filtered.
                  in: query
                  name: search.threshold
                  required: false
                  schema:
                    format: int32
                    type: integer
                - description: |-
                    Selects ask to return only a partial payload.
                    By default the whole object is returned.
                    If you ask for a valid reference like "person.id" in users list,
                    it will return only the given reference.
                  explode: true
                  in: query
                  name: selects
                  required: false
                  schema:
                    items:
                        type: string
                    type: array
                - description: |-
                    AsDataframe is used to return the result-set as a dataframe.

                    NB: If this field is used, the result will be empty and replaced by a dataframe in pagination response.
                  in: query
                  name: asDataframe
                  required: false
                  schema:
                    type: boolean
                - description: |-
                    SchemaOnly do not answer with the data but return the schema instead.
                    It includes custom fields and virtual fields that cannot be inferred from the data model.
                  in: query
                  name: schemaOnly
                  required: false
                  schema:
                    type: boolean
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Scale'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                GetScale will return the scale associated to the companyID in the request context.
                If no scale found, a default one will be created and returned.
            tags:
                - GoalsService
        put:
            operationId: GoalsService_ReplaceScale
            requestBody:
                $ref: '#/components/requestBodies/v2ReplaceScaleRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Scale'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ReplaceScale will create or replace scale options.
                When creating, replacing or adding new scale options, a check will be done to ensure that no value is missing within the min and max.
            tags:
                - GoalsService
    /v2/goals/scales/values:
        get:
            operationId: GoalsService_GetScaleUsedValues
            parameters:
                - in: query
                  name: type
                  required: true
                  schema:
                    default: SCALE_OPTION_TYPE_UNSPECIFIED
                    enum:
                        - SCALE_OPTION_TYPE_UNSPECIFIED
                        - SCALE_OPTION_TYPE_SKILL
                        - SCALE_OPTION_TYPE_SATISFACTION
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GetScaleUsedValuesResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetScaleUsedValues will return the scale values that are used for a type of scale for goal evaluations.
            tags:
                - GoalsService
    /v2/goals/targets:
        delete:
            operationId: GoalsService_DeleteTarget
            parameters:
                - description: required resource id
                  in: query
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: DeleteTarget deletes a goals target.
            tags:
                - GoalsService
        patch:
            operationId: GoalsService_UpdateTarget
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateTargetRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateTarget updates an existing target.
            tags:
                - GoalsService
        post:
            operationId: GoalsService_CreateTarget
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateTargetRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateTarget creates a new target for a given goal and a user.
            tags:
                - GoalsService
    /v2/goals/targets/{id}:
        get:
            operationId: GoalsService_GetTarget
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetTarget gets a target by id.
            tags:
                - GoalsService
    /v2/interviews/{id}/calendar-event:
        delete:
            description: Only the assessor can delete an event.
            operationId: InterviewService_DeleteInterviewCalendarEvent
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: DeleteInterviewCalendarEvent deletes the calendar event for an interview.
            tags:
                - InterviewService
        get:
            operationId: InterviewService_GetInterviewCalendarEvent
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GetInterviewCalendarEventResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetInterviewCalendarEvent retrieves the calendar event for an interview.
            tags:
                - InterviewService
    /v2/interviews/{interviewId}/force-planning-validation:
        post:
            description: |-
                Can only be called by assessor or campaign contributors. Used for instance when assessed has taken too long
                to prepare interview.
            operationId: InterviewService_ForcePlanningValidation
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            properties:
                                forcedPlanningReason:
                                    type: string
                            type: object
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ForcePlanningValidation forces a session from planning to interview phase.
            tags:
                - InterviewService
    /v2/interviews/{interviewId}/force-signature-validation:
        post:
            description: |-
                Can only be called by campaign contributors. Used for instance when someone refuses to sign the session
                but HR needs to close interview campaign.
            operationId: InterviewService_ForceSignatureValidation
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
            requestBody:
                content:
                    application/json:
                        schema:
                            properties:
                                forcedSignatureReason:
                                    type: string
                                sendEmail:
                                    type: boolean
                            type: object
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ForceSignatureValidation forces a session from signature phase to done.
            tags:
                - InterviewService
    /v2/interviews/{interviewId}/goals/{goalId}:
        delete:
            description: |-
                It'll propagate the delete to sub goalFolders and sub goals.
                Any deletion that tries to delete a goal with targets assigned will fail.
                Only the assessor can do the call.
            operationId: InterviewGoalsService_Delete
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
                - in: path
                  name: goalId
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalNode'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Delete deletes either a goal or a goalFolder.
            tags:
                - InterviewGoalsService
    /v2/interviews/{interviewId}/goals/fixation/{goalId}:
        delete:
            description: |-
                It'll propagate the delete to sub goalFolders and sub goals.
                Any deletion that tries to delete a goal with targets assigned will fail.
            operationId: InterviewsGoalsFixationService_Delete
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
                - in: path
                  name: goalId
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalNode'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Delete deletes either a goal or a goalFolder.
            tags:
                - InterviewsGoalsFixationService
    /v2/interviews/{interviewId}/goals/targets/{targetId}:
        delete:
            description: Only the assessor can do the call.
            operationId: InterviewGoalsService_DeleteTarget
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
                - in: path
                  name: targetId
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: DeleteTarget deletes a goals target.
            tags:
                - InterviewGoalsService
    /v2/interviews/{interviewId}/goals/targets/{targetId}/fixation:
        delete:
            operationId: InterviewsGoalsFixationService_DeleteTarget
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
                - in: path
                  name: targetId
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: DeleteTarget deletes a goals target.
            tags:
                - InterviewsGoalsFixationService
    /v2/interviews/{interviewId}/skills:
        post:
            description: |-
                Can only be called by the assessor. Skills already configured for the participant are excluded.
                If the interview already has skill freezes, the new skills are also added to the freeze table.
                If scale_option_id is set, default SkillEvaluation records are created for each added skill.
            operationId: InterviewService_AddSkillsToInterview
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
            requestBody:
                $ref: '#/components/requestBodies/InterviewService_AddSkillsToInterviewBody'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: AddSkillsToInterview adds new skills to an interview's participant skills.
            tags:
                - InterviewService
    /v2/interviews/{interviewId}/skills/delete:
        post:
            description: |-
                Can only be called by the assessor. Only skills where flexi_user_id is set (i.e. added via
                AddSkillsToInterview) are removed. Associated skill freezes and evaluations are also deleted.
            operationId: InterviewService_DeleteSkillsFromInterview
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
            requestBody:
                $ref: '#/components/requestBodies/InterviewService_AddSkillsToInterviewBody'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: DeleteSkillsFromInterview removes skills that were added to an interview by the assessor.
            tags:
                - InterviewService
    /v2/interviews/{interviewId}/skills/evaluations/resume-from-previous:
        post:
            operationId: InterviewService_ResumeSkillEvaluationsFromPrevious
            parameters:
                - in: path
                  name: interviewId
                  required: true
                  schema:
                    type: string
            requestBody:
                $ref: '#/components/requestBodies/InterviewService_ResumeSkillEvaluationsFromPreviousBody'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ResumeSkillEvaluationsFromPrevious copies the latest skill evaluations from
                completed prior interviews into the current interview for the caller's answerer role.
            tags:
                - InterviewService
    /v2/interviews/answer:
        post:
            operationId: InterviewService_UpsertAnswer
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpsertAnswerRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Answer'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpsertAnswer a answer to a given interview question.
            tags:
                - InterviewService
    /v2/interviews/answer/list:
        post:
            operationId: InterviewService_ListAnswers
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAnswersRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAnswersResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ListAnswers list all accessible interview answers.
                Answer that was never given are not returned.
            tags:
                - InterviewService
    /v2/interviews/assessed-goals-evaluations/list:
        post:
            operationId: InterviewGoalsService_ListAssessedGoalsEvaluationsHistoric
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAssessedGoalsEvaluationsHistoricRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAssessedGoalsEvaluationsHistoricResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListAssessedGoalsEvaluations list all skill evaluations for a given assessed.
            tags:
                - InterviewGoalsService
    /v2/interviews/assessed-skills-evaluations-historic/list:
        post:
            description: The list returned does not only include skill eval within the interview, but all skill evals whether it's from a campaign or not.
            operationId: InterviewService_ListAssessedSkillEvaluationsHistoric
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAssessedSkillEvaluationsHistoricRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAssessedSkillEvaluationsHistoricResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListAssessedSkillEvaluationsHistoric list all skill evaluations for a given interview's assessed.
            tags:
                - InterviewService
    /v2/interviews/backtrack:
        post:
            operationId: CampaignParticipantService_BacktrackInterview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BacktrackInterviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                BacktrackInterview tries to backtrack an interview status.
                An interview from signature status can be backtrack to interview status, and interview status to preparation status.
            tags:
                - CampaignParticipantService
    /v2/interviews/bulk-send-reminders:
        post:
            operationId: InterviewService_BulkSendReminders
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkSendRemindersRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SendCampaignReminderResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewService
    /v2/interviews/bulk-transfer-assessor-role:
        post:
            operationId: InterviewService_BulkTransferAssessorRole
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkTransferAssessorRoleRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2BulkTransferAssessorRoleResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                BulkTransferAssessorRole allow transferring your assessor role to another person of the company.
                It can be done only if you are the current assessor and thus is not suitable for non user api calls.
            tags:
                - InterviewService
    /v2/interviews/calendar-event:
        post:
            description: Only the assessor can create an event and the interview status must not be DONE or CANCELLED.
            operationId: InterviewService_CreateInterviewCalendarEvent
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateInterviewCalendarEventRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateInterviewCalendarEvent creates a calendar event for an interview.
            tags:
                - InterviewService
    /v2/interviews/campaign/content/{campaignName}:
        get:
            description: |-
                This endpoint is used to get a campaign content layout without working with a specific interview.
                For instance the campaign result page.
            operationId: InterviewService_GetCampaignContent
            parameters:
                - description: DEPRECATED FIELD! Kept for backward compatibility
                  in: path
                  name: campaignName
                  required: true
                  schema:
                    type: string
                - in: query
                  name: campaignId
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2CampaignContent'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetCampaignContent returns the campaign's content.
            tags:
                - InterviewService
    /v2/interviews/conclusion:
        post:
            operationId: InterviewService_UpsertConclusion
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpsertConclusionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Conclusion'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpsertConclusion a conclusion to a given interview.
            tags:
                - InterviewService
    /v2/interviews/conclusion/list:
        post:
            operationId: InterviewService_ListConclusions
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListConclusionsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListConclusionsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ListConclusions list all accessible conclusions for an interview.
                Conclusions that was never given are not returned.
                When no interview id is provided, conclusions of every visible interview
                session are listed without their conclusion text and signature image.
            tags:
                - InterviewService
    /v2/interviews/contract-history/list:
        post:
            operationId: InterviewService_ListContractHistory
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListContractHistoryRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListUserContractsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewService
    /v2/interviews/flexi-skill-evaluations:
        post:
            description: |-
                It uses a system campaign of kind SKILL (created on demand, unique per company).
                A new interview is created if none exists in the last 24h for the same assessor/assessed pair.
                Skill freezes and evaluations are created for all skills matching the page filter.
                If scale_option_id is not provided, empty evaluations are created.
            operationId: InterviewService_BulkUpsertFlexiSkillEvaluation
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkUpsertFlexiSkillEvaluationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: BulkUpsertFlexiSkillEvaluation evaluates skills for an employee outside of a campaign context.
            tags:
                - InterviewService
    /v2/interviews/flexi-skill-evaluations/{id}:
        delete:
            operationId: InterviewService_DeleteFlexiSkillEvaluation
            parameters:
                - in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: DeleteFlexiSkillEvaluation removes a single skill evaluation from a system SKILL campaign.
            tags:
                - InterviewService
    /v2/interviews/goals:
        patch:
            description: Only the assessor can do the call.
            operationId: InterviewGoalsService_UpdateGoal
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateSessionGoalRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Goal'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateGoal updates an existing goal.
            tags:
                - InterviewGoalsService
        post:
            description: Only the assessor can do the call.
            operationId: InterviewGoalsService_CreateGoal
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateSessionGoalRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Goal'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateGoal creates a new goal.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals-evaluations-historic/list:
        post:
            operationId: InterviewGoalsService_ListGoalEvaluationsHistoric
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListGoalEvaluationsHistoricRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalEvaluationsHistoricResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListGoalEvaluationsHistoric list all goals evaluations available.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals-evaluations/list:
        post:
            operationId: InterviewGoalsService_ListGoalsEvaluations
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListGoalsEvaluationsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalsEvaluationsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListGoalsEvaluations list all accessible interview's goal evaluations.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals/evaluation:
        post:
            operationId: InterviewGoalsService_ReplaceGoalEvaluation
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ReplaceGoalEvaluationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalEvaluation'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ReplaceGoalEvaluation a answer to a given interview question.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals/fixation:
        patch:
            operationId: InterviewsGoalsFixationService_UpdateGoal
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateGoalFixationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Goal'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateGoal updates an existing goal.
            tags:
                - InterviewsGoalsFixationService
        post:
            operationId: InterviewsGoalsFixationService_CreateGoal
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateGoalFixationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Goal'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateGoal creates a new goal.
            tags:
                - InterviewsGoalsFixationService
    /v2/interviews/goals/goalFolders:
        patch:
            description: Only the assessor can do the call.
            operationId: InterviewGoalsService_UpdateGoalFolder
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateSessionGoalFolderRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalFolder'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateGoalFolder updates an existing goalFolder
            tags:
                - InterviewGoalsService
        post:
            description: Only the assessor can do the call.
            operationId: InterviewGoalsService_CreateGoalFolder
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateSessionGoalFolderRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalFolder'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateGoalFolder creates a new goal folder.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals/goalFolders/fixation:
        patch:
            operationId: InterviewsGoalsFixationService_UpdateGoalFolder
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateGoalFolderFixationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalFolder'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateGoalFolder updates an existing goalFolder
            tags:
                - InterviewsGoalsFixationService
        post:
            operationId: InterviewsGoalsFixationService_CreateGoalFolder
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateGoalFolderFixationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2GoalFolder'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateGoalFolder creates a new goal.
            tags:
                - InterviewsGoalsFixationService
    /v2/interviews/goals/goalFolders/list:
        post:
            description: Both assessed and assessor can do the call.
            operationId: InterviewGoalsService_ListGoalFolders
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListGoalsFoldersRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalFolderResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all goalFolders.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals/list:
        post:
            description: Both assessed and assessor can do the call.
            operationId: InterviewGoalsService_ListGoals
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListGoalsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all goals.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals/targets:
        patch:
            description: Only the assessor can do the call.
            operationId: InterviewGoalsService_UpdateTarget
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateSessionTargetRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateTarget updates an existing target.
            tags:
                - InterviewGoalsService
        post:
            description: |-
                Only the assessor can do the call.
                The target is inserted for the current interview.
            operationId: InterviewGoalsService_CreateTarget
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateSessionTargetRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateTarget creates a new target for a given goal and a user.
            tags:
                - InterviewGoalsService
    /v2/interviews/goals/targets/fixation:
        patch:
            operationId: InterviewsGoalsFixationService_UpdateTarget
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateTargetFixationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateTarget updates an existing target.
            tags:
                - InterviewsGoalsFixationService
        post:
            operationId: InterviewsGoalsFixationService_CreateTarget
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateTargetFixationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Target'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateTarget creates a new target for a given goal and a user.
            tags:
                - InterviewsGoalsFixationService
    /v2/interviews/goals/targets/fixation/list:
        post:
            operationId: InterviewsGoalsFixationService_ListGoalsTargets
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListGoalsTargetsFixationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalsTargetsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all target associated to users or goals depending on filters.
            tags:
                - InterviewsGoalsFixationService
    /v2/interviews/goals/targets/list:
        post:
            operationId: InterviewGoalsService_ListGoalsTargets
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListGoalsTargetsFreezeRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListGoalsTargetsFreezeResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListGoalsTargets lists interview's assessed frozen goals.
            tags:
                - InterviewGoalsService
    /v2/interviews/historic/list:
        post:
            operationId: InterviewService_ListAssessedSessionHistoric
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAssessedSessionHistoricRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListInterviewSessionResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListAssessedSessionHistoric returns the assessed interview history before the given interview.
            tags:
                - InterviewService
    /v2/interviews/notes/list:
        post:
            operationId: InterviewService_ListAssessedNotes
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAssessedNotesRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAssessedNotesResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ListAssessedNotes returns the assessed note category and notes for a given note category.
                If the note category is not configured, an error is returned.
                If the note category is confidential or not self accessible, only the note category is returned.
            tags:
                - InterviewService
    /v2/interviews/secondary_assessment:
        post:
            operationId: InterviewSecondaryAssessmentService_UpsertInterviewSecondaryAssessment
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpsertInterviewSecondaryAssessmentRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2InterviewSecondaryAssessment'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpsertAssessment creates or updates secondary assessment.
            tags:
                - InterviewSecondaryAssessmentService
    /v2/interviews/secondary_assessment/list:
        post:
            operationId: InterviewSecondaryAssessmentService_ListInterviewSecondaryAssessments
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListInterviewSecondaryAssessmentsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListInterviewSecondaryAssessmentsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListInterviewSecondaryAssessments lists all secondary assessments.
            tags:
                - InterviewSecondaryAssessmentService
    /v2/interviews/sessions/{id}:
        get:
            description: The interview returned also contains the campaign content.
            operationId: InterviewService_GetSession
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2InterviewSessionWithContent'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetSession a interview with associated content we call session
            tags:
                - InterviewService
    /v2/interviews/sessions/allow-assessed-edition:
        post:
            operationId: InterviewService_AllowAssessedEdition
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2AllowAssessedEditionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: AllowAssessedEdition can be called by the assessor to allow the assessed to edit their answers during the interview phase.
            tags:
                - InterviewService
    /v2/interviews/sessions/generate-pdfs:
        post:
            description: |-
                The endpoint filters interviews by status DONE and queues PDF generation via pubsub.
                Only non-v1 interviews are eligible. By default, the session must also have ended within the
                last month; callers whose person.company_main is "empowill" (IsWiller) may regenerate PDFs
                older than one month.
            operationId: InterviewService_GenerateInterviewPDFs
            requestBody:
                $ref: '#/components/requestBodies/v2ListInterviewSessionRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GenerateInterviewPDFs queues PDF generation for interviews matching the list criteria.
            tags:
                - InterviewService
    /v2/interviews/sessions/list:
        post:
            operationId: InterviewService_ListSessions
            requestBody:
                $ref: '#/components/requestBodies/v2ListInterviewSessionRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListInterviewSessionResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ListSessions list all interview where the caller is either assessor or assessed.
                This endpoint only allow to list sessions were the user is assessor or assessed.
            tags:
                - InterviewService
    /v2/interviews/sessions/sign:
        post:
            operationId: InterviewService_SignSession
            parameters:
                - in: query
                  name: interviewId
                  required: true
                  schema:
                    type: string
                - in: query
                  name: signature
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Conclusion'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: SignSession add user's signature to an interview's conclusion.
            tags:
                - InterviewService
    /v2/interviews/sessions/unvalidate:
        post:
            operationId: InterviewService_UnvalidateSession
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UnvalidateSessionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Interview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UnvalidateSession allows rollbacking validation of a phase the caller had previously validated.
            tags:
                - InterviewService
    /v2/interviews/sessions/validate:
        post:
            description: |-
                The status you wanna validate must be passed in order to avoid validating the next step
                if the query were to be done twice by mistake.
            operationId: InterviewService_ValidateSession
            parameters:
                - in: query
                  name: interviewId
                  required: true
                  schema:
                    type: string
                - in: query
                  name: interviewStatus
                  required: true
                  schema:
                    default: INTERVIEW_STATUS_UNSPECIFIED
                    enum:
                        - INTERVIEW_STATUS_UNSPECIFIED
                        - INTERVIEW_STATUS_PLANNING
                        - INTERVIEW_STATUS_INTERVIEW
                        - INTERVIEW_STATUS_SIGNATURE
                        - INTERVIEW_STATUS_DONE
                        - INTERVIEW_STATUS_CANCELLED
                    type: string
                - description: |-
                    UserId default to the session information.
                    This is used to understand if assessor or assessed should be set to true.
                    If given it will allow to validate the interview for the assessed by the assessor
                    if this is allowed in the context.
                  in: query
                  name: userId
                  required: false
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2InterviewSession'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ValidateSession a session state.
            tags:
                - InterviewService
    /v2/interviews/skills:
        post:
            operationId: InterviewService_ListSkills
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListSkillsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListSkillsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListSkills lists interview's assessed skills.
            tags:
                - InterviewService
    /v2/interviews/skills-evaluations-historic/list:
        post:
            operationId: InterviewService_ListSkillEvaluationsHistoric
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListSkillEvaluationsHistoricRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListSkillEvaluationsHistoricResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListSkillEvaluations list all skill evaluations available.
            tags:
                - InterviewService
    /v2/interviews/skills-evaluations/list:
        post:
            operationId: InterviewService_ListSkillsEvaluations
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListSkillsEvaluationsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListSkillsEvaluationsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListSkillsEvaluations list all accessible interview's skill evaluations.
            tags:
                - InterviewService
    /v2/interviews/skills/evaluation:
        post:
            operationId: InterviewService_UpsertSkillEvaluation
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpsertSkillEvaluationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SkillEvaluation'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpsertSkillEvaluation a answer to a given interview question.
            tags:
                - InterviewService
    /v2/interviews/summaries/list:
        post:
            operationId: InterviewService_ListInterviewSummaries
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListInterviewSummariesRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListInterviewSummariesResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListInterviewSummaries lists AI-generated interview summaries.
            tags:
                - InterviewService
    /v2/interviews/summary:
        post:
            operationId: InterviewService_SummarySessions
            parameters:
                - description: |-
                    SummaryRef is the reference of the field you want to summarize.
                    If the field is numeric, it will also returns sum and average, otherwise, only total is computed.
                    This field is required.
                    If you don't know what to use and only wanna know the total of some grouping clause,
                    you can summarize on created_at.
                  in: query
                  name: page.summaryRef
                  required: false
                  schema:
                    type: string
                - description: |-
                    GroupRef is the reference of a field you want to group over.
                    For instance a artefact having a "status" field could be summarized group by status,
                    giving a total per existing status.
                  in: query
                  name: page.groupRef
                  required: false
                  schema:
                    type: string
                - description: Search contains the value to filter on.
                  in: query
                  name: page.search.search
                  required: false
                  schema:
                    type: string
                - description: Threshold applies a limit on fields that must call a remote resource to be filtered.
                  in: query
                  name: page.search.threshold
                  required: false
                  schema:
                    format: int32
                    type: integer
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SummaryResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewService
    /v2/interviews/thematics:
        post:
            operationId: InterviewService_ListThematics
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListThematicsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListThematicsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListThematics lists interview's assessed thematics.
            tags:
                - InterviewService
    /v2/interviews/types:
        patch:
            operationId: InterviewTypeService_UpdateInterviewType
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateInterviewTypeRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2InterviewType'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
        post:
            operationId: InterviewTypeService_CreateInterviewType
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateInterviewTypeRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2InterviewType'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
    /v2/interviews/types/{id}:
        delete:
            operationId: InterviewTypeService_DeleteInterviewType
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2InterviewType'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
        get:
            operationId: InterviewTypeService_GetInterviewType
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2InterviewType'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
    /v2/interviews/types/achieved-interview:
        patch:
            operationId: InterviewTypeService_UpdateAchievedInterview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateAchievedInterviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AchievedInterview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
        post:
            operationId: InterviewTypeService_CreateAchievedInterview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateAchievedInterviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AchievedInterview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
    /v2/interviews/types/achieved-interview/{id}:
        delete:
            operationId: InterviewTypeService_DeleteAchievedInterview
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AchievedInterview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
        get:
            operationId: InterviewTypeService_GetAchievedInterview
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AchievedInterview'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
    /v2/interviews/types/achieved-interview/list:
        post:
            operationId: InterviewTypeService_ListAchievedInterviews
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAchievedInterviewsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAchievedInterviewsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
    /v2/interviews/types/employees-to-interview-type:
        post:
            operationId: InterviewTypeService_UpsertEmployeesToInterviewTypeFilter
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpsertEmployeesToItwTypeFiltersRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2EmployeeToInterviewTypeFilter'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpsertEmployeesToInterviewTypeFilter completely replace the interview type filters.
            tags:
                - InterviewTypeService
    /v2/interviews/types/employees-to-interview-type/{id}:
        delete:
            operationId: InterviewTypeService_DeleteEmployeesToInterviewTypeFilter
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2EmployeeToInterviewTypeFilter'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                DeleteEmployeesToInterviewTypeFilter removes a employee to interview type filter.
                The ID passed in the payload must be the interview type ID.
            tags:
                - InterviewTypeService
        get:
            operationId: InterviewTypeService_GetEmployeesToInterviewTypeFilter
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2EmployeeToInterviewTypeFilter'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetEmployeesToInterviewTypeFilter returns the iemployee to interview type filters / a default one if it was never set.
            tags:
                - InterviewTypeService
    /v2/interviews/types/employees-to-interview-type/list:
        post:
            operationId: InterviewTypeService_ListEmployeesToInterviewType
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListEmployeesToInterviewTypeRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListEmployeesToInterviewTypeResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListEmployeesToInterviewType lists all employees that matches interview type filters.
            tags:
                - InterviewTypeService
    /v2/interviews/types/list:
        post:
            operationId: InterviewTypeService_ListInterviewTypes
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListInterviewTypeRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListInterviewTypeResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - InterviewTypeService
    /v2/jobs:
        delete:
            operationId: JobService_DeleteJob
            parameters:
                - description: required resource id
                  in: query
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Job'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: DeleteJob deletes a job
            tags:
                - JobService
        patch:
            description: Conflict on name will raise an error if another job already exists.
            operationId: JobService_UpdateJob
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateJobRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Job'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateJob updates a job.
            tags:
                - JobService
        post:
            description: Conflict on name will raise an error if another job already exists.
            operationId: JobService_CreateJob
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateJobRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Job'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: CreateJob creates a job.
            tags:
                - JobService
    /v2/jobs/adequations/list:
        post:
            operationId: JobService_ListJobAdequations
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListJobAdequationsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListJobAdequationsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListJobAdequations lists the aggregated user x job adequation matrix.
            tags:
                - JobService
    /v2/jobs/archive:
        put:
            description: It'll archive any jobs not having active users linked to it.
            operationId: JobService_ArchiveJobs
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ArchiveJobs bulk updates multiple jobs on the current company to archive them.
            tags:
                - JobService
    /v2/jobs/list:
        post:
            operationId: JobService_ListJobs
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListJobsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListJobsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListJob list all filtered jobs.
            tags:
                - JobService
    /v2/jobs/skills:
        patch:
            description: Mainly used to update the expected level for the job skill.
            operationId: JobService_UpdateJobSkill
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateJobSkillRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2JobSkills'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateJobSkill updates a job skill.
            tags:
                - JobService
    /v2/jobs/skills-adequations/list:
        post:
            operationId: JobService_ListJobSkillAdequations
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListJobSkillAdequationsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListJobSkillAdequationsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListJobSkillAdequations lists precomputed job skill adequations with aggregates.
            tags:
                - JobService
    /v2/jobs/skills/link:
        post:
            operationId: JobService_LinkJobSkill
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2LinkJobSkillRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2LinkJobSkillResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: LinkJobSkill links a job to a series of skills select by filters.
            tags:
                - JobService
    /v2/jobs/skills/list:
        post:
            operationId: JobService_ListJobSkills
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListJobSkillsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListJobSkillsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListJobSkills lists the skills for a given job ID.
            tags:
                - JobService
    /v2/jobs/skills/thematics/list:
        post:
            operationId: JobService_ListJobSkillsThematics
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListJobSkillsThematicsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListJobSkillsThematicsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListJobSkillsThematics lists thematics associated to the job with a count of underlying skills.
            tags:
                - JobService
    /v2/jobs/skills/unlink:
        post:
            operationId: JobService_UnLinkJobSkill
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UnLinkJobSkillRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2UnlinkJobSKillResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UnLinkJobSkill unlinks a job to a series of skills specified by a skill ID list..
            tags:
                - JobService
    /v2/participants/skills:
        post:
            description: |-
                Skills can either be a list of defined skill, and/or a boolean job.
                By default sending an empty skill filter list will unset any configured skills for participants.
            operationId: CampaignParticipantService_BulkReplaceParticipantSkills
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkReplaceParticipantSkillsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2BulkReplaceParticipantSkillsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: BulkUpdateParticipantSkills updates campaign's participants skills.
            tags:
                - CampaignParticipantService
    /v2/participants/skills/list:
        post:
            description: This list does not contains job skills associated.
            operationId: CampaignParticipantService_ListParticipantSkills
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListParticipantSkillsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantSkillsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListParticipantSkills lists one participant's configured skills.
            tags:
                - CampaignParticipantService
    /v2/participants/skills/thematics/list:
        post:
            description: As for ListParticipantSkills, this list won't contains thematics coming from jobs.
            operationId: CampaignParticipantService_ListParticipantSkillsThematics
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListParticipantSkillsThematicsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantSkillsThematicsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListParticipantSkillsThematics lists participants associated skills' thematics.
            tags:
                - CampaignParticipantService
    /v2/people-review:
        patch:
            operationId: PeopleReviewService_UpdatePeopleReview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdatePeopleReviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
        post:
            operationId: PeopleReviewService_CreatePeopleReview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreatePeopleReviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/people-review/{id}:
        delete:
            operationId: PeopleReviewService_DeletePeopleReview
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/people-review/{id}/complete:
        post:
            operationId: PeopleReviewService_CompletePeopleReview
            parameters:
                - in: path
                  name: id
                  required: true
                  schema:
                    type: string
            requestBody:
                $ref: '#/components/requestBodies/InterviewService_ResumeSkillEvaluationsFromPreviousBody'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/people-review/{id}/launch:
        post:
            operationId: PeopleReviewService_LaunchPeopleReview
            parameters:
                - in: path
                  name: id
                  required: true
                  schema:
                    type: string
            requestBody:
                $ref: '#/components/requestBodies/InterviewService_ResumeSkillEvaluationsFromPreviousBody'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/people-review/{id}/uncomplete:
        post:
            operationId: PeopleReviewService_UncompletePeopleReview
            parameters:
                - in: path
                  name: id
                  required: true
                  schema:
                    type: string
            requestBody:
                $ref: '#/components/requestBodies/InterviewService_ResumeSkillEvaluationsFromPreviousBody'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/people-review/axis:
        patch:
            operationId: PeopleReviewAxisService_UpdateAxis
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateAxisRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewAxisAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
        post:
            operationId: PeopleReviewAxisService_CreateAxis
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateAxisRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewAxisAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
    /v2/people-review/axis-question:
        patch:
            operationId: AxisQuestionService_UpdateQuestion
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateAxisQuestionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AxisQuestion'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - AxisQuestionService
        post:
            operationId: AxisQuestionService_CreateQuestion
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateAxisQuestionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AxisQuestion'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - AxisQuestionService
    /v2/people-review/axis-question/{id}:
        delete:
            operationId: AxisQuestionService_DeleteQuestion
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AxisQuestion'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - AxisQuestionService
        get:
            operationId: AxisQuestionService_GetQuestion
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AxisQuestion'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - AxisQuestionService
    /v2/people-review/axis-question/list:
        post:
            operationId: AxisQuestionService_ListQuestions
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAxisQuestionsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - AxisQuestionService
    /v2/people-review/axis/{id}:
        delete:
            operationId: PeopleReviewAxisService_DeleteAxis
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewAxis'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
    /v2/people-review/axis/list:
        post:
            operationId: PeopleReviewAxisService_ListAxes
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAxesResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
    /v2/people-review/axis/question-evaluation:
        patch:
            operationId: PeopleReviewAxisService_UpdateAxisQuestionEvaluation
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateAxisQuestionEvaluationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AxisQuestionEvaluationAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
        post:
            operationId: PeopleReviewAxisService_CreateAxisQuestionEvaluation
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateAxisQuestionEvaluationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2AxisQuestionEvaluationAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
    /v2/people-review/axis/question-evaluation/bulk-lock:
        post:
            operationId: PeopleReviewAxisService_BulkLockAxisQuestionEvaluations
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkLockAxisQuestionEvaluationsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2BulkLockAxisQuestionEvaluationsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
    /v2/people-review/axis/question-evaluation/list:
        post:
            operationId: PeopleReviewAxisService_ListAxisQuestionEvaluation
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAxisQuestionEvaluationRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAxisQuestionEvaluationResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
    /v2/people-review/axis/scores/list:
        post:
            operationId: PeopleReviewAxisService_ListAxisScores
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListAxisScoresRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListAxisScoresResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewAxisService
    /v2/people-review/list:
        post:
            operationId: PeopleReviewService_ListPeopleReviews
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListPeopleReviewsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListPeopleReviewsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/people-review/matrix:
        patch:
            operationId: PeopleReviewMatrixService_UpdateMatrix
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateMatrixRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewMatrixAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
        post:
            operationId: PeopleReviewMatrixService_CreateMatrix
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateMatrixRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewMatrixAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/{id}:
        delete:
            operationId: PeopleReviewMatrixService_DeleteMatrix
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewMatrix'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/cell:
        patch:
            description: Only the color and label fields are updatable.
            operationId: PeopleReviewMatrixService_UpdateMatrixCell
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateMatrixCellRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewMatrixCell'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: UpdateMatrixCell updates an existing matrix cell.
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/cells/list:
        post:
            operationId: PeopleReviewMatrixService_ListMatrixCells
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListMatrixCellsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListMatrixCellsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: ListMatrixCells lists all matrix cells for a given matrix.
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/compute-evaluations:
        post:
            operationId: PeopleReviewMatrixService_ComputePositions
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ComputePositionsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/list:
        post:
            operationId: PeopleReviewMatrixService_ListMatrices
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListMatricesResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/participant-position:
        patch:
            operationId: PeopleReviewMatrixService_UpdateParticipantPosition
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateParticipantPositionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ParticipantPositionAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
        post:
            operationId: PeopleReviewMatrixService_CreateParticipantPosition
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateParticipantPositionRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ParticipantPositionAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/participant-position/{id}:
        delete:
            operationId: PeopleReviewMatrixService_DeleteParticipantPosition
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ParticipantPositionAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/matrix/participant-positions/list:
        post:
            operationId: PeopleReviewMatrixService_ListParticipantPositions
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantPositionsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewMatrixService
    /v2/people-review/participant:
        patch:
            operationId: PeopleReviewParticipantService_UpdatePeopleReviewParticipant
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdatePeopleReviewParticipantRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2PeopleReviewParticipantAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewParticipantService
        post:
            operationId: PeopleReviewParticipantService_AddPeopleReviewParticipants
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2AddPeopleReviewParticipantsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewParticipantService
    /v2/people-review/participant/assessors/list:
        post:
            operationId: PeopleReviewParticipantService_ListParticipantAssessor
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListParticipantAssessorRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListParticipantAssessorResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewParticipantService
    /v2/people-review/participant/bulk-replace-assessors:
        post:
            operationId: PeopleReviewParticipantService_BulkReplaceAssessors
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2BulkReplaceAssessorsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewParticipantService
    /v2/people-review/participant/delete:
        post:
            operationId: PeopleReviewParticipantService_DeletePeopleReviewParticipants
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2DeletePeopleReviewParticipantsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewParticipantService
    /v2/people-review/participant/list:
        post:
            operationId: PeopleReviewParticipantService_ListPeopleReviewParticipants
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListPeopleReviewParticipantsRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListPeopleReviewParticipantsResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewParticipantService
    /v2/people-review/questions-to-review/list:
        post:
            operationId: PeopleReviewService_ListQuestionsToReview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListQuestionsToReviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListQuestionsToReviewResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/people-review/to-review/list:
        post:
            operationId: PeopleReviewService_ListPeopleReviewToReview
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2ListPeopleReviewToReviewRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListPeopleReviewToReviewResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - PeopleReviewService
    /v2/skills:
        delete:
            operationId: SkillFrameworkService_Delete
            parameters:
                - description: required resource id
                  in: query
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SkillNode'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                Delete deletes either a skill or a thematic.
                It'll propagate the delete to sub thematics and sub skills.
            tags:
                - SkillFrameworkService
        patch:
            operationId: SkillFrameworkService_UpdateSkill
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateSkillRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Skill'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                UpdateSkill updates an existing skill
                The path can't change during the update.
            tags:
                - SkillFrameworkService
        post:
            operationId: SkillFrameworkService_CreateSkill
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateSkillRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Skill'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                CreateSkill creates a new skill
                It will first create a new entry in the skill thematics (if needed) then creates the skill content.
                The node type will be set by the backend.
            tags:
                - SkillFrameworkService
    /v2/skills/{id}:
        get:
            operationId: SkillFrameworkService_GetSkill
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Skill'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetSkill gets a skill by ID.
            tags:
                - SkillFrameworkService
    /v2/skills/list:
        post:
            operationId: SkillFrameworkService_ListSkill
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListSkillResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all skills and thematics.
            tags:
                - SkillFrameworkService
    /v2/skills/move:
        post:
            operationId: SkillFrameworkService_Move
            requestBody:
                $ref: '#/components/requestBodies/v2MoveRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                properties: {}
                                type: object
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: Move moves thematics and skills to another thematic.
            tags:
                - SkillFrameworkService
    /v2/skills/scales:
        get:
            operationId: SkillFrameworkService_GetScale
            parameters:
                - description: |-
                    Page size is the max number of element in a page.
                    Default to 20.
                    If the number is -1, pagination is ignored.
                  in: query
                  name: pageSize
                  required: false
                  schema:
                    format: int32
                    type: integer
                - description: Page number is the actual page you are trying to access.
                  in: query
                  name: pageNumber
                  required: false
                  schema:
                    default: "1"
                    format: int32
                    type: integer
                - description: Search contains the value to filter on.
                  in: query
                  name: search.search
                  required: false
                  schema:
                    type: string
                - description: Threshold applies a limit on fields that must call a remote resource to be filtered.
                  in: query
                  name: search.threshold
                  required: false
                  schema:
                    format: int32
                    type: integer
                - description: |-
                    Selects ask to return only a partial payload.
                    By default the whole object is returned.
                    If you ask for a valid reference like "person.id" in users list,
                    it will return only the given reference.
                  explode: true
                  in: query
                  name: selects
                  required: false
                  schema:
                    items:
                        type: string
                    type: array
                - description: |-
                    AsDataframe is used to return the result-set as a dataframe.

                    NB: If this field is used, the result will be empty and replaced by a dataframe in pagination response.
                  in: query
                  name: asDataframe
                  required: false
                  schema:
                    type: boolean
                - description: |-
                    SchemaOnly do not answer with the data but return the schema instead.
                    It includes custom fields and virtual fields that cannot be inferred from the data model.
                  in: query
                  name: schemaOnly
                  required: false
                  schema:
                    type: boolean
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Scale'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                GetScale will return the scale associated to the companyID in the request context.
                If no scale found, a default one will be created and returned.
            tags:
                - SkillFrameworkService
        put:
            operationId: SkillFrameworkService_ReplaceScale
            requestBody:
                $ref: '#/components/requestBodies/v2ReplaceScaleRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Scale'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                ReplaceScale will create or replace scale options.
                When creating, replacing or adding new scale options, a check will be done to ensure that no value is missing within the min and max.
            tags:
                - SkillFrameworkService
    /v2/skills/thematics:
        patch:
            operationId: SkillFrameworkService_UpdateThematic
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateThematicRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Thematic'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                UpdateThematic updates an existing thematic
                The path can't change during the update.
            tags:
                - SkillFrameworkService
        post:
            operationId: SkillFrameworkService_CreateThematic
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateThematicRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Thematic'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: |-
                CreateThematic creates a new thematic
                It'll check if it is possible to create it (created on an existing thematic and the depth should not be greater than 1).
            tags:
                - SkillFrameworkService
    /v2/skills/thematics/{id}:
        get:
            operationId: SkillFrameworkService_GetThematic
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2Thematic'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: GetThematic gets a thematic by ID.
            tags:
                - SkillFrameworkService
    /v2/skills/thematics/list:
        post:
            operationId: SkillFrameworkService_ListThematic
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListThematicResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            summary: List lists all skills and thematics.
            tags:
                - SkillFrameworkService
    /v2/succession-plan:
        patch:
            operationId: SuccessionPlanService_UpdateSuccessionPlan
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2UpdateSuccessionPlanRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SuccessionPlanAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - SuccessionPlanService
        post:
            operationId: SuccessionPlanService_CreateSuccessionPlan
            requestBody:
                content:
                    application/json:
                        schema:
                            $ref: '#/components/schemas/v2CreateSuccessionPlanRequest'
                required: true
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SuccessionPlanAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - SuccessionPlanService
    /v2/succession-plan/{id}:
        delete:
            operationId: SuccessionPlanService_DeleteSuccessionPlan
            parameters:
                - description: required resource id
                  in: path
                  name: id
                  required: true
                  schema:
                    type: string
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2SuccessionPlanAggregate'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - SuccessionPlanService
    /v2/succession-plan/list:
        post:
            operationId: SuccessionPlanService_ListSuccessionPlans
            requestBody:
                $ref: '#/components/requestBodies/v2ListRequest'
            responses:
                "200":
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/v2ListSuccessionPlansResponse'
                    description: A successful response.
                default:
                    content:
                        application/json:
                            schema:
                                $ref: '#/components/schemas/rpcStatus'
                    description: An unexpected error response.
            security:
                - OAuth2: []
            tags:
                - SuccessionPlanService
servers:
    - url: https://dev.api.empowill.com
tags:
    - name: AxisQuestionService
    - name: CampaignService
    - name: CampaignTemplateService
    - name: SkillFrameworkService
    - name: GoalsService
    - name: InterviewSecondaryAssessmentService
    - name: InterviewsGoalsFixationService
    - name: InterviewGoalsService
    - name: InterviewService
    - name: InterviewTypeService
    - name: JobService
    - name: CampaignParticipantService
    - name: PeopleReviewAxisService
    - name: PeopleReviewMatrixService
    - name: PeopleReviewParticipantService
    - name: PeopleReviewService
    - name: SuccessionPlanService
