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

# Patch apiv1hrmsshifts



## OpenAPI

````yaml https://www.amdital.com/openapi.json patch /api/v1/hrms/shifts/{id}
openapi: 3.0.0
info:
  title: AmDital API
  description: >-
    AmDital enterprise business operating system API — generated directly from
    the live NestJS controllers and their Zod request/response schemas (see
    apps/api/src/openapi/generate.ts).
  version: 2.0.0
  contact: {}
servers:
  - url: https://api.amdital.com
    description: Production
  - url: http://localhost:8000
    description: Local development
security:
  - bearerAuth: []
tags:
  - name: Health
    description: Liveness/readiness probe. Unauthenticated.
  - name: AuthNext
    description: >-
      Live authentication surface — login, password verification, token refresh,
      session management, MFA, and admin credential resets.
      login/verify-password/refresh are public (the credential exchange itself);
      session/MFA routes require the bearer JWT they issue; admin/* routes are
      internal-key gated, server-to-server only.
  - name: Content
    description: >-
      Generic tenant-scoped CRUD over the 49 allowlisted content/config
      collections (see the `collection` path parameter enum) — the NestJS
      replacement for Payload REST on these collections; response shapes match
      Payload REST so existing consumers work unchanged.
  - name: Activity
    description: >-
      Activity logs and screenshot capture/scoring for the time-tracking desktop
      agent.
  - name: Ai
    description: AMI agents, prompts, and workflows — create, deploy/activate, and manage.
  - name: Calendar
    description: Workspace calendars and calendar events.
  - name: Clients
    description: Client organizations and client contacts.
  - name: Content Admin
    description: >-
      Public reads for roadmap items, testimonials, feature ideas, and
      blog/survey content; write endpoints (create/update/remove, upvote, survey
      responses) require the `x-internal-key`/`x-api-key` server-to-server
      header — these writes are not for third-party API consumers.
  - name: Crm
    description: >-
      Companies, leads, deals, pipelines, products, sequences, sequence
      enrollments, custom field definitions, lead routing rules, and client
      portal tokens. Contacts are documented separately under the Clients tag.
  - name: Docs
    description: >-
      Tenant-internal wiki: doc categories and doc pages (distinct from the
      public docs-site content under Public Content).
  - name: Finance
    description: Invoices, payments, budgets, expenses, and purchase orders.
  - name: Goals
    description: Workspace goals/OKRs.
  - name: Hrms
    description: >-
      Employees, departments, roles, shifts, leave requests, performance
      reviews, payroll runs, compliance records, salary structures/revisions,
      bonuses, arrears, and the per-employee payroll activity feed.
  - name: Integrations
    description: Outbound webhooks and third-party integration tokens.
  - name: Lms
    description: >-
      LMS API is a placeholder — course/enrollment endpoints are not yet
      implemented. The one route below returns a hardcoded empty list.
  - name: Marketing
    description: Marketing campaigns, email templates, and marketing assets.
  - name: Public Content
    description: >-
      Fully public, unauthenticated docs/marketing content reads (doc
      categories, doc articles, changelog, FAQs) — paths intentionally match
      Payload REST exactly (no `/v1`, no auth) because apps/docs hardcodes these
      URLs.
  - name: Recruitment
    description: Job postings, applicants, and interviews.
  - name: Reports
    description: Saved report configurations/definitions.
  - name: Report Definitions
    description: >-
      Reusable saved report definitions (name/type/filter-definition/schedule)
      distinct from the one-off generated reports above — includes "run" to
      execute a definition and produce a new report_snapshots row.
  - name: Support
    description: Support channels and tickets, including ticket assignment.
  - name: Time
    description: Time entries/timers and timesheets, including submit/approve/reject.
  - name: Approvals
    description: >-
      Approval requests — read and decide only, by design (no
      create/update/delete).
  - name: Work
    description: Projects, tasks, sprints, chat channels/messages, and work files.
  - name: Mcp
    description: >-
      Model Context Protocol server — a public descriptor (GET) and the JSON-RPC
      2.0 endpoint (POST) authenticated by a workspace API key or auth-next JWT.
  - name: Mcp OAuth
    description: >-
      Consent screen backing (read/decide a pending MCP OAuth authorization) and
      the workspace's connected-AI-tool grants (list/revoke). Bearer JWT
      required.
  - name: Metrics
    description: >-
      Prometheus text-format scrape endpoint, authenticated by its own static
      scrape token (not a user JWT).
  - name: Internal
    description: >-
      Server-to-server endpoints for AmDital's own apps (trusted Origin + proxy
      secret). Not for third-party API consumers.
  - name: Mail Log
    description: Outbound email log (Settings → Email → Log) and test sends.
paths:
  /api/v1/hrms/shifts/{id}:
    patch:
      tags:
        - Hrms
      operationId: HrmsController_updateShift
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateShift'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/ShiftResponse'
components:
  schemas:
    UpdateShift:
      type: object
      properties:
        name:
          type: string
          minLength: 1
        shiftCode:
          type: string
          minLength: 1
        description:
          type: string
        startTime:
          type: string
        endTime:
          type: string
        activeDays:
          type: array
          items:
            type: string
          default: []
        timezone:
          type: string
          default: UTC
        color:
          type: string
        status:
          type: string
          enum:
            - active
            - inactive
        priority:
          type: integer
          nullable: true
        defaultShift:
          type: boolean
        coreStartTime:
          type: string
        coreEndTime:
          type: string
        autoCheckoutTime:
          type: string
        workMode:
          type: string
          enum:
            - office_only
            - remote_only
            - hybrid
            - client_location
            - flexible
        weeklyOffPattern:
          type: string
          enum:
            - sat_sun_off
            - sunday_off
            - alternate_saturday
            - second_fourth_saturday
            - rotational
        totalShiftDuration:
          type: number
          nullable: true
          minimum: 0
        netWorkingHours:
          type: number
          nullable: true
          minimum: 0
        minimumRequiredHours:
          type: number
          nullable: true
          minimum: 0
        maximumAllowedHours:
          type: number
          nullable: true
          minimum: 0
        breakDurationMinutes:
          type: number
          nullable: true
          minimum: 0
        gracePeriodMinutes:
          type: number
          nullable: true
          minimum: 0
        lateMarkAfterMinutes:
          type: number
          nullable: true
          minimum: 0
        halfDayAfterHours:
          type: number
          nullable: true
          minimum: 0
        absentAfterHours:
          type: number
          nullable: true
          minimum: 0
        overtimeAfterHours:
          type: number
          nullable: true
          minimum: 0
        overtimeEnabled:
          type: boolean
        checkinRequired:
          type: boolean
        checkoutRequired:
          type: boolean
        multipleCheckinsAllowed:
          type: boolean
        breakPunchRequired:
          type: boolean
        autoCheckoutEnabled:
          type: boolean
        geofenceEnabled:
          type: boolean
        selfieVerificationEnabled:
          type: boolean
        ipRestrictionEnabled:
          type: boolean
        locationTrackingEnabled:
          type: boolean
        vpnRequired:
          type: boolean
        mondayEnabled:
          type: boolean
        tuesdayEnabled:
          type: boolean
        wednesdayEnabled:
          type: boolean
        thursdayEnabled:
          type: boolean
        fridayEnabled:
          type: boolean
        saturdayEnabled:
          type: boolean
        sundayEnabled:
          type: boolean
        timesheetRequired:
          type: boolean
        taskTrackingRequired:
          type: boolean
        jiraRequired:
          type: boolean
        dailyStatusReportRequired:
          type: boolean
        notifyEmployeeLate:
          type: boolean
        notifyManagerAbsent:
          type: boolean
        notifyHrRepeatedLate:
          type: boolean
        notifyMissedCheckout:
          type: boolean
        notifyOvertime:
          type: boolean
    ShiftResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
        workspaceId:
          type: string
          format: uuid
        name:
          type: string
        startTime:
          type: string
        endTime:
          type: string
        activeDays:
          type: array
          nullable: true
          items:
            type: string
        timezone:
          type: string
          nullable: true
        createdAt:
          type: string
        updatedAt:
          type: string
      required:
        - id
        - workspaceId
        - name
        - startTime
        - endTime
        - activeDays
        - timezone
        - createdAt
        - updatedAt
  securitySchemes:
    bearerAuth:
      scheme: bearer
      bearerFormat: JWT
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.