-{\r
- "swagger" : "2.0",\r
- "info" : {\r
- "version" : "0.1.0-SNAPSHOT",\r
- "title" : "cmso"\r
- },\r
- "basePath" : "/cmso",\r
- "paths" : {\r
- "/{apiVersion}/admin/{id}" : {\r
- "get" : {\r
- "summary" : "",\r
- "description" : "Returns encrypted value of id.",\r
- "operationId" : "exec",\r
- "produces" : [ "text/plain" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1|v2",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "id",\r
- "in" : "path",\r
- "description" : "Identifier",\r
- "required" : true,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "csv"\r
- } ],\r
- "responses" : {\r
- "200" : {\r
- "description" : "OK",\r
- "schema" : {\r
- "type" : "string"\r
- }\r
- },\r
- "400" : {\r
- "description" : "Request failed"\r
- }\r
- }\r
- }\r
- },\r
- "/{apiVersion}/health" : {\r
- "get" : {\r
- "summary" : "",\r
- "description" : "Returns health status of server.",\r
- "operationId" : "healthCheck",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "checkInterfaces",\r
- "in" : "query",\r
- "description" : "Check Interfaces",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "boolean",\r
- "default" : true\r
- },\r
- "collectionFormat" : "multi"\r
- } ],\r
- "responses" : {\r
- "200" : {\r
- "description" : "OK",\r
- "schema" : {\r
- "$ref" : "#/definitions/HealthCheckMessage"\r
- }\r
- },\r
- "400" : {\r
- "description" : "Not healthy",\r
- "schema" : {\r
- "$ref" : "#/definitions/HealthCheckMessage"\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "/{apiVersion}/optimizerCallback" : {\r
- "post" : {\r
- "summary" : "",\r
- "description" : "Processes optimizer results callback to a Pending Optimization schedule.",\r
- "operationId" : "sniroCallback",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "in" : "body",\r
- "name" : "body",\r
- "description" : "Return schedules > lastScheduleId",\r
- "required" : false,\r
- "schema" : {\r
- "$ref" : "#/definitions/Response from schedule optimizer"\r
- }\r
- } ],\r
- "responses" : {\r
- "200" : {\r
- "description" : "OK"\r
- },\r
- "500" : {\r
- "description" : "Unexpected Runtime error"\r
- }\r
- }\r
- }\r
- },\r
- "/{apiVersion}/schedules" : {\r
- "get" : {\r
- "summary" : "",\r
- "description" : "Returns a list of Scheduler Requests based upon the filter criteria.",\r
- "operationId" : "searchScheduleRequests",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "includeDetails",\r
- "in" : "query",\r
- "description" : "Include details",\r
- "required" : false,\r
- "type" : "boolean",\r
- "default" : false\r
- }, {\r
- "name" : "scheduleId",\r
- "in" : "query",\r
- "description" : "Schedule identifier",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "scheduleName",\r
- "in" : "query",\r
- "description" : "Schedule name",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "userId",\r
- "in" : "query",\r
- "description" : "SCheduler creator User id of ",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "status",\r
- "in" : "query",\r
- "description" : "Schedule status",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "createDateTime",\r
- "in" : "query",\r
- "description" : "Creation date and time (<low date>[,<hi date>])",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "optimizerStatus",\r
- "in" : "query",\r
- "description" : "Optimizer status",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "WorkflowName",\r
- "in" : "query",\r
- "description" : "Workflow",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- } ],\r
- "responses" : {\r
- "200" : {\r
- "description" : "OK",\r
- "schema" : {\r
- "type" : "array",\r
- "items" : {\r
- "$ref" : "#/definitions/Schedule"\r
- }\r
- }\r
- },\r
- "404" : {\r
- "description" : "No records found",\r
- "schema" : {\r
- "$ref" : "#/definitions/CMSRequestError"\r
- }\r
- },\r
- "500" : {\r
- "description" : "Unexpected Runtime error"\r
- }\r
- }\r
- }\r
- },\r
- "/{apiVersion}/schedules/scheduleDetails" : {\r
- "get" : {\r
- "summary" : "",\r
- "description" : "Returns a list of Schedule request details based upon the filter criteria.",\r
- "operationId" : "searchScheduleRequestDetails",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "request.scheduleId",\r
- "in" : "query",\r
- "description" : "Schedule identifier",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.scheduleName",\r
- "in" : "query",\r
- "description" : "Schedule name",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.userId",\r
- "in" : "query",\r
- "description" : "Scheduler creator User id of ",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.status",\r
- "in" : "query",\r
- "description" : "Schedule status",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.createDateTime",\r
- "in" : "query",\r
- "description" : "Creation date and time (<low date>[,<hi date>])",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.optimizerStatus",\r
- "in" : "query",\r
- "description" : "Optimizer status",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.approvalUserId",\r
- "in" : "query",\r
- "description" : "Request Approval user id",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.approvalStatus",\r
- "in" : "query",\r
- "description" : "Request Approval status",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "request.approvalType",\r
- "in" : "query",\r
- "description" : "Request Approval type",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "WorkflowName",\r
- "in" : "query",\r
- "description" : "Workflow",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "vnfName",\r
- "in" : "query",\r
- "description" : "VNF Name",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "vnfId",\r
- "in" : "query",\r
- "description" : "VNF Id",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "vnfStatus",\r
- "in" : "query",\r
- "description" : "VNF Status",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "startTime",\r
- "in" : "query",\r
- "description" : "Start time <low>,<high>",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "finishTime",\r
- "in" : "query",\r
- "description" : "Finish time <low>,<high>",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "lastInstanceTime",\r
- "in" : "query",\r
- "description" : "Last instance start time <low>,<high>",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "tmChangeId",\r
- "in" : "query",\r
- "description" : "TM Change Ticket Change Id",\r
- "required" : false,\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- },\r
- "collectionFormat" : "multi"\r
- }, {\r
- "name" : "maxSchedules",\r
- "in" : "query",\r
- "description" : "Maximum number of schedules to return",\r
- "required" : false,\r
- "type" : "integer",\r
- "format" : "int32"\r
- }, {\r
- "name" : "lastScheduleId",\r
- "in" : "query",\r
- "description" : "Return schedules > lastScheduleId",\r
- "required" : false,\r
- "type" : "string"\r
- }, {\r
- "name" : "request.concurrencyLimit",\r
- "in" : "query",\r
- "description" : "Return concurrencyLimit",\r
- "required" : false,\r
- "type" : "integer",\r
- "format" : "int32"\r
- } ],\r
- "responses" : {\r
- "200" : {\r
- "description" : "OK",\r
- "schema" : {\r
- "type" : "array",\r
- "items" : {\r
- "$ref" : "#/definitions/CmDetailsMessage"\r
- }\r
- }\r
- },\r
- "404" : {\r
- "description" : "No records found",\r
- "schema" : {\r
- "$ref" : "#/definitions/CMSRequestError"\r
- }\r
- },\r
- "500" : {\r
- "description" : "Unexpected Runtime error"\r
- }\r
- }\r
- }\r
- },\r
- "/{apiVersion}/schedules/{scheduleId}" : {\r
- "get" : {\r
- "summary" : "",\r
- "description" : "Retrieve the schedule request for scheduleId",\r
- "operationId" : "getScheduleRequestInfo",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "scheduleId",\r
- "in" : "path",\r
- "description" : "Schedule id to uniquely identify the schedule info being retrieved.",\r
- "required" : true,\r
- "type" : "string"\r
- } ],\r
- "responses" : {\r
- "200" : {\r
- "description" : "OK",\r
- "schema" : {\r
- "$ref" : "#/definitions/Schedule"\r
- }\r
- },\r
- "404" : {\r
- "description" : "No record found"\r
- },\r
- "500" : {\r
- "description" : "Unexpected Runtime error"\r
- }\r
- }\r
- },\r
- "post" : {\r
- "summary" : "",\r
- "description" : "Creates a schedule request for scheduleId",\r
- "operationId" : "createScheduleRequest",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "scheduleId",\r
- "in" : "path",\r
- "description" : "Schedule id to uniquely identify the schedule request being created.",\r
- "required" : true,\r
- "type" : "string"\r
- }, {\r
- "in" : "body",\r
- "name" : "body",\r
- "description" : "Data for creating a schedule request for the given schedule id",\r
- "required" : false,\r
- "schema" : {\r
- "$ref" : "#/definitions/CMSMessage"\r
- }\r
- } ],\r
- "responses" : {\r
- "202" : {\r
- "description" : "Schedule request accepted for optimization."\r
- },\r
- "409" : {\r
- "description" : "Schedule request already exists for this schedule id.",\r
- "schema" : {\r
- "$ref" : "#/definitions/CMSRequestError"\r
- }\r
- },\r
- "500" : {\r
- "description" : "Unexpected Runtime error"\r
- }\r
- }\r
- },\r
- "delete" : {\r
- "summary" : "",\r
- "description" : "Cancels the schedule request for scheduleId",\r
- "operationId" : "deleteScheduleRequest",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "scheduleId",\r
- "in" : "path",\r
- "description" : "Schedule id to uniquely identify the schedule request being deleted.",\r
- "required" : true,\r
- "type" : "string"\r
- } ],\r
- "responses" : {\r
- "204" : {\r
- "description" : "Delete successful"\r
- },\r
- "404" : {\r
- "description" : "No record found",\r
- "schema" : {\r
- "$ref" : "#/definitions/CMSRequestError"\r
- }\r
- },\r
- "500" : {\r
- "description" : "Unexpected Runtime error"\r
- }\r
- }\r
- }\r
- },\r
- "/{apiVersion}/schedules/{scheduleId}/approvals" : {\r
- "post" : {\r
- "summary" : "",\r
- "description" : "Adds an accept/reject approval status to the schedule request identified by scheduleId",\r
- "operationId" : "approveScheduleRequest",\r
- "produces" : [ "application/json" ],\r
- "parameters" : [ {\r
- "name" : "apiVersion",\r
- "in" : "path",\r
- "description" : "v1",\r
- "required" : true,\r
- "type" : "string",\r
- "default" : "v1"\r
- }, {\r
- "name" : "scheduleId",\r
- "in" : "path",\r
- "description" : "Schedule id to uniquely identify the schedule request being accepted or rejected.",\r
- "required" : true,\r
- "type" : "string"\r
- }, {\r
- "in" : "body",\r
- "name" : "body",\r
- "description" : "Accept or reject approval message",\r
- "required" : false,\r
- "schema" : {\r
- "$ref" : "#/definitions/Schedule Approval Request"\r
- }\r
- } ],\r
- "responses" : {\r
- "200" : {\r
- "description" : "OK"\r
- },\r
- "404" : {\r
- "description" : "No record found"\r
- },\r
- "500" : {\r
- "description" : "Unexpected Runtime error"\r
- }\r
- }\r
- }\r
- }\r
- },\r
- "definitions" : {\r
- "CMSMessage" : {\r
- "type" : "object",\r
- "properties" : {\r
- "domain" : {\r
- "type" : "string",\r
- "description" : "Schedule domain : ChangeManagement"\r
- },\r
- "scheduleId" : {\r
- "type" : "string",\r
- "description" : "Schedule id that must be unique within the domain. Use of UUID is highly recommended."\r
- },\r
- "scheduleName" : {\r
- "type" : "string",\r
- "description" : "User provided name of the schedule (deaults to scheduleId"\r
- },\r
- "userId" : {\r
- "type" : "string",\r
- "description" : "ATTUID of the user requesting the schedule."\r
- },\r
- "domainData" : {\r
- "type" : "array",\r
- "description" : "Domain data as name value/pairs. (i.e. CallbackUrl, CallbackData, WorkflowName)",\r
- "items" : {\r
- "type" : "object",\r
- "additionalProperties" : {\r
- "type" : "string"\r
- }\r
- }\r
- },\r
- "schedulingInfo" : {\r
- "$ref" : "#/definitions/Change Management Scheduling Info"\r
- }\r
- }\r
- },\r
- "CMSRequestError" : {\r
- "type" : "object",\r
- "properties" : {\r
- "requestError" : {\r
- "$ref" : "#/definitions/RequestError"\r
- }\r
- }\r
- },\r
- "CMSchedule" : {\r
- "type" : "object",\r
- "properties" : {\r
- "groupId" : {\r
- "type" : "string"\r
- },\r
- "startTime" : {\r
- "type" : "string"\r
- },\r
- "finishTime" : {\r
- "type" : "string"\r
- },\r
- "latestInstanceStartTime" : {\r
- "type" : "string"\r
- },\r
- "node" : {\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- }\r
- }\r
- }\r
- },\r
- "Change Management Group" : {\r
- "type" : "object",\r
- "properties" : {\r
- "finishTime" : {\r
- "type" : "string",\r
- "description" : "Date/time by which all of the workflows should be completed."\r
- },\r
- "groupId" : {\r
- "type" : "string",\r
- "description" : "Name of the group of VNFs to be scheduled"\r
- },\r
- "lastInstanceStartTime" : {\r
- "type" : "string",\r
- "description" : "The latest date/time by which a workflow is to be started."\r
- },\r
- "startTime" : {\r
- "type" : "string",\r
- "description" : "The date/time when workflows are to be started."\r
- },\r
- "additionalDurationInSecs" : {\r
- "type" : "integer",\r
- "format" : "int32",\r
- "description" : "Time added to the workflow interval to allow for rollback in case of failure."\r
- },\r
- "concurrencyLimit" : {\r
- "type" : "integer",\r
- "format" : "int32",\r
- "description" : "The maximum number of workflows that should be started simultaneiously."\r
- },\r
- "normalDurationInSecs" : {\r
- "type" : "integer",\r
- "format" : "int32",\r
- "description" : "Expected duration of a successful workflow execution."\r
- },\r
- "policyId" : {\r
- "type" : "string",\r
- "description" : "The name of the schedule optimization policy used by the change management schedule optimizer."\r
- },\r
- "changeManagementSchedules" : {\r
- "type" : "array",\r
- "description" : "The list of VNF workflows scheduled.",\r
- "items" : {\r
- "$ref" : "#/definitions/Change Management Schedule"\r
- }\r
- }\r
- },\r
- "description" : "Scheduling critirea for a group of VNFs"\r
- },\r
- "Change Management Schedule" : {\r
- "type" : "object",\r
- "properties" : {\r
- "tmChangeId" : {\r
- "type" : "string",\r
- "description" : "TM Change Id"\r
- },\r
- "tmStatus" : {\r
- "type" : "string",\r
- "description" : "TM ticket status",\r
- "enum" : [ "<null>", "Closed" ]\r
- },\r
- "tmApprovalStatus" : {\r
- "type" : "string",\r
- "description" : "TM ticket approval status",\r
- "enum" : [ "<null>", "Approved" ]\r
- },\r
- "finishTime" : {\r
- "type" : "string",\r
- "description" : "Anticipated time of completion based upon start time and duration"\r
- },\r
- "startTime" : {\r
- "type" : "string",\r
- "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."\r
- },\r
- "status" : {\r
- "type" : "string",\r
- "description" : "Status of the VNF.",\r
- "enum" : [ "See CMSStatusEnum" ]\r
- },\r
- "vnfName" : {\r
- "type" : "string",\r
- "description" : "Name of the VNF."\r
- },\r
- "dispatchTime" : {\r
- "type" : "string",\r
- "description" : "Actual time the VNF workflow was dispatched."\r
- },\r
- "executionCompletedTime" : {\r
- "type" : "string",\r
- "description" : "Actual time the VNF workflow execution was completed as reported by MSO."\r
- },\r
- "msoRequestId" : {\r
- "type" : "string",\r
- "description" : "MSO Request ID of the workflow returned at dispatch time."\r
- },\r
- "msoStatus" : {\r
- "type" : "string",\r
- "description" : "Final MSO status.",\r
- "enum" : [ "COMPLETED", "FAILED" ]\r
- },\r
- "msoMessage" : {\r
- "type" : "string",\r
- "description" : "MSO final status message."\r
- },\r
- "statusMessage" : {\r
- "type" : "string",\r
- "description" : "Scheduler status message."\r
- },\r
- "msoTime" : {\r
- "type" : "string",\r
- "description" : "Time of last poll for MSO status."\r
- }\r
- },\r
- "description" : "VNF details for Change Management Schedule"\r
- },\r
- "Change Management Scheduling Info" : {\r
- "type" : "object",\r
- "properties" : {\r
- "normalDurationInSeconds" : {\r
- "type" : "integer",\r
- "format" : "int32",\r
- "description" : "Expected duration (in seconds) of a successful execution of a single VNF change."\r
- },\r
- "additionalDurationInSeconds" : {\r
- "type" : "integer",\r
- "format" : "int32",\r
- "description" : "Additional duration (in seconds) to be added to support backout of an unsuccessful VNF change."\r
- },\r
- "concurrencyLimit" : {\r
- "type" : "integer",\r
- "format" : "int32",\r
- "description" : "Maximum number of VNF changes to schedule concurrently"\r
- },\r
- "policyId" : {\r
- "type" : "string",\r
- "description" : "Name of schedule optimization policy used by the change management cmso optimizer to determine available time slot"\r
- },\r
- "vnfDetails" : {\r
- "type" : "array",\r
- "description" : "Lists of the VNFs to be changed and the desired change windows",\r
- "items" : {\r
- "$ref" : "#/definitions/VNF Details"\r
- }\r
- }\r
- },\r
- "description" : "Details of schedule being requested"\r
- },\r
- "Change Window" : {\r
- "type" : "object",\r
- "properties" : {\r
- "startTime" : {\r
- "type" : "string",\r
- "description" : "Earliest time that a set of changes may begin."\r
- },\r
- "endTime" : {\r
- "type" : "string",\r
- "description" : "Latest time by which all changes must be completed"\r
- }\r
- },\r
- "description" : "Time window within which the scheduler optimizer can schedule the changes for the group of NVFs"\r
- },\r
- "CmDetailsMessage" : {\r
- "type" : "object",\r
- "properties" : {\r
- "vnfName" : {\r
- "type" : "string",\r
- "description" : "Name of the VNF."\r
- },\r
- "status" : {\r
- "type" : "string",\r
- "description" : "Status of the VNF.",\r
- "enum" : [ "See CMSStatusEnum" ]\r
- },\r
- "tmChangeId" : {\r
- "type" : "string",\r
- "description" : "TM Change Id"\r
- },\r
- "tmStatus" : {\r
- "type" : "string",\r
- "description" : "TM ticket status",\r
- "enum" : [ "<null>", "Closed" ]\r
- },\r
- "tmApprovalStatus" : {\r
- "type" : "string",\r
- "description" : "TM ticket approval status",\r
- "enum" : [ "<null>", "Approved" ]\r
- },\r
- "startTime" : {\r
- "type" : "string",\r
- "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."\r
- },\r
- "finishTime" : {\r
- "type" : "string",\r
- "description" : "Anticipated time of completion based upon start time and duration"\r
- },\r
- "groupId" : {\r
- "type" : "string",\r
- "description" : "Name of the group of VNFs to be scheduled"\r
- },\r
- "lastInstanceStartTime" : {\r
- "type" : "string",\r
- "description" : "The latest date/time by which a workflow is to be started."\r
- },\r
- "policyId" : {\r
- "type" : "string",\r
- "description" : "Time of last poll for MSO status."\r
- },\r
- "dispatchTime" : {\r
- "type" : "string",\r
- "description" : "Actual time the VNF workflow was dispatched."\r
- },\r
- "executionCompletedTime" : {\r
- "type" : "string",\r
- "description" : "Actual time the VNF workflow execution was completed as reported by MSO."\r
- },\r
- "msoRequestId" : {\r
- "type" : "string",\r
- "description" : "MSO Request ID of the workflow returned at dispatch time."\r
- },\r
- "msoStatus" : {\r
- "type" : "string",\r
- "description" : "Final MSO status.",\r
- "enum" : [ "COMPLETED", "FAILED" ]\r
- },\r
- "msoMessage" : {\r
- "type" : "string",\r
- "description" : "MSO final status message."\r
- },\r
- "statusMessage" : {\r
- "type" : "string",\r
- "description" : "Scheduler status message."\r
- },\r
- "msoTime" : {\r
- "type" : "string",\r
- "description" : "Time of last poll for MSO status."\r
- },\r
- "scheduleRequest" : {\r
- "$ref" : "#/definitions/Schedule"\r
- },\r
- "approvals" : {\r
- "type" : "array",\r
- "items" : {\r
- "$ref" : "#/definitions/Schedule Approval Request"\r
- }\r
- },\r
- "schedulesId" : {\r
- "type" : "integer",\r
- "format" : "int32"\r
- }\r
- }\r
- },\r
- "Domain data" : {\r
- "type" : "object",\r
- "properties" : {\r
- "name" : {\r
- "type" : "string"\r
- },\r
- "value" : {\r
- "type" : "string"\r
- }\r
- },\r
- "description" : "Domain specific data represented as name/value pairs"\r
- },\r
- "HealthCheckComponent" : {\r
- "type" : "object",\r
- "properties" : {\r
- "name" : {\r
- "type" : "string"\r
- },\r
- "url" : {\r
- "type" : "string"\r
- },\r
- "status" : {\r
- "type" : "string"\r
- },\r
- "healthy" : {\r
- "type" : "boolean"\r
- }\r
- }\r
- },\r
- "HealthCheckMessage" : {\r
- "type" : "object",\r
- "properties" : {\r
- "healthy" : {\r
- "type" : "boolean"\r
- },\r
- "buildInfo" : {\r
- "type" : "string"\r
- },\r
- "currentTime" : {\r
- "type" : "string"\r
- },\r
- "hostname" : {\r
- "type" : "string"\r
- },\r
- "components" : {\r
- "type" : "array",\r
- "items" : {\r
- "$ref" : "#/definitions/HealthCheckComponent"\r
- }\r
- }\r
- }\r
- },\r
- "RequestError" : {\r
- "type" : "object",\r
- "properties" : {\r
- "messageId" : {\r
- "type" : "string"\r
- },\r
- "text" : {\r
- "type" : "string"\r
- },\r
- "variables" : {\r
- "type" : "array",\r
- "items" : {\r
- "type" : "string"\r
- }\r
- }\r
- }\r
- },\r
- "Response from schedule optimizer" : {\r
- "type" : "object",\r
- "properties" : {\r
- "transactionId" : {\r
- "type" : "string",\r
- "description" : "Unique id of optimization request."\r
- },\r
- "scheduleId" : {\r
- "type" : "string",\r
- "description" : "Schedule id for which the optimization request was executed."\r
- },\r
- "requestState" : {\r
- "type" : "string",\r
- "description" : "State of the request as reported by the optimizer."\r
- },\r
- "status" : {\r
- "type" : "string",\r
- "description" : "Status of the request."\r
- },\r
- "description" : {\r
- "type" : "string",\r
- "description" : "Description of the request status."\r
- },\r
- "schedule" : {\r
- "type" : "array",\r
- "description" : "List of schedules returned, one per group. Only 1 group supported at this time.",\r
- "items" : {\r
- "$ref" : "#/definitions/CMSchedule"\r
- }\r
- }\r
- },\r
- "description" : "Asynchronous response to schedule oprimizer request."\r
- },\r
- "Schedule" : {\r
- "type" : "object",\r
- "properties" : {\r
- "createDateTime" : {\r
- "type" : "string",\r
- "description" : "Date/time schedule was created."\r
- },\r
- "optimizerDateTime" : {\r
- "type" : "string"\r
- },\r
- "optimizerMessage" : {\r
- "type" : "string"\r
- },\r
- "optimizerStatus" : {\r
- "type" : "string"\r
- },\r
- "optimizerReturnDateTime" : {\r
- "type" : "string"\r
- },\r
- "optimizerTransactionId" : {\r
- "type" : "string"\r
- },\r
- "schedule" : {\r
- "type" : "string"\r
- },\r
- "scheduleName" : {\r
- "type" : "string"\r
- },\r
- "scheduleInfo" : {\r
- "type" : "string"\r
- },\r
- "status" : {\r
- "type" : "string"\r
- },\r
- "userId" : {\r
- "type" : "string"\r
- },\r
- "domain" : {\r
- "type" : "string"\r
- },\r
- "deleteDateTime" : {\r
- "type" : "string"\r
- },\r
- "domainData" : {\r
- "type" : "array",\r
- "items" : {\r
- "$ref" : "#/definitions/Domain data"\r
- }\r
- },\r
- "scheduleApprovals" : {\r
- "type" : "array",\r
- "items" : {\r
- "$ref" : "#/definitions/Schedule Approval"\r
- }\r
- },\r
- "groups" : {\r
- "type" : "array",\r
- "items" : {\r
- "$ref" : "#/definitions/Change Management Group"\r
- }\r
- }\r
- }\r
- },\r
- "Schedule Approval" : {\r
- "type" : "object",\r
- "properties" : {\r
- "approvalDateTime" : {\r
- "type" : "string",\r
- "description" : "Date/time schedule time slot was accepted/rejected."\r
- },\r
- "status" : {\r
- "type" : "string",\r
- "description" : "Approval status.",\r
- "enum" : [ "Accepted", "Rejected" ]\r
- },\r
- "userId" : {\r
- "type" : "string",\r
- "description" : "ATTUID of the user accepting/rejecting the time slot."\r
- }\r
- },\r
- "description" : "Details of a schedule approval/rejection."\r
- },\r
- "Schedule Approval Request" : {\r
- "type" : "object",\r
- "properties" : {\r
- "approvalUserId" : {\r
- "type" : "string",\r
- "description" : "ATTUID of the user accepting/rejecting the time slot."\r
- },\r
- "approvalStatus" : {\r
- "type" : "string",\r
- "description" : "Approval status.",\r
- "enum" : [ "Accepted", "Rejected" ]\r
- },\r
- "approvalType" : {\r
- "type" : "string",\r
- "description" : "Type of approval.",\r
- "enum" : [ "Tier 2" ]\r
- },\r
- "approvalDateTime" : {\r
- "type" : "string",\r
- "format" : "date-time"\r
- }\r
- },\r
- "description" : "Request to accept or reject an optimized time slot."\r
- },\r
- "VNF Details" : {\r
- "type" : "object",\r
- "properties" : {\r
- "groupId" : {\r
- "type" : "string",\r
- "description" : "Name of the list of VNFs to be changed as a group"\r
- },\r
- "node" : {\r
- "type" : "array",\r
- "description" : "Lists of the VNF names to be changed",\r
- "items" : {\r
- "type" : "string"\r
- }\r
- },\r
- "changeWindow" : {\r
- "type" : "array",\r
- "description" : "Lists of desired change windows that the optimizer can select from. (Only 1 change window supported at this time)",\r
- "items" : {\r
- "$ref" : "#/definitions/Change Window"\r
- }\r
- }\r
- },\r
- "description" : "Details and scheduling criteria for the VNFs to be changed."\r
- }\r
- }\r
+{
+ "swagger" : "2.0",
+ "info" : {
+ "version" : "0.1.0-SNAPSHOT",
+ "title" : "cmso"
+ },
+ "basePath" : "/cmso",
+ "paths" : {
+ "/{apiVersion}/admin/{id}" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns encrypted value of id.",
+ "operationId" : "exec",
+ "produces" : [ "text/plain" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1|v2",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Identifier",
+ "required" : true,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "csv"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "string"
+ }
+ },
+ "400" : {
+ "description" : "Request failed"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/health" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns health status of server.",
+ "operationId" : "healthCheck",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "checkInterfaces",
+ "in" : "query",
+ "description" : "Check Interfaces",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "boolean",
+ "default" : true
+ },
+ "collectionFormat" : "multi"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ },
+ "400" : {
+ "description" : "Not healthy",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ }
+ }
+ }
+ },
+ "/{apiVersion}/optimizerCallback" : {
+ "post" : {
+ "summary" : "",
+ "description" : "Processes optimizer results callback to a Pending Optimization schedule.",
+ "operationId" : "sniroCallback",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Return schedules > lastScheduleId",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Response from schedule optimizer"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK"
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns a list of Scheduler Requests based upon the filter criteria.",
+ "operationId" : "searchScheduleRequests",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "includeDetails",
+ "in" : "query",
+ "description" : "Include details",
+ "required" : false,
+ "type" : "boolean",
+ "default" : false
+ }, {
+ "name" : "scheduleId",
+ "in" : "query",
+ "description" : "Schedule identifier",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "scheduleName",
+ "in" : "query",
+ "description" : "Schedule name",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "userId",
+ "in" : "query",
+ "description" : "SCheduler creator User id of ",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "status",
+ "in" : "query",
+ "description" : "Schedule status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "createDateTime",
+ "in" : "query",
+ "description" : "Creation date and time (<low date>[,<hi date>])",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "optimizerStatus",
+ "in" : "query",
+ "description" : "Optimizer status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "WorkflowName",
+ "in" : "query",
+ "description" : "Workflow",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Schedule"
+ }
+ }
+ },
+ "404" : {
+ "description" : "No records found",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules/scheduleDetails" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Returns a list of Schedule request details based upon the filter criteria.",
+ "operationId" : "searchScheduleRequestDetails",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "request.scheduleId",
+ "in" : "query",
+ "description" : "Schedule identifier",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.scheduleName",
+ "in" : "query",
+ "description" : "Schedule name",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.userId",
+ "in" : "query",
+ "description" : "Scheduler creator User id of ",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.status",
+ "in" : "query",
+ "description" : "Schedule status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.createDateTime",
+ "in" : "query",
+ "description" : "Creation date and time (<low date>[,<hi date>])",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.optimizerStatus",
+ "in" : "query",
+ "description" : "Optimizer status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.approvalUserId",
+ "in" : "query",
+ "description" : "Request Approval user id",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.approvalStatus",
+ "in" : "query",
+ "description" : "Request Approval status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "request.approvalType",
+ "in" : "query",
+ "description" : "Request Approval type",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "WorkflowName",
+ "in" : "query",
+ "description" : "Workflow",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "vnfName",
+ "in" : "query",
+ "description" : "VNF Name",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "vnfId",
+ "in" : "query",
+ "description" : "VNF Id",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "vnfStatus",
+ "in" : "query",
+ "description" : "VNF Status",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "startTime",
+ "in" : "query",
+ "description" : "Start time <low>,<high>",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "finishTime",
+ "in" : "query",
+ "description" : "Finish time <low>,<high>",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "lastInstanceTime",
+ "in" : "query",
+ "description" : "Last instance start time <low>,<high>",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "tmChangeId",
+ "in" : "query",
+ "description" : "TM Change Ticket Change Id",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "maxSchedules",
+ "in" : "query",
+ "description" : "Maximum number of schedules to return",
+ "required" : false,
+ "type" : "integer",
+ "format" : "int32"
+ }, {
+ "name" : "lastScheduleId",
+ "in" : "query",
+ "description" : "Return schedules > lastScheduleId",
+ "required" : false,
+ "type" : "string"
+ }, {
+ "name" : "request.concurrencyLimit",
+ "in" : "query",
+ "description" : "Return concurrencyLimit",
+ "required" : false,
+ "type" : "integer",
+ "format" : "int32"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/CmDetailsMessage"
+ }
+ }
+ },
+ "404" : {
+ "description" : "No records found",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules/{scheduleId}" : {
+ "get" : {
+ "summary" : "",
+ "description" : "Retrieve the schedule request for scheduleId",
+ "operationId" : "getScheduleRequestInfo",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule info being retrieved.",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Schedule"
+ }
+ },
+ "404" : {
+ "description" : "No record found"
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "post" : {
+ "summary" : "",
+ "description" : "Creates a schedule request for scheduleId",
+ "operationId" : "createScheduleRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule request being created.",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Data for creating a schedule request for the given schedule id",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/CMSMessage"
+ }
+ } ],
+ "responses" : {
+ "202" : {
+ "description" : "Schedule request accepted for optimization."
+ },
+ "409" : {
+ "description" : "Schedule request already exists for this schedule id.",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "delete" : {
+ "summary" : "",
+ "description" : "Cancels the schedule request for scheduleId",
+ "operationId" : "deleteScheduleRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule request being deleted.",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "Delete successful"
+ },
+ "404" : {
+ "description" : "No record found",
+ "schema" : {
+ "$ref" : "#/definitions/CMSRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules/{scheduleId}/approvals" : {
+ "post" : {
+ "summary" : "",
+ "description" : "Adds an accept/reject approval status to the schedule request identified by scheduleId",
+ "operationId" : "approveScheduleRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "scheduleId",
+ "in" : "path",
+ "description" : "Schedule id to uniquely identify the schedule request being accepted or rejected.",
+ "required" : true,
+ "type" : "string"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Accept or reject approval message",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Schedule Approval Request"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK"
+ },
+ "404" : {
+ "description" : "No record found"
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ }
+ },
+ "definitions" : {
+ "CMSMessage" : {
+ "type" : "object",
+ "properties" : {
+ "domain" : {
+ "type" : "string",
+ "description" : "Schedule domain : ChangeManagement"
+ },
+ "scheduleId" : {
+ "type" : "string",
+ "description" : "Schedule id that must be unique within the domain. Use of UUID is highly recommended."
+ },
+ "scheduleName" : {
+ "type" : "string",
+ "description" : "User provided name of the schedule (deaults to scheduleId"
+ },
+ "userId" : {
+ "type" : "string",
+ "description" : "ATTUID of the user requesting the schedule."
+ },
+ "domainData" : {
+ "type" : "array",
+ "description" : "Domain data as name value/pairs. (i.e. CallbackUrl, CallbackData, WorkflowName)",
+ "items" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ }
+ },
+ "schedulingInfo" : {
+ "$ref" : "#/definitions/Change Management Scheduling Info"
+ }
+ }
+ },
+ "CMSRequestError" : {
+ "type" : "object",
+ "properties" : {
+ "requestError" : {
+ "$ref" : "#/definitions/RequestError"
+ }
+ }
+ },
+ "CMSchedule" : {
+ "type" : "object",
+ "properties" : {
+ "groupId" : {
+ "type" : "string"
+ },
+ "startTime" : {
+ "type" : "string"
+ },
+ "finishTime" : {
+ "type" : "string"
+ },
+ "latestInstanceStartTime" : {
+ "type" : "string"
+ },
+ "node" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "Change Management Group" : {
+ "type" : "object",
+ "properties" : {
+ "finishTime" : {
+ "type" : "string",
+ "description" : "Date/time by which all of the workflows should be completed."
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "Name of the group of VNFs to be scheduled"
+ },
+ "lastInstanceStartTime" : {
+ "type" : "string",
+ "description" : "The latest date/time by which a workflow is to be started."
+ },
+ "startTime" : {
+ "type" : "string",
+ "description" : "The date/time when workflows are to be started."
+ },
+ "additionalDurationInSecs" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Time added to the workflow interval to allow for rollback in case of failure."
+ },
+ "concurrencyLimit" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "The maximum number of workflows that should be started simultaneiously."
+ },
+ "normalDurationInSecs" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Expected duration of a successful workflow execution."
+ },
+ "policyId" : {
+ "type" : "string",
+ "description" : "The name of the schedule optimization policy used by the change management schedule optimizer."
+ },
+ "changeManagementSchedules" : {
+ "type" : "array",
+ "description" : "The list of VNF workflows scheduled.",
+ "items" : {
+ "$ref" : "#/definitions/Change Management Schedule"
+ }
+ }
+ },
+ "description" : "Scheduling critirea for a group of VNFs"
+ },
+ "Change Management Schedule" : {
+ "type" : "object",
+ "properties" : {
+ "tmChangeId" : {
+ "type" : "string",
+ "description" : "TM Change Id"
+ },
+ "tmStatus" : {
+ "type" : "string",
+ "description" : "TM ticket status",
+ "enum" : [ "<null>", "Closed" ]
+ },
+ "tmApprovalStatus" : {
+ "type" : "string",
+ "description" : "TM ticket approval status",
+ "enum" : [ "<null>", "Approved" ]
+ },
+ "finishTime" : {
+ "type" : "string",
+ "description" : "Anticipated time of completion based upon start time and duration"
+ },
+ "startTime" : {
+ "type" : "string",
+ "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of the VNF.",
+ "enum" : [ "See CMSStatusEnum" ]
+ },
+ "vnfName" : {
+ "type" : "string",
+ "description" : "Name of the VNF."
+ },
+ "dispatchTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow was dispatched."
+ },
+ "executionCompletedTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow execution was completed as reported by MSO."
+ },
+ "msoRequestId" : {
+ "type" : "string",
+ "description" : "MSO Request ID of the workflow returned at dispatch time."
+ },
+ "msoStatus" : {
+ "type" : "string",
+ "description" : "Final MSO status.",
+ "enum" : [ "COMPLETED", "FAILED" ]
+ },
+ "msoMessage" : {
+ "type" : "string",
+ "description" : "MSO final status message."
+ },
+ "statusMessage" : {
+ "type" : "string",
+ "description" : "Scheduler status message."
+ },
+ "msoTime" : {
+ "type" : "string",
+ "description" : "Time of last poll for MSO status."
+ }
+ },
+ "description" : "VNF details for Change Management Schedule"
+ },
+ "Change Management Scheduling Info" : {
+ "type" : "object",
+ "properties" : {
+ "normalDurationInSeconds" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Expected duration (in seconds) of a successful execution of a single VNF change."
+ },
+ "additionalDurationInSeconds" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Additional duration (in seconds) to be added to support backout of an unsuccessful VNF change."
+ },
+ "concurrencyLimit" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Maximum number of VNF changes to schedule concurrently"
+ },
+ "policyId" : {
+ "type" : "string",
+ "description" : "Name of schedule optimization policy used by the change management cmso optimizer to determine available time slot"
+ },
+ "vnfDetails" : {
+ "type" : "array",
+ "description" : "Lists of the VNFs to be changed and the desired change windows",
+ "items" : {
+ "$ref" : "#/definitions/VNF Details"
+ }
+ }
+ },
+ "description" : "Details of schedule being requested"
+ },
+ "Change Window" : {
+ "type" : "object",
+ "properties" : {
+ "startTime" : {
+ "type" : "string",
+ "description" : "Earliest time that a set of changes may begin."
+ },
+ "endTime" : {
+ "type" : "string",
+ "description" : "Latest time by which all changes must be completed"
+ }
+ },
+ "description" : "Time window within which the scheduler optimizer can schedule the changes for the group of NVFs"
+ },
+ "CmDetailsMessage" : {
+ "type" : "object",
+ "properties" : {
+ "vnfName" : {
+ "type" : "string",
+ "description" : "Name of the VNF."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of the VNF.",
+ "enum" : [ "See CMSStatusEnum" ]
+ },
+ "tmChangeId" : {
+ "type" : "string",
+ "description" : "TM Change Id"
+ },
+ "tmStatus" : {
+ "type" : "string",
+ "description" : "TM ticket status",
+ "enum" : [ "<null>", "Closed" ]
+ },
+ "tmApprovalStatus" : {
+ "type" : "string",
+ "description" : "TM ticket approval status",
+ "enum" : [ "<null>", "Approved" ]
+ },
+ "startTime" : {
+ "type" : "string",
+ "description" : "Start time of this VNF workflow assigned by Scheduler based upon the group start time returned by the optimizer and concurrency."
+ },
+ "finishTime" : {
+ "type" : "string",
+ "description" : "Anticipated time of completion based upon start time and duration"
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "Name of the group of VNFs to be scheduled"
+ },
+ "lastInstanceStartTime" : {
+ "type" : "string",
+ "description" : "The latest date/time by which a workflow is to be started."
+ },
+ "policyId" : {
+ "type" : "string",
+ "description" : "Time of last poll for MSO status."
+ },
+ "dispatchTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow was dispatched."
+ },
+ "executionCompletedTime" : {
+ "type" : "string",
+ "description" : "Actual time the VNF workflow execution was completed as reported by MSO."
+ },
+ "msoRequestId" : {
+ "type" : "string",
+ "description" : "MSO Request ID of the workflow returned at dispatch time."
+ },
+ "msoStatus" : {
+ "type" : "string",
+ "description" : "Final MSO status.",
+ "enum" : [ "COMPLETED", "FAILED" ]
+ },
+ "msoMessage" : {
+ "type" : "string",
+ "description" : "MSO final status message."
+ },
+ "statusMessage" : {
+ "type" : "string",
+ "description" : "Scheduler status message."
+ },
+ "msoTime" : {
+ "type" : "string",
+ "description" : "Time of last poll for MSO status."
+ },
+ "scheduleRequest" : {
+ "$ref" : "#/definitions/Schedule"
+ },
+ "approvals" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Schedule Approval Request"
+ }
+ },
+ "schedulesId" : {
+ "type" : "integer",
+ "format" : "int32"
+ }
+ }
+ },
+ "Domain data" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "value" : {
+ "type" : "string"
+ }
+ },
+ "description" : "Domain specific data represented as name/value pairs"
+ },
+ "HealthCheckComponent" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string"
+ },
+ "url" : {
+ "type" : "string"
+ },
+ "status" : {
+ "type" : "string"
+ },
+ "healthy" : {
+ "type" : "boolean"
+ }
+ }
+ },
+ "HealthCheckMessage" : {
+ "type" : "object",
+ "properties" : {
+ "healthy" : {
+ "type" : "boolean"
+ },
+ "buildInfo" : {
+ "type" : "string"
+ },
+ "currentTime" : {
+ "type" : "string"
+ },
+ "hostname" : {
+ "type" : "string"
+ },
+ "components" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/HealthCheckComponent"
+ }
+ }
+ }
+ },
+ "RequestError" : {
+ "type" : "object",
+ "properties" : {
+ "messageId" : {
+ "type" : "string"
+ },
+ "text" : {
+ "type" : "string"
+ },
+ "variables" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "Response from schedule optimizer" : {
+ "type" : "object",
+ "properties" : {
+ "transactionId" : {
+ "type" : "string",
+ "description" : "Unique id of optimization request."
+ },
+ "scheduleId" : {
+ "type" : "string",
+ "description" : "Schedule id for which the optimization request was executed."
+ },
+ "requestState" : {
+ "type" : "string",
+ "description" : "State of the request as reported by the optimizer."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of the request."
+ },
+ "description" : {
+ "type" : "string",
+ "description" : "Description of the request status."
+ },
+ "schedule" : {
+ "type" : "array",
+ "description" : "List of schedules returned, one per group. Only 1 group supported at this time.",
+ "items" : {
+ "$ref" : "#/definitions/CMSchedule"
+ }
+ }
+ },
+ "description" : "Asynchronous response to schedule oprimizer request."
+ },
+ "Schedule" : {
+ "type" : "object",
+ "properties" : {
+ "createDateTime" : {
+ "type" : "string",
+ "description" : "Date/time schedule was created."
+ },
+ "optimizerDateTime" : {
+ "type" : "string"
+ },
+ "optimizerMessage" : {
+ "type" : "string"
+ },
+ "optimizerStatus" : {
+ "type" : "string"
+ },
+ "optimizerReturnDateTime" : {
+ "type" : "string"
+ },
+ "optimizerTransactionId" : {
+ "type" : "string"
+ },
+ "schedule" : {
+ "type" : "string"
+ },
+ "scheduleName" : {
+ "type" : "string"
+ },
+ "scheduleInfo" : {
+ "type" : "string"
+ },
+ "status" : {
+ "type" : "string"
+ },
+ "userId" : {
+ "type" : "string"
+ },
+ "domain" : {
+ "type" : "string"
+ },
+ "deleteDateTime" : {
+ "type" : "string"
+ },
+ "domainData" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Domain data"
+ }
+ },
+ "scheduleApprovals" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Schedule Approval"
+ }
+ },
+ "groups" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Change Management Group"
+ }
+ }
+ }
+ },
+ "Schedule Approval" : {
+ "type" : "object",
+ "properties" : {
+ "approvalDateTime" : {
+ "type" : "string",
+ "description" : "Date/time schedule time slot was accepted/rejected."
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Approval status.",
+ "enum" : [ "Accepted", "Rejected" ]
+ },
+ "userId" : {
+ "type" : "string",
+ "description" : "ATTUID of the user accepting/rejecting the time slot."
+ }
+ },
+ "description" : "Details of a schedule approval/rejection."
+ },
+ "Schedule Approval Request" : {
+ "type" : "object",
+ "properties" : {
+ "approvalUserId" : {
+ "type" : "string",
+ "description" : "ATTUID of the user accepting/rejecting the time slot."
+ },
+ "approvalStatus" : {
+ "type" : "string",
+ "description" : "Approval status.",
+ "enum" : [ "Accepted", "Rejected" ]
+ },
+ "approvalType" : {
+ "type" : "string",
+ "description" : "Type of approval.",
+ "enum" : [ "Tier 2" ]
+ },
+ "approvalDateTime" : {
+ "type" : "string",
+ "format" : "date-time"
+ }
+ },
+ "description" : "Request to accept or reject an optimized time slot."
+ },
+ "VNF Details" : {
+ "type" : "object",
+ "properties" : {
+ "groupId" : {
+ "type" : "string",
+ "description" : "Name of the list of VNFs to be changed as a group"
+ },
+ "node" : {
+ "type" : "array",
+ "description" : "Lists of the VNF names to be changed",
+ "items" : {
+ "type" : "string"
+ }
+ },
+ "changeWindow" : {
+ "type" : "array",
+ "description" : "Lists of desired change windows that the optimizer can select from. (Only 1 change window supported at this time)",
+ "items" : {
+ "$ref" : "#/definitions/Change Window"
+ }
+ }
+ },
+ "description" : "Details and scheduling criteria for the VNFs to be changed."
+ }
+ }
}
\ No newline at end of file