AETHER-2941 open-policy-agent: create unit tests for REGO Rules
Change-Id: Ib6b9294e3cedaf96e77b03e21727b2ea108d43e3
diff --git a/.reuse/dep5 b/.reuse/dep5
index 6e71283..82ac735 100644
--- a/.reuse/dep5
+++ b/.reuse/dep5
@@ -4,7 +4,7 @@
Copyright: 2021 Open Networking Foundation
License: Apache-2.0
-Files: config-models/*/files/*.tree */files/configs/*.json */dashboards/*/*.json */files/opa-rbac/test/*.json go.mod go.sum
+Files: config-models/*/files/*.tree */files/configs/*.json */dashboards/*/*.json */files/opa-rbac/test/*.json */files/opa-rbac/test/out/*.out go.mod go.sum
Copyright: 2021 Open Networking Foundation
License: Apache-2.0
diff --git a/Makefile b/Makefile
index 1e858c7..1261c5b 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,23 @@
all: test
test: # @HELP run the acceptance tests
-test: deps
+test: deps opa-test
+
+opa-test: #@HELP run the rego rule tests
+opa-test:
+ @cd aether-roc-umbrella/files/opa-rbac && for test_file in test/*; do \
+ trimmed=`basename $$test_file .json`;\
+ case "$$trimmed" in \
+ *2.0.0*) docker run -v $$(pwd):/opa-rbac openpolicyagent/opa:0.29.4 eval -f pretty -b /opa-rbac \
+ --input opa-rbac/test/$$trimmed.json data.aether_2_0_x.allowed > /tmp/$$trimmed.out;;\
+ *3.0.0*) docker run -v $$(pwd):/opa-rbac openpolicyagent/opa:0.29.4 eval -f pretty -b /opa-rbac \
+ --input opa-rbac/test/$$trimmed.json data.aether_3_0_0.allowed > /tmp/$$trimmed.out;;\
+ *4.0.0*) docker run -v $$(pwd):/opa-rbac openpolicyagent/opa:0.29.4 eval -f pretty -b /opa-rbac \
+ --input opa-rbac/test/$$trimmed.json data.aether_4_0_18.allowed > /tmp/$$trimmed.out;;\
+ *) continue;;esac;\
+ cmp -s /tmp/$$trimmed.out test/out/$$trimmed.out \
+ && echo "[TEST] $$trimmed.json : PASS"|| echo "[TEST] $$trimmed.json : FAIL";\
+ done;
roc-test: # @HELP run the integration tests
roc-test: deps # @HELP run the integration tests
diff --git a/aether-roc-umbrella/Chart.yaml b/aether-roc-umbrella/Chart.yaml
index f7740b6..7d8faeb 100644
--- a/aether-roc-umbrella/Chart.yaml
+++ b/aether-roc-umbrella/Chart.yaml
@@ -7,7 +7,7 @@
description: Aether ROC Umbrella chart to deploy all Aether ROC
kubeVersion: ">=1.18.0"
type: application
-version: 2.1.4
+version: 2.1.5
appVersion: v0.0.0
keywords:
- aether
diff --git a/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json b/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-group-ent.json
similarity index 91%
copy from aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json
copy to aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-group-ent.json
index 940f0a6..37deedd 100644
--- a/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json
+++ b/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-group-ent.json
@@ -1,7 +1,6 @@
{
"groups": [
- "mixedGroup",
- "acme"
+ "AetherROCAdmin"
],
"connectivity_services": {
"connectivity_service": [
@@ -27,7 +26,7 @@
{
"description": "This Enterprise holds discovered IMSIs that cannot be associated elsewhere.",
"display_name": "Default Enterprise",
- "ent_id": "defaultent"
+ "enterprise_id": "defaultent"
},
{
"connectivity_service": [
@@ -38,7 +37,7 @@
],
"description": "ACME Corporation",
"display_name": "ACME Corp",
- "ent_id": "acme"
+ "enterprise_id": "acme"
},
{
"connectivity_service": [
@@ -53,7 +52,7 @@
],
"description": "Starbucks Corporation",
"display_name": "Starbucks Inc.",
- "ent_id": "starbucks"
+ "enterprise_id": "starbucks"
}
]
}
diff --git a/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json b/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-no-ent.json
similarity index 92%
copy from aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json
copy to aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-no-ent.json
index 940f0a6..3942fb6 100644
--- a/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json
+++ b/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-no-ent.json
@@ -1,7 +1,6 @@
{
"groups": [
- "mixedGroup",
- "acme"
+ "mixedGroup"
],
"connectivity_services": {
"connectivity_service": [
@@ -27,7 +26,7 @@
{
"description": "This Enterprise holds discovered IMSIs that cannot be associated elsewhere.",
"display_name": "Default Enterprise",
- "ent_id": "defaultent"
+ "enterprise_id": "defaultent"
},
{
"connectivity_service": [
@@ -38,7 +37,7 @@
],
"description": "ACME Corporation",
"display_name": "ACME Corp",
- "ent_id": "acme"
+ "enterprise_id": "acme"
},
{
"connectivity_service": [
@@ -53,7 +52,7 @@
],
"description": "Starbucks Corporation",
"display_name": "Starbucks Inc.",
- "ent_id": "starbucks"
+ "enterprise_id": "starbucks"
}
]
}
diff --git a/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json b/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-single-ent.json
similarity index 93%
rename from aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json
rename to aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-single-ent.json
index 940f0a6..fefa1e6 100644
--- a/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-example-get.json
+++ b/aether-roc-umbrella/files/opa-rbac/test/aether-2.0.0-test-single-ent.json
@@ -27,7 +27,7 @@
{
"description": "This Enterprise holds discovered IMSIs that cannot be associated elsewhere.",
"display_name": "Default Enterprise",
- "ent_id": "defaultent"
+ "enterprise_id": "defaultent"
},
{
"connectivity_service": [
@@ -38,7 +38,7 @@
],
"description": "ACME Corporation",
"display_name": "ACME Corp",
- "ent_id": "acme"
+ "enterprise_id": "acme"
},
{
"connectivity_service": [
@@ -53,7 +53,7 @@
],
"description": "Starbucks Corporation",
"display_name": "Starbucks Inc.",
- "ent_id": "starbucks"
+ "enterprise_id": "starbucks"
}
]
}
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-group-ent.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-group-ent.out
new file mode 100644
index 0000000..2e38048
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-group-ent.out
@@ -0,0 +1,60 @@
+[
+ {
+ "connectivity_services": {
+ "connectivity_service": [
+ {
+ "acc_prometheus_url": "./prometheus_acc",
+ "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+ "description": "5G Test",
+ "display_name": "ROC 5G Test Connectivity Service",
+ "id": "cs5gtest"
+ },
+ {
+ "description": "ROC 4G Test Connectivity Service",
+ "display_name": "4G Test",
+ "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+ "id": "cs4gtest",
+ "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+ "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+ }
+ ]
+ },
+ "enterprises": {
+ "enterprise": [
+ [
+ {
+ "description": "This Enterprise holds discovered IMSIs that cannot be associated elsewhere.",
+ "display_name": "Default Enterprise",
+ "enterprise_id": "defaultent"
+ },
+ {
+ "connectivity_service": [
+ {
+ "connectivity_service": "cs5gtest",
+ "enabled": true
+ }
+ ],
+ "description": "ACME Corporation",
+ "display_name": "ACME Corp",
+ "enterprise_id": "acme"
+ },
+ {
+ "connectivity_service": [
+ {
+ "connectivity_service": "cs5gtest",
+ "enabled": true
+ },
+ {
+ "connectivity_service": "cs4gtest",
+ "enabled": false
+ }
+ ],
+ "description": "Starbucks Corporation",
+ "display_name": "Starbucks Inc.",
+ "enterprise_id": "starbucks"
+ }
+ ]
+ ]
+ }
+ }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-no-ent.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-no-ent.out
new file mode 100644
index 0000000..d1ba2a7
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-no-ent.out
@@ -0,0 +1,28 @@
+[
+ {
+ "connectivity_services": {
+ "connectivity_service": [
+ {
+ "acc_prometheus_url": "./prometheus_acc",
+ "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+ "description": "5G Test",
+ "display_name": "ROC 5G Test Connectivity Service",
+ "id": "cs5gtest"
+ },
+ {
+ "description": "ROC 4G Test Connectivity Service",
+ "display_name": "4G Test",
+ "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+ "id": "cs4gtest",
+ "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+ "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+ }
+ ]
+ },
+ "enterprises": {
+ "enterprise": [
+ []
+ ]
+ }
+ }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-single-ent.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-single-ent.out
new file mode 100644
index 0000000..57819d8
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-2.0.0-test-single-ent.out
@@ -0,0 +1,40 @@
+[
+ {
+ "connectivity_services": {
+ "connectivity_service": [
+ {
+ "acc_prometheus_url": "./prometheus_acc",
+ "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+ "description": "5G Test",
+ "display_name": "ROC 5G Test Connectivity Service",
+ "id": "cs5gtest"
+ },
+ {
+ "description": "ROC 4G Test Connectivity Service",
+ "display_name": "4G Test",
+ "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+ "id": "cs4gtest",
+ "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+ "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+ }
+ ]
+ },
+ "enterprises": {
+ "enterprise": [
+ [
+ {
+ "connectivity_service": [
+ {
+ "connectivity_service": "cs5gtest",
+ "enabled": true
+ }
+ ],
+ "description": "ACME Corporation",
+ "display_name": "ACME Corp",
+ "enterprise_id": "acme"
+ }
+ ]
+ ]
+ }
+ }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-basic.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-basic.out
new file mode 100644
index 0000000..df89fab
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-basic.out
@@ -0,0 +1,83 @@
+[
+ {
+ "ap-list": {
+ "ap-list": [
+ []
+ ]
+ },
+ "application": {
+ "application": [
+ []
+ ]
+ },
+ "connectivity-service": {
+ "connectivity-service": [
+ []
+ ]
+ },
+ "device-group": {
+ "device-group": [
+ []
+ ]
+ },
+ "enterprise": {
+ "enterprise": [
+ []
+ ]
+ },
+ "ip-domain": {
+ "ip-domain": [
+ []
+ ]
+ },
+ "network": {
+ "network": [
+ []
+ ]
+ },
+ "site": {
+ "site": [
+ []
+ ]
+ },
+ "template": {
+ "template": [
+ [
+ {
+ "description": "do",
+ "display-name": "laborum fugiat",
+ "downlink": 322694552,
+ "id": "aliquip",
+ "sd": 14628949,
+ "sst": 1,
+ "uplink": 1607714163
+ },
+ {
+ "description": "do",
+ "display-name": "quattro fugiat",
+ "downlink": 322694552,
+ "id": "quattro",
+ "sd": 14628949,
+ "sst": 1,
+ "uplink": 1607714163
+ }
+ ]
+ ]
+ },
+ "traffic_class": {
+ "traffic_class": [
+ []
+ ]
+ },
+ "upf": {
+ "upf": [
+ []
+ ]
+ },
+ "vcs": {
+ "vcs": [
+ []
+ ]
+ }
+ }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-get.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-get.out
new file mode 100644
index 0000000..4b3d3c0
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-get.out
@@ -0,0 +1,239 @@
+[
+ {
+ "ap-list": {
+ "ap-list": [
+ [
+ {
+ "access_points": [
+ {
+ "address": "ap2^chicago^acme^com",
+ "enable": true,
+ "tac": 8002
+ }
+ ],
+ "description": "Chicago APs",
+ "display_name": "Chicago",
+ "enterprise": "acme",
+ "id": "acme_chicago_aps"
+ }
+ ]
+ ]
+ },
+ "application": {
+ "application": [
+ [
+ {
+ "description": "Data Acquisition",
+ "display_name": "DA",
+ "endpoint": [
+ {
+ "address": "da.acme.com",
+ "name": "da",
+ "port_end": 7585,
+ "port_start": 7588,
+ "protocol": "TCP"
+ }
+ ],
+ "enterprise": "acme",
+ "id": "acme_dataacquisition"
+ }
+ ]
+ ]
+ },
+ "connectivity-service": {
+ "connectivity-service": [
+ [
+ {
+ "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+ "description": "5G Test",
+ "display_name": "ROC 5G Test Connectivity Service",
+ "id": "cs5gtest"
+ },
+ {
+ "description": "ROC 4G Test Connectivity Service",
+ "display_name": "4G Test",
+ "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+ "id": "cs4gtest",
+ "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+ "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+ }
+ ]
+ ]
+ },
+ "device-group": {
+ "device-group": [
+ [
+ {
+ "display_name": "ACME Robots",
+ "id": "acme_chicago_robots",
+ "imsis": [
+ {
+ "imsi_range_from": 13698808332993000,
+ "imsi_range_to": 13698808332993003,
+ "name": "production"
+ },
+ {
+ "imsi_range_from": 13698808332993010,
+ "imsi_range_to": 13698808332993012,
+ "name": "warehouse"
+ }
+ ],
+ "ip_domain": "acme_chicago",
+ "site": "acme_chicago"
+ }
+ ]
+ ]
+ },
+ "enterprise": {
+ "enterprise": [
+ [
+ {
+ "connectivity_service": [
+ {
+ "connectivity_service": "cs5gtest",
+ "enabled": true
+ }
+ ],
+ "description": "ACME Corporation",
+ "display_name": "ACME Corp",
+ "id": "acme"
+ }
+ ]
+ ]
+ },
+ "ip-domain": {
+ "ip-domain": [
+ []
+ ]
+ },
+ "network": {
+ "network": [
+ [
+ {
+ "description": "Chicago 123_456",
+ "display_name": "Chicago",
+ "enterprise": "acme",
+ "id": "acme_chicago",
+ "mcc": 123,
+ "mnc": 456
+ }
+ ]
+ ]
+ },
+ "site": {
+ "site": [
+ [
+ {
+ "description": "ACME HQ",
+ "display_name": "Chicago",
+ "enterprise": "acme",
+ "id": "acme_chicago",
+ "network": "acme_chicago"
+ }
+ ]
+ ]
+ },
+ "template": {
+ "template": [
+ [
+ {
+ "description": "VCS Template 1",
+ "display_name": "Template 1",
+ "downlink": 24669539,
+ "id": "template_1",
+ "sd": 10886763,
+ "sst": 158,
+ "traffic_class": "class_1",
+ "uplink": 23770218
+ },
+ {
+ "description": "VCS Template 2",
+ "display_name": "Template 2",
+ "downlink": 2791589,
+ "id": "template_2",
+ "sd": 16619900,
+ "sst": 157,
+ "traffic_class": "class_2",
+ "uplink": 24721051
+ }
+ ]
+ ]
+ },
+ "traffic_class": {
+ "traffic_class": [
+ [
+ {
+ "description": "High Priority TC",
+ "display_name": "Class 1",
+ "id": "class_1",
+ "pdb": 577,
+ "pelr": 3,
+ "qci": 10
+ },
+ {
+ "description": "Medium Priority TC",
+ "display_name": "Class 2",
+ "id": "class_2",
+ "pdb": 831,
+ "pelr": 4,
+ "qci": 20
+ },
+ {
+ "description": "Low Priority TC",
+ "display_name": "Class 3",
+ "id": "class_3",
+ "pdb": 833,
+ "pelr": 4,
+ "qci": 30
+ }
+ ]
+ ]
+ },
+ "upf": {
+ "upf": [
+ [
+ {
+ "address": "chicago.robots_upf.acme.com",
+ "description": "Chicago Robots UPF",
+ "display_name": "Chicago Robots",
+ "enterprise": "acme",
+ "id": "acme_chicago_robots",
+ "port": 6161
+ }
+ ]
+ ]
+ },
+ "vcs": {
+ "vcs": [
+ [
+ {
+ "ap": "acme_chicago_aps",
+ "application": [
+ {
+ "allow": false,
+ "application": "acme_dataacquisition"
+ }
+ ],
+ "description": "Chicago Robots",
+ "device_group": [
+ {
+ "device_group": "acme_chicago_robots",
+ "enable": true
+ }
+ ],
+ "display_name": "Chicago Robots VCS",
+ "downlink": 28492626,
+ "enterprise": "acme",
+ "id": "acme_chicago_robots",
+ "sd": 2973238,
+ "sst": 79,
+ "template": "template_2",
+ "traffic_class": "class_2",
+ "upf": "acme_chicago_robots",
+ "uplink": 13227287
+ }
+ ]
+ ]
+ }
+ }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-set.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-set.out
new file mode 100644
index 0000000..6f88625
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-3.0.0-example-set.out
@@ -0,0 +1,128 @@
+[
+ {
+ "ap-list": {
+ "ap-list": [
+ []
+ ]
+ },
+ "application": {
+ "application": [
+ []
+ ]
+ },
+ "connectivity-service": {
+ "connectivity-service": [
+ []
+ ]
+ },
+ "device-group": {
+ "device-group": [
+ [
+ {
+ "display-name": "tempor ut",
+ "id": "amet",
+ "imsis": [
+ {
+ "imsi-range-from": 170029313275000,
+ "imsi-range-to": 69764015096000,
+ "name": "enim"
+ },
+ {
+ "imsi-range-from": 116299798497000,
+ "imsi-range-to": 22297092854800,
+ "name": "ad"
+ }
+ ],
+ "ip-domain": "qui",
+ "site": "inc"
+ }
+ ]
+ ]
+ },
+ "enterprise": {
+ "enterprise": [
+ [
+ {
+ "connectivity-service": [
+ {
+ "connectivity-service": "repre",
+ "enabled": true
+ },
+ {
+ "connectivity-service": "irure",
+ "enabled": true
+ }
+ ],
+ "description": "minim et",
+ "display-name": "laborum in",
+ "id": "dolor"
+ }
+ ]
+ ]
+ },
+ "ip-domain": {
+ "ip-domain": [
+ []
+ ]
+ },
+ "network": {
+ "network": [
+ []
+ ]
+ },
+ "site": {
+ "site": [
+ [
+ {
+ "description": "pariatur culpa",
+ "display-name": "occaecat nostrud",
+ "enterprise": "dolor",
+ "id": "inc",
+ "network": "irur"
+ }
+ ]
+ ]
+ },
+ "template": {
+ "template": [
+ [
+ {
+ "description": "enim ",
+ "display-name": "do labore laborum elit",
+ "downlink": 24669539,
+ "id": "magn",
+ "sd": 10886763,
+ "sst": 158,
+ "traffic-class": "consectetur in cillum",
+ "uplink": 23770218
+ },
+ {
+ "description": "aute dolore dolo",
+ "display-name": "quis pariatur dolore magna commodo",
+ "downlink": 2791589,
+ "id": "aliqua",
+ "sd": 16619900,
+ "sst": 157,
+ "traffic-class": "dolor in in et",
+ "uplink": 24721051
+ }
+ ]
+ ]
+ },
+ "traffic_class": {
+ "traffic_class": [
+ []
+ ]
+ },
+ "upf": {
+ "upf": [
+ []
+ ]
+ },
+ "vcs": {
+ "vcs": [
+ []
+ ]
+ }
+ }
+]
diff --git a/aether-roc-umbrella/files/opa-rbac/test/out/aether-4.0.0-example-get.out b/aether-roc-umbrella/files/opa-rbac/test/out/aether-4.0.0-example-get.out
new file mode 100644
index 0000000..30bca26
--- /dev/null
+++ b/aether-roc-umbrella/files/opa-rbac/test/out/aether-4.0.0-example-get.out
@@ -0,0 +1,297 @@
+[
+ {
+ "application": {
+ "application": [
+ [
+ {
+ "address": "da.acme.com",
+ "description": "Data Acquisition",
+ "display_name": "DA",
+ "endpoint": [
+ {
+ "display_name": "data acquisition endpoint",
+ "endpoint_id": "da",
+ "mbr": {
+ "downlink": 1000000,
+ "uplink": 2000000
+ },
+ "port_end": 7588,
+ "port_start": 7585,
+ "protocol": "TCP",
+ "traffic_class": "class_2"
+ }
+ ],
+ "enterprise": "acme",
+ "id": "acme_dataacquisition"
+ }
+ ]
+ ]
+ },
+ "connectivity-service": {
+ "connectivity-service": [
+ [
+ {
+ "acc_prometheus_url": "./prometheus_acc",
+ "core_5g_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/5g",
+ "description": "5G Test",
+ "display_name": "ROC 5G Test Connectivity Service",
+ "id": "cs5gtest"
+ },
+ {
+ "description": "ROC 4G Test Connectivity Service",
+ "display_name": "4G Test",
+ "hss_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/imsis",
+ "id": "cs4gtest",
+ "pcrf_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config/policies",
+ "spgwc_endpoint": "http://aether_roc_umbrella_sdcore_test_dummy/v1/config"
+ }
+ ]
+ ]
+ },
+ "device-group": {
+ "device-group": [
+ [
+ {
+ "display_name": "ACME Default",
+ "id": "acme_chicago_default",
+ "ip_domain": "acme_chicago",
+ "site": "acme_chicago"
+ },
+ {
+ "device": {
+ "mbr": {
+ "downlink": 1000000,
+ "uplink": 5000000
+ },
+ "traffic_class": "class_1"
+ },
+ "display_name": "ACME Robots",
+ "id": "acme_chicago_robots",
+ "imsis": [
+ {
+ "display_name": "production robots",
+ "imsi_id": "production",
+ "imsi_range_from": 0,
+ "imsi_range_to": 3
+ },
+ {
+ "display_name": "warehouse robots",
+ "imsi_id": "warehouse",
+ "imsi_range_from": 10,
+ "imsi_range_to": 12
+ }
+ ],
+ "ip_domain": "acme_chicago",
+ "site": "acme_chicago"
+ }
+ ]
+ ]
+ },
+ "enterprise": {
+ "enterprise": [
+ [
+ {
+ "connectivity_service": [
+ {
+ "connectivity_service": "cs5gtest",
+ "enabled": true
+ }
+ ],
+ "description": "ACME Corporation",
+ "display_name": "ACME Corp",
+ "id": "acme"
+ }
+ ]
+ ]
+ },
+ "ip-domain": {
+ "ip-domain": [
+ [
+ {
+ "admin_status": "DISABLE",
+ "description": "Chicago IP Domain",
+ "display_name": "Chicago",
+ "dns_primary": "8.8.8.4",
+ "dns_secondary": "8.8.8.4",
+ "enterprise": "acme",
+ "id": "acme_chicago",
+ "mtu": 12690,
+ "subnet": "163.25.44.0/31"
+ }
+ ]
+ ]
+ },
+ "site": {
+ "site": [
+ [
+ {
+ "description": "ACME HQ",
+ "display_name": "Chicago",
+ "enterprise": "acme",
+ "id": "acme_chicago",
+ "imsi_definition": {
+ "enterprise": 1,
+ "format": "CCCNNNEEESSSSSS",
+ "mcc": "123",
+ "mnc": "456"
+ },
+ "monitoring": {
+ "edge_cluster_prometheus_url": "prometheus_ace1",
+ "edge_device": [
+ {
+ "description": "monitoring device placed near the sprocket manufacturing machine",
+ "display_name": "sprocket monitoring pi",
+ "edge_device_id": "acme_chicago_monitoring_pi_1"
+ },
+ {
+ "description": "monitoring device placed near the widget refinisher",
+ "display_name": "widget monitoring pi",
+ "edge_device_id": "acme_chicago_monitoring_pi_2"
+ }
+ ],
+ "edge_monitoring_prometheus_url": "prometheus_amp"
+ },
+ "small_cell": [
+ {
+ "address": "ap2.chicago.acme.com",
+ "display_name": "cell number one",
+ "enable": true,
+ "small_cell_id": "cell1",
+ "tac": "8002"
+ }
+ ]
+ }
+ ]
+ ]
+ },
+ "template": {
+ "template": [
+ [
+ {
+ "default_behavior": "DENY_ALL",
+ "description": "VCS Template 1",
+ "display_name": "Template 1",
+ "id": "template_1",
+ "sd": 10886763,
+ "slice": {
+ "mbr": {
+ "downlink": 5000000,
+ "downlink_burst_size": 600000,
+ "uplink": 10000000,
+ "uplink_burst_size": 600000
+ }
+ },
+ "sst": 158
+ },
+ {
+ "default_behavior": "DENY_ALL",
+ "description": "VCS Template 2",
+ "display_name": "Template 2",
+ "id": "template_2",
+ "sd": 16619900,
+ "slice": {
+ "mbr": {
+ "downlink": 5000000,
+ "uplink": 10000000,
+ "uplink_burst_size": 500000
+ }
+ },
+ "sst": 157
+ }
+ ]
+ ]
+ },
+ "traffic-class": {
+ "traffic-class": [
+ [
+ {
+ "arp": 1,
+ "description": "High Priority TC",
+ "display_name": "Class 1",
+ "id": "class_1",
+ "pdb": 100,
+ "pelr": 10,
+ "qci": 10
+ },
+ {
+ "arp": 1,
+ "description": "Medium Priority TC",
+ "display_name": "Class 2",
+ "id": "class_2",
+ "pdb": 100,
+ "pelr": 10,
+ "qci": 20
+ },
+ {
+ "arp": 1,
+ "description": "Low Priority TC",
+ "display_name": "Class 3",
+ "id": "class_3",
+ "pdb": 100,
+ "pelr": 10,
+ "qci": 30
+ }
+ ]
+ ]
+ },
+ "upf": {
+ "upf": [
+ [
+ {
+ "address": "entry1.upfpool.chicago.acme.com",
+ "description": "Chicago UPF Pool _ Entry 1",
+ "display_name": "Chicago Pool 1",
+ "enterprise": "acme",
+ "id": "acme_chicago_pool_entry1",
+ "port": 6161,
+ "site": "acme_chicago"
+ },
+ {
+ "address": "entry2.upfpool.chicago.acme.com",
+ "description": "Chicago UPF Pool _ Entry 2",
+ "display_name": "Chicago Pool 2",
+ "enterprise": "acme",
+ "id": "acme_chicago_pool_entry2",
+ "port": 6161,
+ "site": "acme_chicago"
+ }
+ ]
+ ]
+ },
+ "vcs": {
+ "vcs": [
+ [
+ {
+ "default_behavior": "DENY_ALL",
+ "description": "Chicago Robots",
+ "device_group": [
+ {
+ "device_group": "acme_chicago_robots",
+ "enable": true
+ }
+ ],
+ "display_name": "Chicago Robots VCS",
+ "enterprise": "acme",
+ "filter": [
+ {
+ "allow": false,
+ "application": "acme_dataacquisition"
+ }
+ ],
+ "id": "acme_chicago_robots",
+ "sd": 2973238,
+ "site": "acme_chicago",
+ "slice": {
+ "mbr": {
+ "downlink": 5000000,
+ "downlink_burst_size": 600000
+ }
+ },
+ "sst": 79,
+ "upf": "acme_chicago_pool_entry1"
+ }
+ ]
+ ]
+ }
+ }
+]