Service Fabric Applications API

Application deployment and lifecycle

OpenAPI Specification

service-fabric-applications-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Service Fabric Cluster Management Applications API
  description: The Service Fabric REST API enables cluster management, application lifecycle, service management, and health monitoring for Azure Service Fabric clusters. The API is served by the HTTP gateway running on each cluster node.
  version: '9.1'
  contact:
    name: Azure Service Fabric Documentation
    url: https://docs.microsoft.com/en-us/azure/service-fabric/
  license:
    name: MIT
    url: https://github.com/microsoft/service-fabric/blob/master/LICENSE
servers:
- url: http://{cluster_endpoint}:19080
  description: Service Fabric HTTP Gateway
  variables:
    cluster_endpoint:
      description: Service Fabric cluster endpoint (FQDN or IP)
      default: localhost
tags:
- name: Applications
  description: Application deployment and lifecycle
paths:
  /Applications:
    get:
      operationId: getApplicationInfoList
      summary: Get Application Info List
      description: Returns the list of applications created in the Service Fabric cluster.
      tags:
      - Applications
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      - name: ApplicationTypeName
        in: query
        schema:
          type: string
        description: Filter by application type name
      - name: ContinuationToken
        in: query
        schema:
          type: string
      - name: MaxResults
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: List of applications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PagedApplicationInfoList'
  /Applications/{applicationId}:
    get:
      operationId: getApplicationInfo
      summary: Get Application Info
      description: Returns information about a specific Service Fabric application.
      tags:
      - Applications
      parameters:
      - $ref: '#/components/parameters/ApplicationId'
      - $ref: '#/components/parameters/ApiVersion'
      responses:
        '200':
          description: Application information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationInfo'
        '404':
          description: Application not found
  /Applications/$/Create:
    post:
      operationId: createApplication
      summary: Create Application
      description: Creates a Service Fabric application using the specified application description.
      tags:
      - Applications
      parameters:
      - $ref: '#/components/parameters/ApiVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationDescription'
      responses:
        '201':
          description: Application created
        '400':
          description: Invalid application description
        '409':
          description: Application already exists
  /Applications/{applicationId}/$/Delete:
    post:
      operationId: deleteApplication
      summary: Delete Application
      description: Deletes an existing Service Fabric application. An application must be created before it can be deleted.
      tags:
      - Applications
      parameters:
      - $ref: '#/components/parameters/ApplicationId'
      - $ref: '#/components/parameters/ApiVersion'
      - name: ForceRemove
        in: query
        schema:
          type: boolean
        description: Force remove the application without graceful shutdown
      responses:
        '200':
          description: Application deletion initiated
        '404':
          description: Application not found
  /Applications/{applicationId}/$/GetHealth:
    get:
      operationId: getApplicationHealth
      summary: Get Application Health
      description: Returns the health of the specified Service Fabric application.
      tags:
      - Applications
      parameters:
      - $ref: '#/components/parameters/ApplicationId'
      - $ref: '#/components/parameters/ApiVersion'
      - name: ServicesHealthStateFilter
        in: query
        schema:
          type: integer
          default: 0
      responses:
        '200':
          description: Application health state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationHealth'
        '404':
          description: Application not found
components:
  schemas:
    ApplicationHealth:
      type: object
      properties:
        Name:
          type: string
        AggregatedHealthState:
          $ref: '#/components/schemas/HealthState'
        ServiceHealthStates:
          type: array
          items:
            type: object
            properties:
              ServiceName:
                type: string
              AggregatedHealthState:
                $ref: '#/components/schemas/HealthState'
        HealthEvents:
          type: array
          items:
            $ref: '#/components/schemas/HealthEvent'
    ApplicationDescription:
      type: object
      required:
      - Name
      - TypeName
      - TypeVersion
      properties:
        Name:
          type: string
          description: Application URI (e.g., fabric:/MyApp)
        TypeName:
          type: string
          description: Registered application type name
        TypeVersion:
          type: string
          description: Application type version
        ParameterList:
          type: array
          items:
            type: object
            properties:
              Key:
                type: string
              Value:
                type: string
          description: Override parameters for the application manifest
    ApplicationInfo:
      type: object
      properties:
        Id:
          type: string
          description: Application ID
        Name:
          type: string
          description: Application URI (e.g., fabric:/MyApp)
        TypeName:
          type: string
          description: Application type name
        TypeVersion:
          type: string
          description: Application type version
        Status:
          type: string
          enum:
          - Invalid
          - Ready
          - Upgrading
          - Creating
          - Deleting
          - Failed
        HealthState:
          $ref: '#/components/schemas/HealthState'
    HealthState:
      type: string
      enum:
      - Invalid
      - Ok
      - Warning
      - Error
      - Unknown
      description: Service Fabric health state
    PagedApplicationInfoList:
      type: object
      properties:
        ContinuationToken:
          type: string
          nullable: true
        Items:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationInfo'
    HealthEvent:
      type: object
      properties:
        SourceId:
          type: string
          description: Source reporting the health event
        Property:
          type: string
          description: Property being reported on
        HealthState:
          $ref: '#/components/schemas/HealthState'
        Description:
          type: string
        TimeToLiveInMilliSeconds:
          type: string
          description: Duration in ISO 8601 format
        SequenceNumber:
          type: string
        IsExpired:
          type: boolean
        SourceUtcTimestamp:
          type: string
          format: date-time
        LastModifiedUtcTimestamp:
          type: string
          format: date-time
  parameters:
    ApplicationId:
      name: applicationId
      in: path
      required: true
      schema:
        type: string
      description: Application ID (e.g., fabric:/MyApp)
    ApiVersion:
      name: api-version
      in: query
      required: true
      schema:
        type: string
        default: '9.1'
      description: Service Fabric API version