Spinnaker Gate API

Gate is the Spinnaker API Gateway — the primary REST interface for all Spinnaker operations including application management, pipeline execution, cluster management, and infrastructure discovery. Gate runs on port 8084 and is used by the Spinnaker UI (Deck) as well as external automation scripts and integrations. Supports OAuth 2.0, SAML, LDAP, and X.509 certificate authentication.

OpenAPI Specification

spinnaker-gate-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spinnaker Gate API
  description: >-
    Gate is the API gateway for the Spinnaker continuous delivery platform, serving
    as the primary interface through which the Spinnaker UI (Deck) and external
    API clients communicate with Spinnaker's microservices. Gate provides a unified
    REST API for managing applications, pipelines, deployments, server groups, load
    balancers, and cloud infrastructure across multiple cloud providers including
    AWS, GCP, Azure, Kubernetes, and others. It supports OAuth 2.0, SAML, LDAP,
    and X.509 certificate authentication.
  version: '1.0'
  contact:
    name: Spinnaker Community
    url: https://spinnaker.io/community/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
externalDocs:
  description: Spinnaker API Reference
  url: https://spinnaker.io/docs/reference/api/
servers:
  - url: http://localhost:8084
    description: Spinnaker Gate API (default local port 8084)
tags:
  - name: Applications
    description: >-
      Application management operations for Spinnaker application lifecycle
      including creation, retrieval, and pipeline access
  - name: Pipelines
    description: >-
      Pipeline definition and execution management including saving pipeline
      configurations, triggering runs, and controlling execution state
  - name: Clusters
    description: >-
      Cloud cluster and server group operations for managing deployment
      targets across cloud providers
  - name: Load Balancers
    description: >-
      Load balancer management operations for cloud load balancing resources
      across supported cloud providers
  - name: Server Groups
    description: >-
      Server group operations for managing autoscaling groups, replica sets,
      and deployment groups
  - name: Tasks
    description: >-
      Task management for tracking long-running Spinnaker operations and
      checking their completion status
  - name: Security Groups
    description: >-
      Security group management for cloud firewall and network access control
      resources
  - name: Images
    description: >-
      Cloud image discovery and management across cloud providers and regions
  - name: Search
    description: >-
      Cross-entity search for finding applications, clusters, and other
      Spinnaker-managed resources
  - name: Projects
    description: >-
      Spinnaker project management for grouping applications and pipelines
      into organizational units
  - name: Build Services
    description: >-
      CI build service integration for discovering build masters, jobs,
      and build artifacts
