Policy status notification handling - initial rollup
[ric-plt/a1.git] / pkg / restapi / operations / a1_mediator / a1_controller_create_or_replace_policy_instance_parameters.go
1 /*
2 ==================================================================================
3   Copyright (c) 2021 Samsung
4
5    Licensed under the Apache License, Version 2.0 (the "License");
6    you may not use this file except in compliance with the License.
7    You may obtain a copy of the License at
8
9        http://www.apache.org/licenses/LICENSE-2.0
10
11    Unless required by applicable law or agreed to in writing, software
12    distributed under the License is distributed on an "AS IS" BASIS,
13    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14    See the License for the specific language governing permissions and
15    limitations under the License.
16
17    This source code is part of the near-RT RIC (RAN Intelligent Controller)
18    platform project (RICP).
19 ==================================================================================
20 */
21 // Code generated by go-swagger; DO NOT EDIT.
22
23 package a1_mediator
24
25 // This file was generated by the swagger tool.
26 // Editing this file might prove futile when you re-run the swagger generate command
27
28 import (
29         "net/http"
30
31         "github.com/go-openapi/errors"
32         "github.com/go-openapi/runtime"
33         "github.com/go-openapi/runtime/middleware"
34         "github.com/go-openapi/strfmt"
35         "github.com/go-openapi/swag"
36         "github.com/go-openapi/validate"
37 )
38
39 // NewA1ControllerCreateOrReplacePolicyInstanceParams creates a new A1ControllerCreateOrReplacePolicyInstanceParams object
40 //
41 // There are no default values defined in the spec.
42 func NewA1ControllerCreateOrReplacePolicyInstanceParams() A1ControllerCreateOrReplacePolicyInstanceParams {
43
44         return A1ControllerCreateOrReplacePolicyInstanceParams{}
45 }
46
47 // A1ControllerCreateOrReplacePolicyInstanceParams contains all the bound params for the a1 controller create or replace policy instance operation
48 // typically these are obtained from a http.Request
49 //
50 // swagger:parameters a1.controller.create_or_replace_policy_instance
51 type A1ControllerCreateOrReplacePolicyInstanceParams struct {
52
53         // HTTP Request Object
54         HTTPRequest *http.Request `json:"-"`
55
56         /*
57           In: body
58         */
59         Body interface{}
60         /*URL send by non-RT RIC. This where non-RT RIC expects status updates on the policy creation
61
62           In: query
63         */
64         NotificationDestination *string
65         /*represents a policy instance identifier. UUIDs are advisable but can be any string
66
67           Required: true
68           In: path
69         */
70         PolicyInstanceID string
71         /*represents a policy type identifier. Currently this is restricted to an integer range.
72
73           Required: true
74           Maximum: 2.147483647e+09
75           Minimum: 1
76           In: path
77         */
78         PolicyTypeID int64
79 }
80
81 // BindRequest both binds and validates a request, it assumes that complex things implement a Validatable(strfmt.Registry) error interface
82 // for simple values it will use straight method calls.
83 //
84 // To ensure default values, the struct must have been initialized with NewA1ControllerCreateOrReplacePolicyInstanceParams() beforehand.
85 func (o *A1ControllerCreateOrReplacePolicyInstanceParams) BindRequest(r *http.Request, route *middleware.MatchedRoute) error {
86         var res []error
87
88         o.HTTPRequest = r
89
90         qs := runtime.Values(r.URL.Query())
91
92         if runtime.HasBody(r) {
93                 defer r.Body.Close()
94                 var body interface{}
95                 if err := route.Consumer.Consume(r.Body, &body); err != nil {
96                         res = append(res, errors.NewParseError("body", "body", "", err))
97                 } else {
98                         // no validation on generic interface
99                         o.Body = body
100                 }
101         }
102
103         qNotificationDestination, qhkNotificationDestination, _ := qs.GetOK("notificationDestination")
104         if err := o.bindNotificationDestination(qNotificationDestination, qhkNotificationDestination, route.Formats); err != nil {
105                 res = append(res, err)
106         }
107
108         rPolicyInstanceID, rhkPolicyInstanceID, _ := route.Params.GetOK("policy_instance_id")
109         if err := o.bindPolicyInstanceID(rPolicyInstanceID, rhkPolicyInstanceID, route.Formats); err != nil {
110                 res = append(res, err)
111         }
112
113         rPolicyTypeID, rhkPolicyTypeID, _ := route.Params.GetOK("policy_type_id")
114         if err := o.bindPolicyTypeID(rPolicyTypeID, rhkPolicyTypeID, route.Formats); err != nil {
115                 res = append(res, err)
116         }
117         if len(res) > 0 {
118                 return errors.CompositeValidationError(res...)
119         }
120         return nil
121 }
122
123 // bindNotificationDestination binds and validates parameter NotificationDestination from query.
124 func (o *A1ControllerCreateOrReplacePolicyInstanceParams) bindNotificationDestination(rawData []string, hasKey bool, formats strfmt.Registry) error {
125         var raw string
126         if len(rawData) > 0 {
127                 raw = rawData[len(rawData)-1]
128         }
129
130         // Required: false
131         // AllowEmptyValue: false
132
133         if raw == "" { // empty values pass all other validations
134                 return nil
135         }
136         o.NotificationDestination = &raw
137
138         return nil
139 }
140
141 // bindPolicyInstanceID binds and validates parameter PolicyInstanceID from path.
142 func (o *A1ControllerCreateOrReplacePolicyInstanceParams) bindPolicyInstanceID(rawData []string, hasKey bool, formats strfmt.Registry) error {
143         var raw string
144         if len(rawData) > 0 {
145                 raw = rawData[len(rawData)-1]
146         }
147
148         // Required: true
149         // Parameter is provided by construction from the route
150         o.PolicyInstanceID = raw
151
152         return nil
153 }
154
155 // bindPolicyTypeID binds and validates parameter PolicyTypeID from path.
156 func (o *A1ControllerCreateOrReplacePolicyInstanceParams) bindPolicyTypeID(rawData []string, hasKey bool, formats strfmt.Registry) error {
157         var raw string
158         if len(rawData) > 0 {
159                 raw = rawData[len(rawData)-1]
160         }
161
162         // Required: true
163         // Parameter is provided by construction from the route
164
165         value, err := swag.ConvertInt64(raw)
166         if err != nil {
167                 return errors.InvalidType("policy_type_id", "path", "int64", raw)
168         }
169         o.PolicyTypeID = value
170
171         if err := o.validatePolicyTypeID(formats); err != nil {
172                 return err
173         }
174
175         return nil
176 }
177
178 // validatePolicyTypeID carries on validations for parameter PolicyTypeID
179 func (o *A1ControllerCreateOrReplacePolicyInstanceParams) validatePolicyTypeID(formats strfmt.Registry) error {
180
181         if err := validate.MinimumInt("policy_type_id", "path", o.PolicyTypeID, 1, false); err != nil {
182                 return err
183         }
184
185         if err := validate.MaximumInt("policy_type_id", "path", o.PolicyTypeID, 2.147483647e+09, false); err != nil {
186                 return err
187         }
188
189         return nil
190 }