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

# Edit Group Definition

> A `PUT` to the `/groups/definitions/{group}` endpoint updates a group definition.



## OpenAPI

````yaml put /v3/groups/definitions/{group}
openapi: 3.1.0
info:
  title: Omneo
  version: 0.0.1
servers:
  - url: https://api.{tenant}.getomneo.com/api
    variables:
      tenant:
        default: example
security: []
paths:
  /v3/groups/definitions/{group}:
    put:
      tags:
        - Group Definition
      summary: Edit Group Definition
      description: >-
        A `PUT` to the `/groups/definitions/{group}` endpoint updates a group
        definition.
      operationId: groups.definitions.update
      parameters:
        - name: group
          in: path
          required: true
          description: The group ID
          schema:
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGroupDefinition'
      responses:
        '200':
          description: '`GroupDefinition`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/GroupDefinition'
                required:
                  - data
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    UpdateGroupDefinition:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        handle:
          type: string
          maxLength: 255
        type:
          type: string
          description: |-
            Type cannot change on an existing definition — flipping a static
            group to dynamic (or vice versa) would invalidate every
            existing group_profile / snapshot row.
        source_type:
          type:
            - string
            - 'null'
          maxLength: 255
        source_id:
          type:
            - integer
            - 'null'
        query:
          type:
            - string
            - 'null'
          maxLength: 255
        query_type:
          type:
            - string
            - 'null'
          maxLength: 255
        period:
          type:
            - integer
            - 'null'
          minimum: 0
        period_type:
          type:
            - string
            - 'null'
          enum:
            - days
            - weeks
            - months
            - years
            - absolute_date
            - absolute_week
            - absolute_month
        absolute_expiry:
          type:
            - string
            - 'null'
        refresh_period:
          type:
            - integer
            - 'null'
          minimum: 0
        refresh_period_type:
          type:
            - string
            - 'null'
          enum:
            - days
            - weeks
            - months
            - years
            - absolute_date
            - absolute_week
            - absolute_month
        refresh_absolute_expiry:
          type:
            - string
            - 'null'
        short_description:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        owner_profile_id:
          type:
            - string
            - 'null'
        meta:
          type:
            - array
            - 'null'
          items:
            type: string
        is_published:
          type: boolean
        is_active:
          type: boolean
        is_archived:
          type: boolean
        arguments:
          type:
            - array
            - 'null'
          items:
            type: object
            properties:
              name:
                type: string
                maxLength: 255
      title: UpdateGroupDefinition
    GroupDefinition:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        handle:
          type: string
        type:
          type: string
        source_type:
          type:
            - string
            - 'null'
        source_id:
          type:
            - integer
            - 'null'
        query:
          type:
            - string
            - 'null'
        query_type:
          type:
            - string
            - 'null'
        arguments:
          type:
            - array
            - 'null'
          items: {}
        period:
          type:
            - integer
            - 'null'
        period_type:
          type:
            - string
            - 'null'
        absolute_expiry:
          type:
            - string
            - 'null'
        refresh_period:
          type:
            - integer
            - 'null'
        refresh_period_type:
          type:
            - string
            - 'null'
        refresh_absolute_expiry:
          type:
            - string
            - 'null'
        last_refreshed_at:
          type: string
        next_refresh_at:
          type: string
        refresh_status:
          type:
            - string
            - 'null'
        refresh_error:
          type:
            - string
            - 'null'
        short_description:
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        owner_profile_id:
          type:
            - string
            - 'null'
        meta:
          type:
            - array
            - 'null'
          items: {}
        is_published:
          type: boolean
        is_active:
          type: boolean
        is_archived:
          type: boolean
        current_member_count:
          type: integer
        rules:
          type: array
          description: |-
            Inclusion/exclusion rules (with their effective, definition-
            resolved values). Always loaded by the group-definition endpoints
            regardless of type, so the shape is consistent — static/favourite
            groups carry an empty array.
          items:
            $ref: '#/components/schemas/GroupRule'
        created_at:
          type: string
        updated_at:
          type: string
      required:
        - id
        - name
        - handle
        - type
        - source_type
        - source_id
        - query
        - query_type
        - arguments
        - period
        - period_type
        - absolute_expiry
        - refresh_period
        - refresh_period_type
        - refresh_absolute_expiry
        - last_refreshed_at
        - next_refresh_at
        - refresh_status
        - refresh_error
        - short_description
        - description
        - owner_profile_id
        - meta
        - is_published
        - is_active
        - is_archived
        - created_at
        - updated_at
      title: GroupDefinition
    GroupRule:
      type: object
      properties:
        id:
          type: integer
        group_definition_id:
          type: integer
        group_rule_definition_id:
          type:
            - integer
            - 'null'
        type:
          type: string
        name:
          type:
            - string
            - 'null'
        arguments:
          type:
            - array
            - 'null'
          items: {}
        sort_order:
          type: integer
        is_active:
          type: boolean
        meta:
          type:
            - array
            - 'null'
          items: {}
        effective:
          type: object
          description: |-
            Resolved values actually used for evaluation — evaluator/rule come
            from the referenced definition; arguments are definition defaults
            merged with this instance's overrides.
          properties:
            handle:
              type: string
            evaluator:
              type:
                - string
                - 'null'
            rule:
              type:
                - object
                - 'null'
              additionalProperties: {}
            name:
              type:
                - string
                - 'null'
            arguments:
              type: array
              items: {}
          required:
            - handle
            - evaluator
            - rule
            - name
            - arguments
        created_at:
          type: string
        updated_at:
          type: string
      required:
        - id
        - group_definition_id
        - group_rule_definition_id
        - type
        - name
        - arguments
        - sort_order
        - is_active
        - meta
        - effective
        - created_at
        - updated_at
      title: GroupRule
  responses:
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    AuthorizationException:
      description: Authorization error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ModelNotFoundException:
      description: Not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
              - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
              - message
              - errors

````