properties:
OctetString:
type: string
- SubscriptionDetails:
+ SubscriptionDetail:
type: object
required:
- - EventTriggerList
+ - RequestorId
+ - InstanceId
+ - EventTriggers
- ActionToBeSetupList
properties:
- EventTriggerList:
+ RequestorId:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ InstanceId:
+ type: integer
+ minimum: 0
+ maximum: 65535
+ EventTriggers:
$ref: '#/definitions/EventTriggerDefinition'
ActionToBeSetupList:
$ref: '#/definitions/ActionsToBeSetup'
SubscriptionDetailsList:
type: array
items:
- $ref: '#/definitions/SubscriptionDetails'
+ $ref: '#/definitions/SubscriptionDetail'
SubscriptionParams:
type: object
required:
- ClientEndpoint
- Meid
- - RequestorId
- - InstanceId
- RANFunctionID
- SubscriptionDetails
properties:
type: object
description: xApp service address and port
properties:
- ServiceName:
+ Host:
description: >-
- xApp service address name like
- 'service-ricxapp-xappname-http.ricxapp'
+ xApp service address name like 'service-ricxapp-xappname-http.ricxapp'
type: string
- Port:
- description: xApp service address port
+ HTTPPort:
+ description: xApp HTTP service address port
+ type: integer
+ minimum: 0
+ maximum: 65535
+ RMRPort:
+ description: xApp RMR service address port
type: integer
minimum: 0
maximum: 65535
Meid:
type: string
- RequestorId:
- type: integer
- minimum: 0
- maximum: 65535
- InstanceId:
- type: integer
- minimum: 0
- maximum: 65535
RANFunctionID:
type: integer
minimum: 0
ErrorCause:
description: Empty string when no error.
type: string
-
SubscriptionData:
type: object
properties:
type: integer
Meid:
type: string
- Endpoint:
+ ClientEndpoint:
type: array
items:
type: string
+ SubscriptionInstances:
+ type: array
+ items:
+ $ref: '#/definitions/SubscriptionInstance'
SubscriptionList:
type: array
description: A list of subscriptions
"noFormat": true
},
"subscription": {
- "subscriptionActive": true,
- "functionId": 1,
- "plmnId": "310150",
- "eNBId": "202251",
- "timeout": 5,
- "host": "service-ricplt-submgr-http.ricplt:8088",
- "clientEndpoint": "service-ricxapp-ueec-http.ricxapp:8080"
+ "host": "localhost:8088",
+ "timeout": 2,
+ "retryCount": 10,
+ "retryDelay": 5
},
"waitForSdl": false
},
"url": "/ric/v1/metrics",
"namespace": "ricxapp"
},
- "subscription": {
- "host": "localhost:8088",
- "timeout": 2,
- "retryCount": 10,
- "retryDelay": 5
- },
"faults": {},
"measurements": []
}
// Editing this file might prove futile when you re-run the swagger generate command
import (
+ "strconv"
+
strfmt "github.com/go-openapi/strfmt"
+ "github.com/go-openapi/errors"
"github.com/go-openapi/swag"
)
// swagger:model SubscriptionData
type SubscriptionData struct {
- // endpoint
- Endpoint []string `json:"Endpoint"`
+ // client endpoint
+ ClientEndpoint []string `json:"ClientEndpoint"`
// meid
Meid string `json:"Meid,omitempty"`
// subscription Id
SubscriptionID int64 `json:"SubscriptionId,omitempty"`
+
+ // subscription instances
+ SubscriptionInstances []*SubscriptionInstance `json:"SubscriptionInstances"`
}
// Validate validates this subscription data
func (m *SubscriptionData) Validate(formats strfmt.Registry) error {
+ var res []error
+
+ if err := m.validateSubscriptionInstances(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if len(res) > 0 {
+ return errors.CompositeValidationError(res...)
+ }
+ return nil
+}
+
+func (m *SubscriptionData) validateSubscriptionInstances(formats strfmt.Registry) error {
+
+ if swag.IsZero(m.SubscriptionInstances) { // not required
+ return nil
+ }
+
+ for i := 0; i < len(m.SubscriptionInstances); i++ {
+ if swag.IsZero(m.SubscriptionInstances[i]) { // not required
+ continue
+ }
+
+ if m.SubscriptionInstances[i] != nil {
+ if err := m.SubscriptionInstances[i].Validate(formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("SubscriptionInstances" + "." + strconv.Itoa(i))
+ }
+ return err
+ }
+ }
+
+ }
+
return nil
}
--- /dev/null
+// Code generated by go-swagger; DO NOT EDIT.
+
+package clientmodel
+
+// This file was generated by the swagger tool.
+// Editing this file might prove futile when you re-run the swagger generate command
+
+import (
+ strfmt "github.com/go-openapi/strfmt"
+
+ "github.com/go-openapi/errors"
+ "github.com/go-openapi/swag"
+ "github.com/go-openapi/validate"
+)
+
+// SubscriptionDetail subscription detail
+// swagger:model SubscriptionDetail
+type SubscriptionDetail struct {
+
+ // action to be setup list
+ // Required: true
+ ActionToBeSetupList ActionsToBeSetup `json:"ActionToBeSetupList"`
+
+ // event triggers
+ // Required: true
+ EventTriggers *EventTriggerDefinition `json:"EventTriggers"`
+
+ // instance Id
+ // Required: true
+ // Maximum: 65535
+ // Minimum: 0
+ InstanceID *int64 `json:"InstanceId"`
+
+ // requestor Id
+ // Required: true
+ // Maximum: 65535
+ // Minimum: 0
+ RequestorID *int64 `json:"RequestorId"`
+}
+
+// Validate validates this subscription detail
+func (m *SubscriptionDetail) Validate(formats strfmt.Registry) error {
+ var res []error
+
+ if err := m.validateActionToBeSetupList(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateEventTriggers(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateInstanceID(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateRequestorID(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if len(res) > 0 {
+ return errors.CompositeValidationError(res...)
+ }
+ return nil
+}
+
+func (m *SubscriptionDetail) validateActionToBeSetupList(formats strfmt.Registry) error {
+
+ if err := validate.Required("ActionToBeSetupList", "body", m.ActionToBeSetupList); err != nil {
+ return err
+ }
+
+ if err := m.ActionToBeSetupList.Validate(formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("ActionToBeSetupList")
+ }
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionDetail) validateEventTriggers(formats strfmt.Registry) error {
+
+ if err := validate.Required("EventTriggers", "body", m.EventTriggers); err != nil {
+ return err
+ }
+
+ if m.EventTriggers != nil {
+ if err := m.EventTriggers.Validate(formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("EventTriggers")
+ }
+ return err
+ }
+ }
+
+ return nil
+}
+
+func (m *SubscriptionDetail) validateInstanceID(formats strfmt.Registry) error {
+
+ if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil {
+ return err
+ }
+
+ if err := validate.MinimumInt("InstanceId", "body", int64(*m.InstanceID), 0, false); err != nil {
+ return err
+ }
+
+ if err := validate.MaximumInt("InstanceId", "body", int64(*m.InstanceID), 65535, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionDetail) validateRequestorID(formats strfmt.Registry) error {
+
+ if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil {
+ return err
+ }
+
+ if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil {
+ return err
+ }
+
+ if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// MarshalBinary interface implementation
+func (m *SubscriptionDetail) MarshalBinary() ([]byte, error) {
+ if m == nil {
+ return nil, nil
+ }
+ return swag.WriteJSON(m)
+}
+
+// UnmarshalBinary interface implementation
+func (m *SubscriptionDetail) UnmarshalBinary(b []byte) error {
+ var res SubscriptionDetail
+ if err := swag.ReadJSON(b, &res); err != nil {
+ return err
+ }
+ *m = res
+ return nil
+}
// SubscriptionDetailsList subscription details list
// swagger:model SubscriptionDetailsList
-type SubscriptionDetailsList []*SubscriptionDetails
+type SubscriptionDetailsList []*SubscriptionDetail
// Validate validates this subscription details list
func (m SubscriptionDetailsList) Validate(formats strfmt.Registry) error {
// Required: true
ClientEndpoint *SubscriptionParamsClientEndpoint `json:"ClientEndpoint"`
- // instance Id
- // Required: true
- // Maximum: 65535
- // Minimum: 0
- InstanceID *int64 `json:"InstanceId"`
-
// meid
// Required: true
Meid *string `json:"Meid"`
// Minimum: 0
RANFunctionID *int64 `json:"RANFunctionID"`
- // requestor Id
- // Required: true
- // Maximum: 65535
- // Minimum: 0
- RequestorID *int64 `json:"RequestorId"`
-
// subscription details
// Required: true
SubscriptionDetails SubscriptionDetailsList `json:"SubscriptionDetails"`
res = append(res, err)
}
- if err := m.validateInstanceID(formats); err != nil {
- res = append(res, err)
- }
-
if err := m.validateMeid(formats); err != nil {
res = append(res, err)
}
res = append(res, err)
}
- if err := m.validateRequestorID(formats); err != nil {
- res = append(res, err)
- }
-
if err := m.validateSubscriptionDetails(formats); err != nil {
res = append(res, err)
}
return nil
}
-func (m *SubscriptionParams) validateInstanceID(formats strfmt.Registry) error {
-
- if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil {
- return err
- }
-
- if err := validate.MinimumInt("InstanceId", "body", int64(*m.InstanceID), 0, false); err != nil {
- return err
- }
-
- if err := validate.MaximumInt("InstanceId", "body", int64(*m.InstanceID), 65535, false); err != nil {
- return err
- }
-
- return nil
-}
-
func (m *SubscriptionParams) validateMeid(formats strfmt.Registry) error {
if err := validate.Required("Meid", "body", m.Meid); err != nil {
return nil
}
-func (m *SubscriptionParams) validateRequestorID(formats strfmt.Registry) error {
-
- if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil {
- return err
- }
-
- if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil {
- return err
- }
-
- if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil {
- return err
- }
-
- return nil
-}
-
func (m *SubscriptionParams) validateSubscriptionDetails(formats strfmt.Registry) error {
if err := validate.Required("SubscriptionDetails", "body", m.SubscriptionDetails); err != nil {
// swagger:model SubscriptionParamsClientEndpoint
type SubscriptionParamsClientEndpoint struct {
- // xApp service address port
+ // xApp HTTP service address port
// Maximum: 65535
// Minimum: 0
- Port *int64 `json:"Port,omitempty"`
+ HTTPPort *int64 `json:"HTTPPort,omitempty"`
// xApp service address name like 'service-ricxapp-xappname-http.ricxapp'
- ServiceName string `json:"ServiceName,omitempty"`
+ Host string `json:"Host,omitempty"`
+
+ // xApp RMR service address port
+ // Maximum: 65535
+ // Minimum: 0
+ RMRPort *int64 `json:"RMRPort,omitempty"`
}
// Validate validates this subscription params client endpoint
func (m *SubscriptionParamsClientEndpoint) Validate(formats strfmt.Registry) error {
var res []error
- if err := m.validatePort(formats); err != nil {
+ if err := m.validateHTTPPort(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateRMRPort(formats); err != nil {
res = append(res, err)
}
return nil
}
-func (m *SubscriptionParamsClientEndpoint) validatePort(formats strfmt.Registry) error {
+func (m *SubscriptionParamsClientEndpoint) validateHTTPPort(formats strfmt.Registry) error {
+
+ if swag.IsZero(m.HTTPPort) { // not required
+ return nil
+ }
+
+ if err := validate.MinimumInt("ClientEndpoint"+"."+"HTTPPort", "body", int64(*m.HTTPPort), 0, false); err != nil {
+ return err
+ }
+
+ if err := validate.MaximumInt("ClientEndpoint"+"."+"HTTPPort", "body", int64(*m.HTTPPort), 65535, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionParamsClientEndpoint) validateRMRPort(formats strfmt.Registry) error {
- if swag.IsZero(m.Port) { // not required
+ if swag.IsZero(m.RMRPort) { // not required
return nil
}
- if err := validate.MinimumInt("ClientEndpoint"+"."+"Port", "body", int64(*m.Port), 0, false); err != nil {
+ if err := validate.MinimumInt("ClientEndpoint"+"."+"RMRPort", "body", int64(*m.RMRPort), 0, false); err != nil {
return err
}
- if err := validate.MaximumInt("ClientEndpoint"+"."+"Port", "body", int64(*m.Port), 65535, false); err != nil {
+ if err := validate.MaximumInt("ClientEndpoint"+"."+"RMRPort", "body", int64(*m.RMRPort), 65535, false); err != nil {
return err
}
// Editing this file might prove futile when you re-run the swagger generate command
import (
+ "strconv"
+
strfmt "github.com/go-openapi/strfmt"
+ "github.com/go-openapi/errors"
"github.com/go-openapi/swag"
)
// swagger:model SubscriptionData
type SubscriptionData struct {
- // endpoint
- Endpoint []string `json:"Endpoint"`
+ // client endpoint
+ ClientEndpoint []string `json:"ClientEndpoint"`
// meid
Meid string `json:"Meid,omitempty"`
// subscription Id
SubscriptionID int64 `json:"SubscriptionId,omitempty"`
+
+ // subscription instances
+ SubscriptionInstances []*SubscriptionInstance `json:"SubscriptionInstances"`
}
// Validate validates this subscription data
func (m *SubscriptionData) Validate(formats strfmt.Registry) error {
+ var res []error
+
+ if err := m.validateSubscriptionInstances(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if len(res) > 0 {
+ return errors.CompositeValidationError(res...)
+ }
+ return nil
+}
+
+func (m *SubscriptionData) validateSubscriptionInstances(formats strfmt.Registry) error {
+
+ if swag.IsZero(m.SubscriptionInstances) { // not required
+ return nil
+ }
+
+ for i := 0; i < len(m.SubscriptionInstances); i++ {
+ if swag.IsZero(m.SubscriptionInstances[i]) { // not required
+ continue
+ }
+
+ if m.SubscriptionInstances[i] != nil {
+ if err := m.SubscriptionInstances[i].Validate(formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("SubscriptionInstances" + "." + strconv.Itoa(i))
+ }
+ return err
+ }
+ }
+
+ }
+
return nil
}
--- /dev/null
+// Code generated by go-swagger; DO NOT EDIT.
+
+package models
+
+// This file was generated by the swagger tool.
+// Editing this file might prove futile when you re-run the swagger generate command
+
+import (
+ strfmt "github.com/go-openapi/strfmt"
+
+ "github.com/go-openapi/errors"
+ "github.com/go-openapi/swag"
+ "github.com/go-openapi/validate"
+)
+
+// SubscriptionDetail subscription detail
+// swagger:model SubscriptionDetail
+type SubscriptionDetail struct {
+
+ // action to be setup list
+ // Required: true
+ ActionToBeSetupList ActionsToBeSetup `json:"ActionToBeSetupList"`
+
+ // event triggers
+ // Required: true
+ EventTriggers *EventTriggerDefinition `json:"EventTriggers"`
+
+ // instance Id
+ // Required: true
+ // Maximum: 65535
+ // Minimum: 0
+ InstanceID *int64 `json:"InstanceId"`
+
+ // requestor Id
+ // Required: true
+ // Maximum: 65535
+ // Minimum: 0
+ RequestorID *int64 `json:"RequestorId"`
+}
+
+// Validate validates this subscription detail
+func (m *SubscriptionDetail) Validate(formats strfmt.Registry) error {
+ var res []error
+
+ if err := m.validateActionToBeSetupList(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateEventTriggers(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateInstanceID(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateRequestorID(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if len(res) > 0 {
+ return errors.CompositeValidationError(res...)
+ }
+ return nil
+}
+
+func (m *SubscriptionDetail) validateActionToBeSetupList(formats strfmt.Registry) error {
+
+ if err := validate.Required("ActionToBeSetupList", "body", m.ActionToBeSetupList); err != nil {
+ return err
+ }
+
+ if err := m.ActionToBeSetupList.Validate(formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("ActionToBeSetupList")
+ }
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionDetail) validateEventTriggers(formats strfmt.Registry) error {
+
+ if err := validate.Required("EventTriggers", "body", m.EventTriggers); err != nil {
+ return err
+ }
+
+ if m.EventTriggers != nil {
+ if err := m.EventTriggers.Validate(formats); err != nil {
+ if ve, ok := err.(*errors.Validation); ok {
+ return ve.ValidateName("EventTriggers")
+ }
+ return err
+ }
+ }
+
+ return nil
+}
+
+func (m *SubscriptionDetail) validateInstanceID(formats strfmt.Registry) error {
+
+ if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil {
+ return err
+ }
+
+ if err := validate.MinimumInt("InstanceId", "body", int64(*m.InstanceID), 0, false); err != nil {
+ return err
+ }
+
+ if err := validate.MaximumInt("InstanceId", "body", int64(*m.InstanceID), 65535, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionDetail) validateRequestorID(formats strfmt.Registry) error {
+
+ if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil {
+ return err
+ }
+
+ if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil {
+ return err
+ }
+
+ if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// MarshalBinary interface implementation
+func (m *SubscriptionDetail) MarshalBinary() ([]byte, error) {
+ if m == nil {
+ return nil, nil
+ }
+ return swag.WriteJSON(m)
+}
+
+// UnmarshalBinary interface implementation
+func (m *SubscriptionDetail) UnmarshalBinary(b []byte) error {
+ var res SubscriptionDetail
+ if err := swag.ReadJSON(b, &res); err != nil {
+ return err
+ }
+ *m = res
+ return nil
+}
// SubscriptionDetailsList subscription details list
// swagger:model SubscriptionDetailsList
-type SubscriptionDetailsList []*SubscriptionDetails
+type SubscriptionDetailsList []*SubscriptionDetail
// Validate validates this subscription details list
func (m SubscriptionDetailsList) Validate(formats strfmt.Registry) error {
// Required: true
ClientEndpoint *SubscriptionParamsClientEndpoint `json:"ClientEndpoint"`
- // instance Id
- // Required: true
- // Maximum: 65535
- // Minimum: 0
- InstanceID *int64 `json:"InstanceId"`
-
// meid
// Required: true
Meid *string `json:"Meid"`
// Minimum: 0
RANFunctionID *int64 `json:"RANFunctionID"`
- // requestor Id
- // Required: true
- // Maximum: 65535
- // Minimum: 0
- RequestorID *int64 `json:"RequestorId"`
-
// subscription details
// Required: true
SubscriptionDetails SubscriptionDetailsList `json:"SubscriptionDetails"`
res = append(res, err)
}
- if err := m.validateInstanceID(formats); err != nil {
- res = append(res, err)
- }
-
if err := m.validateMeid(formats); err != nil {
res = append(res, err)
}
res = append(res, err)
}
- if err := m.validateRequestorID(formats); err != nil {
- res = append(res, err)
- }
-
if err := m.validateSubscriptionDetails(formats); err != nil {
res = append(res, err)
}
return nil
}
-func (m *SubscriptionParams) validateInstanceID(formats strfmt.Registry) error {
-
- if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil {
- return err
- }
-
- if err := validate.MinimumInt("InstanceId", "body", int64(*m.InstanceID), 0, false); err != nil {
- return err
- }
-
- if err := validate.MaximumInt("InstanceId", "body", int64(*m.InstanceID), 65535, false); err != nil {
- return err
- }
-
- return nil
-}
-
func (m *SubscriptionParams) validateMeid(formats strfmt.Registry) error {
if err := validate.Required("Meid", "body", m.Meid); err != nil {
return nil
}
-func (m *SubscriptionParams) validateRequestorID(formats strfmt.Registry) error {
-
- if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil {
- return err
- }
-
- if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil {
- return err
- }
-
- if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil {
- return err
- }
-
- return nil
-}
-
func (m *SubscriptionParams) validateSubscriptionDetails(formats strfmt.Registry) error {
if err := validate.Required("SubscriptionDetails", "body", m.SubscriptionDetails); err != nil {
// swagger:model SubscriptionParamsClientEndpoint
type SubscriptionParamsClientEndpoint struct {
- // xApp service address port
+ // xApp HTTP service address port
// Maximum: 65535
// Minimum: 0
- Port *int64 `json:"Port,omitempty"`
+ HTTPPort *int64 `json:"HTTPPort,omitempty"`
// xApp service address name like 'service-ricxapp-xappname-http.ricxapp'
- ServiceName string `json:"ServiceName,omitempty"`
+ Host string `json:"Host,omitempty"`
+
+ // xApp RMR service address port
+ // Maximum: 65535
+ // Minimum: 0
+ RMRPort *int64 `json:"RMRPort,omitempty"`
}
// Validate validates this subscription params client endpoint
func (m *SubscriptionParamsClientEndpoint) Validate(formats strfmt.Registry) error {
var res []error
- if err := m.validatePort(formats); err != nil {
+ if err := m.validateHTTPPort(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateRMRPort(formats); err != nil {
res = append(res, err)
}
return nil
}
-func (m *SubscriptionParamsClientEndpoint) validatePort(formats strfmt.Registry) error {
+func (m *SubscriptionParamsClientEndpoint) validateHTTPPort(formats strfmt.Registry) error {
+
+ if swag.IsZero(m.HTTPPort) { // not required
+ return nil
+ }
+
+ if err := validate.MinimumInt("ClientEndpoint"+"."+"HTTPPort", "body", int64(*m.HTTPPort), 0, false); err != nil {
+ return err
+ }
+
+ if err := validate.MaximumInt("ClientEndpoint"+"."+"HTTPPort", "body", int64(*m.HTTPPort), 65535, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionParamsClientEndpoint) validateRMRPort(formats strfmt.Registry) error {
- if swag.IsZero(m.Port) { // not required
+ if swag.IsZero(m.RMRPort) { // not required
return nil
}
- if err := validate.MinimumInt("ClientEndpoint"+"."+"Port", "body", int64(*m.Port), 0, false); err != nil {
+ if err := validate.MinimumInt("ClientEndpoint"+"."+"RMRPort", "body", int64(*m.RMRPort), 0, false); err != nil {
return err
}
- if err := validate.MaximumInt("ClientEndpoint"+"."+"Port", "body", int64(*m.Port), 65535, false); err != nil {
+ if err := validate.MaximumInt("ClientEndpoint"+"."+"RMRPort", "body", int64(*m.RMRPort), 65535, false); err != nil {
return err
}
"SubscriptionData": {
"type": "object",
"properties": {
- "Endpoint": {
+ "ClientEndpoint": {
"type": "array",
"items": {
"type": "string"
},
"SubscriptionId": {
"type": "integer"
+ },
+ "SubscriptionInstances": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubscriptionInstance"
+ }
}
}
},
- "SubscriptionDetails": {
+ "SubscriptionDetail": {
"type": "object",
"required": [
- "EventTriggerList",
+ "RequestorId",
+ "InstanceId",
+ "EventTriggers",
"ActionToBeSetupList"
],
"properties": {
"ActionToBeSetupList": {
"$ref": "#/definitions/ActionsToBeSetup"
},
- "EventTriggerList": {
+ "EventTriggers": {
"$ref": "#/definitions/EventTriggerDefinition"
+ },
+ "InstanceId": {
+ "type": "integer",
+ "maximum": 65535
+ },
+ "RequestorId": {
+ "type": "integer",
+ "maximum": 65535
}
}
},
"SubscriptionDetailsList": {
"type": "array",
"items": {
- "$ref": "#/definitions/SubscriptionDetails"
+ "$ref": "#/definitions/SubscriptionDetail"
}
},
"SubscriptionInstance": {
"required": [
"ClientEndpoint",
"Meid",
- "RequestorId",
- "InstanceId",
"RANFunctionID",
"SubscriptionDetails"
],
"description": "xApp service address and port",
"type": "object",
"properties": {
- "Port": {
- "description": "xApp service address port",
+ "HTTPPort": {
+ "description": "xApp HTTP service address port",
"type": "integer",
"maximum": 65535
},
- "ServiceName": {
+ "Host": {
"description": "xApp service address name like 'service-ricxapp-xappname-http.ricxapp'",
"type": "string"
+ },
+ "RMRPort": {
+ "description": "xApp RMR service address port",
+ "type": "integer",
+ "maximum": 65535
}
}
},
- "InstanceId": {
- "type": "integer",
- "maximum": 65535
- },
"Meid": {
"type": "string"
},
"type": "integer",
"maximum": 4095
},
- "RequestorId": {
- "type": "integer",
- "maximum": 65535
- },
"SubscriptionDetails": {
"$ref": "#/definitions/SubscriptionDetailsList"
}
"SubscriptionData": {
"type": "object",
"properties": {
- "Endpoint": {
+ "ClientEndpoint": {
"type": "array",
"items": {
"type": "string"
},
"SubscriptionId": {
"type": "integer"
+ },
+ "SubscriptionInstances": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubscriptionInstance"
+ }
}
}
},
- "SubscriptionDetails": {
+ "SubscriptionDetail": {
"type": "object",
"required": [
- "EventTriggerList",
+ "RequestorId",
+ "InstanceId",
+ "EventTriggers",
"ActionToBeSetupList"
],
"properties": {
"ActionToBeSetupList": {
"$ref": "#/definitions/ActionsToBeSetup"
},
- "EventTriggerList": {
+ "EventTriggers": {
"$ref": "#/definitions/EventTriggerDefinition"
+ },
+ "InstanceId": {
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
+ },
+ "RequestorId": {
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
}
}
},
"SubscriptionDetailsList": {
"type": "array",
"items": {
- "$ref": "#/definitions/SubscriptionDetails"
+ "$ref": "#/definitions/SubscriptionDetail"
}
},
"SubscriptionInstance": {
"required": [
"ClientEndpoint",
"Meid",
- "RequestorId",
- "InstanceId",
"RANFunctionID",
"SubscriptionDetails"
],
"description": "xApp service address and port",
"type": "object",
"properties": {
- "Port": {
- "description": "xApp service address port",
+ "HTTPPort": {
+ "description": "xApp HTTP service address port",
"type": "integer",
"maximum": 65535,
"minimum": 0
},
- "ServiceName": {
+ "Host": {
"description": "xApp service address name like 'service-ricxapp-xappname-http.ricxapp'",
"type": "string"
+ },
+ "RMRPort": {
+ "description": "xApp RMR service address port",
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
}
}
},
- "InstanceId": {
- "type": "integer",
- "maximum": 65535,
- "minimum": 0
- },
"Meid": {
"type": "string"
},
"maximum": 4095,
"minimum": 0
},
- "RequestorId": {
- "type": "integer",
- "maximum": 65535,
- "minimum": 0
- },
"SubscriptionDetails": {
"$ref": "#/definitions/SubscriptionDetailsList"
}
return err
}
- clientUrl := fmt.Sprintf("http://%s:%d%s", ep.ServiceName, ep.Port, r.clientUrl)
+ clientUrl := fmt.Sprintf("http://%s:%d%s", ep.Host, *ep.HTTPPort, r.clientUrl)
retries := viper.GetInt("subscription.retryCount")
if retries == 0 {
actionType = "report"
subsequestActioType = "continue"
timeToWait = "w10ms"
- port = int64(4560)
- clientEndpoint = clientmodel.SubscriptionParamsClientEndpoint{ServiceName: "localhost", Port: &port}
direction = int64(0)
procedureCode = int64(27)
typeOfMessage = int64(1)
subscriptionId = ""
+ hPort = int64(8080)
+ rPort = int64(4560)
+ clientEndpoint = clientmodel.SubscriptionParamsClientEndpoint{Host: "localhost", HTTPPort: &hPort, RMRPort: &rPort}
)
// Test cases
assert.Equal(t, err, nil)
assert.Equal(t, resp[0].SubscriptionID, int64(11))
assert.Equal(t, resp[0].Meid, "Test-Gnb")
- assert.Equal(t, resp[0].Endpoint, []string{"127.0.0.1:4056"})
+ assert.Equal(t, resp[0].ClientEndpoint, []string{"127.0.0.1:4056"})
}
func TestSubscriptionHandling(t *testing.T) {
Meid: &meid,
RANFunctionID: &funId,
ClientEndpoint: &clientEndpoint,
- RequestorID: &reqId,
- InstanceID: &seqId,
SubscriptionDetails: clientmodel.SubscriptionDetailsList{
- &clientmodel.SubscriptionDetails{
- EventTriggerList: &clientmodel.EventTriggerDefinition{
+ &clientmodel.SubscriptionDetail{
+ RequestorID: &reqId,
+ InstanceID: &seqId,
+ EventTriggers: &clientmodel.EventTriggerDefinition{
OctetString: "1234",
},
ActionToBeSetupList: clientmodel.ActionsToBeSetup{
}
// Notify the client: don't worry about errors ... Notify() will handle retries, etc.
- Subscription.Notify(resp, models.SubscriptionParamsClientEndpoint{ServiceName: "localhost", Port: &port})
+ Subscription.Notify(resp, models.SubscriptionParamsClientEndpoint{Host: "localhost", HTTPPort: &hPort, RMRPort: &rPort})
}
func subscriptionHandler(params interface{}) (*models.SubscriptionResponse, error) {
assert.Equal(suite, meid, *p.Meid)
assert.Equal(suite, funId, *p.RANFunctionID)
- assert.Equal(suite, clientEndpoint.ServiceName, p.ClientEndpoint.ServiceName)
- assert.Equal(suite, clientEndpoint.Port, p.ClientEndpoint.Port)
- assert.Equal(suite, reqId, *p.RequestorID)
- assert.Equal(suite, seqId, *p.InstanceID)
+ assert.Equal(suite, clientEndpoint.Host, p.ClientEndpoint.Host)
+ assert.Equal(suite, clientEndpoint.HTTPPort, p.ClientEndpoint.HTTPPort)
+ assert.Equal(suite, clientEndpoint.RMRPort, p.ClientEndpoint.RMRPort)
- assert.Equal(suite, "1234", p.SubscriptionDetails[0].EventTriggerList.OctetString)
+ assert.Equal(suite, reqId, *p.SubscriptionDetails[0].RequestorID)
+ assert.Equal(suite, seqId, *p.SubscriptionDetails[0].InstanceID)
+ assert.Equal(suite, "1234", p.SubscriptionDetails[0].EventTriggers.OctetString)
assert.Equal(suite, actionId, *p.SubscriptionDetails[0].ActionToBeSetupList[0].ActionID)
assert.Equal(suite, actionType, *p.SubscriptionDetails[0].ActionToBeSetupList[0].ActionType)
assert.Equal(suite, "5678", p.SubscriptionDetails[0].ActionToBeSetupList[0].ActionDefinition.OctetString)
// Generate a unique subscriptionId
- subscriptionId = fmt.Sprintf("%s-%s", meid, clientEndpoint.ServiceName)
+ subscriptionId = fmt.Sprintf("%s-%s", meid, clientEndpoint.Host)
// Process subscriptions on the background
go processSubscriptions(subscriptionId)
&models.SubscriptionData{
SubscriptionID: 11,
Meid: "Test-Gnb",
- Endpoint: []string{"127.0.0.1:4056"},
+ ClientEndpoint: []string{"127.0.0.1:4056"},
},
}
return resp, nil
Resource = NewRouter()
Config = Configurator{}
Metric = NewMetrics(viper.GetString("metrics.url"), viper.GetString("metrics.namespace"), Resource.router)
- Subscription = NewSubscriber(viper.GetString("subscription.host"), viper.GetInt("subscription.timeout"))
+ Subscription = NewSubscriber(viper.GetString("controls.subscription.host"), viper.GetInt("controls.subscription.timeout"))
Sdl = NewSDLClient(viper.GetString("controls.db.namespace"))
Rnib = NewRNIBClient()
Util = NewUtils()