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

# Update a member

A person that belongs to your workspace.


## OpenAPI

````yaml openapi.json PATCH /members/{id}
openapi: 3.1.0
info:
  title: Ruddr API
  version: '1.0'
  license:
    name: Proprietary
    url: https://www.ruddr.com/master-subscription-agreement
servers:
  - url: https://www.ruddr.io/api/workspace
security:
  - bearerAuth: []
tags:
  - name: Allocations
    description: Manage resource allocations for scheduling team members to projects.
  - name: Availability Periods
    description: Manage member availability periods for capacity planning.
  - name: Business Units
    description: >-
      Manage business units for organizing invoice settings and grouping clients
      and projects.
  - name: Client Roles
    description: Manage client roles and their billing terms.
  - name: Client Tags
    description: Manage tags for categorizing clients.
  - name: Clients
    description: Manage clients and their billing settings.
  - name: Companies
    description: Manage companies in the CRM pipeline.
  - name: Company Spend Tiers
    description: Manage spend tier classifications for companies.
  - name: Company Types
    description: Manage type classifications for companies.
  - name: Contact Tags
    description: Manage tags for categorizing contacts.
  - name: Contacts
    description: Manage contacts associated with clients, companies, and opportunities.
  - name: Cost Periods
    description: Manage member cost rate periods for profitability tracking.
  - name: Credit Notes
    description: View credit notes issued against invoices.
  - name: Disciplines
    description: Manage disciplines for classifying member skill areas.
  - name: Exchange Rate
    description: Get exchange rates for multi-currency workspaces.
  - name: Exchange Rate Periods
    description: Manage custom exchange rate periods for currency conversion.
  - name: Expense Categories
    description: Manage expense categories for tracking and reporting.
  - name: Expense Items
    description: Manage individual expense line items.
  - name: Expense Reports
    description: Manage expense reports submitted by members.
  - name: Holiday Schedules
    description: Manage holiday schedules for capacity and availability planning.
  - name: Holidays
    description: Manage individual holidays within holiday schedules.
  - name: Industries
    description: Manage industry classifications for clients and companies.
  - name: Invoice Items
    description: Manage invoice line item types for billing.
  - name: Invoices
    description: View invoices and their line items.
  - name: Job Titles
    description: Manage job title classifications for members.
  - name: Locations
    description: Manage office locations for members and projects.
  - name: Member Certifications
    description: Manage certification types that can be assigned to members.
  - name: Member Levels
    description: Manage member level classifications for career tracking.
  - name: Member Tags
    description: Manage tags for categorizing members.
  - name: Members
    description: Manage workspace members and their profiles.
  - name: Opportunities
    description: Manage sales opportunities in the CRM pipeline.
  - name: Opportunity Pipelines
    description: Manage pipelines for tracking opportunity stages.
  - name: Opportunity Lead Sources
    description: Manage lead source classifications for opportunities.
  - name: Opportunity Stages
    description: Manage pipeline stage definitions for opportunities.
  - name: Opportunity Tags
    description: Manage tags for categorizing opportunities.
  - name: Opportunity Types
    description: Manage type classifications for opportunities.
  - name: Payment Methods
    description: Manage payment method options for invoices.
  - name: Payments
    description: View payments received against invoices.
  - name: Pipeline Activities
    description: >-
      Manage pipeline activities associated with companies, contacts, members,
      and opportunities.
  - name: Pipeline Activity Types
    description: Manage activity type classifications for pipeline activities.
  - name: Practices
    description: Manage practice area classifications for organizing projects and members.
  - name: Project Budget Expenses
    description: Manage expense budget line items on projects.
  - name: Project Budget Other Items
    description: Manage other budget line items on projects.
  - name: Project Budget Product Items
    description: Manage product budget line items on projects.
  - name: Project Budget Service Items
    description: Manage additional service budget line items on projects.
  - name: Project Expenses
    description: Manage project-level expense line items.
  - name: Project Groups
    description: View project groups for organizing related projects.
  - name: Project Health Reports
    description: Manage project health status reports.
  - name: Project Invoice Milestones
    description: Manage invoice milestones for fixed-fee project billing.
  - name: Project Members
    description: Manage team member assignments on projects.
  - name: Project Monthly Budget Expenses
    description: Manage monthly expense budget line items on projects.
  - name: Project Monthly Budget Other Items
    description: Manage monthly other budget line items on projects.
  - name: Project Monthly Budget Product Items
    description: Manage monthly product budget line items on projects.
  - name: Project Monthly Budget Service Items
    description: Manage monthly additional service budget line items on projects.
  - name: Project Other Items
    description: Manage project-level other item line items.
  - name: Project Product Items
    description: Manage project-level product line items.
  - name: Project Revenue Adjustments
    description: Manage earned revenue adjustments for projects.
  - name: Project Revenue Recognition Entries
    description: Manage revenue recognition entries for projects.
  - name: Project Roles
    description: Manage roles defined on projects for billing and staffing.
  - name: Project Service Items
    description: Manage project-level additional service line items.
  - name: Project Tags
    description: Manage tags for categorizing projects.
  - name: Project Tasks
    description: Manage tasks on projects for time tracking and planning.
  - name: Project Types
    description: Manage type classifications for projects.
  - name: Projects
    description: Manage projects and their settings.
  - name: Resource Placeholders
    description: Manage placeholder resources for allocation planning.
  - name: Security Roles
    description: View security roles for assigning member permissions.
  - name: Skills
    description: Manage skill classifications for members and resource planning.
  - name: Task Categories
    description: Manage task category classifications for project tasks.
  - name: Task Tags
    description: Manage tags for categorizing project tasks.
  - name: Task Templates
    description: Manage reusable task templates for projects.
  - name: Tax Rates
    description: Manage tax rates for invoicing.
  - name: Time Entries
    description: Manage time entries for tracking hours on projects.
  - name: Time Off Types
    description: Manage time off type classifications.
  - name: Timesheet Attestations
    description: Manage attestation statements members sign when submitting timesheets.
  - name: Timesheets
    description: Manage timesheet submissions for tracking hours across a period.
  - name: Utilization Target Periods
    description: Manage member utilization target periods for capacity planning.
  - name: Workspace Roles
    description: Manage workspace-level roles for billing rate configuration.
