From: Mohamed Abukar Date: Fri, 28 May 2021 09:00:36 +0000 (+0000) Subject: Update REST API spec X-Git-Tag: v0.8.2^0 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=2f9d1a1259f88552a2b6e9db6e1ea236aef7a2d2;p=ric-plt%2Fxapp-frame.git Update REST API spec Change-Id: I39985559ae5d41fc5a95ac2844c72523ec147306 Signed-off-by: Mohamed Abukar --- diff --git a/api/xapp_rest_api.yaml b/api/xapp_rest_api.yaml old mode 100755 new mode 100644 index 018a696..38a34f9 --- a/api/xapp_rest_api.yaml +++ b/api/xapp_rest_api.yaml @@ -1,7 +1,7 @@ -swagger: "2.0" +swagger: '2.0' info: description: This is the initial REST API for RIC subscription - version: 0.0.1 + version: 0.0.2 title: RIC subscription license: name: Apache 2.0 @@ -31,7 +31,7 @@ paths: get: summary: Returns list of subscriptions tags: - - "common" + - common operationId: getAllSubscriptions produces: - application/json @@ -44,7 +44,7 @@ paths: description: Internal error post: tags: - - "common" + - common operationId: Subscribe summary: Subscribe a list of X2AP event triggers to receive messages sent by RAN consumes: @@ -69,7 +69,7 @@ paths: '/subscriptions/{subscriptionId}': delete: tags: - - "common" + - common summary: Unsubscribe X2AP events from Subscription Manager operationId: Unsubscribe consumes: @@ -103,9 +103,9 @@ definitions: type: string description: The type of the content enum: - - json - - xml - - other + - json + - xml + - other XAppConfig: type: object required: @@ -121,7 +121,6 @@ definitions: type: array items: $ref: '#/definitions/XAppConfig' - ActionDefinition: type: object description: E2SM Octet string. ActionDefinition is an OPTIONAL IE @@ -194,16 +193,11 @@ definitions: SubscriptionDetail: type: object required: - - RequestorId - - InstanceId + - XappEventInstanceId - EventTriggers - ActionToBeSetupList properties: - RequestorId: - type: integer - minimum: 0 - maximum: 65535 - InstanceId: + XappEventInstanceId: type: integer minimum: 0 maximum: 65535 @@ -224,15 +218,16 @@ definitions: - SubscriptionDetails properties: SubscriptionId: - type: string - description: Optional subscription ID (Submgr allocates if not given) + type: string + description: Optional subscription ID (Submgr allocates if not given) ClientEndpoint: type: object description: xApp service address and port properties: Host: description: >- - xApp service address name like 'service-ricxapp-xappname-http.ricxapp' + xApp service address name like + 'service-ricxapp-xappname-http.ricxapp' type: string HTTPPort: description: xApp HTTP service address port @@ -267,15 +262,15 @@ definitions: SubscriptionInstance: type: object required: - - RequestorId - - InstanceId + - XappEventInstanceId + - E2EventInstanceId - ErrorCause properties: - RequestorId: + XappEventInstanceId: type: integer minimum: 0 maximum: 65535 - InstanceId: + E2EventInstanceId: type: integer minimum: 0 maximum: 65535 @@ -301,4 +296,4 @@ definitions: type: array description: A list of subscriptions items: - $ref: '#/definitions/SubscriptionData' \ No newline at end of file + $ref: '#/definitions/SubscriptionData' diff --git a/pkg/clientmodel/subscription_detail.go b/pkg/clientmodel/subscription_detail.go index 0a66540..f9ecff9 100644 --- a/pkg/clientmodel/subscription_detail.go +++ b/pkg/clientmodel/subscription_detail.go @@ -25,17 +25,11 @@ type SubscriptionDetail struct { // Required: true EventTriggers *EventTriggerDefinition `json:"EventTriggers"` - // instance Id + // xapp event instance Id // Required: true // Maximum: 65535 // Minimum: 0 - InstanceID *int64 `json:"InstanceId"` - - // requestor Id - // Required: true - // Maximum: 65535 - // Minimum: 0 - RequestorID *int64 `json:"RequestorId"` + XappEventInstanceID *int64 `json:"XappEventInstanceId"` } // Validate validates this subscription detail @@ -50,11 +44,7 @@ func (m *SubscriptionDetail) Validate(formats strfmt.Registry) error { res = append(res, err) } - if err := m.validateInstanceID(formats); err != nil { - res = append(res, err) - } - - if err := m.validateRequestorID(formats); err != nil { + if err := m.validateXappEventInstanceID(formats); err != nil { res = append(res, err) } @@ -98,34 +88,17 @@ func (m *SubscriptionDetail) validateEventTriggers(formats strfmt.Registry) erro 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 { +func (m *SubscriptionDetail) validateXappEventInstanceID(formats strfmt.Registry) error { - if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil { + if err := validate.Required("XappEventInstanceId", "body", m.XappEventInstanceID); err != nil { return err } - if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil { + if err := validate.MinimumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 0, false); err != nil { return err } - if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil { + if err := validate.MaximumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 65535, false); err != nil { return err } diff --git a/pkg/clientmodel/subscription_instance.go b/pkg/clientmodel/subscription_instance.go index 2d8ba46..4f099a6 100644 --- a/pkg/clientmodel/subscription_instance.go +++ b/pkg/clientmodel/subscription_instance.go @@ -17,36 +17,36 @@ import ( // swagger:model SubscriptionInstance type SubscriptionInstance struct { - // Empty string when no error. - // Required: true - ErrorCause *string `json:"ErrorCause"` - - // instance Id + // e2 event instance Id // Required: true // Maximum: 65535 // Minimum: 0 - InstanceID *int64 `json:"InstanceId"` + E2EventInstanceID *int64 `json:"E2EventInstanceId"` - // requestor Id + // Empty string when no error. + // Required: true + ErrorCause *string `json:"ErrorCause"` + + // xapp event instance Id // Required: true // Maximum: 65535 // Minimum: 0 - RequestorID *int64 `json:"RequestorId"` + XappEventInstanceID *int64 `json:"XappEventInstanceId"` } // Validate validates this subscription instance func (m *SubscriptionInstance) Validate(formats strfmt.Registry) error { var res []error - if err := m.validateErrorCause(formats); err != nil { + if err := m.validateE2EventInstanceID(formats); err != nil { res = append(res, err) } - if err := m.validateInstanceID(formats); err != nil { + if err := m.validateErrorCause(formats); err != nil { res = append(res, err) } - if err := m.validateRequestorID(formats); err != nil { + if err := m.validateXappEventInstanceID(formats); err != nil { res = append(res, err) } @@ -56,43 +56,43 @@ func (m *SubscriptionInstance) Validate(formats strfmt.Registry) error { return nil } -func (m *SubscriptionInstance) validateErrorCause(formats strfmt.Registry) error { +func (m *SubscriptionInstance) validateE2EventInstanceID(formats strfmt.Registry) error { - if err := validate.Required("ErrorCause", "body", m.ErrorCause); err != nil { + if err := validate.Required("E2EventInstanceId", "body", m.E2EventInstanceID); err != nil { return err } - return nil -} - -func (m *SubscriptionInstance) validateInstanceID(formats strfmt.Registry) error { - - if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil { + if err := validate.MinimumInt("E2EventInstanceId", "body", int64(*m.E2EventInstanceID), 0, false); err != nil { return err } - if err := validate.MinimumInt("InstanceId", "body", int64(*m.InstanceID), 0, false); err != nil { + if err := validate.MaximumInt("E2EventInstanceId", "body", int64(*m.E2EventInstanceID), 65535, false); err != nil { return err } - if err := validate.MaximumInt("InstanceId", "body", int64(*m.InstanceID), 65535, false); err != nil { + return nil +} + +func (m *SubscriptionInstance) validateErrorCause(formats strfmt.Registry) error { + + if err := validate.Required("ErrorCause", "body", m.ErrorCause); err != nil { return err } return nil } -func (m *SubscriptionInstance) validateRequestorID(formats strfmt.Registry) error { +func (m *SubscriptionInstance) validateXappEventInstanceID(formats strfmt.Registry) error { - if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil { + if err := validate.Required("XappEventInstanceId", "body", m.XappEventInstanceID); err != nil { return err } - if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil { + if err := validate.MinimumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 0, false); err != nil { return err } - if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil { + if err := validate.MaximumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 65535, false); err != nil { return err } diff --git a/pkg/models/subscription_detail.go b/pkg/models/subscription_detail.go index ee474a8..baf0ed6 100644 --- a/pkg/models/subscription_detail.go +++ b/pkg/models/subscription_detail.go @@ -25,17 +25,11 @@ type SubscriptionDetail struct { // Required: true EventTriggers *EventTriggerDefinition `json:"EventTriggers"` - // instance Id + // xapp event instance Id // Required: true // Maximum: 65535 // Minimum: 0 - InstanceID *int64 `json:"InstanceId"` - - // requestor Id - // Required: true - // Maximum: 65535 - // Minimum: 0 - RequestorID *int64 `json:"RequestorId"` + XappEventInstanceID *int64 `json:"XappEventInstanceId"` } // Validate validates this subscription detail @@ -50,11 +44,7 @@ func (m *SubscriptionDetail) Validate(formats strfmt.Registry) error { res = append(res, err) } - if err := m.validateInstanceID(formats); err != nil { - res = append(res, err) - } - - if err := m.validateRequestorID(formats); err != nil { + if err := m.validateXappEventInstanceID(formats); err != nil { res = append(res, err) } @@ -98,34 +88,17 @@ func (m *SubscriptionDetail) validateEventTriggers(formats strfmt.Registry) erro 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 { +func (m *SubscriptionDetail) validateXappEventInstanceID(formats strfmt.Registry) error { - if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil { + if err := validate.Required("XappEventInstanceId", "body", m.XappEventInstanceID); err != nil { return err } - if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil { + if err := validate.MinimumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 0, false); err != nil { return err } - if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil { + if err := validate.MaximumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 65535, false); err != nil { return err } diff --git a/pkg/models/subscription_instance.go b/pkg/models/subscription_instance.go index 6c98abd..fa3c3a7 100644 --- a/pkg/models/subscription_instance.go +++ b/pkg/models/subscription_instance.go @@ -17,36 +17,36 @@ import ( // swagger:model SubscriptionInstance type SubscriptionInstance struct { - // Empty string when no error. - // Required: true - ErrorCause *string `json:"ErrorCause"` - - // instance Id + // e2 event instance Id // Required: true // Maximum: 65535 // Minimum: 0 - InstanceID *int64 `json:"InstanceId"` + E2EventInstanceID *int64 `json:"E2EventInstanceId"` - // requestor Id + // Empty string when no error. + // Required: true + ErrorCause *string `json:"ErrorCause"` + + // xapp event instance Id // Required: true // Maximum: 65535 // Minimum: 0 - RequestorID *int64 `json:"RequestorId"` + XappEventInstanceID *int64 `json:"XappEventInstanceId"` } // Validate validates this subscription instance func (m *SubscriptionInstance) Validate(formats strfmt.Registry) error { var res []error - if err := m.validateErrorCause(formats); err != nil { + if err := m.validateE2EventInstanceID(formats); err != nil { res = append(res, err) } - if err := m.validateInstanceID(formats); err != nil { + if err := m.validateErrorCause(formats); err != nil { res = append(res, err) } - if err := m.validateRequestorID(formats); err != nil { + if err := m.validateXappEventInstanceID(formats); err != nil { res = append(res, err) } @@ -56,43 +56,43 @@ func (m *SubscriptionInstance) Validate(formats strfmt.Registry) error { return nil } -func (m *SubscriptionInstance) validateErrorCause(formats strfmt.Registry) error { +func (m *SubscriptionInstance) validateE2EventInstanceID(formats strfmt.Registry) error { - if err := validate.Required("ErrorCause", "body", m.ErrorCause); err != nil { + if err := validate.Required("E2EventInstanceId", "body", m.E2EventInstanceID); err != nil { return err } - return nil -} - -func (m *SubscriptionInstance) validateInstanceID(formats strfmt.Registry) error { - - if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil { + if err := validate.MinimumInt("E2EventInstanceId", "body", int64(*m.E2EventInstanceID), 0, false); err != nil { return err } - if err := validate.MinimumInt("InstanceId", "body", int64(*m.InstanceID), 0, false); err != nil { + if err := validate.MaximumInt("E2EventInstanceId", "body", int64(*m.E2EventInstanceID), 65535, false); err != nil { return err } - if err := validate.MaximumInt("InstanceId", "body", int64(*m.InstanceID), 65535, false); err != nil { + return nil +} + +func (m *SubscriptionInstance) validateErrorCause(formats strfmt.Registry) error { + + if err := validate.Required("ErrorCause", "body", m.ErrorCause); err != nil { return err } return nil } -func (m *SubscriptionInstance) validateRequestorID(formats strfmt.Registry) error { +func (m *SubscriptionInstance) validateXappEventInstanceID(formats strfmt.Registry) error { - if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil { + if err := validate.Required("XappEventInstanceId", "body", m.XappEventInstanceID); err != nil { return err } - if err := validate.MinimumInt("RequestorId", "body", int64(*m.RequestorID), 0, false); err != nil { + if err := validate.MinimumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 0, false); err != nil { return err } - if err := validate.MaximumInt("RequestorId", "body", int64(*m.RequestorID), 65535, false); err != nil { + if err := validate.MaximumInt("XappEventInstanceId", "body", int64(*m.XappEventInstanceID), 65535, false); err != nil { return err } diff --git a/pkg/restapi/doc.go b/pkg/restapi/doc.go index 0886c5c..62cc84a 100644 --- a/pkg/restapi/doc.go +++ b/pkg/restapi/doc.go @@ -7,7 +7,7 @@ // http // Host: hostname // BasePath: /ric/v1 -// Version: 0.0.1 +// Version: 0.0.2 // License: Apache 2.0 http://www.apache.org/licenses/LICENSE-2.0.html // // Consumes: diff --git a/pkg/restapi/embedded_spec.go b/pkg/restapi/embedded_spec.go index 7ddaba9..d3f7c17 100644 --- a/pkg/restapi/embedded_spec.go +++ b/pkg/restapi/embedded_spec.go @@ -29,7 +29,7 @@ func init() { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, - "version": "0.0.1" + "version": "0.0.2" }, "host": "hostname", "basePath": "/ric/v1", @@ -254,8 +254,7 @@ func init() { "SubscriptionDetail": { "type": "object", "required": [ - "RequestorId", - "InstanceId", + "XappEventInstanceId", "EventTriggers", "ActionToBeSetupList" ], @@ -266,11 +265,7 @@ func init() { "EventTriggers": { "$ref": "#/definitions/EventTriggerDefinition" }, - "InstanceId": { - "type": "integer", - "maximum": 65535 - }, - "RequestorId": { + "XappEventInstanceId": { "type": "integer", "maximum": 65535 } @@ -285,20 +280,20 @@ func init() { "SubscriptionInstance": { "type": "object", "required": [ - "RequestorId", - "InstanceId", + "XappEventInstanceId", + "E2EventInstanceId", "ErrorCause" ], "properties": { + "E2EventInstanceId": { + "type": "integer", + "maximum": 65535 + }, "ErrorCause": { "description": "Empty string when no error.", "type": "string" }, - "InstanceId": { - "type": "integer", - "maximum": 65535 - }, - "RequestorId": { + "XappEventInstanceId": { "type": "integer", "maximum": 65535 } @@ -450,7 +445,7 @@ func init() { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, - "version": "0.0.1" + "version": "0.0.2" }, "host": "hostname", "basePath": "/ric/v1", @@ -676,8 +671,7 @@ func init() { "SubscriptionDetail": { "type": "object", "required": [ - "RequestorId", - "InstanceId", + "XappEventInstanceId", "EventTriggers", "ActionToBeSetupList" ], @@ -688,12 +682,7 @@ func init() { "EventTriggers": { "$ref": "#/definitions/EventTriggerDefinition" }, - "InstanceId": { - "type": "integer", - "maximum": 65535, - "minimum": 0 - }, - "RequestorId": { + "XappEventInstanceId": { "type": "integer", "maximum": 65535, "minimum": 0 @@ -709,21 +698,21 @@ func init() { "SubscriptionInstance": { "type": "object", "required": [ - "RequestorId", - "InstanceId", + "XappEventInstanceId", + "E2EventInstanceId", "ErrorCause" ], "properties": { - "ErrorCause": { - "description": "Empty string when no error.", - "type": "string" - }, - "InstanceId": { + "E2EventInstanceId": { "type": "integer", "maximum": 65535, "minimum": 0 }, - "RequestorId": { + "ErrorCause": { + "description": "Empty string when no error.", + "type": "string" + }, + "XappEventInstanceId": { "type": "integer", "maximum": 65535, "minimum": 0 diff --git a/pkg/xapp/subscription_test.go b/pkg/xapp/subscription_test.go index 39a5d93..5772465 100755 --- a/pkg/xapp/subscription_test.go +++ b/pkg/xapp/subscription_test.go @@ -8,19 +8,20 @@ package xapp import ( "fmt" + "testing" + "time" + "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/clientmodel" "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/models" "github.com/stretchr/testify/assert" - "testing" - "time" ) var ( suite *testing.T meid = "gnb123456" - reqId = int64(1) - seqId = int64(1) + xappEventInstanceId = int64(1) + eventInstanceId = int64(1) funId = int64(1) actionId = int64(1) actionType = "report" @@ -55,13 +56,13 @@ func TestSubscriptionQueryHandling(t *testing.T) { func TestSubscriptionHandling(t *testing.T) { subscriptionParams := clientmodel.SubscriptionParams{ + SubscriptionID: "", Meid: &meid, RANFunctionID: &funId, ClientEndpoint: &clientEndpoint, SubscriptionDetails: clientmodel.SubscriptionDetailsList{ &clientmodel.SubscriptionDetail{ - RequestorID: &reqId, - InstanceID: &seqId, + XappEventInstanceID: &eventInstanceId, EventTriggers: &clientmodel.EventTriggerDefinition{ OctetString: "1234", }, @@ -84,8 +85,8 @@ func TestSubscriptionHandling(t *testing.T) { Subscription.SetResponseCB(func(resp *clientmodel.SubscriptionResponse) { assert.Equal(t, len(resp.SubscriptionInstances), 1) - assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11)) - assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22)) + assert.Equal(t, *resp.SubscriptionInstances[0].XappEventInstanceID, int64(11)) + assert.Equal(t, *resp.SubscriptionInstances[0].E2EventInstanceID, int64(22)) }) _, err := Subscription.Subscribe(&subscriptionParams) @@ -94,14 +95,13 @@ func TestSubscriptionHandling(t *testing.T) { func TestSubscriptionWithClientProvidedIdHandling(t *testing.T) { subscriptionParams := clientmodel.SubscriptionParams{ + SubscriptionID: "myxapp", Meid: &meid, RANFunctionID: &funId, ClientEndpoint: &clientEndpoint, - SubscriptionID: "myxapp", SubscriptionDetails: clientmodel.SubscriptionDetailsList{ &clientmodel.SubscriptionDetail{ - RequestorID: &reqId, - InstanceID: &seqId, + XappEventInstanceID: &eventInstanceId, EventTriggers: &clientmodel.EventTriggerDefinition{ OctetString: "1234", }, @@ -124,8 +124,8 @@ func TestSubscriptionWithClientProvidedIdHandling(t *testing.T) { Subscription.SetResponseCB(func(resp *clientmodel.SubscriptionResponse) { assert.Equal(t, len(resp.SubscriptionInstances), 1) - assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11)) - assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22)) + assert.Equal(t, *resp.SubscriptionInstances[0].XappEventInstanceID, int64(11)) + assert.Equal(t, *resp.SubscriptionInstances[0].E2EventInstanceID, int64(22)) }) _, err := Subscription.Subscribe(&subscriptionParams) @@ -141,15 +141,15 @@ func TestSubscriptionDeleteHandling(t *testing.T) { // Helper functions func processSubscriptions(subscriptionId string) { // Generate requestorId, instanceId - reqId := int64(11) - instanceId := int64(22) + xappInstanceId := int64(11) + e2InstanceId := int64(22) resp := &models.SubscriptionResponse{ SubscriptionID: &subscriptionId, SubscriptionInstances: []*models.SubscriptionInstance{ { - RequestorID: &reqId, - InstanceID: &instanceId, + XappEventInstanceID: &xappInstanceId, + E2EventInstanceID: &e2InstanceId, }, }, } @@ -167,8 +167,7 @@ func subscriptionHandler(params interface{}) (*models.SubscriptionResponse, erro assert.Equal(suite, clientEndpoint.HTTPPort, p.ClientEndpoint.HTTPPort) assert.Equal(suite, clientEndpoint.RMRPort, p.ClientEndpoint.RMRPort) - assert.Equal(suite, reqId, *p.SubscriptionDetails[0].RequestorID) - assert.Equal(suite, seqId, *p.SubscriptionDetails[0].InstanceID) + assert.Equal(suite, xappEventInstanceId, *p.SubscriptionDetails[0].XappEventInstanceID) 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)