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

# Update

> Updates a TLS Edge by ID. If a module is not specified in the update, it will not be modified. However, each module configuration that is specified will completely replace the existing value. There is no way to delete an existing module via this API, instead use the delete module API.




## OpenAPI

````yaml https://raw.githubusercontent.com/ngrok/ngrok-openapi/refs/heads/main/ngrok.yaml patch /edges/tls/{id}
openapi: 3.0.0
info:
  title: ngrok OpenAPI
  version: 1.0.0
servers:
  - url: https://api.ngrok.com
security:
  - authentication: []
paths:
  /edges/tls/{id}:
    patch:
      tags:
        - EdgesTLS
      summary: Update
      description: >
        Updates a TLS Edge by ID. If a module is not specified in the update, it
        will not be modified. However, each module configuration that is
        specified will completely replace the existing value. There is no way to
        delete an existing module via this API, instead use the delete module
        API.
      operationId: EdgesTlsUpdate
      parameters:
        - $ref: '#/components/parameters/ngrokVersion'
        - name: id
          description: |
            unique identifier of this edge
          in: path
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TLSEdgeUpdate'
      responses:
        '200':
          description: >
            Updates a TLS Edge by ID. If a module is not specified in the
            update, it will not be modified. However, each module configuration
            that is specified will completely replace the existing value. There
            is no way to delete an existing module via this API, instead use the
            delete module API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TLSEdge'
components:
  parameters:
    ngrokVersion:
      name: ngrok-version
      in: header
      required: true
      schema:
        type: integer
        default: 2
  schemas:
    TLSEdgeUpdate:
      type: object
      properties:
        id:
          description: |
            unique identifier of this edge
          type: string
        description:
          description: >
            human-readable description of what this edge will be used for;
            optional, max 255 bytes.
          type: string
        metadata:
          description: >
            arbitrary user-defined machine-readable data of this edge. Optional,
            max 4096 bytes.
          type: string
        hostports:
          description: |
            hostports served by this edge
          type: array
          items:
            type: string
        backend:
          $ref: '#/components/schemas/EndpointBackendMutate'
          description: |
            edge modules
        ip_restriction:
          $ref: '#/components/schemas/EndpointIPPolicyMutate'
          description: n/a
        mutual_tls:
          $ref: '#/components/schemas/EndpointMutualTLSMutate'
          description: n/a
        tls_termination:
          $ref: '#/components/schemas/EndpointTLSTermination'
          description: n/a
        traffic_policy:
          $ref: '#/components/schemas/EndpointTrafficPolicy'
          description: |
            the traffic policy associated with this edge or null
    TLSEdge:
      type: object
      properties:
        id:
          description: |
            unique identifier of this edge
          type: string
        description:
          description: >
            human-readable description of what this edge will be used for;
            optional, max 255 bytes.
          type: string
        metadata:
          description: >
            arbitrary user-defined machine-readable data of this edge. Optional,
            max 4096 bytes.
          type: string
        created_at:
          description: |
            timestamp when the edge configuration was created, RFC 3339 format
          type: string
        uri:
          description: |
            URI of the edge API resource
          type: string
        hostports:
          description: |
            hostports served by this edge
          type: array
          items:
            type: string
        backend:
          $ref: '#/components/schemas/EndpointBackend'
          description: |
            edge modules
        ip_restriction:
          $ref: '#/components/schemas/EndpointIPPolicy'
          description: n/a
        mutual_tls:
          $ref: '#/components/schemas/EndpointMutualTLS'
          description: n/a
        tls_termination:
          $ref: '#/components/schemas/EndpointTLSTermination'
          description: n/a
        traffic_policy:
          $ref: '#/components/schemas/EndpointTrafficPolicy'
          description: |
            the traffic policy associated with this edge or null
    EndpointBackendMutate:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        backend_id:
          description: |
            backend to be used to back this endpoint
          type: string
    EndpointIPPolicyMutate:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        ip_policy_ids:
          description: >
            list of all IP policies that will be used to check if a source IP is
            allowed access to the endpoint
          type: array
          items:
            type: string
    EndpointMutualTLSMutate:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        certificate_authority_ids:
          description: >
            list of certificate authorities that will be used to validate the
            TLS client certificate presented by the initiator of the TLS
            connection
          type: array
          items:
            type: string
    EndpointTLSTermination:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        terminate_at:
          description: >
            `edge` if the ngrok edge should terminate TLS traffic, `upstream` if
            TLS traffic should be passed through to the upstream ngrok agent /
            application server for termination. if `upstream` is chosen, most
            other modules will be disallowed because they rely on the ngrok edge
            being able to access the underlying traffic.
          type: string
        min_version:
          description: >
            The minimum TLS version used for termination and advertised to the
            client during the TLS handshake. if unspecified, ngrok will choose
            an industry-safe default. This value must be null if `terminate_at`
            is set to `upstream`.
          type: string
    EndpointTrafficPolicy:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        value:
          description: >
            the traffic policy that should be applied to the traffic on your
            endpoint.
          type: string
    EndpointBackend:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        backend:
          $ref: '#/components/schemas/Ref'
          description: |
            backend to be used to back this endpoint
    EndpointIPPolicy:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        ip_policies:
          description: >
            list of all IP policies that will be used to check if a source IP is
            allowed access to the endpoint
          type: array
          items:
            $ref: '#/components/schemas/Ref'
    EndpointMutualTLS:
      type: object
      properties:
        enabled:
          description: >
            `true` if the module will be applied to traffic, `false` to disable.
            default `true` if unspecified
          type: boolean
        certificate_authorities:
          description: >
            PEM-encoded CA certificates that will be used to validate. Multiple
            CAs may be provided by concatenating them together.
          type: array
          items:
            $ref: '#/components/schemas/Ref'
    Ref:
      type: object
      properties:
        id:
          description: |
            a resource identifier
          type: string
        uri:
          description: |
            a uri for locating a resource
          type: string
  securitySchemes:
    authentication:
      type: http
      scheme: bearer

````