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