> ## Documentation Index
> Fetch the complete documentation index at: https://developers.luccasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update an employee-attribute-definition

> Update an employee-attribute-definition.

Only the custom definitions, created by your organization, can be updated: any other definition returns a `400` with the `attribute-definition-not-editable` error. The base schema of `schema` cannot change.

<Warning>This API endpoint is in beta and may be subject to changes, including breaking changes (similarly to the legacy API endpoints), without prior notice. [Read more about versioning](/documentation/using-api/versioning).</Warning>

<Accordion title="Access" icon="key">
  **OAuth 2.0 scopes**

  ```
   employee-attribute-definitions.readwrite
  ```
</Accordion>


## OpenAPI

````yaml /openapi-specs/lucca-api@2024-11-01.json patch /lucca-api/employee-attribute-definitions/{id}
openapi: 3.1.0
info:
  title: Lucca API reference
  version: '2024-11-01'
  x-revision: 14a8d8fdcddd
  description: Please refer to developers.luccasoftware.com.
  contact:
    name: API Support
    url: https://www.luccasoftware.com
    email: no-reply@luccasoftware.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: https://{host}
    description: Your Lucca account URL.
    variables:
      host:
        default: example.ilucca.net
        description: >-
          The URL of your dedicated Lucca account: `{account}.{env}.{region}`.


          Account reflects your company name. Env indicates the environment.
          Region depends on your server location.


          **Please, use your test or sandbox environments (and not your
          production env.) for testing purposes.**


          Environments:

          - `ilucca`: production environment for customers.

          - `ilucca-test`: test environment for customers.

          - `ilucca-demo`: demo environment for prospects.


          Regions:

          - `.ch` for Swiss located accounts.

          - `.net` for the others.


          Regarding sandboxes, the pattern differs:
          `https://{account}-{sandboxName}.sandbox.{server}.luccasoftware.com`,
          where:

          - `{sandboxName}` is automatically generated upon creation.

          - `{server}` may be "eu1", "eu2" or "ch1".
security: []
tags:
  - name: organization
    description: Organization.
  - name: employees
    description: Employees.
  - name: employments
    description: Employments & job-positions.
  - name: employee-occupation-categories
    description: Employee occupations categories.
  - name: employee-job-qualifications
    description: Job qualifications & professions.
  - name: employee-attributes
    description: Employee-Attributes.
  - name: taxonomies
    description: Taxonomies & taxonomy-labels.
  - name: webhooks
    description: Webhooks.
  - name: events
    description: >-
      Major resources of the Lucca API are subject to events, which means every
      time

      their state changes (creation, update, deletion), an event is fired.


      These events are stored for a limited time (c.f. documentation), and can
      either be retrieved through the

      events endpoint, or they can be sent to your webhook-endpoint.
  - name: working-time-arrangements
    description: working-time-arrangements
  - name: files
    description: Files management.
paths:
  /lucca-api/employee-attribute-definitions/{id}:
    parameters:
      - $ref: '#/components/parameters/api-version'
      - $ref: '#/components/parameters/if-none-match'
      - $ref: '#/components/parameters/if-match'
      - $ref: '#/components/parameters/accept-encoding'
      - $ref: '#/components/parameters/include'
      - name: id
        in: path
        required: true
        description: Identifier of the employee-attribute-definition.
        schema:
          type: string
          minLength: 1
    patch:
      tags:
        - employee-attributes
      summary: Update an employee-attribute-definition
      description: >-
        Update an employee-attribute-definition.


        Only the custom definitions, created by your organization, can be
        updated: any other definition returns a `400` with the
        `attribute-definition-not-editable` error. The base schema of `schema`
        cannot change.
      operationId: patch-employee-attribute-definition
      requestBody:
        description: >-
          Representation of an
          [employee-attribute-definition](/api-reference/2024-11-01/employee-attributes/employee-attribute-definition).
        content:
          application/json:
            schema:
              description: >-
                The representation of the employee-attribute-definition to
                update.
              allOf:
                - $ref: '#/components/schemas/employee-attribute-definition.update'
            examples:
              definition:
                $ref: >-
                  #/components/examples/employee-attribute-definition.patch.example
      responses:
        '200':
          description: OK
          headers:
            Api-Version:
              $ref: '#/components/headers/api-version'
            Content-Encoding:
              $ref: '#/components/headers/content-encoding'
            ETag:
              $ref: '#/components/headers/eTag'
            Deprecation:
              $ref: '#/components/headers/deprecation'
            Sunset:
              $ref: '#/components/headers/sunset'
          content:
            application/json:
              schema:
                type: object
                unevaluatedProperties: false
                description: The updated employee-attribute-definition resource.
                allOf:
                  - $ref: '#/components/schemas/employee-attribute-definition.read'
              examples:
                definition:
                  $ref: >-
                    #/components/examples/employee-attribute-definition.get.example
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404'
        default:
          $ref: '#/components/responses/500'
      security:
        - oAuth:
            - employee-attribute-definitions.readwrite
