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

# Update load balancer pool health monitor

> Updates the health monitor of a load balancer pool, such as its check intervals, timeouts,
and the thresholds used to mark pool members as healthy or unhealthy. Only the supplied
fields are changed. Returns 404 if the pool has no health monitor attached.
If a provided field already matches the current health monitor state it is skipped, and when no field
changes anything no task is created and an empty task list is returned.



## OpenAPI

````yaml /api-reference/services_docs_mintlify_enriched/cloud_api.yaml patch /cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor
openapi: 3.1.0
info:
  title: Gcore OpenAPI – Cloud API
  description: >-
    This OpenAPI is an aggregated OpenAPI specification that unifies all Gcore
    products into a single file. It covers Cloud, CDN, DNS, WAAP, DDoS
    Protection, Object Storage, Streaming, and FastEdge services.
  version: 33e21ba9a1ae
servers:
  - url: https://api.gcore.com
security:
  - APIKey: []
tags:
  - name: Bare Metal
  - name: Container as a Service
  - name: Cost Reports
  - name: DDoS Protection
  - name: Everywhere Inference
  - name: Everywhere Inference Apps
  - name: File Shares
  - name: Floating IPs
  - name: Function as a Service
  - name: GPU Bare Metal
  - name: GPU Virtual
  - name: IP Ranges
  - name: Images
  - name: Instances
  - name: Load Balancers
  - name: Logging
  - name: Managed Kubernetes
  - name: Managed PostgreSQL
  - name: Networks
  - name: Placement Groups
  - name: Ports
  - name: Pricing
  - name: Projects
  - name: Quotas
  - name: Regions
  - name: Registry
  - name: Reservations
  - name: Reserved IPs
  - name: Routers
  - name: SSH Keys
  - name: Secrets
  - name: Security Groups
  - name: Snapshot Schedules
  - name: Snapshots
  - name: Tasks
  - name: User Actions
  - name: User Role Assignments
  - name: Volumes
paths:
  /cloud/v1/lbpools/{project_id}/{region_id}/{pool_id}/healthmonitor:
    patch:
      tags:
        - Load Balancers
      summary: Update load balancer pool health monitor
      description: >-
        Updates the health monitor of a load balancer pool, such as its check
        intervals, timeouts,

        and the thresholds used to mark pool members as healthy or unhealthy.
        Only the supplied

        fields are changed. Returns 404 if the pool has no health monitor
        attached.

        If a provided field already matches the current health monitor state it
        is skipped, and when no field

        changes anything no task is created and an empty task list is returned.
      operationId: LoadBalancerPoolInstanceHealthMonitorViewSet.patch
      parameters:
        - in: path
          name: project_id
          required: true
          description: Project ID
          schema:
            description: Project ID
            example: 1
            examples:
              - 1
            title: Project Id
            type: integer
        - in: path
          name: region_id
          required: true
          description: Region ID
          schema:
            description: Region ID
            example: 1
            examples:
              - 1
            exclusiveMinimum: 0
            title: Region Id
            type: integer
        - in: path
          name: pool_id
          required: true
          description: Pool ID
          schema:
            description: Pool ID
            example: 00000000-0000-4000-8000-000000000000
            examples:
              - 00000000-0000-4000-8000-000000000000
            format: uuid4
            title: Pool Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchLbHealthMonitorSerializerV2'
      responses:
        '200':
          description: Task IDs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskIDsSerializer'
        '400':
          $ref: '#/components/responses/ProblemBadRequestWithLegacyKeys'
        '401':
          $ref: '#/components/responses/ProblemUnauthorizedWithLegacyKeys'
        '403':
          $ref: '#/components/responses/ProblemForbiddenWithLegacyKeys'
        '404':
          $ref: '#/components/responses/ProblemNotFoundWithLegacyKeys'
        '409':
          $ref: '#/components/responses/ProblemConflictWithLegacyKeys'
        '500':
          $ref: '#/components/responses/ProblemInternalServerErrorWithLegacyKeys'
        '503':
          $ref: '#/components/responses/ProblemServiceUnavailableWithLegacyKeys'
      x-codeSamples:
        - lang: Python
          source: >-
            import os

            from gcore import Gcore


            client = Gcore(
                api_key=os.environ.get("GCORE_API_KEY"),  # This is the default and can be omitted
            )

            task_id_list =
            client.cloud.load_balancers.pools.health_monitors.update(
                pool_id="00000000-0000-4000-8000-000000000000",
                project_id=1,
                region_id=1,
            )

            print(task_id_list.tasks)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/G-Core/gcore-go\"\n\t\"github.com/G-Core/gcore-go/cloud\"\n\t\"github.com/G-Core/gcore-go/option\"\n)\n\nfunc main() {\n\tclient := gcore.NewClient(\n\t\toption.WithAPIKey(\"My API Key\"),\n\t)\n\ttaskIDList, err := client.Cloud.LoadBalancers.Pools.HealthMonitors.Update(\n\t\tcontext.TODO(),\n\t\t\"00000000-0000-4000-8000-000000000000\",\n\t\tcloud.LoadBalancerPoolHealthMonitorUpdateParams{\n\t\t\tProjectID: gcore.Int(1),\n\t\t\tRegionID:  gcore.Int(1),\n\t\t},\n\t)\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", taskIDList.Tasks)\n}\n"