paths:
  /members/{id}:
    patch:
      tags:
        - Members
      summary: Update a member
      operationId: update-a-member
      parameters:
        - name: id
          in: path
          description: The member `uuid`
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the member. Max 255 chars.
                email:
                  type: string
                  description: >-
                    The email address of the member. Must be unique between all
                    members. Max 255 chars.
                isActive:
                  type: boolean
                  description: Whether the member is active in the workspace.
                isBillable:
                  type: boolean
                  description: Whether the member is billable.
                loginEnabled:
                  type: boolean
                  description: Whether the member can log into the workspace.
                employmentTypeId:
                  type: string
                  description: The type of employment for this member.
                  enum:
                    - employee
                    - contractor
                    - other
                defaultRate:
                  type: number
                  description: The default bill rate for the member.
                defaultRateCurrency:
                  type: string
                  description: The currency code for the default rate.
                activeStartDate:
                  type: string
                  description: >-
                    The active start date (`YYYY-MM-DD`) of the member. Must
                    come on or before `activeEndDate` if set.
                  format: date
                activeEndDate:
                  type: string
                  description: >-
                    The active end date (`YYYY-MM-DD`) of the member. Must come
                    on or after `activeStartDate` if set.
                  format: date
                timeOffAllowed:
                  type: boolean
                  description: >-
                    Whether the member is allowed to create time-off time
                    entries.
                allowedTimeOffTypes:
                  type: string
                  description: >-
                    Controls which time off types are allowed for time-off
                    entries.
                  enum:
                    - all
                    - custom
                timeOffApprovalMode:
                  type: string
                  description: >-
                    The approval mode for time-off time entries. If set to
                    `"manager"` then `managerId` is required. If set to
                    `"member"` then `timeOffApproverId` is required.
                  enum:
                    - auto
                    - manager
                    - member
                internalExpenseApprovalMode:
                  type: string
                  description: >-
                    The approval mode for internal expense items. If set to
                    `"manager"` then `managerId` is required. If set to
                    `"member"` then `internalExpenseApproverId` is required.
                  enum:
                    - auto
                    - manager
                    - member
                receiveMissingTimeReminders:
                  type: boolean
                  description: Whether the member receives missing time reminders.
                unsubmittedTimesheetReminders:
                  type: boolean
                  description: >-
                    Whether the member receives reminders for unsubmitted
                    timesheets.
                automaticTimesheetSubmissionConfirmation:
                  type: boolean
                  description: >-
                    Whether the member receives confirmation emails when
                    timesheets are automatically submitted.
                forbidTimesheetSubmissionWhenBelowCapacity:
                  type: boolean
                  deprecated: true
                  description: >-
                    Deprecated. Sets `timesheetCapacityPolicy` to `"timesheet"`
                    when `true` or `"unrestricted"` when `false`. Use
                    `timesheetCapacityPolicy` instead.
                timesheetCapacityPolicy:
                  type: string
                  description: The timesheet capacity policy.
                  enum:
                    - unrestricted
                    - timesheet
                    - week
                internalId:
                  type: string
                  description: >-
                    An extra identifier field for tracking this member against
                    other systems. Must be unique between all members. Max 255
                    chars.
                internalNotes:
                  type: string
                  description: >-
                    An area to store extra notes about the member. Max 5000
                    chars.
                trackTimeByDuration:
                  type: boolean
                  description: Whether the member can track time by entering a duration.
                trackTimeByTimeRange:
                  type: boolean
                  description: >-
                    Whether the member can track time by entering a start and
                    end time.
                securityRoleId:
                  type: string
                  description: The ID (`uuid`) of the security role for this member.
                jobTitleId:
                  type: string
                  description: The ID (`uuid`) of the job title for this member.
                memberLevelId:
                  type: string
                  description: The ID (`uuid`) of the member level for this member.
                disciplineId:
                  type: string
                  description: The ID (`uuid`) of the discipline for this member.
                businessUnitId:
                  type:
                    - string
                    - 'null'
                  description: >-
                    The ID (`uuid`) of the business unit for this member.
                    Ignored when the Business Units feature is not enabled.
                practiceId:
                  type: string
                  description: The ID (`uuid`) of the practice for this member.
                locationId:
                  type: string
                  description: The ID (`uuid`) of the location for this member.
                managerId:
                  type: string
                  description: >-
                    The member ID (`uuid`) of the manager for this member.
                    Required if `timeOffApprovalMode` is `"manager"`.
                timeOffApproverId:
                  type: string
                  description: >-
                    The member ID (`uuid`) of the time off approver for this
                    member. Required if `timeOffApprovalMode` is `"member"`.
                internalExpenseApproverId:
                  type: string
                  description: >-
                    The member ID (`uuid`) of the internal expense approver for
                    this member. Required if `internalExpenseApprovalMode` is
                    `"member"`.
                holidayScheduleId:
                  type: string
                  description: The ID (`uuid`) of the holiday schedule for this member.
                tagIds:
                  type: array
                  description: >-
                    A list of member tag IDs (`uuid`) associated with this
                    member.
                  items:
                    type: string
                certificationIds:
                  type: array
                  description: >-
                    A list of member certification IDs (`uuid`) associated with
                    this member.
                  items:
                    type: string
                skillIds:
                  type: array
                  description: >-
                    A list of member skill IDs (`uuid`) associated with this
                    member.
                  items:
                    type: string
                timeOffTypeIds:
                  type: array
                  description: >-
                    A list of time off type IDs (`uuid`) associated with this
                    member. `allowedTimeOffTypes` must be set to `"custom"`.
                  items:
                    type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
              examples:
                Result:
                  value:
                    id: d2e30834-2092-4d8b-aae8-1f58fa4594cb
                    name: Jane Smith
                    email: jane.smith@example.com
                    isActive: true
                    isBillable: true
                    loginEnabled: true
                    invitationStatusId: accepted
                    employmentTypeId: employee
                    costMethodId: fixed_hourly
                    defaultRate: 150
                    defaultRateCurrency: USD
                    activeStartDate: '2025-01-15'
                    activeEndDate: '2027-06-30'
                    timeOffAllowed: true
                    allowedTimeOffTypes: custom
                    timeOffApprovalMode: member
                    internalExpenseApprovalMode: member
                    receiveMissingTimeReminders: true
                    unsubmittedTimesheetReminders: true
                    automaticTimesheetSubmissionConfirmation: true
                    timesheetCapacityPolicy: unrestricted
                    internalId: EMP-001
                    internalNotes: Senior consultant with expertise in cloud architecture.
                    createdAt: '2025-01-15T20:47:03.284Z'
                    trackTimeByDuration: true
                    trackTimeByTimeRange: false
                    securityRole:
                      id: b8c9d0e1-f2a3-4456-1278-901234567b23
                      name: Member
                    jobTitle:
                      id: a1b2c3d4-e5f6-4789-ab01-234567890abc
                      name: Senior Consultant
                    level:
                      id: b2c3d4e5-f6a7-4890-bc12-345678901bcd
                      name: Senior
                    discipline:
                      id: c3d4e5f6-a7b8-4901-cd23-456789012cde
                      name: Engineering
                    businessUnit:
                      id: 9d6f1c2a-3b8e-4f57-ad21-7e0c4f9b8d34
                      name: North America
                    practice:
                      id: d4e5f6a7-b8c9-4012-de34-567890123def
                      name: Consulting
                    location:
                      id: e5f6a7b8-c9d0-4123-ef45-678901234ef0
                      name: San Francisco
                    manager:
                      id: f6a7b8c9-d0e1-4234-f056-789012345f01
                      name: Robert Chen
                    timeOffApprover:
                      id: 7b8c9d0e-1f2a-4345-a167-890123456b12
                      name: Sarah Kim
                    internalExpenseApprover:
                      id: 82866d0d-ab62-43cd-92b8-a30ecc78bd89
                      name: Priya Patel
                    holidaySchedule:
                      id: a7b8c9d0-e1f2-4345-0167-890123456a12
                      name: US Holidays
                    tags:
                      - id: c9d0e1f2-a3b4-4567-2389-012345678c34
                        name: Billable
                    certifications:
                      - id: d0e1f2a3-b4c5-4678-34ab-123456789d45
                        name: AWS Certified Solutions Architect
                    skills:
                      - id: e1f2a3b4-c5d6-4789-45bc-234567890e56
                        name: Python
                    timeOffTypes:
                      - id: a3b4c5d6-e7f8-4901-67de-456789012a78
                        name: Vacation
                    availabilityPeriods:
                      - id: f2a3b4c5-d6e7-4890-56cd-345678901f67
                        start: '2025-01-15'
                        end: '2026-12-31'
                        hoursPerDay:
                          - 0
                          - 8
                          - 8
                          - 8
                          - 8
                          - 8
                          - 0
                    costPeriods:
                      - id: b4c5d6e7-f8a9-4012-78ef-567890123b89
                        start: '2025-01-15'
                        end: '2026-12-31'
                        currency: USD
                        costMethodId: fixed_hourly
                        costPerHour: 100
                        overheadCostPerHour: 20
                        totalCostPerHour: 120
                        costPerMonth: null
                        overheadCostPerMonth: null
                        totalCostPerMonth: null
                        currencyName: US Dollar
                    utilizationTargetPeriods:
                      - id: c5d6e7f8-a9b0-4123-89f0-678901234c90
                        start: '2025-01-15'
                        end: '2026-12-31'
                        targetPercentage: 80
                    forbidTimesheetSubmissionWhenBelowCapacity: false
        '400':
          description: '400'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationErrorResponse'
              examples:
                InvalidId:
                  value:
                    status: 400
                    message: Parameter 'id' is not a valid UUID.
                Validation:
                  value:
                    status: 400
                    message: >-
                      There was a problem processing your request. See errors
                      for more details.
                    errors:
                      - '''name'' must be a string'
                InvalidData:
                  value:
                    status: 400
                    message: '''email'' is already assigned to another member.'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                NotFound:
                  value:
                    status: 404
                    message: >-
                      Object with id 'd2e30834-2092-4d8b-aae8-1f58fa4594cb' not
                      found.
        '409':
          description: '409'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                DurationNotAllowed:
                  value:
                    status: 409
                    message: You cannot track time by duration on this workspace.
                TimeRangeNotAllowed:
                  value:
                    status: 409
                    message: >-
                      You cannot track time by start and end time on this
                      workspace.
                TimeTrackingRequired:
                  value:
                    status: 409
                    message: At least one time‐tracking method must be enabled.
      deprecated: false
