2017-09-20 05:58:53 +00:00
|
|
|
const mongoose = require('mongoose');
|
|
|
|
const Schema = mongoose.Schema;
|
|
|
|
require('mongoose-long')(mongoose);
|
|
|
|
|
|
|
|
const Profile = new Schema({
|
2021-03-08 12:25:09 +00:00
|
|
|
|
|
|
|
schema_version: {
|
|
|
|
$type: Number,
|
|
|
|
default: 1 // Current Schema Version
|
|
|
|
},
|
|
|
|
|
2017-09-20 08:18:15 +00:00
|
|
|
title: { $type: String, required: true },
|
2017-09-20 05:58:53 +00:00
|
|
|
|
2021-04-05 08:09:39 +00:00
|
|
|
msisdn: [ String ],
|
2022-04-01 15:46:05 +00:00
|
|
|
imeisv: [ String ],
|
2021-04-05 08:09:39 +00:00
|
|
|
|
2017-09-20 05:58:53 +00:00
|
|
|
security: {
|
|
|
|
k: String,
|
|
|
|
op: String,
|
2017-10-25 03:17:52 +00:00
|
|
|
opc: String,
|
2017-09-20 05:58:53 +00:00
|
|
|
amf: String,
|
|
|
|
},
|
|
|
|
|
|
|
|
ambr: {
|
2021-03-08 12:25:09 +00:00
|
|
|
downlink: { value: Number, unit: Number },
|
|
|
|
uplink: { value: Number, unit: Number }
|
2017-09-20 05:58:53 +00:00
|
|
|
},
|
|
|
|
|
2021-03-08 12:25:09 +00:00
|
|
|
slice: [{
|
|
|
|
sst: { $type: Number, required: true },
|
|
|
|
sd: String,
|
|
|
|
default_indicator: Boolean,
|
|
|
|
session: [{
|
|
|
|
name: { $type: String, required: true }, // DNN or APN
|
|
|
|
type: Number,
|
2017-09-20 05:58:53 +00:00
|
|
|
qos: {
|
2021-03-08 12:25:09 +00:00
|
|
|
index: Number, // 5QI or QCI
|
2017-09-20 05:58:53 +00:00
|
|
|
arp: {
|
|
|
|
priority_level: Number,
|
2021-03-08 12:25:09 +00:00
|
|
|
pre_emption_capability: Number,
|
|
|
|
pre_emption_vulnerability: Number,
|
|
|
|
}
|
|
|
|
},
|
|
|
|
ambr: {
|
|
|
|
downlink: { value: Number, unit: Number },
|
|
|
|
uplink: { value: Number, unit: Number }
|
|
|
|
},
|
|
|
|
ue: {
|
|
|
|
addr: String,
|
|
|
|
addr6: String
|
|
|
|
},
|
|
|
|
smf: {
|
|
|
|
addr: String,
|
|
|
|
addr6: String
|
|
|
|
},
|
|
|
|
pcc_rule: [{
|
|
|
|
flow: [{
|
|
|
|
direction: Number,
|
|
|
|
description: String
|
|
|
|
}],
|
|
|
|
qos: {
|
|
|
|
index: Number,
|
|
|
|
arp: {
|
|
|
|
priority_level: Number,
|
|
|
|
pre_emption_capability: Number,
|
|
|
|
pre_emption_vulnerability: Number,
|
|
|
|
},
|
|
|
|
mbr: {
|
|
|
|
downlink: { value: Number, unit: Number },
|
|
|
|
uplink: { value: Number, unit: Number }
|
|
|
|
},
|
|
|
|
gbr: {
|
|
|
|
downlink: { value: Number, unit: Number },
|
|
|
|
uplink: { value: Number, unit: Number }
|
2017-09-20 05:58:53 +00:00
|
|
|
},
|
|
|
|
},
|
2021-03-08 12:25:09 +00:00
|
|
|
}]
|
2017-09-20 05:58:53 +00:00
|
|
|
}]
|
|
|
|
}]
|
|
|
|
}, { typeKey: '$type' });
|
|
|
|
|
|
|
|
module.exports = mongoose.model('Profile', Profile);
|