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

# Updates an agent (managed device) asset. Send only the fields you want to change.

> An omitted field is left alone, and re-sending a value the agent already holds is a no-op
rather than an error. Sending nothing at all is a 400.
            
`Description`, `ContactId`, `WarrantyStartDate` and `WarrantyEndDate` are
cleared by sending them as null; a cleared warranty date is filled in again by Gorelo's
warranty lookup, and a date set here is kept rather than overwritten by it.
`HardwareTypeId` cannot be cleared; null leaves it unchanged.
            
`ContactId` must be an active contact of the agent's client, so an agent awaiting
adoption (no client) cannot be given one. The primary contact is also listed under the
agent's related items: assigning a contact adds it there, and replacing or clearing it
removes the previous one. Each change is recorded on the agent's timeline, as it is when the
agent is edited in the app.



## OpenAPI

````yaml /api-reference/openapi.json patch /v1/assets/agents/{agentAssetId}
openapi: 3.0.4
info:
  title: Public API
  description: Gorelo Public API documentation.
  version: 1.0.0
servers:
  - url: https://api.usw.gorelo.io
    description: US
  - url: https://api.aue.gorelo.io
    description: Australia
security:
  - ApiKeyAuth: []
tags:
  - name: Attachments
    description: "Uploading a file, for anything that can carry one. One endpoint rather than one per record\r\ntype, because the upload itself is identical - only the record it is checked against differs."
  - name: Alerts
    description: Alerts management operations
  - name: Assets
    description: Assets management operations
  - name: Billing
    description: Billing management operations
  - name: Tickets
    description: Tickets management operations
  - name: Clients
    description: Clients management operations
  - name: Contacts
    description: Contacts management operations
  - name: Deletions
    description: Deletions management operations
  - name: Documents
    description: Documents management operations
  - name: Forms
    description: Forms management operations
  - name: Organization
    description: Organization management operations
  - name: Projects
    description: Projects management operations
paths:
  /v1/assets/agents/{agentAssetId}:
    patch:
      tags:
        - Assets
      summary: >-
        Updates an agent (managed device) asset. Send only the fields you want
        to change.
      description: "An omitted field is left alone, and re-sending a value the agent already holds is a no-op\r\nrather than an error. Sending nothing at all is a 400.\r\n            \r\n`Description`, `ContactId`, `WarrantyStartDate` and `WarrantyEndDate` are\r\ncleared by sending them as null; a cleared warranty date is filled in again by Gorelo's\r\nwarranty lookup, and a date set here is kept rather than overwritten by it.\r\n`HardwareTypeId` cannot be cleared; null leaves it unchanged.\r\n            \r\n`ContactId` must be an active contact of the agent's client, so an agent awaiting\r\nadoption (no client) cannot be given one. The primary contact is also listed under the\r\nagent's related items: assigning a contact adds it there, and replacing or clearing it\r\nremoves the previous one. Each change is recorded on the agent's timeline, as it is when the\r\nagent is edited in the app."
      operationId: patch_v1_assets_agents_agentAssetId
      parameters:
        - name: agentAssetId
          in: path
          description: Agent asset to update.
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        description: Fields to change.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateAgentCommand'
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAgentCommand'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateAgentCommand'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateAgentCommand'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/UpdateAgentResultBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateAgentResultBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/UpdateAgentResultBaseResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
        '500':
          description: Internal Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ObjectBaseResponse'
components:
  schemas:
    UpdateAgentCommand:
      type: object
      properties:
        Description:
          type: string
          description: Free-text description, max 2000 characters. Send null to clear it.
          nullable: true
          example: Reception PC, front desk
        HardwareTypeId:
          type: integer
          description: "Identifier of the agent's asset type, one of the active types `GET /v1/assets/types`\r\nlists. Sets the agent's `Type`. Null leaves it unchanged."
          format: int64
          nullable: true
          example: 118
        ContactId:
          type: integer
          description: "Identifier of the contact the agent is assigned to; must be an active contact of the agent's\r\nclient, so an agent with no client cannot take one. Send null to unassign it."
          format: int64
          nullable: true
          example: 7962
        WarrantyStartDate:
          type: string
          description: "Date the warranty starts, a calendar date in the form yyyy-MM-dd. A value with a time or a\r\ntime zone is rejected. Send null to clear it, which lets Gorelo's warranty lookup fill it\r\nin again."
          format: date
          nullable: true
          example: '2024-03-31'
        WarrantyEndDate:
          type: string
          description: "Date the warranty ends, a calendar date in the form yyyy-MM-dd. A value with a time or a\r\ntime zone is rejected. Send null to clear it, which lets Gorelo's warranty lookup fill it\r\nin again."
          format: date
          nullable: true
          example: '2027-03-31'
      additionalProperties: false
      description: "Request body for updating an agent asset. Every field is optional - send only what should\r\nchange. An omitted field keeps the value the agent already holds."
    UpdateAgentResultBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          $ref: '#/components/schemas/UpdateAgentResult'
        DataContext:
          type: object
          additionalProperties: false
          nullable: true
          example: null
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    ObjectBaseResponse:
      type: object
      properties:
        StatusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        IsSuccess:
          type: boolean
        Data:
          nullable: true
        DataContext:
          $ref: '#/components/schemas/ErrorDataContext'
        Notifications:
          type: array
          items:
            $ref: '#/components/schemas/Error'
      additionalProperties: false
    HttpStatusCode:
      enum:
        - 100
        - 101
        - 102
        - 103
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 207
        - 208
        - 226
        - 300
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
        - 308
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 421
        - 422
        - 423
        - 424
        - 426
        - 428
        - 429
        - 431
        - 451
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
        - 506
        - 507
        - 508
        - 510
        - 511
      type: integer
      format: int32
    UpdateAgentResult:
      type: object
      properties:
        Id:
          type: string
          format: uuid
      additionalProperties: false
      description: The identifier of the updated agent asset.
    Error:
      type: object
      properties:
        Code:
          pattern: ^[0-9]{6}$
          type: string
          description: 6-digit MMTTNN error code. See the Public API error-code registry.
          example: '070101'
        Message:
          type: string
        PropertyName:
          type: string
          nullable: true
        ActionHint:
          type: string
          nullable: true
        DocUrl:
          type: string
          nullable: true
      additionalProperties: false
    ErrorDataContext:
      type: object
      properties:
        TraceId:
          type: string
          description: Request correlation id. Quote this when reporting a problem.
          nullable: true
      additionalProperties: false
      description: "The `DataContext` of an error response: carries the correlation id for the failed\r\nrequest."
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      description: >-
        Your Gorelo API key. See [Generate API key](/generate-api-key). If your
        data is hosted in Australia, click the base URL at the top of this page
        and select `https://api.aue.gorelo.io`.
      name: X-API-Key
      in: header

````

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