Cyclops 4 HPC is the purpose built stack to support large HPC centers with resource accounting and billing of cluster as well as cloud resources.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
cyclops-4-hpc/services/eventsengine/swagger.yaml

527 lines
13 KiB

---
swagger: "2.0"
host: "localhost:8000"
basePath: "/api/v1.0"
info:
description: An API which supports creation, deletion, listing etc of Event Engine
version: "1.0.0"
title: Event Engine Management API
contact:
email: diego@cyclops-labs.io
license:
name: Apache 2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
tags:
- name: statusManagement
description: Actions relating to the reporting of the state of the service
- name: triggerManagement
description: Actions relating to the periodics actions to be triggered in the system
- name: eventManagement
description: Actions relating to the adquisition of events in the system
- name: usageManagement
description: Actions relating to the reporting of the usages in the system
securityDefinitions:
APIKeyHeader:
type: apiKey
in: header
name: X-API-KEY
APIKeyParam:
type: apiKey
in: query
name: api_key
Keycloak:
type: oauth2
flow: accessCode
authorizationUrl: 'http://localhost:8080/auth/realms/Dev/protocol/openid-connect/auth'
tokenUrl: 'http://localhost:8080/auth/realms/Dev/protocol/openid-connect/token'
scopes:
admin: Admin scope
user: User scope
schemes:
- http
- https
security:
- Keycloak: [user,admin]
- APIKeyHeader: []
- APIKeyParam: []
paths:
/status:
get:
tags:
- statusManagement
produces:
- application/json
summary: Basic status of the system
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: showStatus
responses:
'200':
description: Status information of the system
schema:
$ref: "#/definitions/Status"
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
/status/{id}:
get:
tags:
- statusManagement
produces:
- application/json
summary: Basic status of the system
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: getStatus
responses:
'200':
description: Status information of the system
schema:
$ref: "#/definitions/Status"
'404':
description: The endpoint provided doesn't exist
schema:
$ref: "#/definitions/ErrorResponse"
parameters:
- name: id
in: path
type: string
enum:
- status
- kafka-receiver
- kafka-sender
- trigger
- usage
- event
required: true
description: Id of the endpoint to be checked
/trigger/sample:
get:
tags:
- triggerManagement
produces:
- application/json
summary: Sample task trigger
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: execSample
responses:
'200':
description: Sample task executed successfully
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
/event:
post:
tags:
- eventManagement
consumes:
- application/json
produces:
- application/json
summary: Takes into the system the provided event
security:
- Keycloak: [admin]
- APIKeyHeader: []
- APIKeyParam: []
operationId: addEvent
responses:
'201':
description: Item added successfully
schema:
$ref: "#/definitions/ItemCreatedResponse"
'400':
description: Invalid input, object invalid
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
parameters:
- name: event
in: body
description: Event to be added to the system
required: true
schema:
$ref: "#/definitions/Event"
/event/history/{account}:
get:
tags:
- eventManagement
produces:
- application/json
summary: Provides the events for the id provided
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: getHistory
responses:
'200':
description: Description of a successfully operation
schema:
type: array
items:
$ref: "#/definitions/Event"
'404':
description: Item not found in the system
schema:
$ref: "#/definitions/ErrorResponse"
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
parameters:
- name: account
in: path
description: Id of the account to be checked
required: true
type: string
- name: from
in: query
description: Datetime from which to get the usage report
type: integer
- name: to
in: query
description: Datetime until which to get the usage report
type: integer
- name: resource
in: query
description: Resource type to filter the usage
type: string
- name: region
in: query
description: Resource region to filter the usage
type: string
/event/status:
get:
tags:
- eventManagement
produces:
- application/json
summary: Provides the list of states in not terminated state
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: listStates
responses:
'200':
description: Description of a successfully operation
schema:
type: array
items:
$ref: "#/definitions/MinimalState"
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
parameters:
- name: resource
in: query
description: Resource type to filter the usage
type: string
- name: region
in: query
description: Resource region to filter the usage
type: string
/event/status/{account}:
get:
tags:
- eventManagement
produces:
- application/json
summary: Provides the events for the id provided
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: getState
responses:
'200':
description: Description of a successfully operation
schema:
type: array
items:
$ref: "#/definitions/State"
'404':
description: Item not found in the system
schema:
$ref: "#/definitions/ErrorResponse"
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
parameters:
- name: account
in: path
description: Id of the account to be checked
required: true
type: string
/usage:
get:
tags:
- usageManagement
produces:
- application/json
summary: Generates an aggregated response by account of the usage recorded in the system during the time-window specified
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: getSystemUsage
responses:
'200':
description: Description of a successfully operation
schema:
type: array
items:
$ref: "#/definitions/Usage"
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
parameters:
- name: from
in: query
description: Datetime from which to get the usage report
type: integer
- name: to
in: query
description: Datetime until which to get the usage report
type: integer
- name: resource
in: query
description: Resource type to filter the usage
type: string
- name: region
in: query
description: Resource region to filter the usage
type: string
/usage/{id}:
get:
tags:
- usageManagement
produces:
- application/json
summary: Generates an aggregated response of the usage recorded in the system during the time-window specified for the selected account
security:
- Keycloak: [user]
- APIKeyHeader: []
- APIKeyParam: []
operationId: getUsage
responses:
'200':
description: Description of a successfully operation
schema:
$ref: "#/definitions/Usage"
'404':
description: Item not found in the system
schema:
$ref: "#/definitions/ErrorResponse"
'500':
description: Something unexpected happend, error raised
schema:
$ref: "#/definitions/ErrorResponse"
parameters:
- name: id
in: path
description: Id of the account to be checked
required: true
type: string
- name: from
in: query
description: Datetime from which to get the usage report
type: integer
- name: to
in: query
description: Datetime until which to get the usage report
type: integer
- name: resource
in: query
description: Resource type to filter the usage
type: string
- name: region
in: query
description: Resource region to filter the usage
type: string
definitions:
ErrorResponse:
type: object
required:
- errorString
properties:
errorString:
type: string
ItemCreatedResponse:
properties:
ApiLink:
type: string
Message:
type: string
Metadata:
type: object
x-go-type:
import:
package: "gitlab.com/cyclops-enterprise/datamodels"
type: JSONdb
Status:
type: object
required:
- SystemState
properties:
AverageResponseTime:
type: number
format: double
DBState:
type: string
LastRequest:
type: string
RequestsBoT:
type: integer
RequestsLastHour:
type: integer
RequestsToday:
type: integer
SystemState:
type: string
Event:
type: object
required:
- EventTime
- LastEvent
properties:
Account:
type: string
x-go-custom-tag: gorm:"index"
EventTime:
type: integer
ID:
type: integer
x-go-custom-tag: gorm:"primary_key;auto_increment"
LastEvent:
type: string
enum:
- active
- error
- inactive
- terminated
- suspended
MetaData:
x-go-custom-tag: gorm:"type:jsonb"
$ref: '#/definitions/Metadata'
Region:
type: string
ResourceId:
type: string
ResourceName:
type: string
ResourceType:
type: string
TimeFrom:
type: integer
x-go-custom-tag: gorm:"index"
TimeTo:
type: integer
x-go-custom-tag: gorm:"index"
State:
type: object
required:
- EventTime
- LastEvent
properties:
Account:
type: string
x-go-custom-tag: gorm:"index"
EventTime:
type: integer
ID:
type: integer
x-go-custom-tag: gorm:"primary_key;auto_increment"
LastEvent:
type: string
enum:
- active
- error
- inactive
- terminated
- suspended
MetaData:
x-go-custom-tag: gorm:"type:jsonb"
$ref: '#/definitions/Metadata'
Region:
type: string
ResourceId:
type: string
ResourceName:
type: string
ResourceType:
type: string
TimeFrom:
type: integer
x-go-custom-tag: gorm:"index"
TimeTo:
type: integer
x-go-custom-tag: gorm:"index"
MinimalState:
type: object
properties:
Account:
type: string
MetaData:
x-go-custom-tag: gorm:"type:jsonb"
$ref: '#/definitions/Metadata'
ResourceId:
type: string
ResourceName:
type: string
Usage:
type: object
properties:
AccountId:
type: string
TimeFrom:
type: integer
TimeTo:
type: integer
Usage:
type: array
items:
$ref: '#/definitions/Use'
Use:
type: object
properties:
MetaData:
$ref: '#/definitions/Metadata'
Region:
type: string
ResourceId:
type: string
ResourceName:
type: string
ResourceType:
type: string
Unit:
type: string
UsageBreakup:
$ref: '#/definitions/Metadata'