summaryrefslogtreecommitdiffstats
path: root/docs/sections/swaggerdoc
diff options
context:
space:
mode:
authorJerry Flood <jflood@att.com>2019-05-30 10:36:24 -0400
committerJerry Flood <jflood@att.com>2019-05-30 10:36:39 -0400
commit6df50b96c77bd6402ea4bd7f1a84de6233549cdf (patch)
treed28862e0ae20bbf74fb8dcee9da56d6991c8fc04 /docs/sections/swaggerdoc
parentcc67f224925c03f50ce47068cbde66799c65e3a0 (diff)
Initial docs update for Dublin
Issue-ID: OPTFRA-510 Change-Id: Ic2027fbd66de0f45f826282701c9979fc1599cb0 Signed-off-by: Jerry Flood <jflood@att.com>
Diffstat (limited to 'docs/sections/swaggerdoc')
-rw-r--r--docs/sections/swaggerdoc/oof-cmso-optimizer-api.json538
-rw-r--r--docs/sections/swaggerdoc/oof-cmso-service-api.json (renamed from docs/sections/swaggerdoc/oof-cmso-api.json)353
-rw-r--r--docs/sections/swaggerdoc/oof-cmso-ticketmgt-api.json670
-rw-r--r--docs/sections/swaggerdoc/oof-cmso-topology.json516
4 files changed, 1937 insertions, 140 deletions
diff --git a/docs/sections/swaggerdoc/oof-cmso-optimizer-api.json b/docs/sections/swaggerdoc/oof-cmso-optimizer-api.json
new file mode 100644
index 0000000..d09fc87
--- /dev/null
+++ b/docs/sections/swaggerdoc/oof-cmso-optimizer-api.json
@@ -0,0 +1,538 @@
+{
+ "swagger" : "2.0",
+ "info" : {
+ "version" : "2.0.0-SNAPSHOT",
+ "title" : "cmso-optimizer"
+ },
+ "basePath" : "/optimizer",
+ "tags" : [ {
+ "name" : "Administration"
+ }, {
+ "name" : "Optimizer Interface"
+ } ],
+ "paths" : {
+ "/{apiVersion}/admin/{id}" : {
+ "get" : {
+ "tags" : [ "Administration" ],
+ "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" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "string"
+ }
+ },
+ "400" : {
+ "description" : "Request failed"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/health" : {
+ "get" : {
+ "tags" : [ "Administration" ],
+ "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" : "boolean",
+ "default" : true
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ },
+ "400" : {
+ "description" : "Not healthy",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ }
+ }
+ }
+ },
+ "/{apiVersion}/optimize/schedule" : {
+ "post" : {
+ "tags" : [ "Optimizer Interface" ],
+ "summary" : "",
+ "description" : "API to request schedule optimization for the passed elements.",
+ "operationId" : "optimizeSchedule",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Optimization data.",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Optimizer Request"
+ }
+ } ],
+ "responses" : {
+ "202" : {
+ "description" : "Accepted"
+ },
+ "400" : {
+ "description" : "Bad request",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/optimize/schedule/{id}" : {
+ "get" : {
+ "tags" : [ "Optimizer Interface" ],
+ "summary" : "",
+ "description" : "API to poll for optimized schedule.",
+ "operationId" : "getSchedule",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Request id",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Optimizer Response"
+ }
+ },
+ "404" : {
+ "description" : "Not found.",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "Optimizer Interface" ],
+ "summary" : "",
+ "description" : "API to acknowledge and delete optimized schedule request. Acknowledgesthat optimization has results have been retrieved an are safe to delete",
+ "operationId" : "deleteSchedule",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Request id",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "Deleted"
+ },
+ "404" : {
+ "description" : "Not found.",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/policies" : {
+ "get" : {
+ "tags" : [ "Optimizer Interface" ],
+ "summary" : "",
+ "description" : "API to retrieve supported change management policies.",
+ "operationId" : "getPolicies",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Supported Policy Information"
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad request",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ }
+ },
+ "definitions" : {
+ "Change Window" : {
+ "type" : "object",
+ "properties" : {
+ "startTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Earliest time for which changes may begin."
+ },
+ "endTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Latest time by which all changes must be completed."
+ }
+ },
+ "description" : "Time window for which tickets are to returned"
+ },
+ "CmsoRequestError" : {
+ "type" : "object",
+ "properties" : {
+ "requestError" : {
+ "$ref" : "#/definitions/RequestError"
+ }
+ }
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "Name Value Data" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string",
+ "description" : "Name."
+ },
+ "value" : {
+ "type" : "object",
+ "description" : "Value."
+ }
+ },
+ "description" : "Instance of a name/value"
+ },
+ "Optimizer Element" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element identifier"
+ },
+ "elementData" : {
+ "type" : "array",
+ "description" : "Implementation specific element data.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "VNF group identifier."
+ }
+ },
+ "description" : "Element to be scheduled."
+ },
+ "Optimizer Request" : {
+ "type" : "object",
+ "properties" : {
+ "requestId" : {
+ "type" : "string",
+ "description" : "Unique Id of the request"
+ },
+ "concurrencyLimit" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Concurrency limit for this request"
+ },
+ "normalDuration" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Expected duration of normal change"
+ },
+ "additionalDuration" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "Additional duration for failed change"
+ },
+ "commonData" : {
+ "type" : "array",
+ "description" : "Implementation specific name value pairs.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ },
+ "changeWindows" : {
+ "type" : "array",
+ "description" : "Lists of desired change windows to schedule the elements.",
+ "items" : {
+ "$ref" : "#/definitions/Change Window"
+ }
+ },
+ "elements" : {
+ "type" : "array",
+ "description" : "List of the elements to schedule.",
+ "items" : {
+ "$ref" : "#/definitions/Optimizer Element"
+ }
+ },
+ "policies" : {
+ "type" : "array",
+ "description" : "List of the policies to control optimization.",
+ "items" : {
+ "$ref" : "#/definitions/Supported Policy Information"
+ }
+ }
+ },
+ "description" : "Request to provide an \"conflict free\" schedule for passed elements."
+ },
+ "Optimizer Response" : {
+ "type" : "object",
+ "properties" : {
+ "requestId" : {
+ "type" : "string",
+ "description" : "Unique Id of the request"
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of the optimization",
+ "enum" : [ "CREATED", "PENDING_TOPOLOGY", "TOPOLOGY_IN_PROGRESS", "PENDING_TICKETS", "TICKETS_IN_PROGRESS", "PENDING_OPTIMIZER", "OPTIMIZER_IN_PROGRESS", "COMPLETED", "FAILED", "DELETED" ]
+ },
+ "errorMessage" : {
+ "type" : "string",
+ "description" : "Message for failed optimization"
+ },
+ "schedules" : {
+ "type" : "array",
+ "description" : "List of schedules returned by the optimizer.",
+ "items" : {
+ "$ref" : "#/definitions/Optimizer Schedule Info"
+ }
+ }
+ },
+ "description" : "Response to optimizer request for the requested elements."
+ },
+ "Optimizer Schedule Info" : {
+ "type" : "object",
+ "properties" : {
+ "scheduledElements" : {
+ "type" : "array",
+ "description" : "Lists of elements with start times.",
+ "items" : {
+ "$ref" : "#/definitions/Scheduled Element"
+ }
+ },
+ "unScheduledElements" : {
+ "type" : "array",
+ "description" : "Lists of elements that were not able to be scheduled.",
+ "items" : {
+ "$ref" : "#/definitions/Unscheduled Element"
+ }
+ }
+ },
+ "description" : "Schedule Information returned from optimizer request."
+ },
+ "RequestError" : {
+ "type" : "object",
+ "properties" : {
+ "messageId" : {
+ "type" : "string"
+ },
+ "text" : {
+ "type" : "string"
+ },
+ "variables" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "Scheduled Element" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element identifier"
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "Group identifier"
+ },
+ "scheduleType" : {
+ "type" : "string",
+ "enum" : [ "UNKNOWN", "GROUP_DISPATCH", "INDIVIDUAL" ]
+ },
+ "startTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Earliest time for which changes may begin."
+ },
+ "endTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Latest time by which all changes must be completed."
+ },
+ "durationSeconds" : {
+ "type" : "integer",
+ "format" : "int64",
+ "description" : "Expected duration of change in seconds."
+ }
+ },
+ "description" : "Scheduled element returned by the optimizer."
+ },
+ "Supported Policy Information" : {
+ "type" : "object",
+ "properties" : {
+ "policyName" : {
+ "type" : "string",
+ "description" : "Policy name"
+ },
+ "policyDescription" : {
+ "type" : "string",
+ "description" : "Policy description"
+ },
+ "policyModifiers" : {
+ "type" : "array",
+ "description" : "Named values to modify/override policy attributes.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ }
+ },
+ "description" : "Policy Information returned from get policies API."
+ },
+ "Unscheduled Element" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element identifier"
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "Group identifier"
+ },
+ "notScheduledReaons" : {
+ "type" : "array",
+ "description" : "List of reasons not able to schedule this element.",
+ "items" : {
+ "type" : "string",
+ "enum" : [ "ConcurrencyConstraint", "AvailabilityConstraint", "Other" ]
+ }
+ },
+ "notScheduledMessages" : {
+ "type" : "array",
+ "description" : "List of messages not able to schedule this element.",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ },
+ "description" : "Scheduled element returned by the optimizer."
+ }
+ }
+} \ No newline at end of file
diff --git a/docs/sections/swaggerdoc/oof-cmso-api.json b/docs/sections/swaggerdoc/oof-cmso-service-api.json
index 751b276..3168ecc 100644
--- a/docs/sections/swaggerdoc/oof-cmso-api.json
+++ b/docs/sections/swaggerdoc/oof-cmso-service-api.json
@@ -1,13 +1,21 @@
{
"swagger" : "2.0",
"info" : {
- "version" : "1.0.0-SNAPSHOT",
+ "version" : "2.0.0-SNAPSHOT",
"title" : "cmso-service"
},
"basePath" : "/cmso",
+ "tags" : [ {
+ "name" : "CMSO Administration"
+ }, {
+ "name" : "CMSO Optimized Schedule API"
+ }, {
+ "name" : "CMSO Schedule API"
+ } ],
"paths" : {
"/{apiVersion}/admin/{id}" : {
"get" : {
+ "tags" : [ "CMSO Administration" ],
"summary" : "",
"description" : "Returns encrypted value of id.",
"operationId" : "exec",
@@ -45,6 +53,7 @@
},
"/{apiVersion}/health" : {
"get" : {
+ "tags" : [ "CMSO Administration" ],
"summary" : "",
"description" : "Returns health status of server.",
"operationId" : "healthCheck",
@@ -84,40 +93,9 @@
}
}
},
- "/{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" : {
+ "tags" : [ "CMSO Schedule API" ],
"summary" : "",
"description" : "Returns a list of Scheduler Requests based upon the filter criteria.",
"operationId" : "searchScheduleRequests",
@@ -220,7 +198,52 @@
"404" : {
"description" : "No records found",
"schema" : {
- "$ref" : "#/definitions/CMSRequestError"
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/schedules/optimized/{scheduleId}" : {
+ "post" : {
+ "tags" : [ "CMSO Optimized Schedule API" ],
+ "summary" : "",
+ "description" : "Creates a request for an optimized schedule",
+ "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/Optimized Schedule Request"
+ }
+ } ],
+ "responses" : {
+ "202" : {
+ "description" : "Schedule request accepted for optimization."
+ },
+ "409" : {
+ "description" : "Schedule request already exists for this schedule id.",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
}
},
"500" : {
@@ -231,6 +254,7 @@
},
"/{apiVersion}/schedules/scheduleDetails" : {
"get" : {
+ "tags" : [ "CMSO Schedule API" ],
"summary" : "",
"description" : "Returns a list of Schedule request details based upon the filter criteria.",
"operationId" : "searchScheduleRequestDetails",
@@ -446,7 +470,7 @@
"404" : {
"description" : "No records found",
"schema" : {
- "$ref" : "#/definitions/CMSRequestError"
+ "$ref" : "#/definitions/CmsoRequestError"
}
},
"500" : {
@@ -457,6 +481,7 @@
},
"/{apiVersion}/schedules/{scheduleId}" : {
"get" : {
+ "tags" : [ "CMSO Schedule API" ],
"summary" : "",
"description" : "Retrieve the schedule request for scheduleId",
"operationId" : "getScheduleRequestInfo",
@@ -491,6 +516,7 @@
}
},
"post" : {
+ "tags" : [ "CMSO Schedule API" ],
"summary" : "",
"description" : "Creates a schedule request for scheduleId",
"operationId" : "createScheduleRequest",
@@ -514,7 +540,7 @@
"description" : "Data for creating a schedule request for the given schedule id",
"required" : false,
"schema" : {
- "$ref" : "#/definitions/CMSMessage"
+ "$ref" : "#/definitions/CmsoMessage"
}
} ],
"responses" : {
@@ -524,7 +550,7 @@
"409" : {
"description" : "Schedule request already exists for this schedule id.",
"schema" : {
- "$ref" : "#/definitions/CMSRequestError"
+ "$ref" : "#/definitions/CmsoRequestError"
}
},
"500" : {
@@ -533,6 +559,7 @@
}
},
"delete" : {
+ "tags" : [ "CMSO Schedule API" ],
"summary" : "",
"description" : "Cancels the schedule request for scheduleId",
"operationId" : "deleteScheduleRequest",
@@ -558,7 +585,7 @@
"404" : {
"description" : "No record found",
"schema" : {
- "$ref" : "#/definitions/CMSRequestError"
+ "$ref" : "#/definitions/CmsoRequestError"
}
},
"500" : {
@@ -569,6 +596,7 @@
},
"/{apiVersion}/schedules/{scheduleId}/approvals" : {
"post" : {
+ "tags" : [ "CMSO Schedule API" ],
"summary" : "",
"description" : "Adds an accept/reject approval status to the schedule request identified by scheduleId",
"operationId" : "approveScheduleRequest",
@@ -610,71 +638,6 @@
}
},
"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" : {
@@ -785,6 +748,10 @@
"msoTime" : {
"type" : "string",
"description" : "Time of last poll for MSO status."
+ },
+ "request" : {
+ "type" : "string",
+ "description" : "Change equest."
}
},
"description" : "VNF details for Change Management Schedule"
@@ -807,15 +774,25 @@
"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"
+ "changeWindows" : {
+ "type" : "array",
+ "description" : "Lists of desired change windows to schedule the elements.",
+ "items" : {
+ "$ref" : "#/definitions/Change Window"
+ }
},
- "vnfDetails" : {
+ "policies" : {
+ "type" : "array",
+ "description" : "List of the policies to control optimization.",
+ "items" : {
+ "$ref" : "#/definitions/Supported Policy Information"
+ }
+ },
+ "elements" : {
"type" : "array",
"description" : "Lists of the VNFs to be changed and the desired change windows",
"items" : {
- "$ref" : "#/definitions/VNF Details"
+ "$ref" : "#/definitions/Optimizer Element"
}
}
},
@@ -826,14 +803,16 @@
"properties" : {
"startTime" : {
"type" : "string",
- "description" : "Earliest time that a set of changes may begin."
+ "format" : "date-time",
+ "description" : "Earliest time for which changes may begin."
},
"endTime" : {
"type" : "string",
- "description" : "Latest time by which all changes must be completed"
+ "format" : "date-time",
+ "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"
+ "description" : "Time window for which tickets are to returned"
},
"CmDetailsMessage" : {
"type" : "object",
@@ -918,10 +897,48 @@
"items" : {
"$ref" : "#/definitions/Schedule Approval Request"
}
+ }
+ }
+ },
+ "CmsoMessage" : {
+ "type" : "object",
+ "properties" : {
+ "domain" : {
+ "type" : "string",
+ "description" : "Schedule domain : ChangeManagement"
},
- "schedulesId" : {
- "type" : "integer",
- "format" : "int32"
+ "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"
+ }
+ }
+ },
+ "CmsoRequestError" : {
+ "type" : "object",
+ "properties" : {
+ "requestError" : {
+ "$ref" : "#/definitions/RequestError"
}
}
},
@@ -977,55 +994,94 @@
}
}
},
- "RequestError" : {
+ "Name Value Data" : {
"type" : "object",
"properties" : {
- "messageId" : {
- "type" : "string"
- },
- "text" : {
- "type" : "string"
+ "name" : {
+ "type" : "string",
+ "description" : "Name."
},
- "variables" : {
- "type" : "array",
- "items" : {
- "type" : "string"
- }
+ "value" : {
+ "type" : "object",
+ "description" : "Value."
}
- }
+ },
+ "description" : "Instance of a name/value"
},
- "Response from schedule optimizer" : {
+ "Optimized Schedule Request" : {
"type" : "object",
"properties" : {
- "transactionId" : {
+ "domain" : {
"type" : "string",
- "description" : "Unique id of optimization request."
+ "description" : "Schedule domain : ChangeManagement"
},
"scheduleId" : {
"type" : "string",
- "description" : "Schedule id for which the optimization request was executed."
+ "description" : "Schedule id that must be unique within the domain. Use of UUID is highly recommended."
},
- "requestState" : {
+ "scheduleName" : {
"type" : "string",
- "description" : "State of the request as reported by the optimizer."
+ "description" : "User provided name of the schedule (deaults to scheduleId"
},
- "status" : {
+ "userId" : {
"type" : "string",
- "description" : "Status of the request."
+ "description" : "ATTUID of the user requesting the schedule."
+ },
+ "commonData" : {
+ "type" : "array",
+ "description" : "Implementation specific name value pairs.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
},
- "description" : {
+ "schedulingData" : {
+ "description" : "Scheduling data.",
+ "$ref" : "#/definitions/Change Management Scheduling Info"
+ }
+ },
+ "description" : "Request to schedule VNF change management workflow(s)."
+ },
+ "Optimizer Element" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
"type" : "string",
- "description" : "Description of the request status."
+ "description" : "Element identifier"
},
- "schedule" : {
+ "elementData" : {
"type" : "array",
- "description" : "List of schedules returned, one per group. Only 1 group supported at this time.",
+ "description" : "Implementation specific element data.",
"items" : {
- "$ref" : "#/definitions/CMSchedule"
+ "$ref" : "#/definitions/Name Value Data"
}
+ },
+ "request" : {
+ "type" : "object",
+ "description" : "Request for be scheduled."
+ },
+ "groupId" : {
+ "type" : "string",
+ "description" : "VNF group identifier."
}
},
- "description" : "Asynchronous response to schedule oprimizer request."
+ "description" : "Element to be scheduled."
+ },
+ "RequestError" : {
+ "type" : "object",
+ "properties" : {
+ "messageId" : {
+ "type" : "string"
+ },
+ "text" : {
+ "type" : "string"
+ },
+ "variables" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
},
"Schedule" : {
"type" : "object",
@@ -1133,6 +1189,23 @@
},
"description" : "Request to accept or reject an optimized time slot."
},
+ "Supported Policy Information" : {
+ "type" : "object",
+ "properties" : {
+ "policyName" : {
+ "type" : "string",
+ "description" : "Policy name"
+ },
+ "policyModifiers" : {
+ "type" : "array",
+ "description" : "Named values to modify/override policy attributes.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ }
+ },
+ "description" : "Policy Information returned from get policies API."
+ },
"VNF Details" : {
"type" : "object",
"properties" : {
diff --git a/docs/sections/swaggerdoc/oof-cmso-ticketmgt-api.json b/docs/sections/swaggerdoc/oof-cmso-ticketmgt-api.json
new file mode 100644
index 0000000..24dc2f2
--- /dev/null
+++ b/docs/sections/swaggerdoc/oof-cmso-ticketmgt-api.json
@@ -0,0 +1,670 @@
+{
+ "swagger" : "2.0",
+ "info" : {
+ "version" : "2.0.0-SNAPSHOT",
+ "title" : "cmso-ticketmgt"
+ },
+ "basePath" : "/ticketmgt",
+ "tags" : [ {
+ "name" : "Administration"
+ }, {
+ "name" : "Availability Interface"
+ }, {
+ "name" : "Ticket Management"
+ } ],
+ "paths" : {
+ "/{apiVersion}/activetickets" : {
+ "post" : {
+ "tags" : [ "Availability Interface" ],
+ "summary" : "Request Active Tickets",
+ "description" : "API to support conflict avoidance. Retrieves the active ticket data for the passed criteria to detemine availability of passed elements within the passed time window.\nIf the request results in asynchronous processging, IN_PROGRESS status will be returned and the optimizer will begin to poll the request until COMPLETED.",
+ "operationId" : "getActiveTickets",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Active ticket criteria (elements and change windows).",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Management Request"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Management Response"
+ }
+ },
+ "400" : {
+ "description" : "Bad request",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/activetickets/{id}" : {
+ "get" : {
+ "tags" : [ "Availability Interface" ],
+ "summary" : "Poll Active Tickets Request",
+ "description" : "Poll for the status of the request id. Optimizser will poll until status is COMPLETED and issue acknowledge (DELETE) API to acknowledge the receipt of the response.",
+ "operationId" : "pollActiveTickets",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Active tickets request id.",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Management Response"
+ }
+ },
+ "404" : {
+ "description" : "Not found.",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "Availability Interface" ],
+ "summary" : "Acknowledge Active Tickets Response",
+ "description" : "API call used to acknowledge the receipt of a COMPLETED asynchronous request to enable the Ticket Management service to remove it from their cache. The service may remove from the cache on the poll request. The optimizer will treat Not found reponse on as normal.",
+ "operationId" : "deleteActiveTicketsRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Active tickets request id.",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "successful operation",
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Management Response"
+ }
+ },
+ "204" : {
+ "description" : "OK"
+ },
+ "404" : {
+ "description" : "Not found",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/admin/{id}" : {
+ "get" : {
+ "tags" : [ "Administration" ],
+ "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" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "string"
+ }
+ },
+ "400" : {
+ "description" : "Request failed"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/health" : {
+ "get" : {
+ "tags" : [ "Administration" ],
+ "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" : "boolean",
+ "default" : true
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ },
+ "400" : {
+ "description" : "Not healthy",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ }
+ }
+ }
+ },
+ "/{apiVersion}/ticket" : {
+ "post" : {
+ "tags" : [ "Ticket Management" ],
+ "summary" : "Create Ticket",
+ "description" : "Creates a ticket for the passed data",
+ "operationId" : "createTicket",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Data for creating a ticket",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Data"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "Ticket Created. Ticket Id returned.",
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Data"
+ }
+ },
+ "400" : {
+ "description" : "Bad request.",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "put" : {
+ "tags" : [ "Ticket Management" ],
+ "summary" : "Update Ticket",
+ "description" : "Updates a ticket to the passed data",
+ "operationId" : "updateTicket",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Data for updating a ticket",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Data"
+ }
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "Ticket Updated."
+ },
+ "400" : {
+ "description" : "Bad request.",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/ticket/{id}" : {
+ "get" : {
+ "tags" : [ "Ticket Management" ],
+ "summary" : "Fetch Ticket",
+ "description" : "Returns ticket information for the provided ticket id.",
+ "operationId" : "fetchTicket",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Unique ticket identifier",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Ticket Data"
+ }
+ },
+ "404" : {
+ "description" : "No record found",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "Ticket Management" ],
+ "summary" : "Cancel the ticket",
+ "description" : "Cancels the ticket.",
+ "operationId" : "deleteScheduleRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Ticket id to uniquely identify the ticket being deleted.",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "204" : {
+ "description" : "Delete successful"
+ },
+ "400" : {
+ "description" : "Bad request",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "404" : {
+ "description" : "No record found",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/tickets" : {
+ "get" : {
+ "tags" : [ "Ticket Management" ],
+ "summary" : "Search Tickets",
+ "description" : "Returns a list of based upon the filter criteria.",
+ "operationId" : "searchTcikets",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "query",
+ "description" : "Ticket identifier",
+ "required" : false,
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ },
+ "collectionFormat" : "multi"
+ }, {
+ "name" : "elementId",
+ "in" : "query",
+ "description" : "Element Id",
+ "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" : "maxTickets",
+ "in" : "query",
+ "description" : "Maximum number of tickets to return",
+ "required" : false,
+ "type" : "integer",
+ "format" : "int32"
+ }, {
+ "name" : "lastId",
+ "in" : "query",
+ "description" : "Return tickets > last id",
+ "required" : false,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "array",
+ "items" : {
+ "$ref" : "#/definitions/Ticket Data"
+ }
+ }
+ },
+ "400" : {
+ "description" : "Bad request",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ }
+ },
+ "definitions" : {
+ "Change Window" : {
+ "type" : "object",
+ "properties" : {
+ "startTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Earliest time for which changes may begin."
+ },
+ "endTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Latest time by which all changes must be completed."
+ }
+ },
+ "description" : "Time window for which tickets are to returned"
+ },
+ "CmsoRequestError" : {
+ "type" : "object",
+ "properties" : {
+ "requestError" : {
+ "$ref" : "#/definitions/RequestError"
+ }
+ }
+ },
+ "Element Critera" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element id unique to the request."
+ },
+ "elementData" : {
+ "type" : "array",
+ "description" : "Implementation specific element data.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ }
+ },
+ "description" : "Element criteria for retrieving active tickets."
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "Name Value Data" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string",
+ "description" : "Name."
+ },
+ "value" : {
+ "type" : "object",
+ "description" : "Value."
+ }
+ },
+ "description" : "Instance of a name/value"
+ },
+ "RequestError" : {
+ "type" : "object",
+ "properties" : {
+ "messageId" : {
+ "type" : "string"
+ },
+ "text" : {
+ "type" : "string"
+ },
+ "variables" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "Ticket Data" : {
+ "type" : "object",
+ "properties" : {
+ "id" : {
+ "type" : "string",
+ "description" : "Unique ticket identifier"
+ },
+ "startTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Scheduled start time of change."
+ },
+ "endTime" : {
+ "type" : "string",
+ "format" : "date-time",
+ "description" : "Scheduled end time of change."
+ },
+ "availability" : {
+ "type" : "string",
+ "description" : "Availability of element(s) during change window",
+ "enum" : [ "full", "partial", "unavailable" ]
+ },
+ "elementIds" : {
+ "type" : "array",
+ "description" : "List elementIds of elements being changed. At least one maps to elementId in the request",
+ "items" : {
+ "type" : "string"
+ }
+ },
+ "changeDetails" : {
+ "type" : "string",
+ "description" : "Details of the change."
+ }
+ },
+ "description" : "Change Management Ticket Information."
+ },
+ "Ticket Management Request" : {
+ "type" : "object",
+ "properties" : {
+ "requestId" : {
+ "type" : "string",
+ "description" : "Unique Id of the request"
+ },
+ "commonData" : {
+ "type" : "array",
+ "description" : "Implementation specific name value pairs provided to be passed to Ticket Management query .",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ },
+ "changeWindows" : {
+ "type" : "array",
+ "description" : "Lists of desired change windows for which TicketData will be returned.",
+ "items" : {
+ "$ref" : "#/definitions/Change Window"
+ }
+ },
+ "elements" : {
+ "type" : "array",
+ "description" : "List of the elements for which TicketData will be returned.",
+ "items" : {
+ "$ref" : "#/definitions/Element Critera"
+ }
+ }
+ },
+ "description" : "Request to retrieve active tickets for the provided elements."
+ },
+ "Ticket Management Response" : {
+ "type" : "object",
+ "properties" : {
+ "requestId" : {
+ "type" : "string",
+ "description" : "Unique Id of the request"
+ },
+ "elements" : {
+ "type" : "array",
+ "description" : "List of TicketData for the requested elements. A single ticket may apply to more than 1 passed elementId.",
+ "items" : {
+ "$ref" : "#/definitions/Ticket Data"
+ }
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of ticket request. IN_PROGRESS will indicate asynchronous processing is required.",
+ "enum" : [ "IN_PROGESS", "COMPLETED", "FAILED" ]
+ },
+ "pollingSeconds" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "If request is asynchronous (IN_PROGRESS), suggested interval to the next poll."
+ }
+ },
+ "description" : "Response to active ticket query for the requested elements."
+ }
+ }
+} \ No newline at end of file
diff --git a/docs/sections/swaggerdoc/oof-cmso-topology.json b/docs/sections/swaggerdoc/oof-cmso-topology.json
new file mode 100644
index 0000000..c99ec67
--- /dev/null
+++ b/docs/sections/swaggerdoc/oof-cmso-topology.json
@@ -0,0 +1,516 @@
+{
+ "swagger" : "2.0",
+ "info" : {
+ "version" : "2.0.0-SNAPSHOT",
+ "title" : "cmso-topology"
+ },
+ "basePath" : "/topology",
+ "tags" : [ {
+ "name" : "Administration"
+ }, {
+ "name" : "Topology Interface"
+ } ],
+ "paths" : {
+ "/{apiVersion}/admin/{id}" : {
+ "get" : {
+ "tags" : [ "Administration" ],
+ "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" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "type" : "string"
+ }
+ },
+ "400" : {
+ "description" : "Request failed"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/current" : {
+ "post" : {
+ "tags" : [ "Topology Interface" ],
+ "summary" : "Request Topology",
+ "description" : "API to retrieve toplogy for scheduling 'conflict free' mainentance. Retrieves the element information related to the list of elements targeted for mainenance activity. Scope of related elements to be returned are defined in the passed ToplogogyRequest. Elements returned must include in the elementData, the identifier that the element is known as in the ticket management system.\nThe Topology Service may implement asynchronous requests by returning IN_PROGRESS status. If IN_PROGRESS, the optimizer will begin polling until COMPLETED is returned with the response. ",
+ "operationId" : "retrieveCurrentTopology",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "in" : "body",
+ "name" : "body",
+ "description" : "Topology criteria.",
+ "required" : false,
+ "schema" : {
+ "$ref" : "#/definitions/Topology Request"
+ }
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Topology Response"
+ }
+ },
+ "400" : {
+ "description" : "Bad request",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/current/request/{id}" : {
+ "get" : {
+ "tags" : [ "Topology Interface" ],
+ "summary" : "Poll Asynchronous Topology Request",
+ "description" : "If a topology request results in asynchronous request (IN_PROGRESS) this GET is used to retrieve status until COMPLETED. At which time, the optimizer will issue a DELETE to acknowledge receipt.\nThe Topology Service implementation may delete the cache when returning completed. The optimizer will treat subsequent not found on delete as normal.",
+ "operationId" : "getTopologyRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Request Id",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Topology Response"
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ },
+ "delete" : {
+ "tags" : [ "Topology Interface" ],
+ "summary" : "Acknowledge Topology Response",
+ "description" : "API to acknowledge COMPLETED toplogy request.",
+ "operationId" : "deleteTopologyRequest",
+ "produces" : [ "application/json" ],
+ "parameters" : [ {
+ "name" : "apiVersion",
+ "in" : "path",
+ "description" : "v1",
+ "required" : true,
+ "type" : "string",
+ "default" : "v1"
+ }, {
+ "name" : "id",
+ "in" : "path",
+ "description" : "Request Id",
+ "required" : true,
+ "type" : "string"
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/Topology Response"
+ }
+ },
+ "404" : {
+ "description" : "Not Found",
+ "schema" : {
+ "$ref" : "#/definitions/CmsoRequestError"
+ }
+ },
+ "500" : {
+ "description" : "Unexpected Runtime error"
+ }
+ }
+ }
+ },
+ "/{apiVersion}/health" : {
+ "get" : {
+ "tags" : [ "Administration" ],
+ "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" : "boolean",
+ "default" : true
+ } ],
+ "responses" : {
+ "200" : {
+ "description" : "OK",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ },
+ "400" : {
+ "description" : "Not healthy",
+ "schema" : {
+ "$ref" : "#/definitions/HealthCheckMessage"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions" : {
+ "CmsoRequestError" : {
+ "type" : "object",
+ "properties" : {
+ "requestError" : {
+ "$ref" : "#/definitions/RequestError"
+ }
+ }
+ },
+ "Element Critera" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element id unique to the request."
+ },
+ "elementData" : {
+ "type" : "array",
+ "description" : "Implementation specific element data.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ }
+ },
+ "description" : "Element criteria for retrieving topology."
+ },
+ "Element Location" : {
+ "type" : "object",
+ "properties" : {
+ "lat" : {
+ "type" : "number",
+ "format" : "float",
+ "description" : "Geographic latitude of element."
+ },
+ "lon" : {
+ "type" : "number",
+ "format" : "float",
+ "description" : "Geographic longitude of element."
+ },
+ "timezone" : {
+ "type" : "string",
+ "description" : "Timezone."
+ }
+ },
+ "description" : "Location information necessary to determine timezone. lat/lon and/or timezone must be provided"
+ },
+ "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"
+ }
+ }
+ }
+ },
+ "Name Value Data" : {
+ "type" : "object",
+ "properties" : {
+ "name" : {
+ "type" : "string",
+ "description" : "Name."
+ },
+ "value" : {
+ "type" : "object",
+ "description" : "Value."
+ }
+ },
+ "description" : "Instance of a name/value"
+ },
+ "RequestError" : {
+ "type" : "object",
+ "properties" : {
+ "messageId" : {
+ "type" : "string"
+ },
+ "text" : {
+ "type" : "string"
+ },
+ "variables" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "Supported Policy Information" : {
+ "type" : "object",
+ "properties" : {
+ "policyName" : {
+ "type" : "string",
+ "description" : "Policy name"
+ },
+ "policyDescription" : {
+ "type" : "string",
+ "description" : "Policy description"
+ },
+ "policyModifiers" : {
+ "type" : "array",
+ "description" : "Named values to modify/override policy attributes.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ }
+ },
+ "description" : "Policy Information returned from get policies API."
+ },
+ "Topology Constraint ELements" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element identifier"
+ },
+ "constraintType" : {
+ "type" : "string",
+ "description" : "Type of constraint."
+ },
+ "constraintTypeMinimum" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "If more than one instance of constraintType, minimum number of available instances required. Useful for identifying availableBackup elements, service paths."
+ },
+ "optimizerAvailabilityMatrixName" : {
+ "type" : "string",
+ "description" : "Availability matrix name. Availability matrix will not be passed to optimizer engine. Generally useful for global concurrency type constraints."
+ },
+ "availabilityMatrixScope" : {
+ "type" : "string",
+ "description" : "Availability matrix scope global or scoped per elementId.",
+ "enum" : [ "NONE", "GLOBAL", "ELEMENT" ]
+ },
+ "elementAvailabilityAggreagation" : {
+ "type" : "boolean",
+ "description" : "Availability matrix is aggregated into element availability marrix."
+ },
+ "elements" : {
+ "type" : "array",
+ "description" : "Elements ",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ },
+ "description" : "Constraining Element Information returned from TopologyRequuest."
+ },
+ "Topology Element" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element identifier"
+ },
+ "elementLocation" : {
+ "description" : "Location information for the element.",
+ "$ref" : "#/definitions/Element Location"
+ },
+ "requiredElements" : {
+ "type" : "array",
+ "description" : "List of related elements required to be available to execute the chenge.",
+ "items" : {
+ "type" : "string"
+ }
+ },
+ "constraintElements" : {
+ "type" : "array",
+ "description" : "Lists of related elements that must be available to avoid network outage while executing the change. Each set constraint elements",
+ "items" : {
+ "$ref" : "#/definitions/Topology Constraint ELements"
+ }
+ },
+ "elementData" : {
+ "type" : "array",
+ "description" : "Implementation specific element data.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ }
+ },
+ "description" : "Element Information returned from TopologyRequuest."
+ },
+ "Topology Related Element" : {
+ "type" : "object",
+ "properties" : {
+ "elementId" : {
+ "type" : "string",
+ "description" : "Element identifier"
+ },
+ "elementLocation" : {
+ "description" : "Location information for the element.",
+ "$ref" : "#/definitions/Element Location"
+ },
+ "elementData" : {
+ "type" : "array",
+ "description" : "Implementation specific element data.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ },
+ "relatedElements" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ },
+ "description" : "Element Information returned from TopologyRequuest."
+ },
+ "Topology Request" : {
+ "type" : "object",
+ "properties" : {
+ "requestId" : {
+ "type" : "string",
+ "description" : "Unique Id of the request"
+ },
+ "commonData" : {
+ "type" : "array",
+ "description" : "Implementation specific name value pairs.",
+ "items" : {
+ "$ref" : "#/definitions/Name Value Data"
+ }
+ },
+ "elements" : {
+ "type" : "array",
+ "description" : "List of the elements for which topology information is requested.",
+ "items" : {
+ "$ref" : "#/definitions/Element Critera"
+ }
+ },
+ "policies" : {
+ "type" : "array",
+ "description" : "List of the policies to control topology retrieve.",
+ "items" : {
+ "$ref" : "#/definitions/Supported Policy Information"
+ }
+ }
+ },
+ "description" : "Request to retrieve topology information for the provided elements."
+ },
+ "Topology Response" : {
+ "type" : "object",
+ "properties" : {
+ "requestId" : {
+ "type" : "string",
+ "description" : "Unique Id of the request"
+ },
+ "elements" : {
+ "type" : "array",
+ "description" : "List of elements for for which topology has been requested.",
+ "items" : {
+ "$ref" : "#/definitions/Topology Element"
+ }
+ },
+ "referencedElements" : {
+ "type" : "array",
+ "description" : "List of referenced elements representing the topology that has been requested.",
+ "items" : {
+ "$ref" : "#/definitions/Topology Related Element"
+ }
+ },
+ "status" : {
+ "type" : "string",
+ "description" : "Status of asynchronous request. COMPLETED is returned on initial synchonous request. If IN_PROGRESS is returned, the optimizer will enter asynchronous polling mode.",
+ "enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
+ },
+ "errorMessage" : {
+ "type" : "string",
+ "description" : "FAILED request error message."
+ },
+ "pollingSeconds" : {
+ "type" : "integer",
+ "format" : "int32",
+ "description" : "If request is asynchronous (IN_PROGRESS), suggested interval to the next poll."
+ }
+ },
+ "description" : "Response to topology query for the requested elements."
+ }
+ }
+} \ No newline at end of file