- "common"
summary: Unsubscribe X2AP events from Subscription Manager
operationId: Unsubscribe
+ consumes:
+ - application/json
+ produces:
+ - application/json
parameters:
- name: subscriptionId
in: path
type: integer
PolicyParameterValue:
type: integer
- SubscriptionResponseItem:
+ SubscriptionInstance:
type: object
required:
- - SubscriptionId
- RequestorId
- InstanceId
properties:
- SubscriptionId:
- type: string
RequestorId:
type: integer
InstanceId:
type: integer
SubscriptionResponse:
- type: array
- items:
- $ref: '#/definitions/SubscriptionResponseItem'
+ type: object
+ required:
+ - SubscriptionId
+ - SubscriptionInstances
+ properties:
+ SubscriptionId:
+ type: string
+ SubscriptionInstances:
+ type: array
+ items:
+ $ref: '#/definitions/SubscriptionInstance'
SubscriptionData:
type: object
properties:
ID: "Unsubscribe",
Method: "DELETE",
PathPattern: "/subscriptions/{subscriptionId}",
- ProducesMediaTypes: []string{""},
- ConsumesMediaTypes: []string{""},
+ ProducesMediaTypes: []string{"application/json"},
+ ConsumesMediaTypes: []string{"application/json"},
Schemes: []string{"http"},
Params: params,
Reader: &UnsubscribeReader{formats: a.formats},
Subscription successfully created
*/
type SubscribePolicyCreated struct {
- Payload clientmodel.SubscriptionResponse
+ Payload *clientmodel.SubscriptionResponse
}
func (o *SubscribePolicyCreated) Error() string {
func (o *SubscribePolicyCreated) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+ o.Payload = new(clientmodel.SubscriptionResponse)
+
// response payload
- if err := consumer.Consume(response.Body(), &o.Payload); err != nil && err != io.EOF {
+ if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
return err
}
Subscription successfully created
*/
type SubscribeReportCreated struct {
- Payload clientmodel.SubscriptionResponse
+ Payload *clientmodel.SubscriptionResponse
}
func (o *SubscribeReportCreated) Error() string {
func (o *SubscribeReportCreated) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error {
+ o.Payload = new(clientmodel.SubscriptionResponse)
+
// response payload
- if err := consumer.Consume(response.Body(), &o.Payload); err != nil && err != io.EOF {
+ if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF {
return err
}
--- /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"
+)
+
+// SubscriptionInstance subscription instance
+// swagger:model SubscriptionInstance
+type SubscriptionInstance struct {
+
+ // instance Id
+ // Required: true
+ InstanceID *int64 `json:"InstanceId"`
+
+ // requestor Id
+ // Required: true
+ RequestorID *int64 `json:"RequestorId"`
+}
+
+// Validate validates this subscription instance
+func (m *SubscriptionInstance) Validate(formats strfmt.Registry) error {
+ var res []error
+
+ 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 *SubscriptionInstance) validateInstanceID(formats strfmt.Registry) error {
+
+ if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionInstance) validateRequestorID(formats strfmt.Registry) error {
+
+ if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// MarshalBinary interface implementation
+func (m *SubscriptionInstance) MarshalBinary() ([]byte, error) {
+ if m == nil {
+ return nil, nil
+ }
+ return swag.WriteJSON(m)
+}
+
+// UnmarshalBinary interface implementation
+func (m *SubscriptionInstance) UnmarshalBinary(b []byte) error {
+ var res SubscriptionInstance
+ if err := swag.ReadJSON(b, &res); err != nil {
+ return err
+ }
+ *m = res
+ return nil
+}
"github.com/go-openapi/errors"
"github.com/go-openapi/swag"
+ "github.com/go-openapi/validate"
)
// SubscriptionResponse subscription response
// swagger:model SubscriptionResponse
-type SubscriptionResponse []*SubscriptionResponseItem
+type SubscriptionResponse struct {
+
+ // subscription Id
+ // Required: true
+ SubscriptionID *string `json:"SubscriptionId"`
+
+ // subscription instances
+ // Required: true
+ SubscriptionInstances []*SubscriptionInstance `json:"SubscriptionInstances"`
+}
// Validate validates this subscription response
-func (m SubscriptionResponse) Validate(formats strfmt.Registry) error {
+func (m *SubscriptionResponse) Validate(formats strfmt.Registry) error {
var res []error
- for i := 0; i < len(m); i++ {
- if swag.IsZero(m[i]) { // not required
+ if err := m.validateSubscriptionID(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateSubscriptionInstances(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if len(res) > 0 {
+ return errors.CompositeValidationError(res...)
+ }
+ return nil
+}
+
+func (m *SubscriptionResponse) validateSubscriptionID(formats strfmt.Registry) error {
+
+ if err := validate.Required("SubscriptionId", "body", m.SubscriptionID); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionResponse) validateSubscriptionInstances(formats strfmt.Registry) error {
+
+ if err := validate.Required("SubscriptionInstances", "body", m.SubscriptionInstances); err != nil {
+ return err
+ }
+
+ for i := 0; i < len(m.SubscriptionInstances); i++ {
+ if swag.IsZero(m.SubscriptionInstances[i]) { // not required
continue
}
- if m[i] != nil {
- if err := m[i].Validate(formats); err != nil {
+ if m.SubscriptionInstances[i] != nil {
+ if err := m.SubscriptionInstances[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
- return ve.ValidateName(strconv.Itoa(i))
+ return ve.ValidateName("SubscriptionInstances" + "." + strconv.Itoa(i))
}
return err
}
}
- if len(res) > 0 {
- return errors.CompositeValidationError(res...)
+ return nil
+}
+
+// MarshalBinary interface implementation
+func (m *SubscriptionResponse) MarshalBinary() ([]byte, error) {
+ if m == nil {
+ return nil, nil
+ }
+ return swag.WriteJSON(m)
+}
+
+// UnmarshalBinary interface implementation
+func (m *SubscriptionResponse) UnmarshalBinary(b []byte) error {
+ var res SubscriptionResponse
+ if err := swag.ReadJSON(b, &res); err != nil {
+ return err
}
+ *m = res
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"
+)
+
+// SubscriptionInstance subscription instance
+// swagger:model SubscriptionInstance
+type SubscriptionInstance struct {
+
+ // instance Id
+ // Required: true
+ InstanceID *int64 `json:"InstanceId"`
+
+ // requestor Id
+ // Required: true
+ RequestorID *int64 `json:"RequestorId"`
+}
+
+// Validate validates this subscription instance
+func (m *SubscriptionInstance) Validate(formats strfmt.Registry) error {
+ var res []error
+
+ 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 *SubscriptionInstance) validateInstanceID(formats strfmt.Registry) error {
+
+ if err := validate.Required("InstanceId", "body", m.InstanceID); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionInstance) validateRequestorID(formats strfmt.Registry) error {
+
+ if err := validate.Required("RequestorId", "body", m.RequestorID); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+// MarshalBinary interface implementation
+func (m *SubscriptionInstance) MarshalBinary() ([]byte, error) {
+ if m == nil {
+ return nil, nil
+ }
+ return swag.WriteJSON(m)
+}
+
+// UnmarshalBinary interface implementation
+func (m *SubscriptionInstance) UnmarshalBinary(b []byte) error {
+ var res SubscriptionInstance
+ if err := swag.ReadJSON(b, &res); err != nil {
+ return err
+ }
+ *m = res
+ return nil
+}
"github.com/go-openapi/errors"
"github.com/go-openapi/swag"
+ "github.com/go-openapi/validate"
)
// SubscriptionResponse subscription response
// swagger:model SubscriptionResponse
-type SubscriptionResponse []*SubscriptionResponseItem
+type SubscriptionResponse struct {
+
+ // subscription Id
+ // Required: true
+ SubscriptionID *string `json:"SubscriptionId"`
+
+ // subscription instances
+ // Required: true
+ SubscriptionInstances []*SubscriptionInstance `json:"SubscriptionInstances"`
+}
// Validate validates this subscription response
-func (m SubscriptionResponse) Validate(formats strfmt.Registry) error {
+func (m *SubscriptionResponse) Validate(formats strfmt.Registry) error {
var res []error
- for i := 0; i < len(m); i++ {
- if swag.IsZero(m[i]) { // not required
+ if err := m.validateSubscriptionID(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if err := m.validateSubscriptionInstances(formats); err != nil {
+ res = append(res, err)
+ }
+
+ if len(res) > 0 {
+ return errors.CompositeValidationError(res...)
+ }
+ return nil
+}
+
+func (m *SubscriptionResponse) validateSubscriptionID(formats strfmt.Registry) error {
+
+ if err := validate.Required("SubscriptionId", "body", m.SubscriptionID); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (m *SubscriptionResponse) validateSubscriptionInstances(formats strfmt.Registry) error {
+
+ if err := validate.Required("SubscriptionInstances", "body", m.SubscriptionInstances); err != nil {
+ return err
+ }
+
+ for i := 0; i < len(m.SubscriptionInstances); i++ {
+ if swag.IsZero(m.SubscriptionInstances[i]) { // not required
continue
}
- if m[i] != nil {
- if err := m[i].Validate(formats); err != nil {
+ if m.SubscriptionInstances[i] != nil {
+ if err := m.SubscriptionInstances[i].Validate(formats); err != nil {
if ve, ok := err.(*errors.Validation); ok {
- return ve.ValidateName(strconv.Itoa(i))
+ return ve.ValidateName("SubscriptionInstances" + "." + strconv.Itoa(i))
}
return err
}
}
- if len(res) > 0 {
- return errors.CompositeValidationError(res...)
+ return nil
+}
+
+// MarshalBinary interface implementation
+func (m *SubscriptionResponse) MarshalBinary() ([]byte, error) {
+ if m == nil {
+ return nil, nil
+ }
+ return swag.WriteJSON(m)
+}
+
+// UnmarshalBinary interface implementation
+func (m *SubscriptionResponse) UnmarshalBinary(b []byte) error {
+ var res SubscriptionResponse
+ if err := swag.ReadJSON(b, &res); err != nil {
+ return err
}
+ *m = res
return nil
}
},
"/subscriptions/{subscriptionId}": {
"delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
"tags": [
"common"
],
}
}
},
+ "SubscriptionInstance": {
+ "type": "object",
+ "required": [
+ "RequestorId",
+ "InstanceId"
+ ],
+ "properties": {
+ "InstanceId": {
+ "type": "integer"
+ },
+ "RequestorId": {
+ "type": "integer"
+ }
+ }
+ },
"SubscriptionList": {
"description": "A list of subscriptions",
"type": "array",
}
},
"SubscriptionResponse": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/SubscriptionResponseItem"
- }
- },
- "SubscriptionResponseItem": {
"type": "object",
"required": [
"SubscriptionId",
- "RequestorId",
- "InstanceId"
+ "SubscriptionInstances"
],
"properties": {
- "InstanceId": {
- "type": "integer"
- },
- "RequestorId": {
- "type": "integer"
- },
"SubscriptionId": {
"type": "string"
+ },
+ "SubscriptionInstances": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubscriptionInstance"
+ }
}
}
},
},
"/subscriptions/{subscriptionId}": {
"delete": {
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
"tags": [
"common"
],
}
}
},
+ "SubscriptionInstance": {
+ "type": "object",
+ "required": [
+ "RequestorId",
+ "InstanceId"
+ ],
+ "properties": {
+ "InstanceId": {
+ "type": "integer"
+ },
+ "RequestorId": {
+ "type": "integer"
+ }
+ }
+ },
"SubscriptionList": {
"description": "A list of subscriptions",
"type": "array",
}
},
"SubscriptionResponse": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/SubscriptionResponseItem"
- }
- },
- "SubscriptionResponseItem": {
"type": "object",
"required": [
"SubscriptionId",
- "RequestorId",
- "InstanceId"
+ "SubscriptionInstances"
],
"properties": {
- "InstanceId": {
- "type": "integer"
- },
- "RequestorId": {
- "type": "integer"
- },
"SubscriptionId": {
"type": "string"
+ },
+ "SubscriptionInstances": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/SubscriptionInstance"
+ }
}
}
},
/*
In: Body
*/
- Payload models.SubscriptionResponse `json:"body,omitempty"`
+ Payload *models.SubscriptionResponse `json:"body,omitempty"`
}
// NewSubscribePolicyCreated creates SubscribePolicyCreated with default headers values
}
// WithPayload adds the payload to the subscribe policy created response
-func (o *SubscribePolicyCreated) WithPayload(payload models.SubscriptionResponse) *SubscribePolicyCreated {
+func (o *SubscribePolicyCreated) WithPayload(payload *models.SubscriptionResponse) *SubscribePolicyCreated {
o.Payload = payload
return o
}
// SetPayload sets the payload to the subscribe policy created response
-func (o *SubscribePolicyCreated) SetPayload(payload models.SubscriptionResponse) {
+func (o *SubscribePolicyCreated) SetPayload(payload *models.SubscriptionResponse) {
o.Payload = payload
}
func (o *SubscribePolicyCreated) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) {
rw.WriteHeader(201)
- payload := o.Payload
- if payload == nil {
- // return empty array
- payload = models.SubscriptionResponse{}
- }
-
- if err := producer.Produce(rw, payload); err != nil {
- panic(err) // let the recovery middleware deal with this
+ if o.Payload != nil {
+ payload := o.Payload
+ if err := producer.Produce(rw, payload); err != nil {
+ panic(err) // let the recovery middleware deal with this
+ }
}
}
/*
In: Body
*/
- Payload models.SubscriptionResponse `json:"body,omitempty"`
+ Payload *models.SubscriptionResponse `json:"body,omitempty"`
}
// NewSubscribeReportCreated creates SubscribeReportCreated with default headers values
}
// WithPayload adds the payload to the subscribe report created response
-func (o *SubscribeReportCreated) WithPayload(payload models.SubscriptionResponse) *SubscribeReportCreated {
+func (o *SubscribeReportCreated) WithPayload(payload *models.SubscriptionResponse) *SubscribeReportCreated {
o.Payload = payload
return o
}
// SetPayload sets the payload to the subscribe report created response
-func (o *SubscribeReportCreated) SetPayload(payload models.SubscriptionResponse) {
+func (o *SubscribeReportCreated) SetPayload(payload *models.SubscriptionResponse) {
o.Payload = payload
}
func (o *SubscribeReportCreated) WriteResponse(rw http.ResponseWriter, producer runtime.Producer) {
rw.WriteHeader(201)
- payload := o.Payload
- if payload == nil {
- // return empty array
- payload = models.SubscriptionResponse{}
- }
-
- if err := producer.Produce(rw, payload); err != nil {
- panic(err) // let the recovery middleware deal with this
+ if o.Payload != nil {
+ payload := o.Payload
+ if err := producer.Produce(rw, payload); err != nil {
+ panic(err) // let the recovery middleware deal with this
+ }
}
}
"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/restapi/operations/report"
)
-type SubscriptionHandler func(models.SubscriptionType, interface{}) (models.SubscriptionResponse, error)
+type SubscriptionHandler func(models.SubscriptionType, interface{}) (*models.SubscriptionResponse, error)
type SubscriptionQueryHandler func() (models.SubscriptionList, error)
type SubscriptionDeleteHandler func(string) error
}
// Subscription interface for xApp: REPORT
-func (r *Subscriber) SubscribeReport(p *apimodel.ReportParams) (apimodel.SubscriptionResponse, error) {
+func (r *Subscriber) SubscribeReport(p *apimodel.ReportParams) (*apimodel.SubscriptionResponse, error) {
params := apireport.NewSubscribeReportParamsWithTimeout(r.timeout).WithReportParams(p)
result, err := r.CreateTransport().Report.SubscribeReport(params)
if err != nil {
- return apimodel.SubscriptionResponse{}, err
+ return &apimodel.SubscriptionResponse{}, err
}
return result.Payload, err
}
// Subscription interface for xApp: POLICY
-func (r *Subscriber) SubscribePolicy(p *apimodel.PolicyParams) (apimodel.SubscriptionResponse, error) {
+func (r *Subscriber) SubscribePolicy(p *apimodel.PolicyParams) (*apimodel.SubscriptionResponse, error) {
params := apipolicy.NewSubscribePolicyParamsWithTimeout(r.timeout).WithPolicyParams(p)
result, err := r.CreateTransport().Policy.SubscribePolicy(params)
if err != nil {
- return apimodel.SubscriptionResponse{}, err
+ return &apimodel.SubscriptionResponse{}, err
}
return result.Payload, err
PolicyActionDefinitions: &apimodel.PolicyActionDefinition{},
}
-func subscriptionHandler(stype models.SubscriptionType, params interface{}) (models.SubscriptionResponse, error) {
+func subscriptionHandler(stype models.SubscriptionType, params interface{}) (*models.SubscriptionResponse, error) {
switch stype {
case models.SubscriptionTypeReport:
p := params.(*models.ReportParams)
subId := "xapp-11"
reqId := int64(11)
instanceId := int64(22)
- return models.SubscriptionResponse{
- &models.SubscriptionResponseItem{SubscriptionID: &subId, RequestorID: &reqId, InstanceID: &instanceId},
- &models.SubscriptionResponseItem{SubscriptionID: &subId, RequestorID: &reqId, InstanceID: &instanceId},
+ return &models.SubscriptionResponse{
+ SubscriptionID: &subId,
+ SubscriptionInstances: []*models.SubscriptionInstance{
+ &models.SubscriptionInstance{RequestorID: &reqId, InstanceID: &instanceId},
+ &models.SubscriptionInstance{RequestorID: &reqId, InstanceID: &instanceId},
+ },
}, nil
}
}
func TestSubscriptionReportHandling(t *testing.T) {
- result, err := Subscription.SubscribeReport(&reportParams)
+ resp, err := Subscription.SubscribeReport(&reportParams)
assert.Equal(t, err, nil)
- assert.Equal(t, len(result), 2)
- assert.Equal(t, *result[0].RequestorID, int64(11))
- assert.Equal(t, *result[0].InstanceID, int64(22))
- assert.Equal(t, *result[1].RequestorID, int64(11))
- assert.Equal(t, *result[1].InstanceID, int64(22))
+ assert.Equal(t, len(resp.SubscriptionInstances), 2)
+ assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11))
+ assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22))
+ assert.Equal(t, *resp.SubscriptionInstances[1].RequestorID, int64(11))
+ assert.Equal(t, *resp.SubscriptionInstances[1].InstanceID, int64(22))
}
func TestSubscriptionPolicytHandling(t *testing.T) {
- result, err := Subscription.SubscribePolicy(&policyParams)
+ resp, err := Subscription.SubscribePolicy(&policyParams)
assert.Equal(t, err, nil)
- assert.Equal(t, len(result), 2)
- assert.Equal(t, *result[0].RequestorID, int64(11))
- assert.Equal(t, *result[0].InstanceID, int64(22))
+ assert.Equal(t, len(resp.SubscriptionInstances), 2)
+ assert.Equal(t, *resp.SubscriptionInstances[0].RequestorID, int64(11))
+ assert.Equal(t, *resp.SubscriptionInstances[0].InstanceID, int64(22))
}
func TestSubscriptionDeleteHandling(t *testing.T) {