Netflix Eureka VIP API

Virtual IP address based queries

OpenAPI Specification

netflix-eureka-vip-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Netflix Eureka REST Applications VIP API
  description: Eureka REST operations for service registration, discovery, and instance management. Eureka is a REST-based service for locating services for the purpose of load balancing and failover of middle-tier servers.
  version: 2.0.0
  contact:
    name: Netflix OSS
    url: https://github.com/Netflix/eureka
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: http://localhost:8761/eureka
  description: Local Eureka server
- url: https://{eureka_host}:{port}/eureka
  description: Custom Eureka server
  variables:
    eureka_host:
      default: localhost
    port:
      default: '8761'
tags:
- name: VIP
  description: Virtual IP address based queries
paths:
  /vips/{vipAddress}:
    get:
      operationId: getByVipAddress
      summary: Query by VIP address
      description: Returns instances registered under a specific VIP address.
      tags:
      - VIP
      parameters:
      - name: vipAddress
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Instances for VIP address
          content:
            application/json:
              schema:
                type: object
                properties:
                  applications:
                    $ref: '#/components/schemas/Applications'
        '404':
          description: No instances found
  /svips/{svipAddress}:
    get:
      operationId: getBySecureVipAddress
      summary: Query by secure VIP address
      description: Returns instances registered under a specific secure VIP address.
      tags:
      - VIP
      parameters:
      - name: svipAddress
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Instances for secure VIP address
          content:
            application/json:
              schema:
                type: object
                properties:
                  applications:
                    $ref: '#/components/schemas/Applications'
        '404':
          description: No instances found
components:
  schemas:
    InstanceInfo:
      type: object
      required:
      - hostName
      - app
      - vipAddress
      - dataCenterInfo
      properties:
        instanceId:
          type: string
          description: Unique instance ID
        hostName:
          type: string
          description: Hostname of the instance
        app:
          type: string
          description: Application name
        ipAddr:
          type: string
          description: IP address
        status:
          type: string
          enum:
          - UP
          - DOWN
          - STARTING
          - OUT_OF_SERVICE
          - UNKNOWN
          description: Current instance status
        overriddenStatus:
          type: string
          enum:
          - UP
          - DOWN
          - STARTING
          - OUT_OF_SERVICE
          - UNKNOWN
        port:
          type: object
          properties:
            $:
              type: integer
              description: Port number
            '@enabled':
              type: string
              description: Whether port is enabled
        securePort:
          type: object
          properties:
            $:
              type: integer
            '@enabled':
              type: string
        countryId:
          type: integer
        dataCenterInfo:
          type: object
          required:
          - '@class'
          - name
          properties:
            '@class':
              type: string
              description: Datacenter info class
            name:
              type: string
              enum:
              - Netflix
              - Amazon
              - MyOwn
            metadata:
              type: object
              properties:
                ami-launch-index:
                  type: string
                local-hostname:
                  type: string
                availability-zone:
                  type: string
                instance-id:
                  type: string
                public-ipv4:
                  type: string
                public-hostname:
                  type: string
                ami-manifest-path:
                  type: string
                local-ipv4:
                  type: string
                hostname:
                  type: string
                ami-id:
                  type: string
                instance-type:
                  type: string
        leaseInfo:
          type: object
          properties:
            renewalIntervalInSecs:
              type: integer
              description: Client heartbeat interval (default 30)
            durationInSecs:
              type: integer
              description: Duration until expiry without heartbeat (default 90)
            registrationTimestamp:
              type: integer
              format: int64
            lastRenewalTimestamp:
              type: integer
              format: int64
            evictionTimestamp:
              type: integer
              format: int64
            serviceUpTimestamp:
              type: integer
              format: int64
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Application-specific metadata
        homePageUrl:
          type: string
          format: uri
        statusPageUrl:
          type: string
          format: uri
        healthCheckUrl:
          type: string
          format: uri
        secureHealthCheckUrl:
          type: string
          format: uri
        vipAddress:
          type: string
          description: Virtual host name (VIP address)
        secureVipAddress:
          type: string
          description: Secure VIP address
        isCoordinatingDiscoveryServer:
          type: string
          description: Whether this is a coordinating discovery server
        lastUpdatedTimestamp:
          type: string
        lastDirtyTimestamp:
          type: string
        actionType:
          type: string
          enum:
          - ADDED
          - MODIFIED
          - DELETED
    Applications:
      type: object
      properties:
        versions__delta:
          type: string
          description: Version delta hash
        apps__hashcode:
          type: string
          description: Hash code for all registered apps
        application:
          type: array
          items:
            $ref: '#/components/schemas/Application'
    Application:
      type: object
      properties:
        name:
          type: string
          description: Application name
        instance:
          type: array
          items:
            $ref: '#/components/schemas/InstanceInfo'