Netflix Eureka · Capability

Netflix Eureka REST API — Instances

Netflix Eureka REST API — Instances. 8 operations. Lead operation: Register a new application instance. Self-contained Naftiko capability covering one Netflix Eureka business surface.

Run with Naftiko Netflix EurekaInstances

What You Can Do

POST
Registerinstance — Register a new application instance
/v1/apps/{appid}
GET
Getinstance — Get a specific instance
/v1/apps/{appid}/{instanceid}
DELETE
Deregisterinstance — Deregister an instance
/v1/apps/{appid}/{instanceid}
PUT
Sendheartbeat — Send heartbeat
/v1/apps/{appid}/{instanceid}
PUT
Updateinstancemetadata — Update instance metadata
/v1/apps/{appid}/{instanceid}/metadata
PUT
Updateinstancestatus — Update instance status override
/v1/apps/{appid}/{instanceid}/status
DELETE
Removeinstancestatusoverride — Remove status override
/v1/apps/{appid}/{instanceid}/status
GET
Getinstancebyid — Get instance by ID
/v1/instances/{instanceid}

MCP Tools

register-new-application-instance

Register a new application instance

get-specific-instance

Get a specific instance

read-only idempotent
deregister-instance

Deregister an instance

idempotent
send-heartbeat

Send heartbeat

idempotent
update-instance-metadata

Update instance metadata

idempotent
update-instance-status-override

Update instance status override

idempotent
remove-status-override

Remove status override

idempotent
get-instance-id

Get instance by ID

read-only idempotent

Capability Spec

