Initial commit for Xapp Orchestration
[ric-plt/appmgr.git] / pkg / resthooks / 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 resthooks
21
22 import (
23         cmap "github.com/orcaman/concurrent-map"
24         "net/http"
25
26         "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/models"
27 )
28
29 type SubscriptionInfo struct {
30         Id   string
31         req  models.SubscriptionRequest
32         resp models.SubscriptionResponse
33 }
34
35 type Resthook struct {
36         client        *http.Client
37         subscriptions cmap.ConcurrentMap
38         db            iSdl
39         db2           iSdl
40         Seq           int64
41 }
42
43 // TODO: remove this when RTMGR changes done
44 type SubscriptionNotification struct {
45         Event   string `json:"eventType,omitempty"`
46         ID      string `json:"id,omitempty"`
47         Version int64  `json:"version,omitempty"`
48         XApps   string `json:"xApps,omitempty"`
49 }
50
51 type iSdl interface {
52         Set(pairs ...interface{}) error
53         Get(keys []string) (map[string]interface{}, error)
54         GetAll() ([]string, error)
55         RemoveAll() error
56         Remove([]string) error
57 }