+
+// SubscriptionParamsE2SubscriptionDirectives Optional. If not set Submgr uses its default values
+//
+// 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
+}