eureka-rest-instances.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Netflix Eureka REST API — Instances
  description: 'Netflix Eureka REST API — Instances. 8 operations. Lead operation: Register a new application instance. Self-contained
    Naftiko capability covering one Netflix Eureka business surface.'
  tags:
  - Netflix Eureka
  - Instances
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    NETFLIX_EUREKA_API_KEY: NETFLIX_EUREKA_API_KEY
capability:
  consumes:
  - type: http
    namespace: eureka-rest-instances
    baseUri: http://localhost:8761/eureka
    description: Netflix Eureka REST API — Instances business capability. Self-contained, no shared references.
    resources:
    - name: apps-appId
      path: /apps/{appId}
      operations:
      - name: registerinstance
        method: POST
        description: Register a new application instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: appId
          in: path
          type: string
          description: Application name
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: apps-appId-instanceId
      path: /apps/{appId}/{instanceId}
      operations:
      - name: getinstance
        method: GET
        description: Get a specific instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          description: Instance ID (typically hostname)
          required: true
      - name: deregisterinstance
        method: DELETE
        description: Deregister an instance
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
      - name: sendheartbeat
        method: PUT
        description: Send heartbeat
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        - name: status
          in: query
          type: string
          description: Overridden status value
        - name: lastDirtyTimestamp
          in: query
          type: string
          description: Last dirty timestamp for conflict resolution
        - name: overriddenstatus
          in: query
          type: string
          description: Overridden status
    - name: apps-appId-instanceId-metadata
      path: /apps/{appId}/{instanceId}/metadata
      operations:
      - name: updateinstancemetadata
        method: PUT
        description: Update instance metadata
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: apps-appId-instanceId-status
      path: /apps/{appId}/{instanceId}/status
      operations:
      - name: updateinstancestatus
        method: PUT
        description: Update instance status override
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        - name: value
          in: query
          type: string
          description: New status value
          required: true
        - name: lastDirtyTimestamp
          in: query
          type: string
      - name: removeinstancestatusoverride
        method: DELETE
        description: Remove status override
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: appId
          in: path
          type: string
          required: true
        - name: instanceId
          in: path
          type: string
          required: true
        - name: lastDirtyTimestamp
          in: query
          type: string
    - name: instances-instanceId
      path: /instances/{instanceId}
      operations:
      - name: getinstancebyid
        method: GET
        description: Get instance by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: instanceId
          in: path
          type: string
          required: true
  exposes:
  - type: rest
    namespace: eureka-rest-instances-rest
    port: 8080
    description: REST adapter for Netflix Eureka REST API — Instances. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/apps/{appid}
      name: apps-appid
      description: REST surface for apps-appId.
      operations:
      - method: POST
        name: registerinstance
        description: Register a new application instance
        call: eureka-rest-instances.registerinstance
        with:
          appId: rest.appId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/apps/{appid}/{instanceid}
      name: apps-appid-instanceid
      description: REST surface for apps-appId-instanceId.
      operations:
      - method: GET
        name: getinstance
        description: Get a specific instance
        call: eureka-rest-instances.getinstance
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deregisterinstance
        description: Deregister an instance
        call: eureka-rest-instances.deregisterinstance
        with:
          appId: rest.appId
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: sendheartbeat
        description: Send heartbeat
        call: eureka-rest-instances.sendheartbeat
        with:
          appId: rest.appId
          instanceId: rest.instanceId
          status: rest.status
          lastDirtyTimestamp: rest.lastDirtyTimestamp
          overriddenstatus: rest.overriddenstatus
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/apps/{appid}/{instanceid}/metadata
      name: apps-appid-instanceid-metadata
      description: REST surface for apps-appId-instanceId-metadata.
      operations:
      - method: PUT
        name: updateinstancemetadata
        description: Update instance metadata
        call: eureka-rest-instances.updateinstancemetadata
        with:
          appId: rest.appId
          instanceId: rest.instanceId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/apps/{appid}/{instanceid}/status
      name: apps-appid-instanceid-status
      description: REST surface for apps-appId-instanceId-status.
      operations:
      - method: PUT
        name: updateinstancestatus
        description: Update instance status override
        call: eureka-rest-instances.updateinstancestatus
        with:
          appId: rest.appId
          instanceId: rest.instanceId
          value: rest.value
          lastDirtyTimestamp: rest.lastDirtyTimestamp
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: removeinstancestatusoverride
        description: Remove status override
        call: eureka-rest-instances.removeinstancestatusoverride
        with:
          appId: rest.appId
          instanceId: rest.instanceId
          lastDirtyTimestamp: rest.lastDirtyTimestamp
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/instances/{instanceid}
      name: instances-instanceid
      description: REST surface for instances-instanceId.
      operations:
      - method: GET
        name: getinstancebyid
        description: Get instance by ID
        call: eureka-rest-instances.getinstancebyid
        with:
          instanceId: rest.instanceId
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: eureka-rest-instances-mcp
    port: 9090
    transport: http
    description: MCP adapter for Netflix Eureka REST API — Instances. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: register-new-application-instance
      description: Register a new application instance
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: eureka-rest-instances.registerinstance
      with:
        appId: tools.appId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-specific-instance
      description: Get a specific instance
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: eureka-rest-instances.getinstance
      with:
        appId: tools.appId
        instanceId: tools.instanceId
      outputParameters:
      - type: object
        mapping: $.
    - name: deregister-instance
      description: Deregister an instance
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: eureka-rest-instances.deregisterinstance
      with:
        appId: tools.appId
        instanceId: tools.instanceId
      outputParameters:
      - type: object
        mapping: $.
    - name: send-heartbeat
      description: Send heartbeat
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: eureka-rest-instances.sendheartbeat
      with:
        appId: tools.appId
        instanceId: tools.instanceId
        status: tools.status
        lastDirtyTimestamp: tools.lastDirtyTimestamp
        overriddenstatus: tools.overriddenstatus
      outputParameters:
      - type: object
        mapping: $.
    - name: update-instance-metadata
      description: Update instance metadata
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: eureka-rest-instances.updateinstancemetadata
      with:
        appId: tools.appId
        instanceId: tools.instanceId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-instance-status-override
      description: Update instance status override
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: eureka-rest-instances.updateinstancestatus
      with:
        appId: tools.appId
        instanceId: tools.instanceId
        value: tools.value
        lastDirtyTimestamp: tools.lastDirtyTimestamp
      outputParameters:
      - type: object
        mapping: $.
    - name: remove-status-override
      description: Remove status override
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: eureka-rest-instances.removeinstancestatusoverride
      with:
        appId: tools.appId
        instanceId: tools.instanceId
        lastDirtyTimestamp: tools.lastDirtyTimestamp
      outputParameters:
      - type: object
        mapping: $.
    - name: get-instance-id
      description: Get instance by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: eureka-rest-instances.getinstancebyid
      with:
        instanceId: tools.instanceId
      outputParameters:
      - type: object
        mapping: $.