paths:
  /applications:
    get:
      operationId: listApplications
      summary: List All Applications
      description: >-
        Retrieves a list of all Spinnaker applications. Each application is a
        logical grouping of cloud resources including server groups, load
        balancers, and security groups, organized for management and deployment
        across one or more cloud accounts.
      tags:
        - Applications
      parameters:
        - name: account
          in: query
          description: Filter applications by cloud account
          schema:
            type: string
        - name: owner
          in: query
          description: Filter applications by owner email
          schema:
            type: string
      responses:
        '200':
          description: List of applications retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Application'
  /applications/{application}:
    get:
      operationId: getApplication
      summary: Get Application Details
      description: >-
        Retrieves the full details of a specific Spinnaker application including
        configuration attributes, cloud accounts, enabled features, and
        associated pipeline configurations.
      tags:
        - Applications
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
      responses:
        '200':
          description: Application details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationDetail'
        '404':
          description: Application not found
  /applications/{application}/pipelineConfigs:
    get:
      operationId: listPipelineConfigs
      summary: List Pipeline Configurations
      description: >-
        Retrieves all pipeline configurations associated with a Spinnaker
        application. Pipeline configs define the stages, triggers, parameters,
        and notifications for deployment workflows.
      tags:
        - Pipelines
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
      responses:
        '200':
          description: Pipeline configurations retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PipelineConfig'
  /applications/{application}/pipelineConfigs/{pipelineName}:
    post:
      operationId: invokePipelineConfig
      summary: Invoke Pipeline By Name
      description: >-
        Triggers a pipeline execution for the named pipeline configuration
        in the specified application. Accepts optional parameters to pass
        to the pipeline run.
      tags:
        - Pipelines
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
        - name: pipelineName
          in: path
          required: true
          description: The name of the pipeline configuration to invoke
          schema:
            type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                parameters:
                  type: object
                  additionalProperties: true
                  description: Key-value parameters to pass to the pipeline
      responses:
        '200':
          description: Pipeline invoked successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRef'
  /applications/{application}/pipelines:
    get:
      operationId: listPipelineExecutions
      summary: List Pipeline Executions
      description: >-
        Retrieves the execution history for all pipelines in a Spinnaker
        application. Returns recent pipeline runs with their status, stages,
        and completion details.
      tags:
        - Pipelines
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
        - name: limit
          in: query
          description: Maximum number of executions to return
          schema:
            type: integer
            default: 10
        - name: pipelineName
          in: query
          description: Filter by pipeline name
          schema:
            type: string
        - name: statuses
          in: query
          description: Filter by execution status (comma-separated)
          schema:
            type: string
      responses:
        '200':
          description: Pipeline executions retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PipelineExecution'
  /applications/{application}/tasks:
    get:
      operationId: listApplicationTasks
      summary: List Application Tasks
      description: >-
        Retrieves the task history for a Spinnaker application. Tasks represent
        individual operations such as deployments, resizes, or rollbacks.
      tags:
        - Tasks
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
        - name: page
          in: query
          description: Page number for pagination
          schema:
            type: integer
            default: 0
        - name: pageSize
          in: query
          description: Number of tasks per page
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: Task list retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Task'
    post:
      operationId: createApplicationTask
      summary: Create Application Task
      description: >-
        Creates and executes a new Spinnaker task for the specified application.
        Tasks can represent operations like deploying a server group, resizing
        a cluster, or modifying load balancer rules.
      tags:
        - Tasks
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskCreate'
      responses:
        '200':
          description: Task created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskRef'
  /applications/{application}/clusters:
    get:
      operationId: listApplicationClusters
      summary: List Application Clusters
      description: >-
        Retrieves all clusters for a Spinnaker application across all configured
        cloud accounts. Clusters are logical groupings of server groups (e.g.,
        autoscaling groups, replica sets) that represent a single deployment target.
      tags:
        - Clusters
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
      responses:
        '200':
          description: Clusters retrieved successfully
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    $ref: '#/components/schemas/Cluster'
  /applications/{application}/clusters/{account}/{clusterName}/serverGroups:
    get:
      operationId: listClusterServerGroups
      summary: List Cluster Server Groups
      description: >-
        Retrieves a list of server groups for a specific cluster in a given cloud
        account. Server groups represent the underlying infrastructure (ASGs,
        Kubernetes ReplicaSets, etc.) that Spinnaker manages.
      tags:
        - Clusters
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
        - name: account
          in: path
          required: true
          description: The cloud account name
          schema:
            type: string
        - name: clusterName
          in: path
          required: true
          description: The cluster name
          schema:
            type: string
      responses:
        '200':
          description: Server groups retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServerGroup'
  /applications/{application}/loadBalancers:
    get:
      operationId: listApplicationLoadBalancers
      summary: List Application Load Balancers
      description: >-
        Retrieves all load balancers associated with a Spinnaker application
        across configured cloud accounts and regions.
      tags:
        - Load Balancers
      parameters:
        - name: application
          in: path
          required: true
          description: The Spinnaker application name
          schema:
            type: string
        - name: provider
          in: query
          description: Cloud provider to filter by
          schema:
            type: string
            enum: [aws, gce, azure, kubernetes]
      responses:
        '200':
          description: Load balancers retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LoadBalancer'
  /loadBalancers:
    get:
      operationId: listLoadBalancers
      summary: List All Load Balancers
      description: >-
        Retrieves a list of all load balancers for a given cloud provider
        across all managed accounts and regions.
      tags:
        - Load Balancers
      parameters:
        - name: provider
          in: query
          description: Cloud provider name
          schema:
            type: string
      responses:
        '200':
          description: Load balancers retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LoadBalancer'
  /pipelines:
    post:
      operationId: savePipeline
      summary: Save Pipeline Definition
      description: >-
        Creates or updates a pipeline configuration. If the pipeline has an
        existing ID it is updated; otherwise a new pipeline configuration
        is created for the specified application.
      tags:
        - Pipelines
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PipelineConfig'
      responses:
        '200':
          description: Pipeline saved successfully
  /pipelines/{id}:
    get:
      operationId: getPipelineExecution
      summary: Get Pipeline Execution
      description: >-
        Retrieves the full details of a specific pipeline execution by its ID,
        including all stages, their current status, outputs, and any error
        messages.
      tags:
        - Pipelines
      parameters:
        - name: id
          in: path
          required: true
          description: The pipeline execution ID
          schema:
            type: string
      responses:
        '200':
          description: Pipeline execution retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PipelineExecution'
        '404':
          description: Pipeline execution not found
    delete:
      operationId: deletePipeline
      summary: Delete Pipeline Execution
      description: >-
        Deletes a pipeline execution record from Spinnaker history.
      tags:
        - Pipelines
      parameters:
        - name: id
          in: path
          required: true
          description: The pipeline execution ID
          schema:
            type: string
      responses:
        '200':
          description: Pipeline execution deleted successfully
  /pipelines/{id}/cancel:
    put:
      operationId: cancelPipelineExecution
      summary: Cancel Pipeline Execution
      description: >-
        Cancels a running pipeline execution. The cancellation is propagated
        to all running stages and the pipeline is marked as CANCELED.
      tags:
        - Pipelines
      parameters:
        - name: id
          in: path
          required: true
          description: The pipeline execution ID
          schema:
            type: string
        - name: reason
          in: query
          description: Reason for cancellation
          schema:
            type: string
      responses:
        '200':
          description: Pipeline execution canceled successfully
  /pipelines/{id}/pause:
    put:
      operationId: pausePipelineExecution
      summary: Pause Pipeline Execution
      description: >-
        Pauses a running pipeline execution. The pipeline can be resumed
        by calling the resume endpoint.
      tags:
        - Pipelines
      parameters:
        - name: id
          in: path
          required: true
          description: The pipeline execution ID
          schema:
            type: string
      responses:
        '200':
          description: Pipeline execution paused successfully
  /pipelines/{id}/resume:
    put:
      operationId: resumePipelineExecution
      summary: Resume Pipeline Execution
      description: >-
        Resumes a paused pipeline execution from where it was paused.
      tags:
        - Pipelines
      parameters:
        - name: id
          in: path
          required: true
          description: The pipeline execution ID
          schema:
            type: string
      responses:
        '200':
          description: Pipeline execution resumed successfully
  /images/find:
    get:
      operationId: findImages
      summary: Find Cloud Images
      description: >-
        Searches for available cloud images (AMIs, GCE images, etc.) filtered
        by cloud provider, region, account, and other attributes. Used to
        select deployment images for pipeline stages.
      tags:
        - Images
      parameters:
        - name: provider
          in: query
          description: Cloud provider to search
          schema:
            type: string
        - name: account
          in: query
          description: Cloud account to search within
          schema:
            type: string
        - name: region
          in: query
          description: Cloud region to search within
          schema:
            type: string
        - name: q
          in: query
          description: Search query string for image name filtering
          schema:
            type: string
      responses:
        '200':
          description: Images retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Image'
  /search:
    get:
      operationId: search
      summary: Search Spinnaker Resources
      description: >-
        Performs a full-text search across all Spinnaker-managed resources
        including applications, server groups, instances, load balancers, and
        security groups.
      tags:
        - Search
      parameters:
        - name: q
          in: query
          required: true
          description: Search query string
          schema:
            type: string
        - name: type
          in: query
          description: Resource type to limit search to
          schema:
            type: string
            enum: [applications, serverGroups, instances, loadBalancers, securityGroups]
        - name: pageSize
          in: query
          description: Maximum results to return
          schema:
            type: integer
            default: 10
      responses:
        '200':
          description: Search results retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SearchResult'
  /projects:
    get:
      operationId: listProjects
      summary: List Spinnaker Projects
      description: >-
        Retrieves all Spinnaker projects. Projects group multiple applications
        and pipelines into organizational units for team-based access and
        dashboard views.
      tags:
        - Projects
      responses:
        '200':
          description: Projects retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
  /projects/{id}:
    get:
      operationId: getProject
      summary: Get Spinnaker Project
      description: >-
        Retrieves details of a specific Spinnaker project including its
        member applications, cluster configuration, and pipeline summary.
      tags:
        - Projects
      parameters:
        - name: id
          in: path
          required: true
          description: The project ID
          schema:
            type: string
      responses:
        '200':
          description: Project details retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
        '404':
          description: Project not found
  /v2/builds:
    get:
      operationId: listBuildMasters
      summary: List Build Masters
      description: >-
        Retrieves all connected CI build masters (Jenkins, Travis CI, Google
        Cloud Build, etc.) that are configured as Spinnaker build services.
      tags:
        - Build Services
      responses:
        '200':
          description: Build masters retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: Build master name
  /v2/builds/{buildMaster}/jobs:
    get:
      operationId: listBuildJobs
      summary: List Build Master Jobs
      description: >-
        Retrieves all available CI jobs from a connected build master. Jobs
        can be used as pipeline triggers or artifact sources.
      tags:
        - Build Services
      parameters:
        - name: buildMaster
          in: path
          required: true
          description: The build master name
          schema:
            type: string
      responses:
        '200':
          description: Build jobs retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
                  description: Job name
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication for Spinnaker Gate
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.example.com/oauth/authorize
          tokenUrl: https://accounts.example.com/oauth/token
          scopes:
            openid: OpenID Connect scope
            profile: User profile access
            email: User email access
    x509:
      type: mutualTLS
      description: X.509 certificate-based mutual TLS authentication
  schemas:
    Application:
      type: object
      description: A Spinnaker application grouping cloud resources
      properties:
        name:
          type: string
          description: Application name (unique identifier)
        description:
          type: string
          description: Human-readable application description
        email:
          type: string
          description: Application owner email address
        accounts:
          type: string
          description: Comma-separated list of cloud accounts the application uses
        cloudProviders:
          type: string
          description: Comma-separated list of cloud providers
        updated:
          type: integer
          description: Last updated timestamp in milliseconds
    ApplicationDetail:
      type: object
      description: Full application details including attributes and configuration
      properties:
        name:
          type: object
          description: Application name and metadata
        attributes:
          $ref: '#/components/schemas/Application'
        clusters:
          type: object
          description: Cluster map by account
        instances:
          type: object
          description: Instance map
        loadBalancers:
          type: object
          description: Load balancer map
    PipelineConfig:
      type: object
      description: A Spinnaker pipeline configuration definition
      properties:
        id:
          type: string
          description: Unique pipeline configuration ID
        name:
          type: string
          description: Pipeline name
        application:
          type: string
          description: Application this pipeline belongs to
        description:
          type: string
          description: Pipeline description
        stages:
          type: array
          description: Ordered list of pipeline stages
          items:
            type: object
            additionalProperties: true
        triggers:
          type: array
          description: Pipeline trigger configurations
          items:
            type: object
            additionalProperties: true
        parameters:
          type: array
          description: Pipeline parameter definitions
          items:
            type: object
            additionalProperties: true
        notifications:
          type: array
          description: Pipeline notification configurations
          items:
            type: object
            additionalProperties: true
        lastModifiedBy:
          type: string
          description: User who last modified the pipeline
        updateTs:
          type: string
          description: Timestamp of last modification
    PipelineExecution:
      type: object
      description: A pipeline execution instance
      properties:
        id:
          type: string
          description: Unique execution ID
        application:
          type: string
          description: Application name
        name:
          type: string
          description: Pipeline name
        status:
          type: string
          description: Current execution status
          enum: [NOT_STARTED, RUNNING, PAUSED, SUSPENDED, SUCCEEDED, FAILED_CONTINUE, TERMINAL, CANCELED, REDIRECT, STOPPED, SKIPPED, BUFFERED]
        startTime:
          type: integer
          description: Execution start time in milliseconds
        endTime:
          type: integer
          description: Execution end time in milliseconds
        stages:
          type: array
          description: List of stage executions
          items:
            $ref: '#/components/schemas/StageExecution'
        trigger:
          type: object
          description: Trigger that initiated this execution
          additionalProperties: true
    StageExecution:
      type: object
      description: A single stage within a pipeline execution
      properties:
        id:
          type: string
          description: Unique stage execution ID
        name:
          type: string
          description: Stage name
        type:
          type: string
          description: Stage type (e.g., deploy, wait, manualJudgment)
        status:
          type: string
          description: Stage status
          enum: [NOT_STARTED, RUNNING, PAUSED, SUCCEEDED, FAILED_CONTINUE, TERMINAL, CANCELED, SKIPPED]
        startTime:
          type: integer
          description: Stage start time in milliseconds
        endTime:
          type: integer
          description: Stage end time in milliseconds
        context:
          type: object
          description: Stage context data
          additionalProperties: true
    Task:
      type: object
      description: A Spinnaker task representing a discrete operation
      properties:
        id:
          type: string
          description: Unique task ID
        name:
          type: string
          description: Task name
        status:
          type: string
          description: Current task status
          enum: [NOT_STARTED, RUNNING, SUCCEEDED, TERMINAL, FAILED_CONTINUE, CANCELED]
        startTime:
          type: integer
          description: Task start time in milliseconds
        endTime:
          type: integer
          description: Task end time in milliseconds
        resultObjects:
          type: array
          description: Task result data
          items:
            type: object
            additionalProperties: true
    TaskCreate:
      type: object
      required:
        - application
        - description
        - job
      properties:
        application:
          type: string
          description: Application name
        description:
          type: string
          description: Task description
        job:
          type: array
          description: List of task job operations
          items:
            type: object
            additionalProperties: true
    TaskRef:
      type: object
      description: Reference to a created or invoked task
      properties:
        ref:
          type: string
          description: Task reference URL path
    Cluster:
      type: object
      description: A Spinnaker cluster grouping server groups
      properties:
        name:
          type: string
          description: Cluster name
        account:
          type: string
          description: Cloud account name
        serverGroups:
          type: array
          description: Server groups in this cluster
          items:
            $ref: '#/components/schemas/ServerGroup'
    ServerGroup:
      type: object
      description: A cloud server group (ASG, ReplicaSet, etc.)
      properties:
        name:
          type: string
          description: Server group name
        account:
          type: string
          description: Cloud account
        region:
          type: string
          description: Cloud region
        instances:
          type: array
          description: Instances in this server group
          items:
            type: object
            additionalProperties: true
        instanceCounts:
          type: object
          description: Count of instances by status
          properties:
            total:
              type: integer
            up:
              type: integer
            down:
              type: integer
        capacity:
          type: object
          description: Server group capacity settings
          properties:
            min:
              type: integer
            max:
              type: integer
            desired:
              type: integer
        disabled:
          type: boolean
          description: Whether the server group is disabled
    LoadBalancer:
      type: object
      description: A cloud load balancer managed by Spinnaker
      properties:
        name:
          type: string
          description: Load balancer name
        account:
          type: string
          description: Cloud account
        region:
          type: string
          description: Cloud region
        type:
          type: string
          description: Cloud provider type
        dnsName:
          type: string
          description: DNS hostname for the load balancer
        serverGroups:
          type: array
          description: Server groups attached to this load balancer
          items:
            type: object
            additionalProperties: true
    Image:
      type: object
      description: A cloud machine image
      properties:
        imageName:
          type: string
          description: Image name
        imageId:
          type: string
          description: Cloud provider image ID
        account:
          type: string
          description: Cloud account
        region:
          type: string
          description: Cloud region
        provider:
          type: string
          description: Cloud provider
        tags:
          type: object
          description: Image tags
          additionalProperties:
            type: string
    Project:
      type: object
      description: A Spinnaker project grouping applications
      properties:
        id:
          type: string
          description: Unique project ID
        name:
          type: string
          description: Project name
        email:
          type: string
          description: Project owner email
        config:
          type: object
          description: Project configuration
          properties:
            applications:
              type: array
              items:
                type: string
              description: List of application names in this project
            clusters:
              t

# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spinnaker/refs/heads/main/openapi/spinnaker-gate-openapi.yml