blob: 8cff0344d494a8cddd2679bdbac0525962549651 [file] [log] [blame] [edit]
# Copyright 2017 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
swagger: '2.0'
info:
version: 0.0.1
title: Edge X Apid Gateway Deploy
contact:
name: Apigee, Inc.
url: http://www.apigee.com/
email: sales@apigee.com
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
basePath: /deployments
schemes:
- http
consumes:
- application/json
produces:
- application/json
paths:
/:
get:
description: Retrieve current deployment system and bundles to install.
parameters:
- name: If-None-Match
in: header
type: string
description: "If request If-None-Match header matches the ETag of deployment, the server returns a 304 Not Modified response indicating that the client already has the most recent bundle list."
- name: block
in: query
type: integer
description: 'If block > 0 AND if there is no new bundle list available, then block for up to the specified number of seconds until a new bundle list becomes available. If no new deployment becomes available, then return 304 Not Modified if If-None-Match is specified.'
responses:
'200':
headers:
ETag:
description: "Client should reuse ETag value in If-None-Match header of the next GET request."
type: string
description: The deployment system and bundles to install.
examples:
application/json: [
{
"id": "1234567890",
"displayName": "abc123",
"created":"1481917061",
"updated":"1481917061",
"createdBy":"mdobs",
"updatedBy":"mdobs",
"scopeId": "ABCDEF",
"uri": "file:///tmp/F1ERRO/0c9853d1ad9b7ec9f7d16ed16ada1be4/archive/369a01f320f926cd8ffac5dfda83b1d8a2129ab3.zip",
"configurationJson": {
"PropA": "scope1bundle1propA",
"PropSCOPE_LEVEL": "aaa",
"PropCLUSTER_LEVEL": "xxx"
}
},
{
"id": "1234567891",
"displayName": "abc123_2",
"created":"1481917061",
"updated":"1481917061",
"createdBy":"mdobs",
"updatedBy":"mdobs",
"scopeId": "ABCDEF",
"uri": "file:///tmp/F1ERRO/0c9853d1ad9b7ec9f7d16ed16ada1be4/archive/369a01f320f926cd8ffac5dfda83b1d8a2129ab3.zip",
"configurationJson": {
"PropA": "scope1bundle2propA",
"PropSCOPE_LEVEL": "aaa",
"PropCLUSTER_LEVEL": "xxx"
}
},
{
"id": "1234567892",
"displayName": "abc1234",
"created":"1481917061",
"updated":"1481917061",
"createdBy":"mdobs",
"updatedBy":"mdobs",
"scopeId": "ABCDEF",
"uri": "file:///tmp/F1ERRO/0c9853d1ad9b7ec9f7d16ed16ada1be4/archive/369a01f320f926cd8ffac5dfda83b1d8a2129ab3.zip",
"configurationJson": {
"PropA": "scope1bundlepropA",
"PropSCOPE_LEVEL": "aaa",
"PropCLUSTER_LEVEL": "xxx"
}
},
{
"id": "1234567893",
"displayName": "abc123",
"created":"1481917061",
"updated":"1481917061",
"createdBy":"mdobs",
"updatedBy":"mdobs",
"scopeId": "EFGHIJK",
"uri": "file:///tmp/F1ERRO/0c9853d1ad9b7ec9f7d16ed16ada1be4/archive/369a01f320f926cd8ffac5dfda83b1d8a2129ab3.zip",
"configurationJson": {
"PropA": "scope2bundle1propA",
"PropSCOPE_LEVEL": "bbb",
"PropCLUSTER_LEVEL": "xxx"
}
},
{
"id": "1234567894",
"displayName": "abc123_2",
"created":"1481917061",
"updated":"1481917061",
"createdBy":"fierrom",
"updatedBy":"fierrom",
"scopeId": "EFGHIJK",
"uri": "file:///tmp/F1ERRO/0c9853d1ad9b7ec9f7d16ed16ada1be4/archive/369a01f320f926cd8ffac5dfda83b1d8a2129ab3.zip",
"configurationJson": {
"PropA": "scope2bundle2propA",
"PropSCOPE_LEVEL": "bbb",
"PropCLUSTER_LEVEL": "xxx"
}
}
]
schema:
$ref: '#/definitions/DeploymentResponse'
'304':
description: Deployment not modified.
put:
description: Save results of deployment
parameters:
- name: _
in: body
required: true
description: Success or failure response
schema:
$ref: '#/definitions/DeploymentResult'
responses:
'200':
description: OK
default:
description: Error response
schema:
$ref: '#/definitions/ErrorResponse'
definitions:
ErrorResponse:
required:
- errorCode
- reason
properties:
errorCode:
type: number
reason:
type: string
example: {
"errorCode": 601,
"reason": "Something's wrong"
}
DeploymentResponse:
type: array
items:
$ref: '#/definitions/DeploymentBundle'
DeploymentBundle:
type: object
required:
- id
- scopeId
- createdBy
- created
- updatedBy
- updated
- displayName
- uri
- configurationJson
properties:
id:
type: string
scopeId:
type: string
createdBy:
type: string
created:
type: number
updatedBy:
type: string
updated:
type: number
displayName:
type: string
uri:
type: string
configurationJson:
type: object
DeploymentResult:
type: array
items:
$ref: '#/definitions/DeploymentBundleResult'
example: [
{
"id": "1234567890",
"status": "SUCCESS"
},
{
"id": "1234567890",
"status": "SUCCESS"
},
{
"id": "1234567890",
"status": "SUCCESS"
}
]
DeploymentBundleResult:
type: object
required:
- id
- status
properties:
id:
type: string
message:
type: string
errorCode:
type: number
status:
type: string
enum:
- "SUCCESS"
- "FAIL"
description: Status of SUCCESS or FAIL plus error
example: {
"id": 1234567890,
"status": "SUCCESS"
}