{
"swagger": "2.0",
"basePath": "/",
"info": {
"version": "1.0",
"title": "External Service for demo bank",
"description": "### External Service for demo bank",
"x-vcap-service-name": "DemoBankRestServices"
},
"securityDefinitions": {
"basicAuth": {
"type": "basic"
}
},
"security": [{
"basicAuth": []
}],
"tags": [{
"name": "DemoBankRestServices"
}],
"paths": {
"/accounts/{accountName}": {
"get": {
"operationId": "getAccount",
"summary": "Retrieves an account",
"description": "Retrieves the account with specific name",
"consumes": ["text/plain"],
"produces": ["application/json"],
"parameters": [{
"name": "accountName",
"in": "path",
"required": true,
"type": "string",
"description": "Name of the account"
}],
"responses": {
"200": {
"description": "The response when system finds an account with given name",
"schema": {
"$ref": "#/definitions/accountDetails"
}
},
"400": {
"description": "Error response if the account name parameter is less than minimum characters",
"schema": {
"$ref": "#/definitions/errorModel"
}
},
"404": {
"description": "Error response if the account is not supported by service or account is not found",
"schema": {
"$ref": "#/definitions/errorModel"
}
}
}
},
"delete": {
"operationId": "DeleteAccount",
"summary": "Deletes an account",
"description": "Deletes the account with specific name",
"consumes": ["text/plain"],
"produces": ["application/json"],
"parameters": [{
"name": "accountName",
"in": "path",
"required": true,
"type": "string",
"description": "Name of the account"
}],
"responses": {
"204": {
"description": "The response when system finds an account with given name",
"schema": {
"type": "string"
}
},
"400": {
"description": "Error response if the account name parameter is less than minimum characters",
"schema": {
"$ref": "#/definitions/errorModel"
}
},
"404": {
"description": "Error response if the account is not supported by service or account is not found",
"schema": {
"$ref": "#/definitions/errorModel"
}
}
}
},
"post": {
"operationId": "addAccount",
"summary": "Add an account",
"description": "Add an account to the database",
"consumes": ["text/plain"],
"produces": ["application/json"],
"parameters": [{
"name": "accountName",
"in": "path",
"required": true,
"type": "string",
"description": "Name of the account"
}, {
"name": "accountType",
"in": "query",
"required": true,
"type": "string",
"description": "The type of account"
}],
"responses": {
"201": {
"description": "The response when the account does not already exist and we can create one",
"schema": {
"$ref": "#/definitions/accountDetails"
}
},
"409": {
"description": "The response when the account already exists and we cannot create one",
"schema": {
"$ref": "#/definitions/accountDetails"
}
},
"400": {
"description": "Error response if the account name parameter is less than minimum characters",
"schema": {
"$ref": "#/definitions/errorModel"
}
},
"404": {
"description": "Error response if the account is not supported by service or account is not found",
"schema": {
"$ref": "#/definitions/errorModel"
}
}
}
},
"put": {
"operationId": "updateAccount",
"summary": "Updates an account",
"description": "Updates the account with specified name",
"consumes": ["text/plain"],
"produces": ["application/json"],
"parameters": [{
"name": "accountName",
"in": "path",
"required": true,
"type": "string",
"description": "Name of the account"
}, {
"name": "accountType",
"in": "query",
"required": true,
"type": "string",
"description": "The type of account"
}],
"responses": {
"200": {
"description": "The response when system finds an account with given name",
"schema": {
"$ref": "#/definitions/accountDetails"
}
},
"400": {
"description": "Error response if the account name parameter is less than minimum characters",
"schema": {
"$ref": "#/definitions/errorModel"
}
},
"404": {
"description": "Error response if the account is not supported by service or account is not found",
"schema": {
"$ref": "#/definitions/errorModel"
}
}
}
}
}
},
"definitions": {
"accountDetails": {
"required": ["id", "name", "type", "availableBal"],
"properties": {
"id": {
"type": "string",
"description": "id"
},
"name": {
"type": "string",
"description": "name"
},
"type": {
"type": "string",
"description": "type"
},
"availableBal": {
"type": "string",
"description": "availableBal"
}
}
},
"errorModel": {
"required": ["errorCode", "errorMessage"],
"properties": {
"errorCode": {
"type": "string",
"description": "A service-specific error code."
},
"errorMessage": {
"type": "string",
"description": "A service-specific error code."
}
}
}
}
}