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.
962 lines
25 KiB
962 lines
25 KiB
---
|
|
swagger: "2.0"
|
|
host: "localhost:8000"
|
|
basePath: "/api/v1.0"
|
|
info:
|
|
description: An API which supports creation, deletion, listing etc of Plan Manager
|
|
version: "1.0.0"
|
|
title: Plan Manager Management API
|
|
contact:
|
|
email: sean@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: bundleManagement
|
|
description: Actions relating to management of sku bundles
|
|
- name: cycleManagement
|
|
description: Actions relating to management of life cycles
|
|
- name: planManagement
|
|
description: Actions relating to management of plans
|
|
- name: priceManagement
|
|
description: Actions relating to management of sku prices
|
|
- name: skuManagement
|
|
description: Actions relating to management of skus and prices
|
|
|
|
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"
|
|
/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:
|
|
- kafka-receiver
|
|
- kafka-sender
|
|
- status
|
|
- trigger
|
|
- bundle
|
|
- cycle
|
|
- plan
|
|
- price
|
|
- sku
|
|
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"
|
|
|
|
/cycle:
|
|
get:
|
|
tags:
|
|
- cycleManagement
|
|
summary: List all cycles
|
|
operationId: listCycles
|
|
description: lists all cycles
|
|
responses:
|
|
'200':
|
|
description: list of cycles returned
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/Cycle"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: state to filter
|
|
in: query
|
|
name: state
|
|
type: string
|
|
- description: resource type to filter
|
|
in: query
|
|
name: type
|
|
type: string
|
|
post:
|
|
tags:
|
|
- cycleManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Create a plan
|
|
operationId: createCycle
|
|
description: Creates a new cycle
|
|
responses:
|
|
'201':
|
|
description: item created
|
|
schema:
|
|
$ref: "#/definitions/ItemCreatedResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'400':
|
|
description: 'invalid input, object invalid'
|
|
'409':
|
|
description: an existing item already exists
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Cycle to be added
|
|
in: body
|
|
name: cycle
|
|
schema:
|
|
$ref: '#/definitions/Cycle'
|
|
/cycle/{id}:
|
|
get:
|
|
tags:
|
|
- cycleManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get specific cycle
|
|
operationId: getCycle
|
|
description: get cycle with given id
|
|
responses:
|
|
'200':
|
|
description: cycle returned
|
|
schema:
|
|
$ref: "#/definitions/Cycle"
|
|
'404':
|
|
description: cycle with id not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of cycle to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
put:
|
|
tags:
|
|
- cycleManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Update specific cycle
|
|
operationId: updateCycle
|
|
description: Update cycle with given id
|
|
responses:
|
|
'200':
|
|
description: updated cycle
|
|
schema:
|
|
$ref: "#/definitions/Cycle"
|
|
'404':
|
|
description: cycle with id not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of cycle to be updated
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: updated cycle containing all parameters except id
|
|
in: body
|
|
name: cycle
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/Cycle"
|
|
|
|
/plan:
|
|
get:
|
|
tags:
|
|
- planManagement
|
|
summary: List all plans
|
|
operationId: listPlans
|
|
description: lists all plans (tbd - pagination?)
|
|
responses:
|
|
'200':
|
|
description: list of plans returned
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/Plan"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
post:
|
|
tags:
|
|
- planManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Create a plan
|
|
operationId: createPlan
|
|
description: Creates a new plan
|
|
responses:
|
|
'201':
|
|
description: item created
|
|
schema:
|
|
$ref: "#/definitions/ItemCreatedResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'400':
|
|
description: 'invalid input, object invalid'
|
|
'409':
|
|
description: an existing item already exists
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Plan to be added
|
|
in: body
|
|
name: plan
|
|
schema:
|
|
$ref: '#/definitions/Plan'
|
|
/plan/{id}:
|
|
get:
|
|
tags:
|
|
- planManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get specific plan
|
|
operationId: getPlan
|
|
description: get plan with given planid
|
|
responses:
|
|
'200':
|
|
description: plan returned
|
|
schema:
|
|
$ref: "#/definitions/Plan"
|
|
'404':
|
|
description: plan with planid not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of plan to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
put:
|
|
tags:
|
|
- planManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Update specific plan
|
|
operationId: updatePlan
|
|
description: Update plan with given planId
|
|
responses:
|
|
'200':
|
|
description: updated plan
|
|
schema:
|
|
$ref: "#/definitions/Plan"
|
|
'404':
|
|
description: plan with planid not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of plan to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: updated plan containing all parameters except id
|
|
in: body
|
|
name: plan
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/Plan"
|
|
/plan/complete:
|
|
get:
|
|
tags:
|
|
- planManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get full information relating to known plans
|
|
operationId: listCompletePlans
|
|
description: Obtains full information on all known plans
|
|
responses:
|
|
'200':
|
|
description: Set of known plans returned in full
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/Plan"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
/plan/complete/{id}:
|
|
get:
|
|
tags:
|
|
- planManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get complete plan
|
|
operationId: getCompletePlan
|
|
description: gets complete plan with planid
|
|
responses:
|
|
'200':
|
|
description: plan returned
|
|
schema:
|
|
$ref: "#/definitions/Plan"
|
|
'404':
|
|
description: complete plan with planid not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of plan to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
|
|
/sku:
|
|
get:
|
|
tags:
|
|
- skuManagement
|
|
summary: list SKUs
|
|
operationId: listSkus
|
|
description: lists all skus
|
|
responses:
|
|
'200':
|
|
description: list of skus returned
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/Sku"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
post:
|
|
tags:
|
|
- skuManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: create SKU
|
|
operationId: createSku
|
|
description: Creates a new sku
|
|
responses:
|
|
'201':
|
|
description: item created
|
|
schema:
|
|
$ref: "#/definitions/ItemCreatedResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'400':
|
|
description: invalid input, object invalid
|
|
'409':
|
|
description: an existing item already exists
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: SKU to be added
|
|
in: body
|
|
name: sku
|
|
schema:
|
|
$ref: '#/definitions/Sku'
|
|
/sku/{id}:
|
|
get:
|
|
tags:
|
|
- skuManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get specific sku
|
|
operationId: getSku
|
|
description: get sku with given skuid
|
|
responses:
|
|
'200':
|
|
description: sku returned
|
|
schema:
|
|
$ref: "#/definitions/Sku"
|
|
'404':
|
|
description: sku with skuid not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of sku to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
put:
|
|
tags:
|
|
- skuManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Update specific sku
|
|
operationId: updateSku
|
|
description: Update sku with given skuid
|
|
responses:
|
|
'200':
|
|
description: updated sku
|
|
schema:
|
|
$ref: "#/definitions/Sku"
|
|
'404':
|
|
description: sku with skuid not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of sku to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: updated sku containing all parameters except id
|
|
in: body
|
|
name: sku
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/Sku"
|
|
|
|
/sku/bundle:
|
|
get:
|
|
tags:
|
|
- bundleManagement
|
|
summary: list SKU Bundles
|
|
operationId: listSkuBundles
|
|
description: lists all sku bundles
|
|
responses:
|
|
'200':
|
|
description: list of skus bundles returned
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/SkuBundle"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
post:
|
|
tags:
|
|
- bundleManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: create SKU bundle
|
|
operationId: createSkuBundle
|
|
description: Creates a new sku bundle
|
|
responses:
|
|
'201':
|
|
description: item created
|
|
schema:
|
|
$ref: "#/definitions/ItemCreatedResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'400':
|
|
description: invalid input, object invalid
|
|
'409':
|
|
description: an existing item already exists
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: SKU bundle to be added
|
|
in: body
|
|
name: bundle
|
|
schema:
|
|
$ref: '#/definitions/SkuBundle'
|
|
/sku/bundle/{id}:
|
|
get:
|
|
tags:
|
|
- bundleManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get specific sku bundle
|
|
operationId: getSkuBundle
|
|
description: get sku bundle with given id
|
|
responses:
|
|
'200':
|
|
description: sku bundle returned
|
|
schema:
|
|
$ref: "#/definitions/SkuBundle"
|
|
'404':
|
|
description: sku bundle with id not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of sku bundle to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
put:
|
|
tags:
|
|
- bundleManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Update specific sku bundle
|
|
operationId: updateSkuBundle
|
|
description: Update sku bundle with given id
|
|
responses:
|
|
'200':
|
|
description: updated sku bundle
|
|
schema:
|
|
$ref: "#/definitions/SkuBundle"
|
|
'404':
|
|
description: sku bundle with id not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of sku bundle to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: updated sku bundle containing all parameters except id
|
|
in: body
|
|
name: bundle
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/SkuBundle"
|
|
/sku/bundle/name/{name}:
|
|
get:
|
|
tags:
|
|
- bundleManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get specific sku bundle
|
|
operationId: getSkuBundleByName
|
|
description: get sku bundle with given name
|
|
responses:
|
|
'200':
|
|
description: sku bundle returned
|
|
schema:
|
|
$ref: "#/definitions/SkuBundle"
|
|
'404':
|
|
description: sku bundle with name not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of sku bundle to be obtained
|
|
in: path
|
|
name: name
|
|
required: true
|
|
type: string
|
|
|
|
/sku/price:
|
|
get:
|
|
tags:
|
|
- priceManagement
|
|
summary: list SKU Prices
|
|
operationId: listSkuPrices
|
|
description: lists all sku prices
|
|
responses:
|
|
'200':
|
|
description: list of skus prices returned
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/SkuPrice"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
post:
|
|
tags:
|
|
- priceManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: create SKU price
|
|
operationId: createSkuPrice
|
|
description: Creates a new sku price
|
|
responses:
|
|
'201':
|
|
description: item created
|
|
schema:
|
|
$ref: "#/definitions/ItemCreatedResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'400':
|
|
description: invalid input, object invalid
|
|
'409':
|
|
description: an existing item already exists
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: SKU price to be added
|
|
in: body
|
|
name: price
|
|
schema:
|
|
$ref: '#/definitions/SkuPrice'
|
|
/sku/price/{id}:
|
|
get:
|
|
tags:
|
|
- priceManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Get specific sku price
|
|
operationId: getSkuPrice
|
|
description: get sku price with given skupriceid
|
|
responses:
|
|
'200':
|
|
description: sku price returned
|
|
schema:
|
|
$ref: "#/definitions/SkuPrice"
|
|
'404':
|
|
description: sku price with skupriceid not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of sku price to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
put:
|
|
tags:
|
|
- priceManagement
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
summary: Update specific sku price
|
|
operationId: updateSkuPrice
|
|
description: Update sku price with given skupriceid
|
|
responses:
|
|
'200':
|
|
description: updated sku price
|
|
schema:
|
|
$ref: "#/definitions/SkuPrice"
|
|
'404':
|
|
description: sku price with skupriceid not found
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
'500':
|
|
description: unexpected error
|
|
schema:
|
|
$ref: "#/definitions/ErrorResponse"
|
|
parameters:
|
|
- description: Id of sku price to be obtained
|
|
in: path
|
|
name: id
|
|
required: true
|
|
type: string
|
|
- description: updated sku containing all parameters except id
|
|
in: body
|
|
name: price
|
|
required: true
|
|
schema:
|
|
$ref: "#/definitions/SkuPrice"
|
|
|
|
definitions:
|
|
ErrorResponse:
|
|
type: object
|
|
required:
|
|
- errorString
|
|
properties:
|
|
errorString:
|
|
type: string
|
|
ItemCreatedResponse:
|
|
properties:
|
|
Link:
|
|
type: string
|
|
ID:
|
|
type: string
|
|
Message:
|
|
type: string
|
|
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
|
|
Metadata:
|
|
type: object
|
|
x-go-type:
|
|
import:
|
|
package: "gitlab.com/cyclops-enterprise/datamodels"
|
|
type: JSONdb
|
|
|
|
Cycle:
|
|
type: object
|
|
required:
|
|
- State
|
|
- ResourceType
|
|
- SkuList
|
|
properties:
|
|
ID:
|
|
type: string
|
|
x-go-custom-tag: gorm:"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid"
|
|
State:
|
|
type: string
|
|
ResourceType:
|
|
type: string
|
|
SkuList:
|
|
x-go-custom-tag: gorm:"type:jsonb"
|
|
$ref: '#/definitions/Metadata'
|
|
|
|
Plan:
|
|
type: object
|
|
required:
|
|
- Name
|
|
- OfferedEndDate
|
|
- OfferedStartDate
|
|
properties:
|
|
Discount:
|
|
type: number
|
|
format: double
|
|
default: 0.0
|
|
x-go-custom-tag: gorm:"type:numeric(23,13);default:0.0"
|
|
ID:
|
|
type: string
|
|
x-go-custom-tag: gorm:"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid"
|
|
Name:
|
|
type: string
|
|
example: 'Standard 3 year plan starting 1/1/2019'
|
|
OfferedEndDate:
|
|
type: string
|
|
format: date
|
|
example: '2016-08-29'
|
|
x-go-custom-tag: gorm:"type:date"
|
|
OfferedStartDate:
|
|
type: string
|
|
format: date
|
|
example: '2016-08-29'
|
|
x-go-custom-tag: gorm:"type:date"
|
|
SkuPrices:
|
|
type: array
|
|
items:
|
|
$ref: "#/definitions/SkuPrice"
|
|
x-go-custom-tag: gorm:"-"
|
|
|
|
Sku:
|
|
type: object
|
|
required:
|
|
- Name
|
|
properties:
|
|
ID:
|
|
type: string
|
|
x-go-custom-tag: gorm:"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid"
|
|
Name:
|
|
type: string
|
|
example: 'Standard 3 year plan starting 1/1/2019'
|
|
Unit:
|
|
type: string
|
|
|
|
SkuBundle:
|
|
type: object
|
|
required:
|
|
- Name
|
|
properties:
|
|
ID:
|
|
type: string
|
|
x-go-custom-tag: gorm:"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid"
|
|
Name:
|
|
type: string
|
|
SkuPrices:
|
|
x-go-custom-tag: gorm:"type:jsonb"
|
|
$ref: '#/definitions/Metadata'
|
|
|
|
SkuPrice:
|
|
type: object
|
|
required:
|
|
- PlanID
|
|
- SkuID
|
|
- Unit
|
|
- UnitPrice
|
|
properties:
|
|
ID:
|
|
type: string
|
|
x-go-custom-tag: gorm:"primary_key;unique;default:md5(random()::text || clock_timestamp()::text)::uuid"
|
|
PlanID:
|
|
type: string
|
|
Discount:
|
|
type: number
|
|
format: double
|
|
default: 0.0
|
|
x-go-custom-tag: gorm:"type:numeric(23,13);default:0.0"
|
|
SkuID:
|
|
type: string
|
|
SkuName:
|
|
type: string
|
|
Unit:
|
|
type: string
|
|
UnitPrice:
|
|
type: number
|
|
format: double
|
|
x-go-custom-tag: gorm:"type:numeric(23,13)"
|
|
UnitCreditPrice:
|
|
type: number
|
|
format: double
|
|
x-go-custom-tag: gorm:"type:numeric(23,13)"
|
|
AccountingMode:
|
|
type: string
|
|
x-go-custom-tag: gorm:"index;default:CREDIT"
|
|
default: CREDIT
|
|
enum:
|
|
- CREDIT
|
|
- CASH
|
|
- BOTH
|
|
- NONE
|
|
|