components:
  parameters:
    api-version:
      name: Api-Version
      in: header
      description: Set the [API version](/documentation/using-api/versioning).
      schema:
        type: string
        format: date
        const: '2024-11-01'
        enum:
          - '2024-11-01'
        maxLength: 10
        examples:
          - '2024-11-01'
      required: true
    if-none-match:
      name: If-None-Match
      in: header
      description: >-
        Only execute the request if current cached version of the resource does
        not match the one given here.
      schema:
        type: string
        examples:
          - W/q5sd4w2x1c1gfdg
      required: false
    if-match:
      name: If-Match
      in: header
      description: >-
        Only execute the request if current cached version of the resource
        matches the one given here. Useful to avoid concurrency conflicts.
      schema:
        type: string
        examples:
          - W/q5sd4w2x1c1gfdg
      required: false
    accept-encoding:
      name: Accept-Encoding
      description: List of compression algorithms you support.
      in: header
      schema:
        type: string
      examples:
        unWeighted:
          value: gzip, compress, br
        weighted:
          value: gzip;q=1.0, identity; q=0.5, *;q=0
    include:
      description: >-
        Include metadata:
          - `embedded`: the partial or complete representations of related resources 
            (e.g. the employee the resource belongs to).
          - `links`: links to related resources or actions (e.g. approving a leave-request).
            May be `null` when you do not have access to the resource (or action).
          - `totalCount`: only applicable on collections (i.e. lists of resources), gives
            the total number of items across all pages.

        Read more about [expanding
        responses](/documentation/using-api/includes).
      name: include
      in: query
      style: form
      explode: false
      schema:
        type: array
        items:
          type: string
          enum:
            - embedded
            - links
            - totalCount
          x-enumDescriptions:
            embedded: >-
              Partial or complete representations of related resources (e.g. the
              employee the resource belongs to).
            links: >-
              Link resources to related resources or actions (e.g. approving a
              leave-request).

              May be `null` when you do not have access to the resource (or
              action).
            totalCount: >-
              Is only applicable on collections (i.e. lists of resources), gives
              the total number of items across all pages.
  schemas:
    employee-attribute-definition.update:
      title: employee-attribute-definition
      description: employee-attribute-definition
      type: object
      properties:
        name:
          type: string
          minLength: 1
        schema:
          type: object
          description: >-
            JSON schema of the attribute value, in the same form as on creation.
            Its base schema cannot change: for an object value, every existing
            property must be kept with the same base schema, and only new
            properties can be added.
        propertyDescriptions:
          type:
            - object
            - 'null'
          description: >-
            Required whenever this definition schema is of type "object". 

            This property is a dictionary whose keys are the name of the schema
            object properties.
          additionalProperties:
            type: object
            required:
              - name
              - sortOrder
            properties:
              name:
                type: string
                minLength: 1
              taxonomy:
                anyOf:
                  - $ref: '#/components/schemas/taxonomy-reference'
                  - type: 'null'
              sortOrder:
                type: integer
                minimum: 0
              t9n:
                type: object
                additionalProperties: false
                properties:
                  name:
                    $ref: '#/components/schemas/t9n'
        isArchived:
          $ref: '#/components/schemas/isArchived'
        t9n:
          type: object
          additionalProperties: false
          properties:
            name:
              $ref: '#/components/schemas/t9n'
        multipleValueHandling:
          description: >-
            Behavior regarding multiple extension values per single extended
            resource. When `null`, then only a single extension can exist for
            any extended resource. Multiple extensions may be accepted
            otherwise.


            Example: "employee's children" would accept multiple value, when
            "employee's blood type" would not.
          type:
            - object
            - 'null'
          required:
            - sorting
          properties:
            sorting:
              description: >-
                In case of multiple extensions per resource, how should the
                client sort them (direction)?
              type: string
              enum:
                - ascending
                - descending
            sortingProperty:
              description: >-
                Not null for "object" schemas, in which case it points to the
                object property clients should sort extensions on:
                `extension.value[{sortingProperty}]`.

                Null otherwise, in which case clients are expected to sort on
                the actual `extension.value`.
              type:
                - string
                - 'null'
    employee-attribute-definition.read:
      allOf:
        - $ref: '#/components/schemas/employee-attribute-definition'
        - $ref: '#/components/schemas/employee-attribute-definition.embedded'
    taxonomy-reference:
      title: taxonomy-reference
      description: Reference to a taxonomy.
      type: object
      additionalProperties: false
      required:
        - id
      properties:
        id:
          type: string
          minLength: 1
        type:
          type: string
          const: taxonomy
          readOnly: true
        url:
          type: string
          format: uri
          readOnly: true
    t9n:
      type:
        - object
        - 'null'
      title: Translations
      description: >-
        Used for translation purposes. Object is structured as a dictionary
        whose keys refer to translated properties of the parent object, and
        whose values are a dictionary of supported languages.


        On the parent object, the translated property value is considered the
        "invariant" translation. It is expected to show this value whenever the
        user's language has no translation in `t9n`.


        Languages are identified through their RFC 4646 language tag.
      properties:
        de-DE:
          description: German (Germany)
          type:
            - string
            - 'null'
        en-US:
          description: English (United States of America)
          type:
            - string
            - 'null'
        en-GB:
          description: English (Great Britain)
          type:
            - string
            - 'null'
        es-ES:
          description: Spanish (Spain)
          type:
            - string
            - 'null'
        fr-FR:
          description: French (France)
          type:
            - string
            - 'null'
        fr-CH:
          description: French (Switzerland)
          type:
            - string
            - 'null'
        it-IT:
          description: Italian (Italy)
          type:
            - string
            - 'null'
        nl-BE:
          description: Dutch (Belgium)
          type:
            - string
            - 'null'
        nl-NL:
          description: Dutch (Netherlands)
          type:
            - string
            - 'null'
        pt-PT:
          description: Portuguese (Portugal)
          type:
            - string
            - 'null'
    isArchived:
      type: boolean
      description: |-
        When false, resource is not archived.
        When true, resource is archived.

        You can update this property in order to set the
        archival status of the resource.
    employee-attribute-definition:
      title: employee-attribute-definition
      description: employee-attribute-definition
      allOf:
        - $ref: '#/components/schemas/extension-definition'
        - $ref: '#/components/schemas/extension-definition-multiple-value-handling'
        - type: object
          properties:
            type:
              type: string
              const: employee-attribute-definition
            targetType:
              type: string
              enum:
                - employee
                - employment
                - job-position
            category:
              type: string
              enum:
                - system
                - extension
              readOnly: true
              description: >-
                **Read-only.** Which API surface exposes the values of this
                definition, regardless of who provides them.


                - `system`: the value is a property of the primary resource
                named by `targetType` (e.g. `employee.givenName`,
                `jobPosition.manager`). It is readable on that resource and on
                `employee-attributes` alike.

                - `extension`: the value is only readable on
                `employee-attributes`. It is absent from every primary resource
                representation. This covers definitions created by your
                organization as well as definitions added by a Lucca
                application.
            isValueReadOnly:
              type: boolean
              readOnly: true
              description: >-
                **Read-only.** Whether the values of this definition can be
                modified through the Lucca API.


                `false` only promises that an existing value may be modified:
                creating a value or deleting an occurrence have their own
                conditions. This flag describes what the account exposes, not
                the rights of the caller: a write on a `false` definition may
                still be denied with `403`.
            createdAt:
              $ref: '#/components/schemas/createdAt'
            lastUpdatedAt:
              $ref: '#/components/schemas/lastUpdatedAt'
      examples:
        - id: e_tShirtSize
          type: employee-attribute-definition
          url: >-
            https://example.ilucca.net/lucca-api/employee-attribute-definitions/12
          name: T-shirt size
          multipleValueHandling: null
          schema:
            $id: /lucca-api/schemas/taxonomy-label-reference
            $schema: https://json-schema.org/draft/2020-12/schema
            title: taxonomy-label-reference
            type:
              - object
              - 'null'
            additionalProperties: false
            required:
              - id
            properties:
              id:
                type: string
                minLength: 1
              type:
                type: string
                const: taxonomy-label
                readOnly: true
              url:
                type: string
                format: uri
                readOnly: true
          taxonomy:
            id: '45'
            type: taxonomy
            url: https://example.ilucca.net/lucca-api/taxonomies/45
          t9n:
            name:
              fr-FR: Taille de t-shirt
          targetType: employee
          category: extension
          isValueReadOnly: false
          links: {}
    employee-attribute-definition.embedded:
      type: object
      properties:
        embedded:
          description: >-
            No embedded resources on a employee-attribute-definition(s)
            response. Expect an empty object if embedded are requested.
          type:
            - object
            - 'null'
    problem:
      title: Problem
      description: >-
        Represents a "problem detail" as a way to carry machine-readable details
        of errors in a HTTP response.
      type: object
      additionalProperties: true
      properties:
        type:
          type:
            - string
            - 'null'
          description: >-
            Identifies the problem type. Points to a page containing a
            human-readable documentation for the problem type.
          example: https://tools.ietf.org/html/rfc7231#section-6.5.1
        title:
          type:
            - string
            - 'null'
          description: 'A short, summary of the problem type (e.g.: Service Unavailable)'
          example: Bad Request
        status:
          description: >-
            The HTTP status code generated by the origin server for this
            occurrence of the problem.
          type:
            - integer
            - 'null'
          format: int32
          minimum: 100
          maximum: 599
          example: 400
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
          type:
            - string
            - 'null'
          example: One or more validation errors occurred.
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          example:
            startsOn:
              - 'Invalid period: startsOn should be before endsOn.'
        t9n:
          description: >-
            Translations of the problem. `t9n.detail` holds the translations of
            `detail`, indexed by language.
          type: object
          properties:
            detail:
              $ref: '#/components/schemas/t9n'
      example:
        type: https://tools.ietf.org/html/rfc7231#section-6.5.1
        title: Bad Request
        detail: One or more validation errors occurred.
        status: 400
        errors:
          startsOn:
            - 'Invalid period: startsOn should be before endsOn.'
        t9n:
          detail:
            fr-FR: Une (au moins) erreur de validation a été rencontrée.
    extension-definition:
      title: extension-definition
      description: extension-definition
      type: object
      properties:
        id:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\w{1,255}
          description: Client-generated identifier.
        type:
          type: string
        url:
          type: string
          format: uri
        name:
          type: string
          minLength: 1
        schema:
          description: >-
            JSON schema of the attribute value. [Read more about employee
            attribute definition
            schemas](/api-reference/latest/employee-attributes/attribute-definition-schemas).


            The schema embeds the base schema it is built on, identified by its
            `$id`, e.g.:

            ```json

            {
              "schema": {
                "$id": "/lucca-api/schemas/taxonomy-label-reference",
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "title": "taxonomy-label-reference",
                "type": ["object", "null"],
                "additionalProperties": false,
                "required": ["id"],
                "properties": {
                    "id": {
                        "type": "string",
                        "minLength": 1
                    },
                    "type": {
                        "type": "string",
                        "const": "taxonomy-label",
                        "readOnly": true
                    },
                    "url": {
                        "type": "string",
                        "format": "uri",
                        "readOnly": true
                    }
                }
              }
            }

            ```


            Definitions based on the same base schema all embed it with the same
            `$id`, and identical `$id`s always denote identical schemas. If you
            register these schemas in a JSON Schema validator (e.g. to validate
            values before writing them), register each `$id` once: registering
            it again makes validators such as Ajv fail with a "schema already
            exists" error.
          type: object
        propertyDescriptions:
          type:
            - object
            - 'null'
          description: >-
            Required whenever this definition schema is of type "object". 

            This property is a dictionary whose keys are the name of the schema
            object properties.
          additionalProperties:
            type: object
            required:
              - name
              - sortOrder
            properties:
              name:
                type: string
                minLength: 1
              taxonomy:
                anyOf:
                  - $ref: '#/components/schemas/taxonomy-reference'
                  - type: 'null'
              sortOrder:
                type: integer
                minimum: 0
              t9n:
                type: object
                additionalProperties: false
                properties:
                  name:
                    $ref: '#/components/schemas/t9n'
        taxonomy:
          description: >-
            Whenever the expected schema is a taxonomy-label reference, then the
            taxonomy these labels must belong to must be indicated.
          anyOf:
            - type: 'null'
            - $ref: '#/components/schemas/taxonomy-reference'
        isArchived:
          $ref: '#/components/schemas/isArchived'
        lastArchivedAt:
          $ref: '#/components/schemas/lastArchivedAt'
        t9n:
          type: object
          additionalProperties: false
          properties:
            name:
              $ref: '#/components/schemas/t9n'
        links:
          type:
            - object
            - 'null'
    extension-definition-multiple-value-handling:
      type: object
      properties:
        multipleValueHandling:
          description: >-
            Behavior regarding multiple extension values per single extended
            resource. When `null`, then only a single extension can exist for
            any extended resource. Multiple extensions may be accepted
            otherwise.


            Example: "employee's children" would accept multiple value, when
            "employee's blood type" would not.
          type:
            - object
            - 'null'
          required:
            - sorting
          properties:
            sorting:
              description: >-
                In case of multiple extensions per resource, how should the
                client sort them (direction)?
              type: string
              enum:
                - ascending
                - descending
            sortingProperty:
              description: >-
                Not null for "object" schemas, in which case it points to the
                object property clients should sort extensions on:
                `extension.value[{sortingProperty}]`.

                Null otherwise, in which case clients are expected to sort on
                the actual `extension.value`.
              type:
                - string
                - 'null'
    createdAt:
      title: createdAt
      description: >-
        **Read-only.** UTC timestamp of the moment this object was created.

        The UTC offset may be written `Z` or `+00:00`, with up to 7 fractional
        digits of a second.
      type: string
      format: date-time
      examples:
        - '2023-01-23T12:45:23.1234567+00:00'
        - '2023-01-23T12:45:23.1234Z'
    lastUpdatedAt:
      title: lastUpdatedAt
      description: >-
        **Read-only.** UTC timestamp of the moment this object was last updated.

        Set upon creation, update or deletion of the object.

        The UTC offset may be written `Z` or `+00:00`, with up to 7 fractional
        digits of a second.
      type: string
      format: date-time
      examples:
        - '2023-01-23T12:45:23.1234567+00:00'
        - '2023-01-23T12:45:23.1234Z'
    lastArchivedAt:
      type:
        - string
        - 'null'
      format: date-time
      description: >-
        **Read-only.** UTC timestamp of the moment this object was last archived
        through its `isArchived` property.

        The UTC offset may be written `Z` or `+00:00`, with up to 7 fractional
        digits of a second.
      examples:
        - '2023-01-23T12:45:23.1234567+00:00'
        - '2023-01-23T12:45:23.1234Z'
  examples:
    employee-attribute-definition.patch.example:
      summary: employee-attribute-definition PATCH example
      description: employee-attribute-definition PATCH example
      value:
        isArchived: true
    employee-attribute-definition.get.example:
      summary: employee-attribute-definition GET example
      description: employee-attribute-definition GET example
      value:
        id: e_tShirtSize
        type: employee-attribute-definition
        url: >-
          https://example.ilucca.net/lucca-api/employee-attribute-definitions/e_tShirtSize
        name: T-shirt size
        multipleValueHandling: null
        schema:
          $id: /lucca-api/schemas/taxonomy-label-reference
          $schema: https://json-schema.org/draft/2020-12/schema
          title: taxonomy-label-reference
          type:
            - object
            - 'null'
          additionalProperties: false
          required:
            - id
          properties:
            id:
              type: string
              minLength: 1
            type:
              type: string
              const: taxonomy-label
              readOnly: true
            url:
              type: string
              format: uri
              readOnly: true
        taxonomy:
          id: '45'
          type: taxonomy
          url: https://example.ilucca.net/lucca-api/taxonomies/45
        t9n:
          name:
            fr-FR: Taille de t-shirt
        targetType: employee
        category: extension
        isValueReadOnly: false
        links: {}
  headers:
    api-version:
      description: Name (date of release) of the API version.
      schema:
        type: string
        const: '2024-11-01'
        examples:
          - '2024-11-01'
        maxLength: 10
      required: true
    content-encoding:
      description: >-
        HTTP representation header that lists the encodings and the order in
        which they have been applied to the representation of the resource.
      required: false
      schema:
        type: array
        uniqueItems: true
        items:
          type: string
          enum:
            - gzip
            - compress
            - deflate
            - br
      examples:
        gzip:
          value:
            - gzip
    eTag:
      description: Identifies the cached version of the resource.
      schema:
        type: string
        examples:
          - W/q5sd4w2x1c1gfdg
    deprecation:
      description: |
        Signals the resource has been deprecated.
      schema:
        type: string
        format: date
        maxLength: 10
        examples:
          - '2024-01-01'
    sunset:
      description: >
        The **Sunset** response header (see [RFC
        8594](https://datatracker.ietf.org/doc/html/rfc8594)) indicates the
        point in time at which this endpoint or resource will become
        unavailable. The sunset value is a timestamp [RFC 9110 Section
        5.6.7][rfc-9110-5.6.7] that usually points to the future. If a sunset
        value points to the past, then the endpooint or  resource must be
        expected to become unavailable at any time.

        As an API client, you should monitor the presence and value of all
        **Sunset** headers  and be ready to take counter measures.
      schema:
        type: string
        format: date-time
        examples:
          - '2026-01-01T00:00:00Z'
  responses:
    '400':
      description: |-
        Bad request. You may:
          - (write requests) make sure the request body conforms with the expected schema.
          - double check all required parameters are set.
      headers:
        Api-Version:
          $ref: '#/components/headers/api-version'
        Deprecation:
          $ref: '#/components/headers/deprecation'
        Sunset:
          $ref: '#/components/headers/sunset'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problem'
          example:
            type: https://tools.ietf.org/html/rfc7231#section-6.5.1
            title: One or more validation errors occurred.
            status: 400
            instance: https://example.ilucca.net/lucca-api/leaves/1573
            errors:
              endsOn:
                - 'Invalid period: StartsOn should be before EndsOn.'
              employeeId:
                - The employeeId query parameter is required.
            extensions:
              traceId: '|78777424-49cc27e04281bbfc.'
    '401':
      description: You are not authenticated. Please refresh your token.
      headers:
        Api-Version:
          $ref: '#/components/headers/api-version'
        Deprecation:
          $ref: '#/components/headers/deprecation'
        Sunset:
          $ref: '#/components/headers/sunset'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problem'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc7235#section-3.1
            title: Unauthorized
            status: 401
            instance: https://example.ilucca.net/lucca-api/employees/1573
    '404':
      description: Not Found. Resource may have previously been deleted.
      headers:
        Api-Version:
          $ref: '#/components/headers/api-version'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problem'
          example:
            type: https://tools.ietf.org/html/rfc7231#section-6.5.4
            title: Not Found
            status: 404
            instance: https://example.ilucca.net/lucca-api/employees/1573
    '500':
      description: Internal server error.
      headers:
        Api-Version:
          $ref: '#/components/headers/api-version'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problem'
          example:
            type: https://tools.ietf.org/html/rfc7231#section-6.5.4
            title: Internal Server Error
            status: 500
            instance: https://example.ilucca.net/lucca-api/employees/1573
  securitySchemes:
    oAuth:
      type: oauth2
      description: >-
        The Lucca API implements the [oAuth 2](https://oauth.net/2/) protocol
        with the
        [client-credentials-flow](https://auth0.com/docs/get-started/authentication-and-authorization-flow/client-credentials-flow).
        Refer to RFC8725.
      flows:
        clientCredentials:
          tokenUrl: https://accounts.world.luccasoftware.com/connect/token
          scopes:
            legal-entities.readonly: >-
              Read
              [legal-entities](/api-reference/latest/organization/legal-entity).
            legal-entities.readwrite: >-
              Create, update or delete
              [legal-entities](/api-reference/latest/organization/legal-entity).
            business-establishments.readonly: >-
              Read
              [business-establishments](/api-reference/latest/organization/business-establishment).
            business-establishments.readwrite: >-
              Create, update or delete
              [business-establishments](/api-reference/latest/organization/business-establishment).
            departments.readonly: Read [departments](/api-reference/latest/organization/department).
            departments.readwrite: >-
              Create, update or delete
              [departments](/api-reference/latest/organization/department).
            employees.readonly: Read [employees](/api-reference/latest/employees/employee).
            employees.readwrite: >-
              Create or update
              [employees](/api-reference/latest/employees/employee).
            employee-attribute-definitions.readonly: >-
              Read
              [employee-attribute-definitions](/api-reference/latest/employee-attributes/employee-attribute-definition).
            employee-attribute-definitions.readwrite: >-
              Create, update or delete
              [employee-attribute-definitions](/api-reference/latest/employee-attributes/employee-attribute-definition)

              and [taxonomies](/api-reference/latest/taxonomies/taxonomy).
            employee-attributes.readonly: >-
              Read
              [employee-attributes](/api-reference/latest/employee-attributes/employee-attribute).
            employee-attributes.readwrite: >-
              Create, update or delete
              [employee-attributes](/api-reference/latest/employee-attributes/employee-attribute).
            employee-personal-records.readonly: >-
              Read
              [employee-personal-records](/api-reference/latest/employees/employee-personal-records).

              This contains highly sensitive data about the personal detail of
              the person.
            employee-personal-records.readwrite: >-
              Create, update or delete
              [employee-personal-records](/api-reference/latest/employees/employee-personal-records).

              This contains highly sensitive data about the personal detail of
              the person.
            employments.readonly: Read [employments](/api-reference/latest/employments/employment).
            employments.readwrite: >-
              Create, update or delete
              [employments](/api-reference/latest/employments/employment).
            employment-templates.readonly: >-
              Read
              [employment-templates](/api-reference/latest/employments/employment-template).
            employment-templates.readwrite: >-
              Create, update or archive
              [employment-templates](/api-reference/latest/employments/employment-template).
            job-positions.readonly: >-
              Read
              [job-positions](/api-reference/latest/employments/job-position).
            job-positions.readwrite: >-
              Create, update or delete
              [job-positions](/api-reference/latest/employments/job-position).
            probationary-periods.readonly: >-
              Read
              [probationary-periods](/api-reference/latest/employments/probationary-period).
            probationary-periods.readwrite: >-
              Create, update or delete
              [probationary-periods](/api-reference/latest/employments/probationary-period).
            occupation-categories.readonly: >-
              Read
              [occupation-categories](/api-reference/latest/employee-occupations/occupation-category).
            occupation-categories.readwrite: >-
              Create, update or delete
              [occupation-categories](/api-reference/latest/employee-occupations/occupation-category).
            job-qualifications.readonly: >-
              Read
              [job-qualifications](/api-reference/latest/employee-occupations/job-qualification)
              and
              [professions](/api-reference/latest/employee-occupations/profession).
            job-qualifications.readwrite: >-
              Create, update or delete
              [job-qualifications](/api-reference/latest/employee-occupations/job-qualification)
              and
              [professions](/api-reference/latest/employee-occupations/profession).
            taxonomies.readonly: >-
              Read [taxonomies](/api-reference/latest/taxonomies/taxonomy) and
              [taxonomy-labels](/api-reference/latest/taxonomies/taxonomy-label).
            taxonomies.readwrite: >-
              Create, update or delete
              [taxonomies](/api-reference/latest/taxonomies/taxonomy) and
              [taxonomy-labels](/api-reference/latest/taxonomies/taxonomy-label).
            webhook-endpoints.readonly: Read webhook-endpoints.
            webhook-endpoints.readwrite: Create and update webhook-endpoints.
            webhook-deliveries.readonly: Read webhook-deliveries.
            webhook-deliveries.readwrite: Send a ping event to a webhook-endpoint.
            events.readonly: >-
              Read [events](/api-reference/latest/events/event).

              Only events of resources covered by the client's other scopes are
              returned (see [access
              control](/api-reference/latest/events/access-control)).
            working-time-arrangements.readonly: Read working-time-arrangements.
            files.readonly: Read files stored in Lucca.
            files.readwrite: Upload a file to Lucca.
          x-scope-metadata:
            legal-entities.readonly:
              criticality: low
              resources: '[legal-entity](./organization/legal-entity)'
            legal-entities.readwrite:
              criticality: medium
              resources: '[legal-entity](./organization/legal-entity)'
            business-establishments.readonly:
              criticality: low
              resources: '[business-establishment](./organization/business-establishment)'
            business-establishments.readwrite:
              criticality: medium
              resources: '[business-establishment](./organization/business-establishment)'
            departments.readonly:
              criticality: low
              resources: '[department](./organization/department)'
            departments.readwrite:
              criticality: medium
              resources: '[department](./organization/department)'
            employees.readonly:
              criticality: medium
              resources: '[employee](./employees/employee)'
            employees.readwrite:
              criticality: medium
              resources: '[employee](./employees/employee)'
            employee-attribute-definitions.readonly:
              criticality: low
              resources: >-
                [employee-attribute-definition](./employee-attributes/employee-attribute-definition)
            employee-attribute-definitions.readwrite:
              criticality: medium
              resources: >-
                [employee-attribute-definition](./employee-attributes/employee-attribute-definition),
                [taxonomy](./taxonomies/taxonomy)
            employee-attributes.readonly:
              criticality: medium
              resources: '[employee-attribute](./employee-attributes/employee-attribute)'
            employee-attributes.readwrite:
              criticality: medium
              resources: '[employee-attribute](./employee-attributes/employee-attribute)'
            employee-personal-records.readonly:
              criticality: high
              resources: '[employee-personal-record](./employees/employee-personal-record)'
            employee-personal-records.readwrite:
              criticality: high
              resources: '[employee-personal-record](./employees/employee-personal-record)'
            employments.readonly:
              criticality: medium
              resources: '[employment](./employments/employment)'
            employments.readwrite:
              criticality: medium
              resources: '[employment](./employments/employment)'
            employment-templates.readonly:
              criticality: medium
              resources: '[employment-template](./employments/employment-template)'
            employment-templates.readwrite:
              criticality: medium
              resources: '[employment-template](./employments/employment-template)'
            job-positions.readonly:
              criticality: low
              resources: '[job-position](./employments/job-position)'
            job-positions.readwrite:
              criticality: medium
              resources: '[job-position](./employments/job-position)'
            probationary-periods.readonly:
              criticality: medium
              resources: '[probationary-period](./employments/probationary-period)'
            probationary-periods.readwrite:
              criticality: medium
              resources: '[probationary-period](./employments/probationary-period)'
            occupation-categories.readonly:
              criticality: low
              resources: >-
                [occupation-category](./employee-occupation-categories/get-started)
            occupation-categories.readwrite:
              criticality: medium
              resources: >-
                [occupation-category](./employee-occupation-categories/get-started)
            job-qualifications.readonly:
              criticality: low
              resources: >-
                [job-qualification](./employee-job-qualifications/job-qualification)
                and [professions](./employee-job-qualifications/profession)
            job-qualifications.readwrite:
              criticality: medium
              resources: >-
                [job-qualification](./employee-job-qualifications/job-qualification)
                and [professions](./employee-job-qualifications/profession)
            taxonomies.readonly:
              criticality: low
              resources: >-
                [taxonomy](./taxonomies/taxonomy) &
                [taxonomy-label](./taxonomies/taxonomy-label)
            taxonomies.readwrite:
              criticality: medium
              resources: >-
                [taxonomy](./taxonomies/taxonomy) &
                [taxonomy-label](./taxonomies/taxonomy-label)
            webhook-endpoints.readonly:
              criticality: low
              resources: '[webhook-endpoint](./webhooks/webhook-endpoint)'
            webhook-endpoints.readwrite:
              criticality: medium
              resources: '[webhook-endpoint](./webhooks/webhook-endpoint)'
            webhook-deliveries.readonly:
              criticality: low
              resources: >-
                [webhook-delivery](./webhooks/webhook-delivery) &
                [webhook-delivery-attempt](./webhooks/webhook-delivery-attempt)
            webhook-deliveries.readwrite:
              criticality: medium
              resources: >-
                [webhook-delivery](./webhooks/webhook-delivery) &
                [webhook-delivery-attempt](./webhooks/webhook-delivery-attempt)
            events.readonly:
              criticality: medium
              resources: '[event](./events/event)'
            working-time-arrangements.readonly:
              criticality: low
              resources: >-
                [working-time-arrangement](./working-time-arrangements/working-time-arrangement)
            files.readonly:
              criticality: medium
              resources: '[file](./files/file)'
            files.readwrite:
              criticality: medium
              resources: '[file](./files/file)'

````

## Related topics

- [API lifecycle](/api-reference/latest/lifecycle.md)
- [Delete an employee-attribute-definition](/api-reference/latest/employee-attributes/delete-employee-attribute-definition.md)
- [Retrieve an employee-attribute-definition](/api-reference/latest/employee-attributes/get-employee-attribute-definition.md)
- [List employee-attribute-definitions](/api-reference/latest/employee-attributes/get-employee-attribute-definitions.md)
- [Employee Attribute Definition Schemas](/api-reference/latest/employee-attributes/attribute-definition-schemas.md)
