From 7b47a2fdfef32aebd7d9a52170e5929c0335b3cb Mon Sep 17 00:00:00 2001 From: Michael Elrom Date: Mon, 14 Sep 2026 11:51:56 -0400 Subject: [PATCH 1/2] feat(jenkins): add Jenkins Integration Model and Studio Project Curated OpenAPI spec (21 of 58 ops) sourced from the community swaggy-jenkins project, since Jenkins publishes no official spec. HTTP Basic auth (username + API token). Companion Studio Project with 21 atomic workflows covering job CRUD, build trigger/status/console output, queue, views, and node/agent status. --- Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json | 4691 ++++++++++++++++++ Jenkins/OpenAPIs/jenkins-latest.json | 1606 ++++++ Jenkins/README.md | 107 + Jenkins/Studio Projects/Jenkins.project.json | 2738 ++++++++++ README.md | 1 + 5 files changed, 9143 insertions(+) create mode 100644 Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json create mode 100644 Jenkins/OpenAPIs/jenkins-latest.json create mode 100644 Jenkins/README.md create mode 100644 Jenkins/Studio Projects/Jenkins.project.json diff --git a/Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json b/Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json new file mode 100644 index 0000000..e6baf89 --- /dev/null +++ b/Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json @@ -0,0 +1,4691 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Jenkins", + "description": "Jenkins is an open source automation server used to build, test, and deploy software. This spec covers Jenkins' classic remote access API for managing jobs, builds, the build queue, views, and agent/computer status.", + "version": "3.4.1-pre.0" + }, + "servers": [ + { + "url": "https://{host}", + "variables": { + "host": { + "default": "jenkins.example.com" + } + } + } + ], + "paths": { + "/api/json": { + "head": { + "description": "Retrieve Jenkins headers", + "operationId": "headJenkins", + "responses": { + "200": { + "description": "Successfully retrieved Jenkins headers", + "headers": { + "x-jenkins": { + "description": "Jenkins version number", + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + }, + "get": { + "description": "Retrieve Jenkins details", + "operationId": "getJenkins", + "responses": { + "200": { + "description": "Successfully retrieved Jenkins details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Hudson" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/computer/api/json": { + "get": { + "description": "Retrieve computer details", + "operationId": "getComputer", + "parameters": [ + { + "name": "depth", + "description": "Recursion depth in response model", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved computer details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComputerSet" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/createItem": { + "post": { + "description": "Create a new job using job configuration, or copied from an existing job", + "operationId": "postCreateItem", + "parameters": [ + { + "name": "name", + "description": "Name of the new job", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "from", + "description": "Existing job to copy from", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "mode", + "description": "Set to 'copy' for copying an existing job", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/crumb" + }, + { + "name": "Content-Type", + "description": "Content type header application/xml", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully created a new job" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "Job configuration in config.xml format" + } + } + }, + "/createView": { + "post": { + "description": "Create a new view using view configuration", + "operationId": "postCreateView", + "parameters": [ + { + "name": "name", + "description": "Name of the new view", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/crumb" + }, + { + "name": "Content-Type", + "description": "Content type header application/xml", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully created the view" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "View configuration in config.xml format" + } + } + }, + "/crumbIssuer/api/json": { + "get": { + "description": "Retrieve CSRF protection token", + "operationId": "getCrumb", + "responses": { + "200": { + "description": "Successfully retrieved CSRF protection token", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DefaultCrumbIssuer" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "base" + ] + } + }, + "/job/{name}/api/json": { + "get": { + "description": "Retrieve job details", + "operationId": "getJob", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FreeStyleProject" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/build": { + "post": { + "description": "Build a job", + "operationId": "postJobBuild", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "name": "json", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "token", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully built the job (backward compatibility for older versions of Jenkins)" + }, + "201": { + "description": "Successfully built the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/config.xml": { + "get": { + "description": "Retrieve job configuration", + "operationId": "getJobConfig", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job configuration in config.xml format", + "content": { + "text/xml": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + }, + "post": { + "description": "Update job configuration", + "operationId": "postJobConfig", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job configuration in config.xml format" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "Job configuration in config.xml format", + "required": true + } + } + }, + "/job/{name}/doDelete": { + "post": { + "description": "Delete a job", + "operationId": "postJobDelete", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully deleted the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/disable": { + "post": { + "description": "Disable a job", + "operationId": "postJobDisable", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully disabled the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/enable": { + "post": { + "description": "Enable a job", + "operationId": "postJobEnable", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully enabled the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/lastBuild/api/json": { + "get": { + "description": "Retrieve job's last build details", + "operationId": "getJobLastBuild", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job's last build details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FreeStyleBuild" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/lastBuild/stop": { + "post": { + "description": "Stop a job", + "operationId": "postJobLastBuildStop", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully stopped the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/{number}/logText/progressiveText": { + "get": { + "description": "Retrieve job's build progressive text output", + "operationId": "getJobProgressiveText", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "name": "number", + "description": "Build number", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "description": "Starting point of progressive text output", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job's build progressive text output" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/queue/api/json": { + "get": { + "description": "Retrieve queue details", + "operationId": "getQueue", + "responses": { + "200": { + "description": "Successfully retrieved queue details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Queue" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/queue/item/{number}/api/json": { + "get": { + "description": "Retrieve queued item details", + "operationId": "getQueueItem", + "parameters": [ + { + "name": "number", + "description": "Queue number", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved queued item details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Queue" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/view/{name}/api/json": { + "get": { + "description": "Retrieve view details", + "operationId": "getView", + "parameters": [ + { + "$ref": "#/components/parameters/viewName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved view details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListView" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/viewNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/view/{name}/config.xml": { + "get": { + "description": "Retrieve view configuration", + "operationId": "getViewConfig", + "parameters": [ + { + "$ref": "#/components/parameters/viewName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved view configuration in config.xml format", + "content": { + "text/xml": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/viewNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + }, + "post": { + "description": "Update view configuration", + "operationId": "postViewConfig", + "parameters": [ + { + "$ref": "#/components/parameters/viewName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully updated view configuration" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/viewNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "View configuration in config.xml format", + "required": true + } + } + }, + "/jwt-auth/token": { + "get": { + "description": "Retrieve JSON Web Token", + "operationId": "getJsonWebToken", + "parameters": [ + { + "name": "expiryTimeInMins", + "description": "Token expiry time in minutes, default: 30 minutes", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "maxExpiryTimeInMins", + "description": "Maximum token expiry time in minutes, default: 480 minutes", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved JWT token", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "tags": [ + "blueOcean" + ], + "security": [ + { + "jenkins_auth": [] + } + ] + } + }, + "/jwt-auth/jwks/{key}": { + "get": { + "description": "Retrieve JSON Web Key", + "operationId": "getJsonWebKey", + "parameters": [ + { + "name": "key", + "description": "Key ID received as part of JWT header field kid", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved JWT token", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "tags": [ + "blueOcean" + ], + "security": [ + { + "jenkins_auth": [] + } + ] + } + }, + "/blue/rest/classes/": { + "get": { + "description": "Get classes details", + "operationId": "searchClasses", + "parameters": [ + { + "name": "q", + "description": "Query string containing an array of class names", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved search result", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/classes/{class}": { + "get": { + "description": "Get a list of class names supported by a given class", + "operationId": "getClasses", + "parameters": [ + { + "$ref": "#/components/parameters/className" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved class names", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/search/": { + "get": { + "description": "Search for any resource details", + "operationId": "search", + "parameters": [ + { + "name": "q", + "description": "Query string", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved search result", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/": { + "get": { + "description": "Retrieve all organizations details", + "operationId": "getOrganisations", + "responses": { + "200": { + "description": "Successfully retrieved pipelines details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organisations" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}": { + "get": { + "description": "Retrieve organization details", + "operationId": "getOrganisation", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved pipeline details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Organisation" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/pipelineNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/": { + "get": { + "description": "Retrieve all pipelines details for an organization", + "operationId": "getPipelines", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved pipelines details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pipelines" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}": { + "get": { + "description": "Retrieve pipeline details for an organization", + "operationId": "getPipeline", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved pipeline details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pipeline" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/pipelineNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/activities": { + "get": { + "description": "Retrieve all activities details for an organization pipeline", + "operationId": "getPipelineActivities", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved all activities details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineActivities" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/branches": { + "get": { + "description": "Retrieve all branches details for an organization pipeline", + "operationId": "getPipelineBranches", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved all branches details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MultibranchPipeline" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/branches/{branch}/": { + "get": { + "description": "Retrieve branch details for an organization pipeline", + "operationId": "getPipelineBranch", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/branchName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved branch details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BranchImpl" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/branches/{branch}/runs/{run}": { + "get": { + "description": "Retrieve branch run details for an organization pipeline", + "operationId": "getPipelineBranchRun", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/branchName" + }, + { + "$ref": "#/components/parameters/runName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved run details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineRun" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{folder}/": { + "get": { + "description": "Retrieve pipeline folder for an organization", + "operationId": "getPipelineFolder", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/folderName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved folder details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineFolderImpl" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{folder}/pipelines/{pipeline}": { + "get": { + "description": "Retrieve pipeline details for an organization folder", + "operationId": "getPipelineFolderPipeline", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/folderName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved pipeline details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineImpl" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/favorite": { + "put": { + "description": "Favorite/unfavorite a pipeline", + "operationId": "putPipelineFavorite", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + } + ], + "responses": { + "200": { + "description": "Successfully favorited/unfavorited a pipeline", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FavoriteImpl" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "boolean" + } + } + }, + "description": "Set JSON string body to {\"favorite\": true} to favorite, set value to false to unfavorite", + "required": true + } + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/queue": { + "get": { + "description": "Retrieve queue details for an organization pipeline", + "operationId": "getPipelineQueue", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved queue details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineQueue" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/queue/{queue}": { + "delete": { + "description": "Delete queue item from an organization pipeline queue", + "operationId": "deletePipelineQueueItem", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/queueItemName" + } + ], + "responses": { + "200": { + "description": "Successfully deleted queue item" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs": { + "get": { + "description": "Retrieve all runs details for an organization pipeline", + "operationId": "getPipelineRuns", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved runs details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineRuns" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + }, + "post": { + "description": "Start a build for an organization pipeline", + "operationId": "postPipelineRuns", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + } + ], + "responses": { + "200": { + "description": "Successfully started a build", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemImpl" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}": { + "get": { + "description": "Retrieve run details for an organization pipeline", + "operationId": "getPipelineRun", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved run details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineRun" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/nodes": { + "get": { + "description": "Retrieve run nodes details for an organization pipeline", + "operationId": "getPipelineRunNodes", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved run nodes details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineRunNodes" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/nodes/{node}": { + "get": { + "description": "Retrieve run node details for an organization pipeline", + "operationId": "getPipelineRunNode", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + }, + { + "$ref": "#/components/parameters/nodeName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved run node details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineRunNode" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/nodes/{node}/steps": { + "get": { + "description": "Retrieve run node steps details for an organization pipeline", + "operationId": "getPipelineRunNodeSteps", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + }, + { + "$ref": "#/components/parameters/nodeName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved run node steps details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineRunNodeSteps" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/nodes/{node}/steps/{step}": { + "get": { + "description": "Retrieve run node details for an organization pipeline", + "operationId": "getPipelineRunNodeStep", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + }, + { + "$ref": "#/components/parameters/nodeName" + }, + { + "$ref": "#/components/parameters/stepName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved run node step details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineStepImpl" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/nodes/{node}/steps/{step}/log": { + "get": { + "description": "Get log for a pipeline run node step", + "operationId": "getPipelineRunNodeStepLog", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + }, + { + "$ref": "#/components/parameters/nodeName" + }, + { + "$ref": "#/components/parameters/stepName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved pipeline run node step log", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/log": { + "get": { + "description": "Get log for a pipeline run", + "operationId": "getPipelineRunLog", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + }, + { + "name": "start", + "description": "Start position of the log", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "download", + "description": "Set to true in order to download the file, otherwise it's passed as a response body", + "in": "query", + "required": false, + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved pipeline run log", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/replay": { + "post": { + "description": "Replay an organization pipeline run", + "operationId": "postPipelineRun", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + } + ], + "responses": { + "200": { + "description": "Successfully replayed a pipeline run", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/QueueItemImpl" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/pipelines/{pipeline}/runs/{run}/stop": { + "put": { + "description": "Stop a build of an organization pipeline", + "operationId": "putPipelineRun", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/pipelineName" + }, + { + "$ref": "#/components/parameters/runName" + }, + { + "name": "blocking", + "description": "Set to true to make blocking stop, default: false", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "timeOutInSecs", + "description": "Timeout in seconds, default: 10 seconds", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successfully stopped a build", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PipelineRun" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/scm/{scm}": { + "get": { + "description": "Retrieve SCM details for an organization", + "operationId": "getSCM", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/scmName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved SCM details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GithubScm" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/scm/{scm}/organizations": { + "get": { + "description": "Retrieve SCM organizations details for an organization", + "operationId": "getSCMOrganisations", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/scmName" + }, + { + "name": "credentialId", + "description": "Credential ID", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved SCM organizations details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScmOrganisations" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/scm/{scm}/organizations/{scmOrganisation}/repositories": { + "get": { + "description": "Retrieve SCM organization repositories details for an organization", + "operationId": "getSCMOrganisationRepositories", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/scmName" + }, + { + "$ref": "#/components/parameters/scmOrgName" + }, + { + "name": "credentialId", + "description": "Credential ID", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "pageSize", + "description": "Number of items in a page", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "pageNumber", + "description": "Page number", + "in": "query", + "required": false, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved SCM organization repositories details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScmOrganisations" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/scm/{scm}/organizations/{scmOrganisation}/repositories/{repository}": { + "get": { + "description": "Retrieve SCM organization repository details for an organization", + "operationId": "getSCMOrganisationRepository", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/scmName" + }, + { + "$ref": "#/components/parameters/scmOrgName" + }, + { + "$ref": "#/components/parameters/repositoryName" + }, + { + "name": "credentialId", + "description": "Credential ID", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved SCM organizations details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScmOrganisations" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/user/": { + "get": { + "description": "Retrieve authenticated user details for an organization", + "operationId": "getAuthenticatedUser", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved authenticated user details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/users/": { + "get": { + "description": "Retrieve users details for an organization", + "operationId": "getUsers", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved users details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/organizations/{organization}/users/{user}": { + "get": { + "description": "Retrieve user details for an organization", + "operationId": "getUser", + "parameters": [ + { + "$ref": "#/components/parameters/orgName" + }, + { + "$ref": "#/components/parameters/userName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved users details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + }, + "/blue/rest/users/{user}/favorites": { + "get": { + "description": "Retrieve user favorites details for an organization", + "operationId": "getUserFavorites", + "parameters": [ + { + "$ref": "#/components/parameters/userName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved users favorites details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserFavorites" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "blueOcean" + ] + } + } + }, + "components": { + "securitySchemes": { + "jenkins_auth": { + "type": "http", + "scheme": "basic" + } + }, + "parameters": { + "jobName": { + "name": "name", + "description": "Name of the job", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "viewName": { + "name": "name", + "description": "Name of the view", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "crumb": { + "name": "Jenkins-Crumb", + "description": "CSRF protection token", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + }, + "orgName": { + "name": "organization", + "description": "Name of the organization", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "pipelineName": { + "name": "pipeline", + "description": "Name of the pipeline", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "branchName": { + "name": "branch", + "description": "Name of the branch", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "queueItemName": { + "name": "queue", + "description": "Name of the queue item", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "runName": { + "name": "run", + "description": "Name of the run", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "nodeName": { + "name": "node", + "description": "Name of the node", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "stepName": { + "name": "step", + "description": "Name of the step", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "scmName": { + "name": "scm", + "description": "Name of SCM", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "scmOrgName": { + "name": "scmOrganisation", + "description": "Name of the SCM organization", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "repositoryName": { + "name": "repository", + "description": "Name of the SCM repository", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "className": { + "name": "class", + "description": "Name of the class", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "folderName": { + "name": "folder", + "description": "Name of the folder", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "userName": { + "name": "user", + "description": "Name of the user", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + }, + "responses": { + "unauthorized": { + "description": "Authentication failed - incorrect username and/or password" + }, + "forbidden": { + "description": "Jenkins requires authentication - please set username and password" + }, + "jobNotFound": { + "description": "Job cannot be found on Jenkins instance" + }, + "viewNotFound": { + "description": "View cannot be found on Jenkins instance" + }, + "pipelineNotFound": { + "description": "Pipeline cannot be found on Jenkins instance" + }, + "errorInHtml": { + "description": "An error has occurred - error message is embedded inside the HTML response", + "content": { + "*/*": { + "schema": { + "type": "string" + } + } + } + } + }, + "schemas": { + "FreeStyleBuild": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CauseAction" + } + }, + "building": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "estimatedDuration": { + "type": "integer" + }, + "executor": { + "type": "string" + }, + "fullDisplayName": { + "type": "string" + }, + "id": { + "type": "string" + }, + "keepLog": { + "type": "boolean" + }, + "queueId": { + "type": "integer" + }, + "result": { + "type": "string" + }, + "timestamp": { + "type": "integer" + }, + "builtOn": { + "type": "string" + }, + "changeSet": { + "$ref": "#/components/schemas/EmptyChangeLogSet" + } + } + }, + "HudsonMasterComputerexecutors": { + "type": "object", + "properties": { + "currentExecutable": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "idle": { + "type": "boolean" + }, + "likelyStuck": { + "type": "boolean" + }, + "number": { + "type": "integer" + }, + "progress": { + "type": "integer" + }, + "_class": { + "type": "string" + } + } + }, + "Label1": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "SwapSpaceMonitorMemoryUsage2": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "availablePhysicalMemory": { + "type": "integer" + }, + "availableSwapSpace": { + "type": "integer" + }, + "totalPhysicalMemory": { + "type": "integer" + }, + "totalSwapSpace": { + "type": "integer" + } + } + }, + "DiskSpaceMonitorDescriptorDiskSpace": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "timestamp": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + } + } + }, + "ResponseTimeMonitorData": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "timestamp": { + "type": "integer" + }, + "average": { + "type": "integer" + } + } + }, + "ClockDifference": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "diff": { + "type": "integer" + } + } + }, + "HudsonMasterComputermonitorData": { + "type": "object", + "properties": { + "hudson.node_monitors.SwapSpaceMonitor": { + "$ref": "#/components/schemas/SwapSpaceMonitorMemoryUsage2" + }, + "hudson.node_monitors.TemporarySpaceMonitor": { + "$ref": "#/components/schemas/DiskSpaceMonitorDescriptorDiskSpace" + }, + "hudson.node_monitors.DiskSpaceMonitor": { + "$ref": "#/components/schemas/DiskSpaceMonitorDescriptorDiskSpace" + }, + "hudson.node_monitors.ArchitectureMonitor": { + "type": "string" + }, + "hudson.node_monitors.ResponseTimeMonitor": { + "$ref": "#/components/schemas/ResponseTimeMonitorData" + }, + "hudson.node_monitors.ClockMonitor": { + "$ref": "#/components/schemas/ClockDifference" + }, + "_class": { + "type": "string" + } + } + }, + "HudsonMasterComputer": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "executors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HudsonMasterComputerexecutors" + } + }, + "icon": { + "type": "string" + }, + "iconClassName": { + "type": "string" + }, + "idle": { + "type": "boolean" + }, + "jnlpAgent": { + "type": "boolean" + }, + "launchSupported": { + "type": "boolean" + }, + "loadStatistics": { + "$ref": "#/components/schemas/Label1" + }, + "manualLaunchAllowed": { + "type": "boolean" + }, + "monitorData": { + "$ref": "#/components/schemas/HudsonMasterComputermonitorData" + }, + "numExecutors": { + "type": "integer" + }, + "offline": { + "type": "boolean" + }, + "offlineCause": { + "type": "string" + }, + "offlineCauseReason": { + "type": "string" + }, + "temporarilyOffline": { + "type": "boolean" + } + } + }, + "ComputerSet": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "busyExecutors": { + "type": "integer" + }, + "computer": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HudsonMasterComputer" + } + }, + "displayName": { + "type": "string" + }, + "totalExecutors": { + "type": "integer" + } + } + }, + "DefaultCrumbIssuer": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "crumb": { + "type": "string" + }, + "crumbRequestField": { + "type": "string" + } + } + }, + "HudsonassignedLabels": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "FreeStyleProject": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "color": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProjectactions" + } + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayNameOrNull": { + "type": "string" + }, + "fullDisplayName": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "buildable": { + "type": "boolean" + }, + "builds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleBuild" + } + }, + "firstBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "healthReport": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProjecthealthReport" + } + }, + "inQueue": { + "type": "boolean" + }, + "keepDependencies": { + "type": "boolean" + }, + "lastBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastCompletedBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastFailedBuild": { + "type": "string" + }, + "lastStableBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastSuccessfulBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastUnstableBuild": { + "type": "string" + }, + "lastUnsuccessfulBuild": { + "type": "string" + }, + "nextBuildNumber": { + "type": "integer" + }, + "queueItem": { + "type": "string" + }, + "concurrentBuild": { + "type": "boolean" + }, + "scm": { + "$ref": "#/components/schemas/NullSCM" + } + } + }, + "AllView": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "UnlabeledLoadStatistics": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "Hudson": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "assignedLabels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HudsonassignedLabels" + } + }, + "mode": { + "type": "string" + }, + "nodeDescription": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "numExecutors": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProject" + } + }, + "primaryView": { + "$ref": "#/components/schemas/AllView" + }, + "quietingDown": { + "type": "boolean" + }, + "slaveAgentPort": { + "type": "integer" + }, + "unlabeledLoad": { + "$ref": "#/components/schemas/UnlabeledLoadStatistics" + }, + "useCrumbs": { + "type": "boolean" + }, + "useSecurity": { + "type": "boolean" + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AllView" + } + } + } + }, + "FreeStyleProjectactions": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "FreeStyleProjecthealthReport": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "iconClassName": { + "type": "string" + }, + "iconUrl": { + "type": "string" + }, + "score": { + "type": "integer" + }, + "_class": { + "type": "string" + } + } + }, + "NullSCM": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "CauseUserIdCause": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "shortDescription": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "userName": { + "type": "string" + } + } + }, + "CauseAction": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "causes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CauseUserIdCause" + } + } + } + }, + "EmptyChangeLogSet": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "kind": { + "type": "string" + } + } + }, + "QueueBlockedItem": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CauseAction" + } + }, + "blocked": { + "type": "boolean" + }, + "buildable": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "inQueueSince": { + "type": "integer" + }, + "params": { + "type": "string" + }, + "stuck": { + "type": "boolean" + }, + "task": { + "$ref": "#/components/schemas/FreeStyleProject" + }, + "url": { + "type": "string" + }, + "why": { + "type": "string" + }, + "buildableStartMilliseconds": { + "type": "integer" + } + } + }, + "Queue": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueBlockedItem" + } + } + } + }, + "QueueLeftItem": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CauseAction" + } + }, + "blocked": { + "type": "boolean" + }, + "buildable": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "inQueueSince": { + "type": "integer" + }, + "params": { + "type": "string" + }, + "stuck": { + "type": "boolean" + }, + "task": { + "$ref": "#/components/schemas/FreeStyleProject" + }, + "url": { + "type": "string" + }, + "why": { + "type": "string" + }, + "cancelled": { + "type": "boolean" + }, + "executable": { + "$ref": "#/components/schemas/FreeStyleBuild" + } + } + }, + "ListView": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "description": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProject" + } + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "Link": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "href": { + "type": "string" + } + } + }, + "ExtensionClassContainerImpl1links": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "ExtensionClassImpllinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "ExtensionClassImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/ExtensionClassImpllinks" + }, + "classes": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "ExtensionClassContainerImpl1map": { + "type": "object", + "properties": { + "io.jenkins.blueocean.service.embedded.rest.PipelineImpl": { + "$ref": "#/components/schemas/ExtensionClassImpl" + }, + "io.jenkins.blueocean.service.embedded.rest.MultiBranchPipelineImpl": { + "$ref": "#/components/schemas/ExtensionClassImpl" + }, + "_class": { + "type": "string" + } + } + }, + "ExtensionClassContainerImpl1": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/ExtensionClassContainerImpl1links" + }, + "map": { + "$ref": "#/components/schemas/ExtensionClassContainerImpl1map" + } + } + }, + "ClassesByClass": { + "type": "object", + "properties": { + "classes": { + "type": "array", + "items": { + "type": "string" + } + }, + "_class": { + "type": "string" + } + } + }, + "MultibranchPipeline": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "latestRun": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "weatherScore": { + "type": "integer" + }, + "branchNames": { + "type": "array", + "items": { + "type": "string" + } + }, + "numberOfFailingBranches": { + "type": "integer" + }, + "numberOfFailingPullRequests": { + "type": "integer" + }, + "numberOfSuccessfulBranches": { + "type": "integer" + }, + "numberOfSuccessfulPullRequests": { + "type": "integer" + }, + "totalNumberOfBranches": { + "type": "integer" + }, + "totalNumberOfPullRequests": { + "type": "integer" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "fullName": { + "type": "string" + }, + "latestRun": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "weatherScore": { + "type": "integer" + }, + "_links": { + "$ref": "#/components/schemas/PipelineImpllinks" + } + } + }, + "Organisation": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "Organisations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Organisation" + } + }, + "PipelinelatestRunartifacts": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "PipelinelatestRun": { + "type": "object", + "properties": { + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelinelatestRunartifacts" + } + }, + "durationInMillis": { + "type": "integer" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "enQueueTime": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "result": { + "type": "string" + }, + "runSummary": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "state": { + "type": "string" + }, + "type": { + "type": "string" + }, + "commitId": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "Pipeline": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "weatherScore": { + "type": "integer" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "latestRun": { + "$ref": "#/components/schemas/PipelinelatestRun" + } + } + }, + "PipelineActivityartifacts": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineActivity": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineActivityartifacts" + } + }, + "durationInMillis": { + "type": "integer" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "enQueueTime": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "result": { + "type": "string" + }, + "runSummary": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "state": { + "type": "string" + }, + "type": { + "type": "string" + }, + "commitId": { + "type": "string" + } + } + }, + "PipelineActivities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineActivity" + } + }, + "StringParameterValue": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "name": { + "type": "string" + }, + "value": { + "type": "string" + } + } + }, + "StringParameterDefinition": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "defaultParameterValue": { + "$ref": "#/components/schemas/StringParameterValue" + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "type": { + "type": "string" + } + } + }, + "BranchImplpermissions": { + "type": "object", + "properties": { + "create": { + "type": "boolean" + }, + "read": { + "type": "boolean" + }, + "start": { + "type": "boolean" + }, + "stop": { + "type": "boolean" + }, + "_class": { + "type": "string" + } + } + }, + "BranchImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "fullDisplayName": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StringParameterDefinition" + } + }, + "permissions": { + "$ref": "#/components/schemas/BranchImplpermissions" + }, + "weatherScore": { + "type": "integer" + }, + "pullRequest": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/BranchImpllinks" + }, + "latestRun": { + "$ref": "#/components/schemas/PipelineRunImpl" + } + } + }, + "PipelineBranchesitemlatestRun": { + "type": "object", + "properties": { + "durationInMillis": { + "type": "integer" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "enQueueTime": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "result": { + "type": "string" + }, + "runSummary": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "state": { + "type": "string" + }, + "type": { + "type": "string" + }, + "commitId": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineBranchesitempullRequestlinks": { + "type": "object", + "properties": { + "self": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineBranchesitempullRequest": { + "type": "object", + "properties": { + "_links": { + "$ref": "#/components/schemas/PipelineBranchesitempullRequestlinks" + }, + "author": { + "type": "string" + }, + "id": { + "type": "string" + }, + "title": { + "type": "string" + }, + "url": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineBranchesitem": { + "type": "object", + "properties": { + "displayName": { + "type": "string" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "weatherScore": { + "type": "integer" + }, + "latestRun": { + "$ref": "#/components/schemas/PipelineBranchesitemlatestRun" + }, + "organization": { + "type": "string" + }, + "pullRequest": { + "$ref": "#/components/schemas/PipelineBranchesitempullRequest" + }, + "totalNumberOfPullRequests": { + "type": "integer" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineBranches": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineBranchesitem" + } + }, + "FavoriteImpllinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineImpllinks": { + "type": "object", + "properties": { + "runs": { + "$ref": "#/components/schemas/Link" + }, + "self": { + "$ref": "#/components/schemas/Link" + }, + "queue": { + "$ref": "#/components/schemas/Link" + }, + "actions": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "FavoriteImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/FavoriteImpllinks" + }, + "item": { + "$ref": "#/components/schemas/PipelineImpl" + } + } + }, + "PipelineFolderImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "numberOfFolders": { + "type": "integer" + }, + "numberOfPipelines": { + "type": "integer" + } + } + }, + "QueueItemImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "expectedBuildNumber": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "queuedTime": { + "type": "integer" + } + } + }, + "PipelineQueue": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueItemImpl" + } + }, + "PipelineRunartifacts": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineRun": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineRunartifacts" + } + }, + "durationInMillis": { + "type": "integer" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "enQueueTime": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "id": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "result": { + "type": "string" + }, + "runSummary": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "state": { + "type": "string" + }, + "type": { + "type": "string" + }, + "commitId": { + "type": "string" + } + } + }, + "PipelineStepImpllinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "actions": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "InputStepImpllinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "InputStepImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/InputStepImpllinks" + }, + "id": { + "type": "string" + }, + "message": { + "type": "string" + }, + "ok": { + "type": "string" + }, + "parameters": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StringParameterDefinition" + } + }, + "submitter": { + "type": "string" + } + } + }, + "PipelineStepImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/PipelineStepImpllinks" + }, + "displayName": { + "type": "string" + }, + "durationInMillis": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "input": { + "$ref": "#/components/schemas/InputStepImpl" + }, + "result": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "state": { + "type": "string" + } + } + }, + "PipelineRunNodeSteps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineStepImpl" + } + }, + "PipelineRunNodeedges": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineRunNode": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "durationInMillis": { + "type": "integer" + }, + "edges": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineRunNodeedges" + } + }, + "id": { + "type": "string" + }, + "result": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "state": { + "type": "string" + } + } + }, + "PipelineRunNodes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineRunNode" + } + }, + "GenericResource": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "durationInMillis": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "result": { + "type": "string" + }, + "startTime": { + "type": "string" + } + } + }, + "PipelineRunSteps": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GenericResource" + } + }, + "PipelineRuns": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PipelineRun" + } + }, + "Pipelines": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Pipeline" + } + }, + "GithubScmlinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "GithubScm": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/GithubScmlinks" + }, + "credentialId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "uri": { + "type": "string" + } + } + }, + "GithubContent": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "_class": { + "type": "string" + }, + "repo": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "owner": { + "type": "string" + }, + "path": { + "type": "string" + }, + "base64Data": { + "type": "string" + } + } + }, + "GithubFile": { + "type": "object", + "properties": { + "content": { + "$ref": "#/components/schemas/GithubContent" + }, + "_class": { + "type": "string" + } + } + }, + "GithubRespositoryContainerlinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "GithubRepositorieslinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "GithubRepositorylinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "GithubRepositorypermissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "_class": { + "type": "string" + } + } + }, + "GithubRepository": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/GithubRepositorylinks" + }, + "defaultBranch": { + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + }, + "permissions": { + "$ref": "#/components/schemas/GithubRepositorypermissions" + }, + "private": { + "type": "boolean" + }, + "fullName": { + "type": "string" + } + } + }, + "GithubRepositories": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/GithubRepositorieslinks" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GithubRepository" + } + }, + "lastPage": { + "type": "integer" + }, + "nextPage": { + "type": "integer" + }, + "pageSize": { + "type": "integer" + } + } + }, + "GithubRespositoryContainer": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/GithubRespositoryContainerlinks" + }, + "repositories": { + "$ref": "#/components/schemas/GithubRepositories" + } + } + }, + "GithubOrganizationlinks": { + "type": "object", + "properties": { + "repositories": { + "$ref": "#/components/schemas/Link" + }, + "self": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "GithubOrganization": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/GithubOrganizationlinks" + }, + "jenkinsOrganizationPipeline": { + "type": "boolean" + }, + "name": { + "type": "string" + } + } + }, + "ScmOrganisations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GithubOrganization" + } + }, + "User": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "id": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "BranchImpllinks": { + "type": "object", + "properties": { + "self": { + "$ref": "#/components/schemas/Link" + }, + "actions": { + "$ref": "#/components/schemas/Link" + }, + "runs": { + "$ref": "#/components/schemas/Link" + }, + "queue": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineRunImpllinks": { + "type": "object", + "properties": { + "nodes": { + "$ref": "#/components/schemas/Link" + }, + "log": { + "$ref": "#/components/schemas/Link" + }, + "self": { + "$ref": "#/components/schemas/Link" + }, + "actions": { + "$ref": "#/components/schemas/Link" + }, + "steps": { + "$ref": "#/components/schemas/Link" + }, + "_class": { + "type": "string" + } + } + }, + "PipelineRunImpl": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "_links": { + "$ref": "#/components/schemas/PipelineRunImpllinks" + }, + "durationInMillis": { + "type": "integer" + }, + "enQueueTime": { + "type": "string" + }, + "endTime": { + "type": "string" + }, + "estimatedDurationInMillis": { + "type": "integer" + }, + "id": { + "type": "string" + }, + "organization": { + "type": "string" + }, + "pipeline": { + "type": "string" + }, + "result": { + "type": "string" + }, + "runSummary": { + "type": "string" + }, + "startTime": { + "type": "string" + }, + "state": { + "type": "string" + }, + "type": { + "type": "string" + }, + "commitId": { + "type": "string" + } + } + }, + "UserFavorites": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FavoriteImpl" + } + }, + "Users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } + } + } + }, + "security": [ + { + "jenkins_auth": [] + } + ] +} diff --git a/Jenkins/OpenAPIs/jenkins-latest.json b/Jenkins/OpenAPIs/jenkins-latest.json new file mode 100644 index 0000000..2a07d35 --- /dev/null +++ b/Jenkins/OpenAPIs/jenkins-latest.json @@ -0,0 +1,1606 @@ +{ + "openapi": "3.1.0", + "info": { + "title": "Jenkins", + "description": "Jenkins is an open source automation server used to build, test, and deploy software. This spec covers Jenkins' classic remote access API for managing jobs, builds, the build queue, views, and agent/computer status.", + "version": "latest", + "x-vendor-api-version": "3.4.1-pre.0", + "x-itential-curated": "Trimmed to 21 of 58 upstream operations covering job CRUD, build trigger/status/console output, the build queue, view CRUD, computer/agent status, and CSRF crumb retrieval. See the repo README for the full scope and the full spec." + }, + "servers": [ + { + "url": "https://{host}", + "variables": { + "host": { + "default": "jenkins.example.com" + } + } + } + ], + "paths": { + "/api/json": { + "head": { + "description": "Retrieve Jenkins headers", + "operationId": "headJenkins", + "responses": { + "200": { + "description": "Successfully retrieved Jenkins headers", + "headers": { + "x-jenkins": { + "description": "Jenkins version number", + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + }, + "get": { + "description": "Retrieve Jenkins details", + "operationId": "getJenkins", + "responses": { + "200": { + "description": "Successfully retrieved Jenkins details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Hudson" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/computer/api/json": { + "get": { + "description": "Retrieve computer details", + "operationId": "getComputer", + "parameters": [ + { + "name": "depth", + "description": "Recursion depth in response model", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved computer details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComputerSet" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/createItem": { + "post": { + "description": "Create a new job using job configuration, or copied from an existing job", + "operationId": "postCreateItem", + "parameters": [ + { + "name": "name", + "description": "Name of the new job", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "from", + "description": "Existing job to copy from", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "mode", + "description": "Set to 'copy' for copying an existing job", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/crumb" + }, + { + "name": "Content-Type", + "description": "Content type header application/xml", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully created a new job" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "Job configuration in config.xml format" + } + } + }, + "/createView": { + "post": { + "description": "Create a new view using view configuration", + "operationId": "postCreateView", + "parameters": [ + { + "name": "name", + "description": "Name of the new view", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/crumb" + }, + { + "name": "Content-Type", + "description": "Content type header application/xml", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully created the view" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "View configuration in config.xml format" + } + } + }, + "/crumbIssuer/api/json": { + "get": { + "description": "Retrieve CSRF protection token", + "operationId": "getCrumb", + "responses": { + "200": { + "description": "Successfully retrieved CSRF protection token", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DefaultCrumbIssuer" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "base" + ] + } + }, + "/job/{name}/api/json": { + "get": { + "description": "Retrieve job details", + "operationId": "getJob", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FreeStyleProject" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/build": { + "post": { + "description": "Build a job", + "operationId": "postJobBuild", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "name": "json", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "name": "token", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully built the job (backward compatibility for older versions of Jenkins)" + }, + "201": { + "description": "Successfully built the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/config.xml": { + "get": { + "description": "Retrieve job configuration", + "operationId": "getJobConfig", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job configuration in config.xml format", + "content": { + "text/xml": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + }, + "post": { + "description": "Update job configuration", + "operationId": "postJobConfig", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job configuration in config.xml format" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "Job configuration in config.xml format", + "required": true + } + } + }, + "/job/{name}/doDelete": { + "post": { + "description": "Delete a job", + "operationId": "postJobDelete", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully deleted the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/disable": { + "post": { + "description": "Disable a job", + "operationId": "postJobDisable", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully disabled the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/enable": { + "post": { + "description": "Enable a job", + "operationId": "postJobEnable", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully enabled the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/lastBuild/api/json": { + "get": { + "description": "Retrieve job's last build details", + "operationId": "getJobLastBuild", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job's last build details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FreeStyleBuild" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/lastBuild/stop": { + "post": { + "description": "Stop a job", + "operationId": "postJobLastBuildStop", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully stopped the job" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/job/{name}/{number}/logText/progressiveText": { + "get": { + "description": "Retrieve job's build progressive text output", + "operationId": "getJobProgressiveText", + "parameters": [ + { + "$ref": "#/components/parameters/jobName" + }, + { + "name": "number", + "description": "Build number", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "start", + "description": "Starting point of progressive text output", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved job's build progressive text output" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/jobNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/queue/api/json": { + "get": { + "description": "Retrieve queue details", + "operationId": "getQueue", + "responses": { + "200": { + "description": "Successfully retrieved queue details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Queue" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/queue/item/{number}/api/json": { + "get": { + "description": "Retrieve queued item details", + "operationId": "getQueueItem", + "parameters": [ + { + "name": "number", + "description": "Queue number", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Successfully retrieved queued item details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Queue" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/view/{name}/api/json": { + "get": { + "description": "Retrieve view details", + "operationId": "getView", + "parameters": [ + { + "$ref": "#/components/parameters/viewName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved view details", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListView" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/viewNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + } + }, + "/view/{name}/config.xml": { + "get": { + "description": "Retrieve view configuration", + "operationId": "getViewConfig", + "parameters": [ + { + "$ref": "#/components/parameters/viewName" + } + ], + "responses": { + "200": { + "description": "Successfully retrieved view configuration in config.xml format", + "content": { + "text/xml": { + "schema": { + "type": "string" + } + } + } + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/viewNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ] + }, + "post": { + "description": "Update view configuration", + "operationId": "postViewConfig", + "parameters": [ + { + "$ref": "#/components/parameters/viewName" + }, + { + "$ref": "#/components/parameters/crumb" + } + ], + "responses": { + "200": { + "description": "Successfully updated view configuration" + }, + "400": { + "$ref": "#/components/responses/errorInHtml" + }, + "401": { + "$ref": "#/components/responses/unauthorized" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/viewNotFound" + } + }, + "security": [ + { + "jenkins_auth": [] + } + ], + "tags": [ + "remoteAccess" + ], + "requestBody": { + "content": { + "application/xml": { + "schema": { + "type": "string" + } + } + }, + "description": "View configuration in config.xml format", + "required": true + } + } + } + }, + "components": { + "securitySchemes": { + "jenkins_auth": { + "type": "http", + "scheme": "basic" + } + }, + "schemas": { + "Label1": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "CauseUserIdCause": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "shortDescription": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "userName": { + "type": "string" + } + } + }, + "FreeStyleBuild": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "number": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CauseAction" + } + }, + "building": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "duration": { + "type": "integer" + }, + "estimatedDuration": { + "type": "integer" + }, + "executor": { + "type": "string" + }, + "fullDisplayName": { + "type": "string" + }, + "id": { + "type": "string" + }, + "keepLog": { + "type": "boolean" + }, + "queueId": { + "type": "integer" + }, + "result": { + "type": "string" + }, + "timestamp": { + "type": "integer" + }, + "builtOn": { + "type": "string" + }, + "changeSet": { + "$ref": "#/components/schemas/EmptyChangeLogSet" + } + } + }, + "NullSCM": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "Queue": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/QueueBlockedItem" + } + } + } + }, + "ClockDifference": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "diff": { + "type": "integer" + } + } + }, + "Hudson": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "assignedLabels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HudsonassignedLabels" + } + }, + "mode": { + "type": "string" + }, + "nodeDescription": { + "type": "string" + }, + "nodeName": { + "type": "string" + }, + "numExecutors": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProject" + } + }, + "primaryView": { + "$ref": "#/components/schemas/AllView" + }, + "quietingDown": { + "type": "boolean" + }, + "slaveAgentPort": { + "type": "integer" + }, + "unlabeledLoad": { + "$ref": "#/components/schemas/UnlabeledLoadStatistics" + }, + "useCrumbs": { + "type": "boolean" + }, + "useSecurity": { + "type": "boolean" + }, + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AllView" + } + } + } + }, + "UnlabeledLoadStatistics": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "ComputerSet": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "busyExecutors": { + "type": "integer" + }, + "computer": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HudsonMasterComputer" + } + }, + "displayName": { + "type": "string" + }, + "totalExecutors": { + "type": "integer" + } + } + }, + "HudsonMasterComputer": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "executors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/HudsonMasterComputerexecutors" + } + }, + "icon": { + "type": "string" + }, + "iconClassName": { + "type": "string" + }, + "idle": { + "type": "boolean" + }, + "jnlpAgent": { + "type": "boolean" + }, + "launchSupported": { + "type": "boolean" + }, + "loadStatistics": { + "$ref": "#/components/schemas/Label1" + }, + "manualLaunchAllowed": { + "type": "boolean" + }, + "monitorData": { + "$ref": "#/components/schemas/HudsonMasterComputermonitorData" + }, + "numExecutors": { + "type": "integer" + }, + "offline": { + "type": "boolean" + }, + "offlineCause": { + "type": "string" + }, + "offlineCauseReason": { + "type": "string" + }, + "temporarilyOffline": { + "type": "boolean" + } + } + }, + "HudsonMasterComputermonitorData": { + "type": "object", + "properties": { + "hudson.node_monitors.SwapSpaceMonitor": { + "$ref": "#/components/schemas/SwapSpaceMonitorMemoryUsage2" + }, + "hudson.node_monitors.TemporarySpaceMonitor": { + "$ref": "#/components/schemas/DiskSpaceMonitorDescriptorDiskSpace" + }, + "hudson.node_monitors.DiskSpaceMonitor": { + "$ref": "#/components/schemas/DiskSpaceMonitorDescriptorDiskSpace" + }, + "hudson.node_monitors.ArchitectureMonitor": { + "type": "string" + }, + "hudson.node_monitors.ResponseTimeMonitor": { + "$ref": "#/components/schemas/ResponseTimeMonitorData" + }, + "hudson.node_monitors.ClockMonitor": { + "$ref": "#/components/schemas/ClockDifference" + }, + "_class": { + "type": "string" + } + } + }, + "FreeStyleProjecthealthReport": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "iconClassName": { + "type": "string" + }, + "iconUrl": { + "type": "string" + }, + "score": { + "type": "integer" + }, + "_class": { + "type": "string" + } + } + }, + "ResponseTimeMonitorData": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "timestamp": { + "type": "integer" + }, + "average": { + "type": "integer" + } + } + }, + "CauseAction": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "causes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CauseUserIdCause" + } + } + } + }, + "FreeStyleProjectactions": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "FreeStyleProject": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "color": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProjectactions" + } + }, + "description": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayNameOrNull": { + "type": "string" + }, + "fullDisplayName": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "buildable": { + "type": "boolean" + }, + "builds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleBuild" + } + }, + "firstBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "healthReport": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProjecthealthReport" + } + }, + "inQueue": { + "type": "boolean" + }, + "keepDependencies": { + "type": "boolean" + }, + "lastBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastCompletedBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastFailedBuild": { + "type": "string" + }, + "lastStableBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastSuccessfulBuild": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "lastUnstableBuild": { + "type": "string" + }, + "lastUnsuccessfulBuild": { + "type": "string" + }, + "nextBuildNumber": { + "type": "integer" + }, + "queueItem": { + "type": "string" + }, + "concurrentBuild": { + "type": "boolean" + }, + "scm": { + "$ref": "#/components/schemas/NullSCM" + } + } + }, + "SwapSpaceMonitorMemoryUsage2": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "availablePhysicalMemory": { + "type": "integer" + }, + "availableSwapSpace": { + "type": "integer" + }, + "totalPhysicalMemory": { + "type": "integer" + }, + "totalSwapSpace": { + "type": "integer" + } + } + }, + "DiskSpaceMonitorDescriptorDiskSpace": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "timestamp": { + "type": "integer" + }, + "path": { + "type": "string" + }, + "size": { + "type": "integer" + } + } + }, + "AllView": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + }, + "HudsonMasterComputerexecutors": { + "type": "object", + "properties": { + "currentExecutable": { + "$ref": "#/components/schemas/FreeStyleBuild" + }, + "idle": { + "type": "boolean" + }, + "likelyStuck": { + "type": "boolean" + }, + "number": { + "type": "integer" + }, + "progress": { + "type": "integer" + }, + "_class": { + "type": "string" + } + } + }, + "HudsonassignedLabels": { + "type": "object", + "properties": { + "_class": { + "type": "string" + } + } + }, + "QueueBlockedItem": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "actions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CauseAction" + } + }, + "blocked": { + "type": "boolean" + }, + "buildable": { + "type": "boolean" + }, + "id": { + "type": "integer" + }, + "inQueueSince": { + "type": "integer" + }, + "params": { + "type": "string" + }, + "stuck": { + "type": "boolean" + }, + "task": { + "$ref": "#/components/schemas/FreeStyleProject" + }, + "url": { + "type": "string" + }, + "why": { + "type": "string" + }, + "buildableStartMilliseconds": { + "type": "integer" + } + } + }, + "EmptyChangeLogSet": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "kind": { + "type": "string" + } + } + }, + "DefaultCrumbIssuer": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "crumb": { + "type": "string" + }, + "crumbRequestField": { + "type": "string" + } + } + }, + "ListView": { + "type": "object", + "properties": { + "_class": { + "type": "string" + }, + "description": { + "type": "string" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FreeStyleProject" + } + }, + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + } + } + }, + "parameters": { + "viewName": { + "name": "name", + "description": "Name of the view", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "jobName": { + "name": "name", + "description": "Name of the job", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + "crumb": { + "name": "Jenkins-Crumb", + "description": "CSRF protection token", + "in": "header", + "required": false, + "schema": { + "type": "string" + } + } + }, + "responses": { + "jobNotFound": { + "description": "Job cannot be found on Jenkins instance" + }, + "viewNotFound": { + "description": "View cannot be found on Jenkins instance" + }, + "errorInHtml": { + "description": "An error has occurred - error message is embedded inside the HTML response", + "content": { + "*/*": { + "schema": { + "type": "string" + } + } + } + }, + "unauthorized": { + "description": "Authentication failed - incorrect username and/or password" + }, + "forbidden": { + "description": "Jenkins requires authentication - please set username and password" + } + } + }, + "security": [ + { + "jenkins_auth": [] + } + ] +} diff --git a/Jenkins/README.md b/Jenkins/README.md new file mode 100644 index 0000000..d6a1b35 --- /dev/null +++ b/Jenkins/README.md @@ -0,0 +1,107 @@ +# Jenkins + +Jenkins is an open source automation server used to build, test, and deploy software through user-defined jobs and pipelines, run on a controller with optional distributed build agents. + +## Table of Contents + +- [Contents](#contents) +- [Requirements](#requirements) +- [Integration Configuration](#integration-configuration) +- [OpenAPIs](#openapis) + - [`jenkins-latest.json`](#jenkins-latestjson) + - [`jenkins-3.4.1-pre.0.json`](#jenkins-341-pre0json) +- [Studio Projects](#studio-projects) + - [Jenkins Project](#jenkins-project) + - [Folder Structure](#folder-structure) + - [Dependencies](#dependencies) + +## Contents + +| Asset | Description | +|---|---| +| [OpenAPIs/](./OpenAPIs/) | Jenkins remote access API OpenAPI specs — curated `-latest` plus the full dated spec | +| [Studio Projects/Jenkins](./Studio%20Projects/Jenkins.project.json) | 21 workflows covering common CRUD automation | + +## Requirements + +| Requirement | Version | +|---|---| +| Itential Platform | 6.x | +| Jenkins | LTS (remote access API is stable across recent LTS lines) | +| `Jenkins:latest` Integration Model | Required to build automation against the OpenAPI spec | + +## Integration Configuration + +Import the OpenAPI spec from `OpenAPIs/` as an Integration Model in **Admin > Integrations**, then create an integration pointing at your Jenkins controller. + +Authentication is HTTP Basic using your Jenkins username and an API token (not your account password). Generate a token from your Jenkins user profile under **Configure > API Token**. + +The instance's `authentication`/`server` properties should look like this once configured: + +```json +{ + "authentication": { + "jenkins_auth": { + "username": "", + "password": "" + } + }, + "server": { + "protocol": "https", + "host": "jenkins.example.com", + "base_path": "" + } +} +``` + +Replace `jenkins.example.com` with your own Jenkins controller hostname. + +## OpenAPIs + +Jenkins itself publishes no official OpenAPI/Swagger spec or automated REST API documentation. Both specs here are derived from [`swaggy-jenkins`](https://github.com/oapicf/swaggy-jenkins), a community-maintained OpenAPI description of Jenkins' remote access API under the OpenAPI Generator Community Foundation. + +| Spec | Version | Operations | Description | +|---|---|---|---| +| [`jenkins-latest.json`](./OpenAPIs/jenkins-latest.json) | latest (curated) | 21 | Actively-maintained spec, trimmed to 21 of 58 upstream operations — see breakdown below | +| [`jenkins-3.4.1-pre.0.json`](./OpenAPIs/jenkins-3.4.1-pre.0.json) | 3.4.1-pre.0 | 58 | Full spec, including the Blue Ocean REST API (58 operations) | + +### `jenkins-latest.json` + +Actively-maintained spec (`x-vendor-api-version: 3.4.1-pre.0`). Trimmed to 21 of 58 upstream operations covering common CRUD for automation. + +Resources included, by category: + +- **System**: Get Headers, Get Details, Get CSRF Crumb +- **Nodes and Agents**: Get Computer / Agent Status +- **Jobs**: Get, Create, Get Configuration, Update Configuration, Delete, Disable, Enable +- **Builds**: Trigger, Get Last Build, Stop Last Build, Get Console Output +- **Queue**: Get Queue, Get Queue Item +- **Views**: Create, Get, Get Configuration, Update Configuration + +### `jenkins-3.4.1-pre.0.json` + +Full, unmodified vendor-sourced spec (58 operations) — the complete `swaggy-jenkins` surface, including Blue Ocean. See `jenkins-latest.json` above for the curated subset if you just need common CRUD automation. + +## Studio Projects + +### Jenkins Project + +Backed by the **`Jenkins:latest`** Integration Model (see [`jenkins-latest.json`](./OpenAPIs/jenkins-latest.json) above). The project contains **21 workflows** organized into **6 folders**, one atomic workflow per API operation, covering the common-CRUD subset of the curated spec. + +#### Folder Structure + +| Folder | Workflows | Scope | +|---|---|---| +| System | Get Jenkins Headers, Get Jenkins Details, Get CSRF Crumb | Instance-level info and CSRF crumb retrieval | +| Nodes and Agents | Get Computer / Agent Status | Agent/node status | +| Jobs | Get, Create, Get Configuration, Update Configuration, Delete, Disable, Enable Job | Job CRUD | +| Builds | Trigger, Get Last Build, Stop Last Build, Get Console Output | Build lifecycle | +| Queue | Get Queue, Get Queue Item | Build queue | +| Views | Create, Get, Get Configuration, Update Configuration View | View CRUD | + +#### Dependencies + +| Dependency | Notes | +|---|---| +| `Jenkins:latest` Integration Model | Import from [`jenkins-latest.json`](./OpenAPIs/jenkins-latest.json) before importing the project | +| `Jenkins` integration instance | Create in **Admin > Integrations** with the connection properties above. Workflows are wired to an integration instance named `Jenkins` — update the `adapter_id` value in each workflow task if yours is named differently | diff --git a/Jenkins/Studio Projects/Jenkins.project.json b/Jenkins/Studio Projects/Jenkins.project.json new file mode 100644 index 0000000..4cc4239 --- /dev/null +++ b/Jenkins/Studio Projects/Jenkins.project.json @@ -0,0 +1,2738 @@ +{ + "_id": "24fda3c6c3fb46b6a4e627aa", + "name": "Jenkins", + "description": "Jenkins automation: job CRUD, build trigger/status/console output, build queue, views, and node/agent status", + "components": [ + { + "iid": 0, + "reference": "d3ac8564-e16a-431e-a09e-d3f63b56c998", + "type": "workflow", + "folder": "/System", + "document": { + "name": "Get Jenkins Headers", + "description": "Retrieve Jenkins headers (version info)", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "headJenkins", + "canvasName": "headJenkins", + "summary": "headJenkins", + "description": "Retrieve Jenkins headers (version info)", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": {}, + "required": [] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "0d0c6624-ae31-4ec8-be74-27e743d6d41c", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 1, + "reference": "7c9bc075-1baa-4b00-b491-7d945d6663ee", + "type": "workflow", + "folder": "/System", + "document": { + "name": "Get Jenkins Details", + "description": "Retrieve Jenkins instance details", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getJenkins", + "canvasName": "getJenkins", + "summary": "getJenkins", + "description": "Retrieve Jenkins instance details", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": {}, + "required": [] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "17d2e7df-1a06-401e-8759-70d40a77abf1", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 2, + "reference": "e1851400-0b7f-4328-bae2-6ecfa3b762cf", + "type": "workflow", + "folder": "/System", + "document": { + "name": "Get CSRF Crumb", + "description": "Retrieve a CSRF protection crumb for use on subsequent POST requests", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getCrumb", + "canvasName": "getCrumb", + "summary": "getCrumb", + "description": "Retrieve a CSRF protection crumb for use on subsequent POST requests", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": {}, + "required": [] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "c2c886c6-d138-42ce-85ad-16046dd5d44f", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 3, + "reference": "14be2807-438e-4d6e-b6ca-b66b40db630a", + "type": "workflow", + "folder": "/Nodes and Agents", + "document": { + "name": "Get Computer / Agent Status", + "description": "Retrieve computer (agent/node) details", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getComputer", + "canvasName": "getComputer", + "summary": "getComputer", + "description": "Retrieve computer (agent/node) details", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "depth": "$var.job.depth" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "depth": { + "type": "string", + "description": "Recursion depth in response model" + } + }, + "required": [ + "depth" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "0c49d5e0-997c-4eab-af96-0074e808e5f4", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 4, + "reference": "e07c0aec-c2f2-420b-8ce8-fa22993bb95b", + "type": "workflow", + "folder": "/Jobs", + "document": { + "name": "Get Job", + "description": "Retrieve job details", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getJob", + "canvasName": "getJob", + "summary": "getJob", + "description": "Retrieve job details", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "b48d788c-5c09-427e-b571-5821558761c6", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 5, + "reference": "dcbf2998-b06d-4fa2-9e51-2172c9829321", + "type": "workflow", + "folder": "/Jobs", + "document": { + "name": "Create Job", + "description": "Create a new job using job configuration, or copied from an existing job", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postCreateItem", + "canvasName": "postCreateItem", + "summary": "postCreateItem", + "description": "Create a new job using job configuration, or copied from an existing job", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "from": "$var.job.from", + "mode": "$var.job.mode", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb", + "bodyContentType": "application/xml", + "requestBodyPayload": "$var.job.requestBody" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the new job" + }, + "from": { + "type": "string", + "description": "Existing job to copy from" + }, + "mode": { + "type": "string", + "description": "Set to 'copy' for copying an existing job" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + }, + "requestBody": { + "type": "string", + "description": "Request body (config.xml format)" + } + }, + "required": [ + "name", + "requestBody" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "92e426e9-d799-4308-9c78-5343a865263f", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 6, + "reference": "386373a0-80fd-44e6-9e19-5553f26f8e72", + "type": "workflow", + "folder": "/Jobs", + "document": { + "name": "Get Job Configuration", + "description": "Retrieve job configuration in config.xml format", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getJobConfig", + "canvasName": "getJobConfig", + "summary": "getJobConfig", + "description": "Retrieve job configuration in config.xml format", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "8764be4d-6040-43f7-900b-d75c5ddaf93e", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 7, + "reference": "d945bc25-94f7-43b6-8b75-48659373fa39", + "type": "workflow", + "folder": "/Jobs", + "document": { + "name": "Update Job Configuration", + "description": "Update job configuration in config.xml format", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postJobConfig", + "canvasName": "postJobConfig", + "summary": "postJobConfig", + "description": "Update job configuration in config.xml format", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb", + "bodyContentType": "application/xml", + "requestBodyPayload": "$var.job.requestBody" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + }, + "requestBody": { + "type": "string", + "description": "Request body (config.xml format)" + } + }, + "required": [ + "name", + "requestBody" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "4e8ed93b-5268-4913-97df-fb840b3aae2e", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 8, + "reference": "d9d2d347-af59-4f86-86b8-fbd409409e31", + "type": "workflow", + "folder": "/Jobs", + "document": { + "name": "Delete Job", + "description": "Delete a job", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postJobDelete", + "canvasName": "postJobDelete", + "summary": "postJobDelete", + "description": "Delete a job", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "4e38f193-337e-4a3e-a525-1e59e7a63b84", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 9, + "reference": "327bc6e5-7dd0-44d2-9a2a-3df04a0fd561", + "type": "workflow", + "folder": "/Jobs", + "document": { + "name": "Disable Job", + "description": "Disable a job", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postJobDisable", + "canvasName": "postJobDisable", + "summary": "postJobDisable", + "description": "Disable a job", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "685025c9-2163-4e64-95dd-f4039962e130", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 10, + "reference": "7c2366d9-84e8-4192-8db7-bb090a155f42", + "type": "workflow", + "folder": "/Jobs", + "document": { + "name": "Enable Job", + "description": "Enable a job", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postJobEnable", + "canvasName": "postJobEnable", + "summary": "postJobEnable", + "description": "Enable a job", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "d500f09e-c450-424f-a9f3-b361d3270f3d", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 11, + "reference": "109d134d-33e6-46b9-80cd-d6ea74d470f4", + "type": "workflow", + "folder": "/Builds", + "document": { + "name": "Trigger Build", + "description": "Trigger a build for a job", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postJobBuild", + "canvasName": "postJobBuild", + "summary": "postJobBuild", + "description": "Trigger a build for a job", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "json": "$var.job.json", + "token": "$var.job.token", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + }, + "json": { + "type": "string", + "description": "JSON-encoded build parameters" + }, + "token": { + "type": "string", + "description": "Authorization token for remote build triggers" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "628b1c73-21e8-41ef-9274-d702405c07fd", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 12, + "reference": "f4181339-d2f7-404c-8f31-faf433323ba7", + "type": "workflow", + "folder": "/Builds", + "document": { + "name": "Get Last Build", + "description": "Retrieve a job's last build details", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getJobLastBuild", + "canvasName": "getJobLastBuild", + "summary": "getJobLastBuild", + "description": "Retrieve a job's last build details", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "f16ae0d2-4a01-47b8-b1ec-8c4c6835cd5a", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 13, + "reference": "b7ed6e64-6387-48e5-bfc5-1a12e8be8448", + "type": "workflow", + "folder": "/Builds", + "document": { + "name": "Stop Last Build", + "description": "Stop a job's currently running build", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postJobLastBuildStop", + "canvasName": "postJobLastBuildStop", + "summary": "postJobLastBuildStop", + "description": "Stop a job's currently running build", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "57c57b13-b332-4304-99d2-8adccd6545d0", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 14, + "reference": "a55cdc11-c90b-4d17-aaca-0597f6821a8b", + "type": "workflow", + "folder": "/Builds", + "document": { + "name": "Get Build Console Output", + "description": "Retrieve a job build's progressive console text output", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getJobProgressiveText", + "canvasName": "getJobProgressiveText", + "summary": "getJobProgressiveText", + "description": "Retrieve a job build's progressive console text output", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "number": "$var.job.number", + "start": "$var.job.start" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the job" + }, + "number": { + "type": "string", + "description": "Build number" + }, + "start": { + "type": "string", + "description": "Starting point of progressive text output" + } + }, + "required": [ + "name", + "number", + "start" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "bc0ae99e-0351-429e-b89b-48da1820ce7d", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 15, + "reference": "d6741cde-ca37-4a0e-b3f4-992666f7398b", + "type": "workflow", + "folder": "/Queue", + "document": { + "name": "Get Queue", + "description": "Retrieve the build queue", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getQueue", + "canvasName": "getQueue", + "summary": "getQueue", + "description": "Retrieve the build queue", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": {}, + "required": [] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "b1aa77e9-13cd-4d2c-a130-f40ea9410dfd", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 16, + "reference": "3f08d416-d9b1-4d59-96f1-bef579868a28", + "type": "workflow", + "folder": "/Queue", + "document": { + "name": "Get Queue Item", + "description": "Retrieve a queued item's details", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getQueueItem", + "canvasName": "getQueueItem", + "summary": "getQueueItem", + "description": "Retrieve a queued item's details", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "number": "$var.job.number" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "number": { + "type": "string", + "description": "Queue item number" + } + }, + "required": [ + "number" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "5ad9c352-7d37-471d-9912-04dc298bbeb7", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 17, + "reference": "073eece4-d213-4e9e-9614-bb6df42cf77d", + "type": "workflow", + "folder": "/Views", + "document": { + "name": "Create View", + "description": "Create a new view using view configuration", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postCreateView", + "canvasName": "postCreateView", + "summary": "postCreateView", + "description": "Create a new view using view configuration", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb", + "bodyContentType": "application/xml", + "requestBodyPayload": "$var.job.requestBody" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the new view" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + }, + "requestBody": { + "type": "string", + "description": "Request body (config.xml format)" + } + }, + "required": [ + "name", + "requestBody" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "3893557c-e13e-44d3-bc17-c3d0ac075d19", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 18, + "reference": "a2f79d24-7c50-49a7-bc33-ac5d04d6f726", + "type": "workflow", + "folder": "/Views", + "document": { + "name": "Get View", + "description": "Retrieve view details", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getView", + "canvasName": "getView", + "summary": "getView", + "description": "Retrieve view details", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the view" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "38bd396a-bcbb-40bf-b462-21a359fb7eec", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 19, + "reference": "c0f2a34c-3180-4043-8f18-b65a20d9fd76", + "type": "workflow", + "folder": "/Views", + "document": { + "name": "Get View Configuration", + "description": "Retrieve view configuration in config.xml format", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "getViewConfig", + "canvasName": "getViewConfig", + "summary": "getViewConfig", + "description": "Retrieve view configuration in config.xml format", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the view" + } + }, + "required": [ + "name" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "7e6622b8-d6e9-40aa-b45d-8a3e1bdfa08e", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + }, + { + "iid": 20, + "reference": "c7f9ec7c-4d59-4ff8-a246-4b7cf75a66d3", + "type": "workflow", + "folder": "/Views", + "document": { + "name": "Update View Configuration", + "description": "Update view configuration in config.xml format", + "type": "automation", + "font_size": 12, + "tasks": { + "workflow_start": { + "name": "workflow_start", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 0 + } + }, + "a1a1": { + "name": "postViewConfig", + "canvasName": "postViewConfig", + "summary": "postViewConfig", + "description": "Update view configuration in config.xml format", + "location": "Adapter", + "locationType": "Jenkins:latest", + "app": "Jenkins:latest", + "type": "automatic", + "displayName": "Jenkins", + "variables": { + "incoming": { + "adapter_id": "Jenkins", + "name": "$var.job.name", + "Jenkins-Crumb": "$var.job.Jenkins-Crumb", + "bodyContentType": "application/xml", + "requestBodyPayload": "$var.job.requestBody" + }, + "outgoing": { + "response": null + }, + "error": "", + "decorators": [] + }, + "groups": [], + "actor": "Pronghorn", + "scheduled": false, + "nodeLocation": { + "x": 264, + "y": 150 + } + }, + "workflow_end": { + "name": "workflow_end", + "groups": [], + "nodeLocation": { + "x": 264, + "y": 300 + } + } + }, + "transitions": { + "workflow_start": { + "a1a1": { + "type": "standard", + "state": "success" + } + }, + "a1a1": { + "workflow_end": { + "type": "standard", + "state": "success" + } + }, + "workflow_end": {} + }, + "inputSchema": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "Name of the view" + }, + "Jenkins-Crumb": { + "type": "string", + "description": "CSRF protection token" + }, + "requestBody": { + "type": "string", + "description": "Request body (config.xml format)" + } + }, + "required": [ + "name", + "requestBody" + ] + }, + "outputSchema": { + "type": "object", + "properties": { + "_id": { + "type": "string", + "pattern": "^[0-9a-f]{24}$" + }, + "initiator": { + "type": "string" + } + } + }, + "last_updated": "2026-09-14T00:00:00.000Z", + "last_updated_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "lastUpdatedVersion": "6.4.0", + "uuid": "6744cb48-b205-42e4-be01-8e137cda7fa9", + "created": "2026-09-14T00:00:00.000Z", + "created_by": { + "provenance": "LDAP", + "username": "admin@itential", + "firstname": "admin@itential", + "inactive": false + }, + "createdVersion": "6.4.0", + "scenarios": [], + "canvasVersion": 3, + "tags": [], + "groups": [], + "migrationVersion": 8 + } + } + ], + "folders": [ + { + "nodeType": "folder", + "name": "System", + "children": [ + { + "iid": 0, + "nodeType": "component" + }, + { + "iid": 1, + "nodeType": "component" + }, + { + "iid": 2, + "nodeType": "component" + } + ] + }, + { + "nodeType": "folder", + "name": "Nodes and Agents", + "children": [ + { + "iid": 3, + "nodeType": "component" + } + ] + }, + { + "nodeType": "folder", + "name": "Jobs", + "children": [ + { + "iid": 4, + "nodeType": "component" + }, + { + "iid": 5, + "nodeType": "component" + }, + { + "iid": 6, + "nodeType": "component" + }, + { + "iid": 7, + "nodeType": "component" + }, + { + "iid": 8, + "nodeType": "component" + }, + { + "iid": 9, + "nodeType": "component" + }, + { + "iid": 10, + "nodeType": "component" + } + ] + }, + { + "nodeType": "folder", + "name": "Builds", + "children": [ + { + "iid": 11, + "nodeType": "component" + }, + { + "iid": 12, + "nodeType": "component" + }, + { + "iid": 13, + "nodeType": "component" + }, + { + "iid": 14, + "nodeType": "component" + } + ] + }, + { + "nodeType": "folder", + "name": "Queue", + "children": [ + { + "iid": 15, + "nodeType": "component" + }, + { + "iid": 16, + "nodeType": "component" + } + ] + }, + { + "nodeType": "folder", + "name": "Views", + "children": [ + { + "iid": 17, + "nodeType": "component" + }, + { + "iid": 18, + "nodeType": "component" + }, + { + "iid": 19, + "nodeType": "component" + }, + { + "iid": 20, + "nodeType": "component" + } + ] + } + ], + "createdBy": { + "_id": "be9af2a600904e04b9be566e", + "provenance": "LDAP", + "username": "admin@itential" + }, + "lastUpdatedBy": { + "_id": "37761415915241dbab35b8d5", + "provenance": "LDAP", + "username": "admin@itential" + }, + "created": "2026-09-14T00:00:00.000Z", + "lastUpdated": "2026-09-14T00:00:00.000Z", + "iid": 21, + "thumbnail": "", + "backgroundColor": "", + "referencedComponentHashes": [] +} diff --git a/README.md b/README.md index 2313c2c..44e92b4 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,7 @@ Assets are organized by vendor and product. Each folder may contain one or more | **Infoblox** | NIOS WAPI · Threat Defense BloxOne · Universal DDI BloxOne | | **IP Fabric** | Network intelligence | | **Itential** | Platform automation (self-service) | +| **Jenkins** | Jenkins | | **JFrog** | Artifactory | | **Juniper** | JUNOS · Mist | | **Kentik** | Network observability | From a98a50392cfb8c5e8194b78e69278618c1efa41e Mon Sep 17 00:00:00 2001 From: Michael Elrom Date: Mon, 14 Sep 2026 11:55:54 -0400 Subject: [PATCH 2/2] fix(jenkins): use capture-date stand-in for x-vendor-api-version Presenting swaggy-jenkins' own release tag as x-vendor-api-version read as if it were a real Jenkins product version. Jenkins doesn't version its REST API, so use a capture date instead, matching the EasyPost precedent for vendors with no genuine API version string. Re-verified both imports against a live Itential Platform instance. --- ...enkins-3.4.1-pre.0.json => jenkins-2026-09-14.json} | 5 +++-- Jenkins/OpenAPIs/jenkins-latest.json | 4 ++-- Jenkins/README.md | 10 +++++----- 3 files changed, 10 insertions(+), 9 deletions(-) rename Jenkins/OpenAPIs/{jenkins-3.4.1-pre.0.json => jenkins-2026-09-14.json} (99%) diff --git a/Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json b/Jenkins/OpenAPIs/jenkins-2026-09-14.json similarity index 99% rename from Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json rename to Jenkins/OpenAPIs/jenkins-2026-09-14.json index e6baf89..6a65f87 100644 --- a/Jenkins/OpenAPIs/jenkins-3.4.1-pre.0.json +++ b/Jenkins/OpenAPIs/jenkins-2026-09-14.json @@ -3,7 +3,8 @@ "info": { "title": "Jenkins", "description": "Jenkins is an open source automation server used to build, test, and deploy software. This spec covers Jenkins' classic remote access API for managing jobs, builds, the build queue, views, and agent/computer status.", - "version": "3.4.1-pre.0" + "version": "3.4.1-pre.0", + "x-vendor-api-version": "2026-09-14" }, "servers": [ { @@ -4688,4 +4689,4 @@ "jenkins_auth": [] } ] -} +} \ No newline at end of file diff --git a/Jenkins/OpenAPIs/jenkins-latest.json b/Jenkins/OpenAPIs/jenkins-latest.json index 2a07d35..6f7d278 100644 --- a/Jenkins/OpenAPIs/jenkins-latest.json +++ b/Jenkins/OpenAPIs/jenkins-latest.json @@ -4,7 +4,7 @@ "title": "Jenkins", "description": "Jenkins is an open source automation server used to build, test, and deploy software. This spec covers Jenkins' classic remote access API for managing jobs, builds, the build queue, views, and agent/computer status.", "version": "latest", - "x-vendor-api-version": "3.4.1-pre.0", + "x-vendor-api-version": "2026-09-14", "x-itential-curated": "Trimmed to 21 of 58 upstream operations covering job CRUD, build trigger/status/console output, the build queue, view CRUD, computer/agent status, and CSRF crumb retrieval. See the repo README for the full scope and the full spec." }, "servers": [ @@ -1603,4 +1603,4 @@ "jenkins_auth": [] } ] -} +} \ No newline at end of file diff --git a/Jenkins/README.md b/Jenkins/README.md index d6a1b35..1c8f53a 100644 --- a/Jenkins/README.md +++ b/Jenkins/README.md @@ -9,7 +9,7 @@ Jenkins is an open source automation server used to build, test, and deploy soft - [Integration Configuration](#integration-configuration) - [OpenAPIs](#openapis) - [`jenkins-latest.json`](#jenkins-latestjson) - - [`jenkins-3.4.1-pre.0.json`](#jenkins-341-pre0json) + - [`jenkins-2026-09-14.json`](#jenkins-20260914json) - [Studio Projects](#studio-projects) - [Jenkins Project](#jenkins-project) - [Folder Structure](#folder-structure) @@ -63,11 +63,11 @@ Jenkins itself publishes no official OpenAPI/Swagger spec or automated REST API | Spec | Version | Operations | Description | |---|---|---|---| | [`jenkins-latest.json`](./OpenAPIs/jenkins-latest.json) | latest (curated) | 21 | Actively-maintained spec, trimmed to 21 of 58 upstream operations — see breakdown below | -| [`jenkins-3.4.1-pre.0.json`](./OpenAPIs/jenkins-3.4.1-pre.0.json) | 3.4.1-pre.0 | 58 | Full spec, including the Blue Ocean REST API (58 operations) | +| [`jenkins-2026-09-14.json`](./OpenAPIs/jenkins-2026-09-14.json) | 2026-09-14 | 58 | Full spec, including the Blue Ocean REST API (58 operations) | ### `jenkins-latest.json` -Actively-maintained spec (`x-vendor-api-version: 3.4.1-pre.0`). Trimmed to 21 of 58 upstream operations covering common CRUD for automation. +Actively-maintained spec (`x-vendor-api-version: 2026-09-14`). Trimmed to 21 of 58 upstream operations covering common CRUD for automation. Resources included, by category: @@ -78,9 +78,9 @@ Resources included, by category: - **Queue**: Get Queue, Get Queue Item - **Views**: Create, Get, Get Configuration, Update Configuration -### `jenkins-3.4.1-pre.0.json` +### `jenkins-2026-09-14.json` -Full, unmodified vendor-sourced spec (58 operations) — the complete `swaggy-jenkins` surface, including Blue Ocean. See `jenkins-latest.json` above for the curated subset if you just need common CRUD automation. +Full spec (58 operations) — the complete `swaggy-jenkins` surface, including Blue Ocean, captured 2026-09-14. See `jenkins-latest.json` above for the curated subset if you just need common CRUD automation. ## Studio Projects