X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fclientmodel%2Fsubscription_params.go;h=b116e50c55923e4bddd62d4568fc196e35f2e797;hb=fea604a8972776006ac5231425ea5799a93cf06c;hp=fdd41ca52ca66bf9b0939e677ef1fa9e25df174b;hpb=c79bd0e1a4fe855b06c8f8131f162d0ee4a5f9f5;p=ric-plt%2Fxapp-frame.git diff --git a/pkg/clientmodel/subscription_params.go b/pkg/clientmodel/subscription_params.go index fdd41ca..b116e50 100644 --- a/pkg/clientmodel/subscription_params.go +++ b/pkg/clientmodel/subscription_params.go @@ -21,6 +21,9 @@ type SubscriptionParams struct { // Required: true ClientEndpoint *SubscriptionParamsClientEndpoint `json:"ClientEndpoint"` + // e2 subscription directives + E2SubscriptionDirectives *SubscriptionParamsE2SubscriptionDirectives `json:"E2SubscriptionDirectives,omitempty"` + // meid // Required: true Meid *string `json:"Meid"` @@ -47,6 +50,10 @@ func (m *SubscriptionParams) Validate(formats strfmt.Registry) error { res = append(res, err) } + if err := m.validateE2SubscriptionDirectives(formats); err != nil { + res = append(res, err) + } + if err := m.validateMeid(formats); err != nil { res = append(res, err) } @@ -83,6 +90,24 @@ func (m *SubscriptionParams) validateClientEndpoint(formats strfmt.Registry) err return nil } +func (m *SubscriptionParams) validateE2SubscriptionDirectives(formats strfmt.Registry) error { + + if swag.IsZero(m.E2SubscriptionDirectives) { // not required + return nil + } + + if m.E2SubscriptionDirectives != nil { + if err := m.E2SubscriptionDirectives.Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("E2SubscriptionDirectives") + } + return err + } + } + + return nil +} + func (m *SubscriptionParams) validateMeid(formats strfmt.Registry) error { if err := validate.Required("Meid", "body", m.Meid); err != nil { @@ -231,3 +256,92 @@ func (m *SubscriptionParamsClientEndpoint) UnmarshalBinary(b []byte) error { *m = res return nil } + +// SubscriptionParamsE2SubscriptionDirectives subscription params e2 subscription directives +// +// swagger:model SubscriptionParamsE2SubscriptionDirectives +type SubscriptionParamsE2SubscriptionDirectives struct { + + // How many times E2 subscription request is retried + // Maximum: 10 + // Minimum: 0 + E2RetryCount *int64 `json:"E2RetryCount,omitempty"` + + // How long time response is waited from E2 node + // Maximum: 10 + // Minimum: 1 + E2TimeoutTimerValue int64 `json:"E2TimeoutTimerValue,omitempty"` + + // Subscription needs RMR route from E2Term to xApp + RMRRoutingNeeded *bool `json:"RMRRoutingNeeded,omitempty"` +} + +// Validate validates this subscription params e2 subscription directives +func (m *SubscriptionParamsE2SubscriptionDirectives) Validate(formats strfmt.Registry) error { + var res []error + + if err := m.validateE2RetryCount(formats); err != nil { + res = append(res, err) + } + + if err := m.validateE2TimeoutTimerValue(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (m *SubscriptionParamsE2SubscriptionDirectives) validateE2RetryCount(formats strfmt.Registry) error { + + if swag.IsZero(m.E2RetryCount) { // not required + return nil + } + + if err := validate.MinimumInt("E2SubscriptionDirectives"+"."+"E2RetryCount", "body", int64(*m.E2RetryCount), 0, false); err != nil { + return err + } + + if err := validate.MaximumInt("E2SubscriptionDirectives"+"."+"E2RetryCount", "body", int64(*m.E2RetryCount), 10, false); err != nil { + return err + } + + return nil +} + +func (m *SubscriptionParamsE2SubscriptionDirectives) validateE2TimeoutTimerValue(formats strfmt.Registry) error { + + if swag.IsZero(m.E2TimeoutTimerValue) { // not required + return nil + } + + if err := validate.MinimumInt("E2SubscriptionDirectives"+"."+"E2TimeoutTimerValue", "body", int64(m.E2TimeoutTimerValue), 1, false); err != nil { + return err + } + + if err := validate.MaximumInt("E2SubscriptionDirectives"+"."+"E2TimeoutTimerValue", "body", int64(m.E2TimeoutTimerValue), 10, false); err != nil { + return err + } + + return nil +} + +// MarshalBinary interface implementation +func (m *SubscriptionParamsE2SubscriptionDirectives) MarshalBinary() ([]byte, error) { + if m == nil { + return nil, nil + } + return swag.WriteJSON(m) +} + +// UnmarshalBinary interface implementation +func (m *SubscriptionParamsE2SubscriptionDirectives) UnmarshalBinary(b []byte) error { + var res SubscriptionParamsE2SubscriptionDirectives + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *m = res + return nil +}