@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Labs64 NetLicensing RESTful API Test Center
@base https://go.netlicensing.io/core/v2/rest
@version 2.x
@auth basic
@endpoints 40
@hint download_for_search
@toc product(5), productmodule(5), licensetemplate(5), licensee(7), license(5), transaction(4), token(4), paymentmethod(3), utility(2)

@group product
@endpoint GET /product
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /product
@required {active: any, name: any, version: any}
@optional {number: any, licenseeAutoCreate: any, description: any, licensingInfo: any, vatMode: any}
@returns(200)
@errors {400, 402, 403, 404, 500}

@endpoint GET /product/{productNumber}
@required {productNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /product/{productNumber}
@required {productNumber: any}
@optional {number: any, active: any, name: any, version: any, licenseeAutoCreate: any, description: any, licensingInfo: any, vatMode: any}
@returns(200)
@errors {400, 402, 403, 404, 500}

@endpoint DELETE /product/{productNumber}
@required {productNumber: any}
@optional {forceCascade: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group productmodule
@endpoint GET /productmodule
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /productmodule
@required {productNumber: any, active: any, name: any, licensingModel: any}
@optional {number: any, maxCheckoutValidity: any, yellowThreshold: any, redThreshold: any, nodeSecretMode: any, licenseTemplate: any}
@returns(200)
@errors {400, 402, 403, 404, 500}

@endpoint GET /productmodule/{productModuleNumber}
@required {productModuleNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /productmodule/{productModuleNumber}
@required {productModuleNumber: any}
@optional {number: any, active: any, name: any, licensingModel: any, maxCheckoutValidity: any, yellowThreshold: any, redThreshold: any, licenseTemplate: any, nodeSecretMode: any}
@returns(200)
@errors {400, 402, 403, 404, 500}

@endpoint DELETE /productmodule/{productModuleNumber}
@required {productModuleNumber: any}
@optional {forceCascade: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group licensetemplate
@endpoint GET /licensetemplate
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /licensetemplate
@required {productModuleNumber: any, name: any, active: any, licenseType: any}
@optional {number: any, timeVolume: any, timeVolumePeriod: any, maxSessions: any, price: any, currency: any, automatic: any, hidden: any, hideLicenses: any, quantity: any, quota: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint GET /licensetemplate/{licenseTemplateNumber}
@required {licenseTemplateNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /licensetemplate/{licenseTemplateNumber}
@required {licenseTemplateNumber: any}
@optional {number: any, name: any, active: any, licenseType: any, timeVolume: any, timeVolumePeriod: any, maxSessions: any, price: any, currency: any, automatic: any, hidden: any, hideLicenses: any, quantity: any, quota: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint DELETE /licensetemplate/{licenseTemplateNumber}
@required {licenseTemplateNumber: any}
@optional {forceCascade: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group licensee
@endpoint GET /licensee
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /licensee
@required {productNumber: any, active: any}
@optional {number: any, name: any, markedForTransfer: any}
@returns(200)
@errors {400, 402, 403, 404, 500}

@endpoint GET /licensee/{licenseeNumber}
@required {licenseeNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /licensee/{licenseeNumber}
@required {licenseeNumber: any}
@optional {number: any, active: any, name: any, markedForTransfer: any}
@returns(200)
@errors {400, 402, 403, 404, 500}

@endpoint DELETE /licensee/{licenseeNumber}
@required {licenseeNumber: any}
@optional {forceCascade: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /licensee/{licenseeNumber}/validate
@required {licenseeNumber: any}
@optional {licenseeName: any, productNumber: any, productModuleNumber: any, nodeSecret: any, sessionId: any, action: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /licensee/{licenseeNumber}/transfer
@required {licenseeNumber: any, sourceLicenseeNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group license
@endpoint GET /license
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /license
@required {licenseeNumber: any, licenseTemplateNumber: any, active: any}
@optional {number: any, name: any, parentfeature: any, timeVolume: any, timeVolumePeriod: any, startDate: any, price: any, currency: any, hidden: any, quantity: any, usedQuantity: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint GET /license/{licenseNumber}
@required {licenseNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /license/{licenseNumber}
@required {licenseNumber: any}
@optional {number: any, active: any, name: any, startDate: any, parentfeature: any, timeVolume: any, timeVolumePeriod: any, price: any, currency: any, hidden: any, quantity: any, usedQuantity: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint DELETE /license/{licenseNumber}
@required {licenseNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group transaction
@endpoint GET /transaction
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /transaction
@required {active: any, status: any, source: any}
@optional {licenseeNumber: any, number: any, dateCreated: any, dateClosed: any, paymentMethod: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint GET /transaction/{transactionNumber}
@required {transactionNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /transaction/{transactionNumber}
@required {transactionNumber: any}
@optional {number: any, active: any, status: any, source: any, dateCreated: any, dateClosed: any, paymentMethod: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group token
@endpoint GET /token
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /token
@required {tokenType: any}
@optional {apiKeyRole: any, type: any, action: any, licenseeNumber: any, privateKey: any, productNumber: any, licenseTemplateNumber: any, predefinedShoppingItem: any, successURL: any, successURLTitle: any, cancelURL: any, cancelURLTitle: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint GET /token/{tokenNumber}
@required {tokenNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint DELETE /token/{tokenNumber}
@required {tokenNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group paymentmethod
@endpoint GET /paymentmethod
@returns(200)
@errors {400, 403, 404, 500}

@endpoint GET /paymentmethod/{paymentMethodNumber}
@required {paymentMethodNumber: any}
@returns(200)
@errors {400, 403, 404, 500}

@endpoint POST /paymentmethod/{paymentMethodNumber}
@required {paymentMethodNumber: any}
@optional {active: any, paypal.subject: any}
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@group utility
@endpoint GET /utility/licensingModels
@returns(200)
@errors {400, 403, 404, 500}

@endpoint GET /utility/licenseTypes
@returns(200)
@errors {400, 403, 404, 500}

@endgroup

@end
