RIC-1059: dms_cli to use flask-restx
[ric-plt/appmgr.git] / pkg / restful / types.go
1 /*
2 ==================================================================================
3   Copyright (c) 2019 AT&T Intellectual Property.
4   Copyright (c) 2019 Nokia
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
9
10        http://www.apache.org/licenses/LICENSE-2.0
11
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.
17 ==================================================================================
18 */
19
20 package restful
21
22 import (
23         "net/http"
24
25         cfgmap "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/cm"
26         helmer "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/helm"
27         "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/restapi/operations"
28         resthook "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/resthooks"
29 )
30
31 type CmdOptions struct {
32         hostAddr      *string
33         helmHost      *string
34         helmChartPath *string
35 }
36
37 type Resource struct {
38         Method      string
39         Url         string
40         HandlerFunc http.HandlerFunc
41 }
42
43 type Restful struct {
44         api   *operations.AppManagerAPI
45         helm  *helmer.Helm
46         cm    *cfgmap.CM
47         rh    *resthook.Resthook
48         ready bool
49 }
50
51 //Taken from xapp-frame models
52 type ConfigMetadata struct {
53
54         // The type of the content
55         // Required: true
56         // Enum: [json xml other]
57         ConfigType *string `json:"configType"`
58
59         // Name of the xApp
60         // Required: true
61         XappName *string `json:"xappName"`
62 }
63
64 type XAppConfig struct {
65
66         // Configuration in JSON format
67         // Required: true
68         Config interface{} `json:"config"`
69
70         // metadata
71         // Required: true
72         Metadata *ConfigMetadata `json:"metadata"`
73 }
74
75 type XappConfigList []*XAppConfig