components:
  schemas:
    PatchLbHealthMonitorSerializerV2:
      properties:
        admin_state_up:
          description: >-
            Administrative state of the resource. Omit to leave unchanged;
            `false` disables the resource so it will not process traffic.
          example: true
          examples:
            - true
            - false
          title: Admin State Up
          type: boolean
        delay:
          description: >-
            The time, in seconds, between sending probes to members. Omit to
            leave unchanged.
          example: 10
          examples:
            - 10
          maximum: 2147483647
          minimum: 1
          title: Delay
          type: integer
        domain_name:
          anyOf:
            - pattern: ^[A-Za-z0-9._-]{1,253}$
              type: string
            - type: 'null'
          description: >-
            Domain name for HTTP host header. Can only be used together with
            `HTTP` or `HTTPS` health monitor type. Omit to leave unchanged. Set
            to `null` to clear the current value.
          examples:
            - example.com
          title: Domain Name
        expected_codes:
          anyOf:
            - pattern: ^(\d{3}(\s*,\s*\d{3})*)$|^(\d{3}-\d{3})$
              type: string
            - type: 'null'
          description: >-
            Expected HTTP response codes. Can be a single code, a
            comma-separated list of codes, or a single range of codes. Can only
            be used together with `HTTP` or `HTTPS` health monitor type. For
            example, 200, 200,202,401,403,404, or 200-204. Omit to leave
            unchanged. Set to `null` to clear the current value.
          examples:
            - 200,301,302
          title: Expected Codes
        http_method:
          anyOf:
            - $ref: '#/components/schemas/HttpMethodEnum'
            - type: 'null'
          description: >-
            HTTP method. Can only be used together with `HTTP` or `HTTPS` health
            monitor type. Omit to leave unchanged. Set to `null` to clear the
            current value.
          examples:
            - CONNECT
            - DELETE
            - GET
            - HEAD
            - OPTIONS
            - PATCH
            - POST
            - PUT
            - TRACE
        http_version:
          anyOf:
            - enum:
                - '1.0'
                - '1.1'
              type: string
            - type: 'null'
          description: >-
            HTTP version. Can only be used together with `HTTP` or `HTTPS`
            health monitor type. Supported values: 1.0, 1.1. Omit to leave
            unchanged. Set to `null` to clear the current value.
          examples:
            - '1.1'
            - '1.0'
          title: Http Version
        max_retries:
          description: >-
            Number of successes before the member is switched to ONLINE state.
            Omit to leave unchanged.
          example: 2
          examples:
            - 2
          maximum: 10
          minimum: 1
          title: Max Retries
          type: integer
        max_retries_down:
          description: >-
            Number of failures before the member is switched to ERROR state.
            Omit to leave unchanged.
          example: 2
          examples:
            - 2
          maximum: 10
          minimum: 1
          title: Max Retries Down
          type: integer
        timeout:
          description: >-
            The maximum time to connect. Must be less than the delay value. Omit
            to leave unchanged.
          example: 5
          examples:
            - 5
          maximum: 2147483
          minimum: 0
          title: Timeout
          type: integer
        url_path:
          anyOf:
            - pattern: ^/([^/?#%]+(/[^/?#%]+)*/?)?$
              type: string
            - type: 'null'
          description: >-
            The HTTP path the health monitor requests on each member. Can only
            be used with `HTTP` or `HTTPS` health monitor type.


            Must start with `/` and contain only plain path segments. Query
            strings (`?`), fragments (`#`), percent-encoding (`%`), and
            consecutive slashes (`//`) are not allowed.


            Examples of valid paths:

            - `/` — check the root (most common)

            - `/healthz` — a dedicated health endpoint


            Omit to leave unchanged. Set to `null` to clear the current value.
          examples:
            - /
            - /healthz
          title: Url Path
      title: PatchLbHealthMonitorSerializerV2
      type: object
    TaskIDsSerializer:
      properties:
        tasks:
          description: >-
            List of task IDs representing asynchronous operations. Use these IDs
            to monitor operation progress:
              - `GET /v1/tasks/{task_id}` - Check individual task status and details
              Poll task status until completion (`FINISHED`/`ERROR`) before proceeding with dependent operations.
          example:
            - d478ae29-dedc-4869-82f0-96104425f565
          examples:
            - - d478ae29-dedc-4869-82f0-96104425f565
          items:
            type: string
          title: Tasks
          type: array
      required:
        - tasks
      title: TaskIDsSerializer
      type: object
    HttpMethodEnum:
      enum:
        - CONNECT
        - DELETE
        - GET
        - HEAD
        - OPTIONS
        - PATCH
        - POST
        - PUT
        - TRACE
      title: HttpMethodEnum
      type: string
    ProblemWithLegacyKeys:
      additionalProperties: false
      description: >-
        The error body of an endpoint that was released before the problem body.
        The old keys stay

        next to the problem fields until the endpoint is removed.
      properties:
        context:
          anyOf:
            - $ref: '#/components/schemas/ProblemContext'
            - type: 'null'
          default: null
          description: >-
            Data for the `type`. Absent on a type without context keys, and on a
            `not-found` for an unknown URL.
        detail:
          description: The facts of this occurrence.
          title: Detail
          type: string
        errors:
          anyOf:
            - items:
                $ref: '#/components/schemas/ProblemError'
              type: array
            - type: 'null'
          default: null
          description: >-
            One item for each invalid input. Only on `validation-error`, and
            absent when no single input is wrong.
          title: Errors
        exception_class:
          deprecated: true
          description: The old name of the error. Use `type`.
          title: Exception Class
          type: string
        hint:
          description: What to do next.
          title: Hint
          type: string
        info:
          default: null
          deprecated: true
          description: Old data about the error. Use `context`.
          title: Info
        invalid_fields:
          default: null
          deprecated: true
          description: The old list of the invalid inputs. Use `errors`.
          title: Invalid Fields
        message:
          deprecated: true
          description: The old text of the error. Use `detail`.
          title: Message
          type: string
        request_id:
          description: >-
            ID of the request. The response also sends it in the `X-Request-Id`
            header. Quote it to support.
          title: Request Id
          type: string
        status:
          description: Copy of the HTTP status code.
          title: Status
          type: integer
        title:
          description: Fixed sentence for the `type`.
          title: Title
          type: string
        trace_id:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            W3C trace ID from the `traceparent` of the request. Null when the
            request has no valid `traceparent`.
          title: Trace Id
        type:
          $ref: '#/components/schemas/ProblemType'
          description: >-
            Stable error code in kebab-case, such as `not-found`. Clients branch
            on it. It is not `errors[].code`, which names what is wrong with one
            input in `snake_case`, such as `not_found`.
      required:
        - type
        - title
        - status
        - detail
        - hint
        - request_id
        - trace_id
        - exception_class
        - message
      title: ProblemWithLegacyKeys
      type: object
    ProblemContext:
      additionalProperties: false
      description: >-
        Data for the `type`. One flat object shared by all types. Each `type`
        always sends the same keys, and a key that the server cannot fill is
        `null`. The keys of each type:

        - `resource-in-use`: `blocking_resources`, `blocking_count`

        - `quota-exceeded`: `quotas`

        - `not-available`: `reason`, `region_id`, `resource_type`, `resource_id`

        - `permission-denied`: `operation`, `client_id`, `project_id`

        - `not-found`: `resource_type`, `resource_id`

        - `method-not-allowed`: `allowed_methods`

        - `resource-busy`: `resource_type`, `resource_id`, `resource_status`

        - `rate-limited`: `retry_after`

        - `service-unavailable`: `retry_after`

        The other types send no `context`, and neither does a `not-found` for an
        unknown URL.
      properties:
        allowed_methods:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          default: null
          description: Methods that the endpoint supports.
          title: Allowed Methods
        blocking_count:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: Total number of blocking resources.
          title: Blocking Count
        blocking_resources:
          anyOf:
            - items:
                $ref: '#/components/schemas/ProblemBlockingResource'
              type: array
            - type: 'null'
          default: null
          description: At most 50 resources that block the request.
          title: Blocking Resources
        client_id:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: The account of the operation.
          title: Client Id
        operation:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Name of the operation that the credentials lack.
          title: Operation
        project_id:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: The project of the operation.
          title: Project Id
        quotas:
          anyOf:
            - items:
                $ref: '#/components/schemas/ProblemQuota'
              type: array
            - type: 'null'
          default: null
          description: The quotas that the request exceeds.
          title: Quotas
        reason:
          anyOf:
            - $ref: '#/components/schemas/NotAvailableReason'
            - type: 'null'
          default: null
          description: Why the resource is not available.
        region_id:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: The region of the error.
          title: Region Id
        resource_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: ID or name of the resource.
          title: Resource Id
        resource_status:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Current status of the resource.
          title: Resource Status
        resource_type:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: >-
            Type of the resource, as the permissions name it, such as
            `instances`.
          title: Resource Type
        retry_after:
          anyOf:
            - type: integer
            - type: 'null'
          default: null
          description: >-
            Seconds to wait before the next request. `null` when the server
            cannot tell.
          title: Retry After
      title: ProblemContext
      type: object
    ProblemError:
      additionalProperties: false
      description: One invalid input.
      properties:
        code:
          description: >-
            What is wrong, as a code from a fixed list, such as `missing`,
            `int_parsing` or `less_than_equal`, or one of the shared codes:
            `not_unique`, `not_found`, `mutually_exclusive`, `missing_one_of`,
            `incompatible_value`, `invalid_format`, `duplicate_item`,
            `invalid_status`. Codes are only added, never renamed or removed.
            Treat an unknown code like `value_error`.
          type: string
        ctx:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          default: null
          description: >-
            Values of the broken constraint, such as `{"le": 4096}`. Absent when
            the check has no values.
          title: Ctx
        detail:
          description: What is wrong with the input.
          title: Detail
          type: string
        loc:
          description: >-
            Path to the input. Starts with `body`, `query`, `path` or `header`.
            A query filter is the parameter, then the operator: `name[contains]`
            is `["query", "name", "contains"]`.
          items:
            anyOf:
              - type: string
              - type: integer
          title: Loc
          type: array
      required:
        - loc
        - code
        - detail
      title: ProblemError
      type: object
    ProblemType:
      enum:
        - internal-server-error
        - method-not-allowed
        - not-available
        - not-found
        - permission-denied
        - quota-exceeded
        - rate-limited
        - resource-busy
        - resource-in-use
        - service-unavailable
        - unauthorized
        - validation-error
      title: ProblemType
      type: string
    ProblemBlockingResource:
      additionalProperties: false
      description: One resource that blocks the request.
      properties:
        resource_id:
          description: ID of the blocking resource.
          title: Resource Id
          type: string
        resource_name:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          description: Name of the blocking resource.
          title: Resource Name
        resource_type:
          description: >-
            Type of the blocking resource, as the permissions name it, such as
            `ports`.
          title: Resource Type
          type: string
      required:
        - resource_type
        - resource_id
      title: ProblemBlockingResource
      type: object
    ProblemQuota:
      additionalProperties: false
      description: One quota that the request exceeds.
      properties:
        available:
          anyOf:
            - type: integer
            - type: number
          description: '`limit` minus `usage`.'
          title: Available
        limit:
          anyOf:
            - type: integer
            - type: number
          description: The limit of the quota.
          title: Limit
        name:
          description: Quota name, such as `vm_count`.
          title: Name
          type: string
        overflow:
          anyOf:
            - type: integer
            - type: number
          description: 'The amount above the limit: `resulting_usage` minus `limit`.'
          title: Overflow
        region_id:
          anyOf:
            - type: integer
            - type: 'null'
          description: >-
            Region of a regional quota. `null` for a global quota, or when
            unknown.
          title: Region Id
        requested:
          anyOf:
            - type: integer
            - type: number
          description: The amount that the request adds.
          title: Requested
        resulting_usage:
          anyOf:
            - type: integer
            - type: number
          description: 'The usage after the request: `usage` plus `requested`.'
          title: Resulting Usage
        scope:
          anyOf:
            - $ref: '#/components/schemas/QuotaScope'
            - type: 'null'
          description: >-
            `regional` for a quota of one region, `global` for a quota of the
            account. `null` when the server cannot tell.
        unit:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Unit of the numbers, such as `MiB`, `GiB` or `bytes`. `null` for a
            quota that counts items.
          title: Unit
        usage:
          anyOf:
            - type: integer
            - type: number
          description: The usage before the request.
          title: Usage
      required:
        - name
        - scope
        - region_id
        - limit
        - usage
        - available
        - requested
        - resulting_usage
        - overflow
        - unit
      title: ProblemQuota
      type: object
    NotAvailableReason:
      enum:
        - account
        - balance
        - capacity
        - plan
        - region
      title: NotAvailableReason
      type: string
    QuotaScope:
      enum:
        - global
        - regional
      title: QuotaScope
      type: string
  responses:
    ProblemBadRequestWithLegacyKeys:
      description: >-
        The request cannot succeed as it is. `type` is `validation-error`,
        `resource-in-use`, `quota-exceeded` or `not-available`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemWithLegacyKeys'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
    ProblemUnauthorizedWithLegacyKeys:
      description: The request has no valid credentials. `type` is `unauthorized`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemWithLegacyKeys'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
    ProblemForbiddenWithLegacyKeys:
      description: >-
        The credentials do not permit the operation, or another service manages
        the resource. `type` is `permission-denied`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemWithLegacyKeys'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
    ProblemNotFoundWithLegacyKeys:
      description: The resource or the URL does not exist. `type` is `not-found`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemWithLegacyKeys'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
    ProblemConflictWithLegacyKeys:
      description: >-
        The resource is in a transient state. `type` is `resource-busy`. Send
        the same request again after the `Retry-After` seconds.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemWithLegacyKeys'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
    ProblemInternalServerErrorWithLegacyKeys:
      description: >-
        The server cannot complete the request. `type` is
        `internal-server-error`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemWithLegacyKeys'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
    ProblemServiceUnavailableWithLegacyKeys:
      description: >-
        The service is down for a known reason, such as planned maintenance.
        `type` is `service-unavailable`. A 503 without the
        `application/problem+json` media type, and every 502 and 504, comes from
        the gateway and has no problem body.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemWithLegacyKeys'
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Content-Language:
          $ref: '#/components/headers/ContentLanguage'
  headers:
    RequestId:
      description: The ID of the request, the same as `request_id` in the body.
      schema:
        type: string
    ContentLanguage:
      description: >-
        The language of `title`, `detail`, `hint` and `errors[].detail`, from
        the `Accept-Language` of the request. Any other field is the same in
        every language.
      schema:
        type: string
        enum:
          - en
          - de
          - ru
          - az
          - zh
          - fr
          - es
          - pt
          - ko
          - ja
          - tr
    RetryAfter:
      description: >-
        The number of seconds to wait before the client sends the same request
        again.
      schema:
        type: integer
        minimum: 0
        maximum: 60
  securitySchemes:
    APIKey:
      description: >-
        API key for authentication. Make sure to include the word `apikey`,
        followed by a single space and then your token.

        Example: `apikey 1234_abcdef`
      type: apiKey
      in: header
      name: Authorization

````