components:
  schemas:
    Member:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier for the object.
        name:
          type: string
          description: The name of the member.
        email:
          type: string
          description: The email address of the member.
        isActive:
          type: boolean
          description: Whether the member is active in the workspace.
        isBillable:
          type: boolean
          description: Whether the member is billable.
        loginEnabled:
          type: boolean
          description: Whether the member can log into the workspace.
        invitationStatusId:
          type: string
          description: The invitation status of the member.
          enum:
            - not_invited
            - invited
            - accepted
        employmentTypeId:
          type: string
          description: The type of employment for this member.
          enum:
            - employee
            - contractor
            - other
        costMethodId:
          type: string
          deprecated: true
          description: >-
            Deprecated. The cost method for the member. Use `costPeriods`
            instead.
          enum:
            - hourly
            - fixed_hourly
            - fixed_monthly
        defaultRate:
          type:
            - number
            - 'null'
          description: The default bill rate for the member.
        defaultRateCurrency:
          type:
            - string
            - 'null'
          description: The currency code for the default bill rate.
        activeStartDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The start date of the member's active period. Will be in the form
            YYYY-MM-DD.
        activeEndDate:
          type:
            - string
            - 'null'
          format: date
          description: >-
            The end date of the member's active period. Will be in the form
            YYYY-MM-DD.
        timeOffAllowed:
          type: boolean
          description: Whether the member is allowed to create time-off time entries.
        allowedTimeOffTypes:
          type: string
          description: >-
            Controls which time off types this member can use for time-off
            entries.
          enum:
            - all
            - custom
        timeOffApprovalMode:
          type: string
          description: The approval mode for time-off time entries.
          enum:
            - auto
            - manager
            - member
        internalExpenseApprovalMode:
          type: string
          description: The approval mode for internal expense items.
          enum:
            - auto
            - manager
            - member
        receiveMissingTimeReminders:
          type: boolean
          description: Whether the member receives missing time reminders.
        unsubmittedTimesheetReminders:
          type: boolean
          description: Whether the member receives reminders for unsubmitted timesheets.
        automaticTimesheetSubmissionConfirmation:
          type: boolean
          description: >-
            Whether the member receives confirmation emails when timesheets are
            automatically submitted.
        timesheetCapacityPolicy:
          type: string
          description: The timesheet capacity policy for this member.
          enum:
            - unrestricted
            - timesheet
            - week
        internalId:
          type:
            - string
            - 'null'
          description: An identifier for tracking this member against other systems.
        internalNotes:
          type:
            - string
            - 'null'
          description: Extra notes about the member.
        createdAt:
          type: string
          format: date-time
          description: The timestamp when the object was created.
        trackTimeByDuration:
          type: boolean
          description: >-
            Whether the member can track time by entering a duration. This is
            the effective value combining the workspace and member settings.
        trackTimeByTimeRange:
          type: boolean
          description: >-
            Whether the member can track time by entering a start and end time.
            This is the effective value combining the workspace and member
            settings.
        securityRole:
          type: object
          description: The security role assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the security role.
        jobTitle:
          type:
            - object
            - 'null'
          description: The job title assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the job title.
        level:
          type:
            - object
            - 'null'
          description: The member level assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the member level.
        discipline:
          type:
            - object
            - 'null'
          description: The discipline assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the discipline.
        businessUnit:
          type:
            - object
            - 'null'
          description: The business unit assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the business unit.
        practice:
          type:
            - object
            - 'null'
          description: The practice assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the practice.
        location:
          type:
            - object
            - 'null'
          description: The location assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the location.
        manager:
          type:
            - object
            - 'null'
          description: The member's direct manager.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the manager.
        timeOffApprover:
          type:
            - object
            - 'null'
          description: >-
            The member designated to approve time-off requests. Only populated
            when `timeOffApprovalMode` is `"member"`.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the time off approver.
        internalExpenseApprover:
          type:
            - object
            - 'null'
          description: >-
            The member designated to approve internal expense items. Only
            populated when `internalExpenseApprovalMode` is `"member"`.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the internal expense approver.
        holidaySchedule:
          type:
            - object
            - 'null'
          description: The holiday schedule assigned to the member.
          properties:
            id:
              type: string
              description: The unique identifier for the object.
            name:
              type: string
              description: The name of the holiday schedule.
        tags:
          type: array
          description: The list of member tags assigned to this member.
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              name:
                type: string
                description: The name of the tag.
        certifications:
          type: array
          description: The list of certifications assigned to this member.
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              name:
                type: string
                description: The name of the certification.
        skills:
          type: array
          description: The list of skills assigned to this member.
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              name:
                type: string
                description: The name of the skill.
        timeOffTypes:
          type: array
          description: >-
            The list of time off types allowed for this member. Only populated
            when `allowedTimeOffTypes` is `"custom"`.
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              name:
                type: string
                description: The name of the time off type.
        availabilityPeriods:
          type: array
          description: >-
            The list of availability periods defining how many hours per day the
            member is available.
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              start:
                type:
                  - string
                  - 'null'
                format: date
                description: >-
                  The start date of the availability period. Will be in the form
                  YYYY-MM-DD. `null` for the default period.
              end:
                type:
                  - string
                  - 'null'
                format: date
                description: >-
                  The end date of the availability period. Will be in the form
                  YYYY-MM-DD. `null` when the period has no end date.
              hoursPerDay:
                type: array
                description: >-
                  An array of 7 values representing available hours per day of
                  the week (Sunday through Saturday).
                items:
                  type: number
        costPeriods:
          type: array
          description: The list of cost periods defining the member's cost over time.
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              start:
                type:
                  - string
                  - 'null'
                format: date
                description: >-
                  The start date of the cost period. Will be in the form
                  YYYY-MM-DD. `null` for the default period.
              end:
                type:
                  - string
                  - 'null'
                format: date
                description: >-
                  The end date of the cost period. Will be in the form
                  YYYY-MM-DD. `null` when the period has no end date.
              currency:
                type: string
                description: The ISO 4217 currency code for costs in this period.
              costMethodId:
                type: string
                description: The cost method for this period.
                enum:
                  - hourly
                  - fixed_hourly
                  - fixed_monthly
              costPerHour:
                type:
                  - number
                  - 'null'
                description: >-
                  The direct cost per hour for the member. Only populated when
                  `costMethodId` is `"hourly"` or `"fixed_hourly"`.
              overheadCostPerHour:
                type:
                  - number
                  - 'null'
                description: >-
                  The overhead cost per hour for the member. Only populated when
                  `costMethodId` is `"hourly"` or `"fixed_hourly"`.
              totalCostPerHour:
                type:
                  - number
                  - 'null'
                description: >-
                  The total cost per hour (direct plus overhead) for the member.
                  Only populated when `costMethodId` is `"hourly"` or
                  `"fixed_hourly"`.
              costPerMonth:
                type:
                  - number
                  - 'null'
                description: >-
                  The direct cost per month for the member. Only populated when
                  `costMethodId` is `"fixed_monthly"`.
              overheadCostPerMonth:
                type:
                  - number
                  - 'null'
                description: >-
                  The overhead cost per month for the member. Only populated
                  when `costMethodId` is `"fixed_monthly"`.
              totalCostPerMonth:
                type:
                  - number
                  - 'null'
                description: >-
                  The total cost per month (direct plus overhead) for the
                  member. Only populated when `costMethodId` is
                  `"fixed_monthly"`.
              currencyName:
                type: string
                description: The display name of the currency.
        utilizationTargetPeriods:
          type:
            - array
            - 'null'
          description: >-
            The list of utilization target periods for the member. `null` if the
            Utilization Tracking feature is not enabled.
          items:
            type: object
            properties:
              id:
                type: string
                description: The unique identifier for the object.
              start:
                type:
                  - string
                  - 'null'
                format: date
                description: >-
                  The start date of the utilization target period. Will be in
                  the form YYYY-MM-DD. `null` for the default period.
              end:
                type:
                  - string
                  - 'null'
                format: date
                description: >-
                  The end date of the utilization target period. Will be in the
                  form YYYY-MM-DD. `null` when the period has no end date.
              targetPercentage:
                type:
                  - number
                  - 'null'
                description: >-
                  The target utilization percentage (0–100) for the member
                  during this period.
        forbidTimesheetSubmissionWhenBelowCapacity:
          type: boolean
          deprecated: true
          description: >-
            Legacy. A computed flag derived from `timesheetCapacityPolicy`.
            `true` when the policy is `"timesheet"` or `"week"`. Use
            `timesheetCapacityPolicy` instead.
    ValidationErrorResponse:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        message:
          type: string
          description: A human-readable error message.
        errors:
          type: array
          description: A list of validation error messages.
          items:
            type: string
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        message:
          type: string
          description: A human-readable error message.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````