1
0
Files
build.ems/docs/05-5GC OMC restful intefaces.md
2023-09-07 10:47:34 +08:00

1444 lines
34 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# EMS restful interfaces
## 1. 状态管理
* URI:
```uri
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/systemState
```
说明:
```Tips
** elementTypeValue=smf/amf/..查询的网元网元类型
```
* Method:
GET
* Return:
NF -> OMC BE的json结构
```
type SysState struct {
HostName string `json:"hostName"` // linux命令: hostname
OsInfo string `json:"osInfo"` // linux命令: uname -a
DbInfo string `json:"dbInfo"` // 网元如果有db, 显示数据库名和版本信息, OMC: mysql --version
Version string `json:"version"` // 软件版本信息: 16.1.1
IpAddr []string `json:"ipAddr"` // 网管的ipv4和ipv6
Port uint16 `json:"port"` // 用于网管的port
Capability uint32 `json:"capability"`
SerialNum string `json:"serialNum"`
ExpiryDate string `json:"expiryDate"`
HardwareInfo struct {
CPUs int `json:"cpus"` // 主机(裸机/虚拟机)的cpu个数
Memory int `json:"memory"` // 主机(裸机/虚拟机): 配置的内存
} `json:"hardwareInfo"`
CpuUsage struct {
NfCpuUsage uint16 `json:"nfCpuUsage"`
SysCpuUsage uint16 `json:"sysCpuUsage"`
} `json:"cpuUsage"`
MemUsage struct {
TotalMem uint32 `json:"totalMem"`
NfUsedMem uint32 `json:"nfUsedMem"`
SysMemUsage uint16 `json:"sysMemUsage"`
} `json:"memUsage"`
DiskSpace struct {
PartitionNum uint8 `json:"partitionNum"`
PartitionInfo []struct {
Total uint32 `json:"total"` // MB
Used uint32 `json:"used"` // MB
} `json:"partitionInfo"`
} `json:"diskSpace"`
//Timestamp string `json:"timestamp"`
}
```
* Example:
OMC BE -> OMC FE
```json
"data": [
{
"AMF_0": {
"error": {
"errorCode": "1",
"errorInfo": "Internal server error, NF connnect refused"
},
"ipAddress": "192.168.2.188"
}
},
{
"SMF_0": {
"ipAddress": "192.168.1.232",
"systemState": {
"capability": 10000,
"cpuUsage": {
"nfCpuUsage": 2,
"sysCpuUsage": 52
},
"diskSpace": {
"partitionInfo": [
{
"total": 1920,
"used": 0
},
{
"total": 393,
"used": 13
},
{
"total": 48700,
"used": 32431
},
{
"total": 1965,
"used": 0
},
{
"total": 5,
"used": 0
},
{
"total": 1965,
"used": 0
},
{
"total": 55,
"used": 55
},
{
"total": 63,
"used": 63
},
{
"total": 91,
"used": 91
},
{
"total": 49,
"used": 49
},
{
"total": 55,
"used": 55
},
{
"total": 73,
"used": 73
},
{
"total": 91,
"used": 91
},
{
"total": 1475,
"used": 206
},
{
"total": 49,
"used": 49
},
{
"total": 393,
"used": 13
},
{
"total": 393,
"used": 0
},
{
"total": 73,
"used": 73
},
{
"total": 63,
"used": 63
}
],
"partitionNum": 19
},
"expiryDate": "2025-02-28",
"memUsage": {
"nfUsedMem": 163992,
"sysMemUsage": 1345,
"totalMem": 4025608
},
"serialNum": "13740126",
"version": "1.5.3.2"
}
}
},
{
"SMF_1": {
"ipAddress": "192.168.1.173",
"systemState": {
"capability": 10000,
"cpuUsage": {
"nfCpuUsage": 0,
"sysCpuUsage": 69
},
"diskSpace": {
"partitionInfo": [
{
"total": 3966,
"used": 0
},
{
"total": 797,
"used": 0
},
{
"total": 200559,
"used": 5968
},
{
"total": 3987,
"used": 0
},
{
"total": 5,
"used": 0
},
{
"total": 3987,
"used": 0
},
{
"total": 797,
"used": 0
}
],
"partitionNum": 7
},
"expiryDate": "2024-12-31",
"memUsage": {
"nfUsedMem": 212136,
"sysMemUsage": 720,
"totalMem": 8167360
},
"serialNum": "13740272",
"version": "1.5.3.3"
}
}
}
]
}
```
## 2 故障管理
### 2.1 告警上报
* URI
```uri
/api/rest/faultManagement/v1/elementType/{elementTypeValue}/objectType/alarms
```
* Method
POST
* Relations
NF->OMC
* Body
```json
type Alarm struct {
AlarmSeq int `json:"alarmSeq"`
AlarmId string `json:"alarmId"`
NeId string `json:"neId"`
AlarmCode int `json:"alarmCode"`
AlarmTitle string `json:"alarmTitle"`
EventTime string `json:"eventTime"`
AlarmType string `json:"alarmType"`
OrigSeverity string `json:"origSeverity"`
PVFlag string `json:"pvFlag"`
NeName string `json:"neName"`
NeType string `json:"neType"`
ObjectName string `json:"objectName"`
LocationInfo string `json:"locationInfo"`
Province string `json:"province"`
AlarmStatus int `json:"alarmStatus"`
SpecificProblem string `json:"specificProblem"`
SpecificProblemID string `json:"specificProblemID"`
AddInfo string `json:"addInfo"`
}
```
### 2.2 获取网元告警
* URI
```uri
/api/rest/faultManagement/v1/elementType/{elementTypeValue}/objectType/alarms
```
* Method
GET
* Relations
OMC->NF
* Body
n/a
* Return
```json
type Alarms struct {
Alarms []struct {
AlarmSeq int `json:"alarmSeq"`
AlarmId string `json:"alarmId"`
NeId string `json:"neId"`
AlarmCode int `json:"alarmCode"`
AlarmTitle string `json:"alarmTitle"`
EventTime string `json:"eventTime"`
AlarmType string `json:"alarmType"`
OrigSeverity string `json:"origSeverity"`
PVFlag string `json:"pvFlag"`
NeName string `json:"neName"`
NeType string `json:"neType"`
ObjectName string `json:"objectName"`
LocationInfo string `json:"locationInfo"`
Province string `json:"province"`
AlarmStatus int `json:"alarmStatus"`
SpecificProblem string `json:"specificProblem"`
SpecificProblemID string `json:"specificProblemID"`
AddInfo string `json:"addInfo"`
} `json:"Alarms"`
}
```
## 3. 配置管理
### 3.1 参数配置表
* 类型定义type
* string
> filter指定字符串长度"filter": "6~100" , 字符串的长度范围,如果单个数字表示最大长度
>
* ipv4
> filter忽略
>
* ipv6
> filter忽略
>
* int
> filter指定整型数的范围"filter": "100~999"
>
* enum
> "filter": '{"0": "http", "1": "https"}'
>
* bool
> "filter": '{"0": "false", "1": "true"}'
>
* regex
> filter为正则表达式
>
* 可选optional
* true默认值表示该字段为可选填没有写该属性项时optional为true兼容以前配置文件
* false表示必填项
* Example
```yaml
UDM:
system:
display: "System"
list:
- name: "serviceIP"
type: "ipv4"
value: "172.16.5.140"
optional: "false"
access: "read-write"
filter: ''
display: "Service IP"
comment: ""
- name: "servicePort"
type: "int"
value: "8080"
access: "read-write"
filter: "0~65535"
display: "Service Port"
comment: "0~65535"
subsSmfSelection:
display: "Subs Smf Selection"
array:
- name: "index"
type: "int"
value: "0"
access: "read-write"
filter: '0~15'
display: "Index"
comment: "0~15"
- name: "name"
type: "string"
value: 'def_ambr'
access: "read-write"
filter: '^.{1,32}$'
display: "Name"
comment: "0~32"
- name: "snssai"
type: "string"
value: '1-000001'
access: "read-write"
filter: '^\d{1,3}[A-Fa-f0-9]{6}$'
display: "Snssai"
comment: ""
- name: "dnnList"
type: "int"
value: '0'
access: "read-write"
filter: '0~3'
display: "Dnn List"
comment: ""
array:
- name: "index"
type: "int"
value: "0"
access: "read-write"
filter: '0~15'
display: "index"
comment: "0~15"
- name: "dnn"
type: "string"
value: 'cmnet'
access: "read-write"
filter: '^.{1,32}$'
display: "Dnn"
comment: "0~32"
- name: "defaultDnnInd"
type: "bool"
value: 'true'
access: "read-write"
filter: 'false;true;'
display: "default Dnn Indicator"
comment: ""
```
完整文件具体请参考 udm_param_config.yaml
### 3.2 获取参数
* URI
```uri
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/config/{paraName}?loc={index0}/{paraName1}/{index1}/...
```
说明
```Tips
elementTypeValue: udm, smf, amf... 网元类型
udm paraName: system, subsUEAmbr, subsSmfSelection ...
非array的参数忽略loc
```
* Params
* loc 多层表的定位信息
* Method
> GET
>
* Return
```uri
/api/rest/systemManagement/v1/elementType/udm/objectType/config/system
```
```json
{
"data": [
{
"serviceIP": "172.16.5.140",
"servicePort": "8080",
"...": "..."
}
]
}
```
```uri
/api/rest/systemManagement/v1/elementType/udm/objectType/config/subsSmfSelection?loc=1/dnnList
```
```json
{
"data": [
{
"index": "0",
"dnn": "cmnet",
"...": "..."
},
{
"index": "1",
"dnn": "ims",
"...": "..."
}
]
}
```
### 3.3 配置参数
* URI
```uri
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/config/{paraName}?loc={index0}/{paraName1}/{index1}
```
* Params
* loc 多层表的定位信息
* Method
> POST/PUT/DELETE
>
说明:
```Tips
单层表不支持POST/DELETE操作
```
* Body
```json
{
"serviceIP": "172.16.5.140",
"servicePort": "8080",
"...": "..."
}
```
说明:
```Tips
DELETE操作不带Body
```
### 3.4 创建/修改网元
* URI
```uri
/api/rest/systemManagement/v1/elementType/{elementTypeValue}/objectType/config/omcNeConfig
```
* Params
N/A
* Method
PUT
* Body
```json
type OmcNeConfig struct {
NeId string `json:"neId" xorm:"ne_id"` // 网元标识(内部),
RmUID string `json:"rmUID" xorm:"rm_uid"` // neUID/rmUID 网元唯一标识
NeName string `json:"neName" xorm:"ne_name"` // 网元名称/友好名称(北向资源/性能等使用)
PvFlag string `json:"pvFlag" xorm:"pv_flag"` // 网元虚实性标识 VNF/PNF: 虚拟/物理
Province string `json:"province" xorm:"province"` // 网元所在省份
VendorName string `json:"vendorName" xorm:"vendor_name"` // 厂商名称
// ManagedBy string `json:"managedBy" xorm:"managed_by"` // 管理ManagedElement的ManagementNode对象类的DN值
Dn string `json:"dn" xorm:"dn"` // 资源里边的ManagedBy性能的Dn网络唯一标识
}
```
## 4 性能管理
### 4.1 任务管理
* URI
```uri
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measureTask?id={taskId1}&id={taskId2}
```
* Method
POST/PUT/DELETE/PATCH
* Params
taskId=1&taskId=2
* POST: 增加测量任务激活任务不带id参数id在body
* PUT 修改测量任务激活任务不带id参数id在body
* DELETE删除测量任务不需要带body带id参数可带多个
* PATCH: 暂停测量任务不需要带body带id参数可带多个
测量任务创建/修改后暂时存储在OMC数据库激活任务时再下发到网元
* Relations
OMC -> NF/NF -> OMC
* Body
下发测量任务的报文结构
```json
type MeasureTask struct {
Tasks []struct {
Id int `json:"Id"`
StartTime string `json:"StartTime"`
EndTime string `json:"EndTime"`
Schedule struct {
Type string `json:"Type"` // 计划类型Weekly/Monthly, 如果type为"", 则任务以StartTime和EndTime为条件进行统计, 否则以Shedule方式进行
Days []int `json:"Days"` // Weekly: [0,1,...5,6]0~6表示星期日~星期六, Monthly: [1,2,3,...,30,31]一个月的几天
Periods []struct {
Start string `json:"Start"` // 零点或者零点加测量粒度的整数倍 00:15:00
End string `json:"End"` // 零点加测量粒度的整数倍 08:45:00, 16:15:00
} `json:"Periods"`
} `json:"Schedule"`
GranulOption string `json:"GranulOption"` // 测量粒度选项15M/30M/60M/24H
KPISet []struct {
Code string `json:"Code"` // 统计编码 如SMFHA01
KPIs []string `json:"KPIs` // 指标项集合 ["SMF.AttCreatePduSession", "SMF.AttCreatePduSession._Dnn"]
} `json:"KPISet"`
} `json:"Tasks"`
NotifyUrl string `json:"NotifyUrl"` /* 数据上报URL "http://x.x.x.x:xxxx/api/rest/performanceManagement/v1/elementType/smf/objectType/measureReport" */
}
```
* Return
### 4.2 订阅任务数据上报
* URI
```uri
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measureReport
```
* Method
POST
* Relations
NF -> OMC
* Body
网元返回测量数据的报文结构
```json
type MeasureReport struct {
Id int `json:"Id"`
Timestamp string `json:"TimeStamp"`
NeName string `json:"NeName"`
RmUID string `json:"rmUID"`
NeType string `json:"NeType"`
Report struct {
Period struct {
StartTime string `json:"StartTime"`
EndTime string `json:"EndTime"`
} `json:"Period"`
Datas []struct {
Code string `json:"Code"` // 统计编码 如SMFHA01
KPIs []struct {
KPIID string `json:"KPIID"` // 指标项, 如: SMF.AttCreatePduSession._Dnn
KPIValues []struct {
Name string `json:"Name"` // 单个的写"Total", 或者指标项有多个测量项如Dnn的名称写对应的Dnn"cmnet"/"ims"
Value int64 `json:"Value"`
} `json:"KPIValues"`
} `json:"KPIs"`
} `json:"Datas"`
} `json:"Report"`
}
```
### 4.3 黄金指标上报
* URI
```uri
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/kpiReport/{index}
```
index取值范围 0-1439
* Method
POST
* Body
```json
type KpiReport struct {
Timestamp string `json:"TimeStamp"`
Task struct {
Period struct {
StartTime string `json:"StartTime"`
EndTime string `json:"EndTime"`
} `json:"Period"`
NE struct {
NEName string `json:"NEName"`
RmUID string `json:"rmUID"`
NeType string `json:"NeType"`
KPIs []struct {
KPIID string `json:"KPIID"`
Value int `json:"Value"`
Err string `json:"Err"`
} `json:"KPIs"`
} `json:"NE"`
} `json:"Task"`
}
```
### 4.4 测量数据主动上报
* URI
```uri
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measurement/{index}
```
* Method
POST
* Relations
NF -> OMC
* Params
NA
* Body
网元主动上报测量数据的报文结构
```json
type Measurement struct {
Index int `json:"Index"` // 1天当中测量时间粒度(如15分钟)的切片索引: 0~95
Timestamp string `json:"TimeStamp"`
NeName string `json:"NeName"` // UserLabel
RmUID string `json:"rmUID"`
NeType string `json:"NeType"` // 网元类型
PmVersion string `json:"PmVersion"` // 性能数据版本号
Dn string `json:"Dn"` // (???)网元标识, 如:RJN-CMZJ-TZ,SubNetwork=5GC88,ManagedElement=SMF53456,SmfFunction=53456
Period string `json:"Period"` // 测量时间粒度选项5/15/30/60
TimeZone string `json:"TimeZone"` // 时区, 如: "UTC+8"
StartTime string `json:"StartTime"`
Datas []struct {
ObjectType string `json:"ObjectType"` // 网络资源类别名称, Pm指标项列表中为空间粒度 如SmfFunction
KPIs []struct {
KPIID string `json:"KPIID"` // 指标项, 如: SMF.AttCreatePduSession._Dnn
KPIValues []struct {
Name string `json:"Name"` // 单个的写"Total", 或者指标项有多个测量项如Dnn的名称写对应的Dnn"cmnet"/"ims"
Value int64 `json:"Value"`
} `json:"KPIValues"`
} `json:"KPIs"`
} `json:"Datas"`
}
```
* Return
Code: 204, no content
### 4.5 测量数据获取/补采
* URI
```uri
/api/rest/performanceManagement/v1/elementType/{elementTypeValue}/objectType/measurement/{index}
```
* Method
GET
* Relations
OMC -> NF
* Params
NA
* Body
NA
* Return
网元返回测量数据的报文结构
```json
type Measurement struct {
Index int `json:"Index"` // 1天中测量时间粒度(如15分钟)的切片索引: 0~95
Timestamp string `json:"TimeStamp"`
NeName string `json:"NeName"` // UserLabel
RmUID string `json:"rmUID"`
NeType string `json:"NeType"` // 网元类型
PmVersion string `json:"PmVersion"` // 性能数据版本号
Dn string `json:"Dn"` // (???)网元标识, 如:RJN-CMZJ-TZ,SubNetwork=5GC88,ManagedElement=SMF53456,SmfFunction=53456
Period string `json:"Period"` // 测量时间粒度选项5/15/30/60
TimeZone string `json:"TimeZone"`
StartTime string `json:"StartTime"`
Datas []struct {
ObjectType string `json:"ObjectType"` // 网络资源类别名称, Pm指标项列表中为空间粒度 如SmfFunction
KPIs []struct {
KPIID string `json:"KPIID"` // 指标项, 如: SMF.AttCreatePduSession._Dnn
KPIValues []struct {
Name string `json:"Name"` // 单个的写"Total", 或者指标项有多个测量项如Dnn的名称写对应的Dnn"cmnet"/"ims"
Value int64 `json:"Value"`
} `json:"KPIValues"`
} `json:"KPIs"`
} `json:"Datas"`
}
```
## 5 跟踪管理
### 5.1 订阅管理
* 创建订阅
* URI
```uri
/api/rest/traceManagement/v1/subscriptions
```
* Method
POST
* Relations
OMC front-end->OMC back-end, OMC -> NF
* Body
OMC front-end->OMC back-end: id 不带
OMC->NFid必选
```json
type TraceTask struct {
Id int `json:"id"`
TraceType string `json:"traceType"`
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
Imsi string `json:"imsi"`
Msisdn string `json:"msisdn"`
SrcIp string `json:"srcIp"`
DstIp string `json:"dstIp"`
SignalPort int16 `json:"signalPort"`
NeType string `json:"neType"`
NeId string `json:"neId"`
UeIp string `json:"ueIp"`
Interfaces []string `json:"interfaces"`
NotifyUrl string `json:"notifyUrl"`
}
```
Example:
```json
{
"id": 3,
"traceType": "Interface",
"startTime": "2023-07-04 13:00:00",
"endTime": "2023-07-04 19:00:00",
"neType": "UDM",
"neId": "SZ_01",
"interfaces": ["N8","N10"],
"notifyUrl": "gtp:192.168.0.229:2152",
}
```
* Return
Code=204 non-content
* 修改订阅
* URI
```uri
/api/rest/traceManagement/v1/subscriptions
```
* Method
PUT
* Relations
OMC front-end->OMC back-end, OMC -> NF
* Body
```json
type TraceTask struct {
Id int `json:"id"`
TraceType string `json:"traceType"`
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
Imsi string `json:"imsi"`
Msisdn string `json:"msisdn"`
SrcIp string `json:"srcIp"`
DstIp string `json:"dstIp"`
SignalPort int16 `json:"signalPort"`
NeType string `json:"neType"`
NeId string `json:"neId"`
UeIp string `json:"ueIp"`
Interfaces []string `json:"interfaces"`
NotifyUrl string `json:"notifyUrl"`
}
```
Example:
```json
{
"id": 3,
"traceType": "Interface",
"startTime": "2023-07-04 13:00:00",
"endTime": "2023-07-04 19:00:00",
"neType": "UDM",
"neId": "SZ_01",
"interfaces": ["N8","N10", "N11"],
"notifyUrl": "gtp:192.168.0.229:2152",
}
```
* Return
Code=204 non-content
* 删除订阅
* URI
```uri
/api/rest/traceManagement/v1/subscriptions?id={id1}&id={id2}
```
* Method
DELETE
* Relations
OMC front-end->OMC back-end, OMC -> NF
* Params
id订阅任务id支持多个
* Body
NA
* Return
Code=204, non-content
* 查询订阅 (暂不实现,直接从数据库查询)
* URI
查询单个订阅:
```uri
/api/rest/traceManagement/v1/subscriptions?id={id}
```
查询所有订阅:
```http
/api/rest/traceManagement/v1/subscriptions
```
* Method
GET
* Body
NA
* Return
```json
{
"data": [
{
"id": 1,
"traceType": "Interface",
"startTime": "2023-07-04 13:00:00",
"endTime": "2023-07-04 19:00:00",
"neType": "UDM",
"neId": "SZ_01",
"interfaces": ["N8","N10", "N11"]
}
]
}
```
### 5.2 消息上报
Example:
```json
{
"id": [1,2],
"timestamp": "20230413 16:02:27.523496",
"imsi": "4600001000000001",
"msisdn": "12307550001",
"srcAddr": "192.168.1.172:51034",
"dstAddr": "192.168.1.187:8080",
"neType": "AMF",
"neId": "SZ_0",
"interface": "N8",
"data": "00002f01040000007f418d0be25c2e3cb8570bcedc780f038345",
"diagnosis": "It is external debug information",
}
```
## 6. 操作维护
### 6.1 MML命令
#### 6.1.1 MML命令格式
* 命令格式
```mml
oper object:parameter1={value1},parameter2={value2},parameter3={value3};
```
* 操作(operation)
* 根据实际操作可选用如下动作,如果没有合适的可自行增加,要做到简洁直观
```list
add: 增加
mod(set):修改/设置
del(rmv):删除
dsp(lst):查询显示
bak备份
exp导出
imp导入
bat: 批量
exec(run):执行
act/dea: 激活/去激活
```
* 与对象之间采用空格分隔
* 对象(object)
* 操作的对象,如签约数据(sub/udmuser)/鉴权数据(auth/authdat), n7接口(n7server)
* 对象名称用所操作对象的英文名(或缩写), 为字母或者数字的组合, 不含空格, "-", "_"等特殊字符
* 使用":"与参数进行分隔
* 参数(param)
* 参数名采用英文常用名/约定俗成的缩写/缩略语等, 如imsimsisdnipport等, 为字母或者数字的组合, 不含空格, "-", "_"等特殊字符
* 参数值为字符串, 如有":", ",", ";", "\\"字符, 需加"\\"进行转义
* 参数之间用","进行分隔
* 命令结束符";", 操作/对象/参数均采用小写字母HW采用的都是大写字母
* 目前现有的各个网元的命令格式
除了UDM签约数据/鉴权数据的MML格式和上述格式基本一致, 各个网元的系统参数MML都不一样, 需统一成上述格式
* UDM鉴权数据/签约数据
```mml
add authdat:imsi=460000100000030,ki=805DADC6E8A54A0D59D622C7A04D08E0,amf=8000,algo=0,opc=CF7FD414E05754CFE08B4FE7F2EF2A36
```
* UDM系统参数
```mml
set n8ip 172.16.5.130
```
* AMF系统参数
```mml
set n8_ip 192.168.1.121
```
* SMF/UPF系统参数
```mml
set n7 server <http|https> <ip> <port>
```
#### 6.1.2 MML配置表
* 类型定义type
* string
filter指定字符串长度"filter": "6~100" , 字符串的长度范围,如果单个数字表示最大长度
* ipv4
filter忽略
* ipv6
filter忽略
* int
filter指定整型数的范围"filter": "100~999"
* enum
"filter": '{"0": "http", "1": "https"}'
* bool
"filter": '{"0": "false", "1": "true"}'
* regex
filter为正则表达式
* Example
```yaml
udm:
authdataManagement:
display: "Authentication Data Management"
mml:
- operation: "dsp"
object: "authdat"
display: "Display Auth Data"
params:
- name: "imsi"
type: "string"
optional: "false"
filter: ""
display: "IMSI"
comment: ""
subscriberManagement:
display: "Subcriber Management"
mml:
- operation: "dsp"
object: "authdat"
display: "Display Auth Data"
params:
- name: "imsi"
type: "string"
optional: "false"
filter: ""
display: "IMSI"
comment: ""
systemManagement:
display: "System Management"
mml:
- operation: "set"
object: "n8ip"
display: "Set N8 IP Address"
params:
- name: "ip"
type: "ipv4"
optional: "false"
filter: ""
display: "IP Address"
comment: ""
```
### 6.2 MML接口
* URI
```uri
/api/rest/opeartionManagement/v1/elementType/{elementTypeValue}/objectType/mml?ne_id={neId}
```
* Relations
OMC front-end -> OMC back-end
OSS -> OMC (北向接口)
* Params
ne_id={neId}
* Method
POST
* Body
```json
{
"mml": [
"date",
"list ver",
"list lic",
"list comm"
]
}
```
* Return
```json
{
"data": [
"2023-05-11 17:52:32.37333745 +0800 CST m=+28762.188435351\n",
"16.1.1\n",
"Expiry date: 2024-12-31, sn: 13740272\n",
"COMMAND NOT FOUND, opr: list, obj: comm\n"
]
}
```
## 7 北向接口(NBI)
### 7.1 查询资源数据接口
* URI
```uri
/api/rest/resourceManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/{objectTypeValue}?rmUIDs={rmUIDValues}&fields={attributeNames}
```
* Relations
OMC -> NF
OSS -> OMC (北向接口)
* Params
* rmUIDs={rmUIDValues}
可携带多额rmUID(统一资源定位符), OMC->NF不带
* fields={attributeNames}
属性域集合={属性名列表}, 指定资源对象多个属性名的英文逗号分割,一个属性名时无英文逗号。
* Method
GET
* Body
```json
GET /api/rest/resourceManagement/v1/elementType/SMF/objectType/ManagedElement?rmUIDs=1101AGTHXSMF0000015704000100&fields=UserLabel HTTP/1.1
accessToken: 52661fbd-6b84-4fc2-aa1e-17879a5c6c9b
Host: serverIP:port
Content-Type: application/json; charset=UTF-8
Content-Length:…
{
}
```
* Return
```json
HTTP/1.1 200 OK
Content - Type: application/json
Content-Length:…
{
"data": [{
"rmUID": "1101AGTHXSMF0000015704000100",
"UserLabel": "SMFRJBJJC01",
...
}]
}
```
## 8 文件接口
### 8.1 软件管理
#### 8.1.1 软件包管理接口
* URI
```uri
/api/rest/systemManagement/v1/{neType}/software/{version}?md5Sum={md5Sum}
```
* Relations
OMC front-end -> OMC back-end
* Params
md5Sum={md5Sum}
* Method
* POST: upload to OMC, 上传文件到OMC, content_type=multipart/form-data
* GET: download from omc, 下载文件到OMC, content_type=multipart/form-data
* DELETE: delete from omc
* Body
POST: 软件包文件, OMC按网元类型存储文件如果文件名相同则会覆盖
* Return
* POST/DELETE: code=204
* GET: code=200, 返回文件
#### 8.1.2 网元软件包管理接口
* URI
```uri
/api/rest/systemManagement/v1/{neType}/software/{version}/{neId}
```
* Relations
OMC front-end -> OMC back-end
* Params
* Method
* POST: distribute to NF
* PUT: active
* PATCH: rollback
* Body
NA
* Return
Code: 204 Not content
### 8.2 License管理
#### 8.2.1 License文件管理接口
* URI
```uri
/api/rest/systemManagement/v1/{neType}/license
```
* Relations
OMC front-end -> OMC back-end
* Params
* Method
* POST: upload to OMC, 上传文件到OMC, content_type=multipart/form-data
* GET: download from omc, 下载文件到OMC, content_type=multipart/form-data
* DELETE: delete from omc
* Body
POST: 携带License文件, OMC按网元类型存储文件如果文件名相同则会覆盖
* Return
Code: 204 Not content
#### 8.2.2 网元License管理接口
* URI
```uri
/api/rest/systemManagement/v1/{neType}/license/{neId}
```
* Relations
OMC front-end -> OMC back-end
* Params
* Method
* POST: distribute to NF
* PUT: active
* PATCH: rollback
* Body
NA
* Return
Code: 204 Not content
## 9 4A接口
### 9.1 从账号(user)管理接口
#### 9.1.1 查询全部从账号(user)接口
* URI
```uri
/api/rest/aaaa/v1/security/users
```
* Relations
4A -> OMC
* Params
* Method
GET
* Body
```json
```
* Return
```json
```
#### 9.1.2 单个从账号(user)接口
* URI
```uri
/api/rest/aaaa/v1/security/users/{id}
```
* Relations
4A -> OMC
* Params
* Method
GET/POST/PUT/DELETE
* Body
```json
```
* Return
```json
```
### 9.2 角色(role)管理接口
#### 9.2.1 查询全部角色(role)接口
* URI
```uri
/api/rest/aaaa/v1/security/roles
```
* Relations
4A -> OMC
* Params
* Method
GET
* Body
```json
```
* Return
```json
```
#### 9.2.2 单个角色(role)接口
* URI
```uri
/api/rest/aaaa/v1/security/roles/{id}
```
* Relations
4A -> OMC
* Params
* Method
GET/POST/PUT/DELETE
* Body
```json
```
* Return
```json
```
### 9.3 登录认证接口
#### 9.2.1 登录认证
* URI
```uri
/api/rest/aaaa/v1/security/authentication/token
```
* Relations
4A -> OMC
* Params
* Method
GET
* Body
```json
```
* Return
```json
```