export class OperationParameter {
name: string;
- type: String;
- inputId: string;
- required: boolean;
+ type: string;
+ inputId?: string;
+ required?: boolean;
+ property?: string;
+ mandatory?: boolean;
- constructor(param?: OperationParameter) {
+ constructor(param?: any) {
if (param) {
this.name = param.name;
this.type = param.type;
- this.inputId = param.inputId;
+ this.inputId = param.inputId ;
this.required = param.required;
+ this.property = param.property;
+ this.mandatory = param.mandatory;
}
}
}
static NONE = 'NONE';
static NEW = 'NEW';
static EXISTING = 'EXISTING';
+ static EXTERNAL = 'EXTERNAL';
}
export class BEOperationModel {
workflowAssociationType: string;
workflowId: string;
workflowVersionId: string;
+ workflowName: string;
+ workflowVersion: string;
- implementation?: { artifactUUID: string; };
+ implementation?: {
+ artifactName: string;
+ artifactUUID: string;
+ };
constructor(operation?: any) {
if (operation) {
this.workflowAssociationType = operation.workflowAssociationType;
this.workflowId = operation.workflowId;
this.workflowVersionId = operation.workflowVersionId;
- this.implementation = operation.implementation;
+ this.workflowName = operation.workflowName;
+ this.workflowVersion = operation.workflowVersion;
+ this.implementation = operation.implementation || {};
}
}
}
}
-export class OperationModel extends BEOperationModel {
+export class OperationModel extends BEOperationModel{
interfaceType: string;
interfaceId: string;
+ operationType: string;
+ description: string;
+ uniqueId: string;
+ artifactFileName?: string;
+ artifactData?: any;
+
+ inputParams: IOperationParamsList;
+ outputParams: IOperationParamsList;
+
+ workflowId: string;
+ workflowVersionId: string;
+ workflowName: string;
+ workflowVersion: string;
+
+ milestones: Object;
+
+ protected OperationTypeEnum: Array<String> = [
+ 'Create',
+ 'Delete',
+ 'Instantiate',
+ 'Start',
+ 'Stop'
+ ];
constructor(operation?: any) {
super(operation);
if (operation) {
this.interfaceId = operation.interfaceId;
this.interfaceType = operation.interfaceType;
+ this.description = operation.description;
+ this.inputParams = operation.inputParams;
+ this.operationType = operation.operationType;
+ this.outputParams = operation.outputParams;
+ this.uniqueId = operation.uniqueId;
+ this.workflowId = operation.workflowId;
+ this.workflowVersionId = operation.workflowVersionId;
+ this.artifactFileName = operation.artifactFileName;
+ this.artifactData = operation.artifactData;
+ this.workflowName = operation.workflowName;
+ this.workflowVersion = operation.workflowVersion;
+ this.milestones = operation.milestones;
}
}
public displayType(): string {
- const lastDot = this.interfaceType ? this.interfaceType.lastIndexOf('.') : -1;
- return lastDot === -1 ? this.interfaceType : this.interfaceType.substr(lastDot + 1);
+ return displayType(this.interfaceType);
+ }
+
+ public createInputParamsList(inputParams: Array<OperationParameter>): void {
+ this.inputParams = {
+ listToscaDataDefinition: inputParams
+ };
+ }
+
+ public createOutputParamsList(outputParams: Array<OperationParameter>): void {
+ this.outputParams = {
+ listToscaDataDefinition: outputParams
+ };
}
}
+export interface CreateOperationResponse extends OperationModel {
+ artifactUUID: string;
+}
+
export class InterfaceModel {
type: string;
uniqueId: string;
}
public displayType(): string {
- const lastDot = this.type ? this.type.lastIndexOf('.') : -1;
- return lastDot === -1 ? this.type : this.type.substr(lastDot + 1);
+ return displayType(this.type);
}
}
+
+const displayType = (type:string) => type && type.substr(type.lastIndexOf('.') + 1);
\ No newline at end of file