1 # Copyright (C) 2021-2022 Wind River Systems, Inc.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
15 from flask import request
16 from flask_restx import Resource, fields
18 from o2common.views.route import O2Namespace
21 api_ims_inventory = O2Namespace(
22 "O2IMS-InfrastructureInventory",
23 description='O2 IMS Inventory related operations.')
25 api_provision_v1 = O2Namespace(
27 description='Provision related operations.')
29 api_ims_monitoring = O2Namespace(
30 "O2IMS-InfrastructureMonitoring",
31 description='O2 IMS Monitoring related operations.')
34 @api_ims_inventory.route('/api_versions')
35 class InventoryVersion(Resource):
36 api_version = api_ims_inventory.model(
37 'InventoryApiVersionStructure',
39 'version': fields.String(
42 description='Identifies a supported version.'
47 model = api_ims_inventory.model(
48 "InventoryAPIVersion",
50 'uriPrefix': fields.String(
52 example='https://128.224.115.36:30205/' +
53 'o2ims-infrastructureInventory',
54 description='Specifies the URI prefix for the API'),
55 'apiVersions': fields.List(
56 fields.Nested(api_version),
57 example=[{'version': '1.0.0'}],
58 description='Version(s) supported for the API ' +
59 'signaled by the uriPrefix attribute.'),
61 mask='{uriPrefix,apiVersions}'
64 @api_ims_inventory.doc('Get Inventory Version')
65 @api_ims_inventory.marshal_with(model)
68 'uriPrefix': request.base_url.rsplit('/', 1)[0],
71 # 'isDeprecated': 'False',
72 # 'retirementDate': ''
77 @api_ims_monitoring.route('/api_versions')
78 class MonitoringVersion(Resource):
79 api_version = api_ims_inventory.model(
80 'MonitoringApiVersionStructure',
82 'version': fields.String(
85 description='Identifies a supported version.'
90 model = api_ims_inventory.model(
91 "MonitoringAPIVersion",
93 'uriPrefix': fields.String(
95 example='https://128.224.115.36:30205/' +
96 'o2ims-infrastructureMonitoring',
97 description='Specifies the URI prefix for the API'),
98 'apiVersions': fields.List(
99 fields.Nested(api_version),
100 example=[{'version': '1.0.0'}],
101 description='Version(s) supported for the API ' +
102 'signaled by the uriPrefix attribute.'),
104 mask='{uriPrefix,apiVersions}'
107 @api_ims_monitoring.doc('Get Monitoring Version')
108 @api_ims_monitoring.marshal_with(model)
111 'uriPrefix': request.base_url.rsplit('/', 1)[0],
114 # 'isDeprecated': 'False',
115 # 'retirementDate': ''