2 * ============LICENSE_START=======================================================
3 * Copyright (C) 2024 Ericsson
4 * Modifications Copyright (C) 2024-2025 OpenInfra Foundation Europe
5 * ================================================================================
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 * SPDX-License-Identifier: Apache-2.0
19 * ============LICENSE_END=========================================================
21 package contracts.classifiers
23 import org.springframework.cloud.contract.spec.Contract
27 description "SUCCESS - 200: Get all topology entities of type ODUFunction with classifiers in scopeFilter."
30 url "topology-inventory/v1alpha11/domains/RAN/entity-types/ODUFunction/entities?targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural']"
35 contentType('application/json')
40 "o-ran-smo-teiv-ran:ODUFunction": [
43 "test-app-module:Rural",
44 "test-app-module:Weekend"
46 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,ODUFunction=14"
51 "o-ran-smo-teiv-ran:ODUFunction": [
54 "test-app-module:Indoor",
55 "test-app-module:Rural",
56 "test-app-module:Weekend"
58 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=16,ODUFunction=16"
64 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural']"
67 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural']"
70 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural']"
73 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural']"
76 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural']"
81 jsonPath('$.items', byType {
84 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
85 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
86 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
87 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
88 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
89 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
90 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[2]', byEquality())
95 description "SUCCESS - 200: Get all topology entities of type ODUFunction with classifiers in scopeFilter(OR)"
98 url "topology-inventory/v1alpha11/domains/RAN/entity-types/ODUFunction/entities?targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural'] | /classifiers[@item='test-app-module:Indoor']"
103 contentType('application/json')
108 "o-ran-smo-teiv-ran:ODUFunction": [
111 "test-app-module:Indoor"
113 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=13,ODUFunction=13"
118 "o-ran-smo-teiv-ran:ODUFunction": [
121 "test-app-module:Rural",
122 "test-app-module:Weekend"
124 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,ODUFunction=14"
129 "o-ran-smo-teiv-ran:ODUFunction": [
132 "test-app-module:Indoor",
133 "test-app-module:Rural",
134 "test-app-module:Weekend"
136 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=16,ODUFunction=16"
141 "o-ran-smo-teiv-ran:ODUFunction": [
144 "test-app-module:Indoor",
145 "test-app-module:Weekend"
147 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=9,ODUFunction=9"
153 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural'] | /classifiers[@item='test-app-module:Indoor']"
156 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural'] | /classifiers[@item='test-app-module:Indoor']"
159 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural'] | /classifiers[@item='test-app-module:Indoor']"
162 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural'] | /classifiers[@item='test-app-module:Indoor']"
165 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural'] | /classifiers[@item='test-app-module:Indoor']"
170 jsonPath('$.items', byType {
173 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
174 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
175 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
176 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
177 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
178 jsonPath('$.items[2].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
179 jsonPath('$.items[2].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
180 jsonPath('$.items[2].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
181 jsonPath('$.items[2].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[2]', byEquality())
182 jsonPath('$.items[3].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
183 jsonPath('$.items[3].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
184 jsonPath('$.items[3].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
189 description "SUCCESS - 200: Get all topology entities of type ODUFunction with classifiers in scopeFilter.(AND)"
192 url "topology-inventory/v1alpha11/domains/RAN/entity-types/ODUFunction/entities?targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
197 contentType('application/json')
202 "o-ran-smo-teiv-ran:ODUFunction": [
205 "test-app-module:Rural",
206 "test-app-module:Weekend"
208 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,ODUFunction=14"
213 "o-ran-smo-teiv-ran:ODUFunction": [
216 "test-app-module:Indoor",
217 "test-app-module:Rural",
218 "test-app-module:Weekend"
220 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=16,ODUFunction=16"
226 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
229 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
232 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
235 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
238 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
243 jsonPath('$.items', byType {
246 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
247 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
248 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
249 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
250 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
251 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
252 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[2]', byEquality())
257 description "SUCCESS - 200: Get all topology entities of type ODUFunction with classifiers in scopeFilter.(Contains)"
260 url "topology-inventory/v1alpha11/domains/RAN/entity-types/ODUFunction/entities?targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item,'app-module:Rural')]"
265 contentType('application/json')
270 "o-ran-smo-teiv-ran:ODUFunction": [
273 "test-app-module:Rural",
274 "test-app-module:Weekend"
276 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=14,ODUFunction=14"
281 "o-ran-smo-teiv-ran:ODUFunction": [
284 "test-app-module:Indoor",
285 "test-app-module:Rural",
286 "test-app-module:Weekend"
288 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=16,ODUFunction=16"
294 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item,'app-module:Rural')]"
297 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item,'app-module:Rural')]"
300 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item,'app-module:Rural')]"
303 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item,'app-module:Rural')]"
306 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/classifiers&scopeFilter=/classifiers[contains(@item,'app-module:Rural')]"
311 jsonPath('$.items', byType {
314 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
315 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
316 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
317 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
318 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[0]', byEquality())
319 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[1]', byEquality())
320 jsonPath('$.items[1].o-ran-smo-teiv-ran:ODUFunction[0].classifiers[2]', byEquality())
325 description "SUCCESS - 200: Get all topology entities of type ODUFunction with classifiers in scopeFilter."
328 url "topology-inventory/v1alpha11/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural']"
333 contentType('application/json')
338 "o-ran-smo-teiv-ran:ODUFunction": [
340 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=19,ODUFunction=19",
349 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural']"
352 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural']"
355 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural']"
358 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural']"
361 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural']"
366 jsonPath('$.items', byType {
369 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
370 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].attributes.gNBId', byEquality())
375 description "SUCCESS - 200: Get all topology entities of type ODUFunction with classifiers in scopeFilter."
378 url "topology-inventory/v1alpha11/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural'] | /provided-nrCellDu/classifiers[@item='test-app-module:Indoor']"
383 contentType('application/json')
388 "o-ran-smo-teiv-ran:ODUFunction": [
390 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=19,ODUFunction=19",
399 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural'] | /provided-nrCellDu/classifiers[@item='test-app-module:Indoor']"
402 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural'] | /provided-nrCellDu/classifiers[@item='test-app-module:Indoor']"
405 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural'] | /provided-nrCellDu/classifiers[@item='test-app-module:Indoor']"
408 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural'] | /provided-nrCellDu/classifiers[@item='test-app-module:Indoor']"
411 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural'] | /provided-nrCellDu/classifiers[@item='test-app-module:Indoor']"
416 jsonPath('$.items', byType {
419 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
420 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].attributes.gNBId', byEquality())
425 description "SUCCESS - 200: Get all topology entities of type ODUFunction with classifiers in scopeFilter."
428 url "topology-inventory/v1alpha11/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
433 contentType('application/json')
438 "o-ran-smo-teiv-ran:ODUFunction": [
440 "id": "urn:3gpp:dn:SubNetwork=Europe,SubNetwork=Hungary,MeContext=1,ManagedElement=19,ODUFunction=19",
449 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
452 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
455 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
458 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
461 "href": "/domains/RAN/entity-types/ODUFunction/entities?offset=0&limit=500&targetFilter=/attributes(gNBId)&scopeFilter=/provided-nrCellDu/classifiers[@item='test-app-module:Rural' and @item='test-app-module:Weekend']"
466 jsonPath('$.items', byType {
469 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].id', byEquality())
470 jsonPath('$.items[0].o-ran-smo-teiv-ran:ODUFunction[0].attributes.gNBId', byEquality())