Replacing a1-python with a1-go implementation
[ric-plt/a1.git] / pkg / restapi / operations / a1_api.go
diff --git a/pkg/restapi/operations/a1_api.go b/pkg/restapi/operations/a1_api.go
new file mode 100644 (file)
index 0000000..c8a14b1
--- /dev/null
@@ -0,0 +1,426 @@
+/*
+==================================================================================
+  Copyright (c) 2021 Samsung
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
+   This source code is part of the near-RT RIC (RAN Intelligent Controller)
+   platform project (RICP).
+==================================================================================
+*/
+// Code generated by go-swagger; DO NOT EDIT.
+
+package operations
+
+// This file was generated by the swagger tool.
+// Editing this file might prove futile when you re-run the swagger generate command
+
+import (
+       "fmt"
+       "net/http"
+       "strings"
+
+       "github.com/go-openapi/errors"
+       "github.com/go-openapi/loads"
+       "github.com/go-openapi/runtime"
+       "github.com/go-openapi/runtime/middleware"
+       "github.com/go-openapi/runtime/security"
+       "github.com/go-openapi/spec"
+       "github.com/go-openapi/strfmt"
+       "github.com/go-openapi/swag"
+
+       "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/restapi/operations/a1_e_i_data_delivery"
+       "gerrit.o-ran-sc.org/r/ric-plt/a1/pkg/restapi/operations/a1_mediator"
+)
+
+// NewA1API creates a new A1 instance
+func NewA1API(spec *loads.Document) *A1API {
+       return &A1API{
+               handlers:            make(map[string]map[string]http.Handler),
+               formats:             strfmt.Default,
+               defaultConsumes:     "application/json",
+               defaultProduces:     "application/json",
+               customConsumers:     make(map[string]runtime.Consumer),
+               customProducers:     make(map[string]runtime.Producer),
+               PreServerShutdown:   func() {},
+               ServerShutdown:      func() {},
+               spec:                spec,
+               ServeError:          errors.ServeError,
+               BasicAuthenticator:  security.BasicAuth,
+               APIKeyAuthenticator: security.APIKeyAuth,
+               BearerAuthenticator: security.BearerAuth,
+
+               JSONConsumer: runtime.JSONConsumer(),
+
+               JSONProducer: runtime.JSONProducer(),
+
+               A1MediatorA1ControllerCreateOrReplacePolicyInstanceHandler: a1_mediator.A1ControllerCreateOrReplacePolicyInstanceHandlerFunc(func(params a1_mediator.A1ControllerCreateOrReplacePolicyInstanceParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerCreateOrReplacePolicyInstance has not yet been implemented")
+               }),
+               A1MediatorA1ControllerCreatePolicyTypeHandler: a1_mediator.A1ControllerCreatePolicyTypeHandlerFunc(func(params a1_mediator.A1ControllerCreatePolicyTypeParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerCreatePolicyType has not yet been implemented")
+               }),
+               A1eiDataDeliveryA1ControllerDataDeliveryHandler: a1_e_i_data_delivery.A1ControllerDataDeliveryHandlerFunc(func(params a1_e_i_data_delivery.A1ControllerDataDeliveryParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_e_i_data_delivery.A1ControllerDataDelivery has not yet been implemented")
+               }),
+               A1MediatorA1ControllerDeletePolicyInstanceHandler: a1_mediator.A1ControllerDeletePolicyInstanceHandlerFunc(func(params a1_mediator.A1ControllerDeletePolicyInstanceParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerDeletePolicyInstance has not yet been implemented")
+               }),
+               A1MediatorA1ControllerDeletePolicyTypeHandler: a1_mediator.A1ControllerDeletePolicyTypeHandlerFunc(func(params a1_mediator.A1ControllerDeletePolicyTypeParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerDeletePolicyType has not yet been implemented")
+               }),
+               A1MediatorA1ControllerGetAllInstancesForTypeHandler: a1_mediator.A1ControllerGetAllInstancesForTypeHandlerFunc(func(params a1_mediator.A1ControllerGetAllInstancesForTypeParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerGetAllInstancesForType has not yet been implemented")
+               }),
+               A1MediatorA1ControllerGetAllPolicyTypesHandler: a1_mediator.A1ControllerGetAllPolicyTypesHandlerFunc(func(params a1_mediator.A1ControllerGetAllPolicyTypesParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerGetAllPolicyTypes has not yet been implemented")
+               }),
+               A1MediatorA1ControllerGetHealthcheckHandler: a1_mediator.A1ControllerGetHealthcheckHandlerFunc(func(params a1_mediator.A1ControllerGetHealthcheckParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerGetHealthcheck has not yet been implemented")
+               }),
+               A1MediatorA1ControllerGetPolicyInstanceHandler: a1_mediator.A1ControllerGetPolicyInstanceHandlerFunc(func(params a1_mediator.A1ControllerGetPolicyInstanceParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerGetPolicyInstance has not yet been implemented")
+               }),
+               A1MediatorA1ControllerGetPolicyInstanceStatusHandler: a1_mediator.A1ControllerGetPolicyInstanceStatusHandlerFunc(func(params a1_mediator.A1ControllerGetPolicyInstanceStatusParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerGetPolicyInstanceStatus has not yet been implemented")
+               }),
+               A1MediatorA1ControllerGetPolicyTypeHandler: a1_mediator.A1ControllerGetPolicyTypeHandlerFunc(func(params a1_mediator.A1ControllerGetPolicyTypeParams) middleware.Responder {
+                       return middleware.NotImplemented("operation a1_mediator.A1ControllerGetPolicyType has not yet been implemented")
+               }),
+       }
+}
+
+/*A1API the a1 API */
+type A1API struct {
+       spec            *loads.Document
+       context         *middleware.Context
+       handlers        map[string]map[string]http.Handler
+       formats         strfmt.Registry
+       customConsumers map[string]runtime.Consumer
+       customProducers map[string]runtime.Producer
+       defaultConsumes string
+       defaultProduces string
+       Middleware      func(middleware.Builder) http.Handler
+
+       // BasicAuthenticator generates a runtime.Authenticator from the supplied basic auth function.
+       // It has a default implementation in the security package, however you can replace it for your particular usage.
+       BasicAuthenticator func(security.UserPassAuthentication) runtime.Authenticator
+       // APIKeyAuthenticator generates a runtime.Authenticator from the supplied token auth function.
+       // It has a default implementation in the security package, however you can replace it for your particular usage.
+       APIKeyAuthenticator func(string, string, security.TokenAuthentication) runtime.Authenticator
+       // BearerAuthenticator generates a runtime.Authenticator from the supplied bearer token auth function.
+       // It has a default implementation in the security package, however you can replace it for your particular usage.
+       BearerAuthenticator func(string, security.ScopedTokenAuthentication) runtime.Authenticator
+
+       // JSONConsumer registers a consumer for the following mime types:
+       //   - application/json
+       JSONConsumer runtime.Consumer
+
+       // JSONProducer registers a producer for the following mime types:
+       //   - application/json
+       JSONProducer runtime.Producer
+
+       // A1MediatorA1ControllerCreateOrReplacePolicyInstanceHandler sets the operation handler for the a1 controller create or replace policy instance operation
+       A1MediatorA1ControllerCreateOrReplacePolicyInstanceHandler a1_mediator.A1ControllerCreateOrReplacePolicyInstanceHandler
+       // A1MediatorA1ControllerCreatePolicyTypeHandler sets the operation handler for the a1 controller create policy type operation
+       A1MediatorA1ControllerCreatePolicyTypeHandler a1_mediator.A1ControllerCreatePolicyTypeHandler
+       // A1eiDataDeliveryA1ControllerDataDeliveryHandler sets the operation handler for the a1 controller data delivery operation
+       A1eiDataDeliveryA1ControllerDataDeliveryHandler a1_e_i_data_delivery.A1ControllerDataDeliveryHandler
+       // A1MediatorA1ControllerDeletePolicyInstanceHandler sets the operation handler for the a1 controller delete policy instance operation
+       A1MediatorA1ControllerDeletePolicyInstanceHandler a1_mediator.A1ControllerDeletePolicyInstanceHandler
+       // A1MediatorA1ControllerDeletePolicyTypeHandler sets the operation handler for the a1 controller delete policy type operation
+       A1MediatorA1ControllerDeletePolicyTypeHandler a1_mediator.A1ControllerDeletePolicyTypeHandler
+       // A1MediatorA1ControllerGetAllInstancesForTypeHandler sets the operation handler for the a1 controller get all instances for type operation
+       A1MediatorA1ControllerGetAllInstancesForTypeHandler a1_mediator.A1ControllerGetAllInstancesForTypeHandler
+       // A1MediatorA1ControllerGetAllPolicyTypesHandler sets the operation handler for the a1 controller get all policy types operation
+       A1MediatorA1ControllerGetAllPolicyTypesHandler a1_mediator.A1ControllerGetAllPolicyTypesHandler
+       // A1MediatorA1ControllerGetHealthcheckHandler sets the operation handler for the a1 controller get healthcheck operation
+       A1MediatorA1ControllerGetHealthcheckHandler a1_mediator.A1ControllerGetHealthcheckHandler
+       // A1MediatorA1ControllerGetPolicyInstanceHandler sets the operation handler for the a1 controller get policy instance operation
+       A1MediatorA1ControllerGetPolicyInstanceHandler a1_mediator.A1ControllerGetPolicyInstanceHandler
+       // A1MediatorA1ControllerGetPolicyInstanceStatusHandler sets the operation handler for the a1 controller get policy instance status operation
+       A1MediatorA1ControllerGetPolicyInstanceStatusHandler a1_mediator.A1ControllerGetPolicyInstanceStatusHandler
+       // A1MediatorA1ControllerGetPolicyTypeHandler sets the operation handler for the a1 controller get policy type operation
+       A1MediatorA1ControllerGetPolicyTypeHandler a1_mediator.A1ControllerGetPolicyTypeHandler
+       // ServeError is called when an error is received, there is a default handler
+       // but you can set your own with this
+       ServeError func(http.ResponseWriter, *http.Request, error)
+
+       // PreServerShutdown is called before the HTTP(S) server is shutdown
+       // This allows for custom functions to get executed before the HTTP(S) server stops accepting traffic
+       PreServerShutdown func()
+
+       // ServerShutdown is called when the HTTP(S) server is shut down and done
+       // handling all active connections and does not accept connections any more
+       ServerShutdown func()
+
+       // Custom command line argument groups with their descriptions
+       CommandLineOptionsGroups []swag.CommandLineOptionsGroup
+
+       // User defined logger function.
+       Logger func(string, ...interface{})
+}
+
+// SetDefaultProduces sets the default produces media type
+func (o *A1API) SetDefaultProduces(mediaType string) {
+       o.defaultProduces = mediaType
+}
+
+// SetDefaultConsumes returns the default consumes media type
+func (o *A1API) SetDefaultConsumes(mediaType string) {
+       o.defaultConsumes = mediaType
+}
+
+// SetSpec sets a spec that will be served for the clients.
+func (o *A1API) SetSpec(spec *loads.Document) {
+       o.spec = spec
+}
+
+// DefaultProduces returns the default produces media type
+func (o *A1API) DefaultProduces() string {
+       return o.defaultProduces
+}
+
+// DefaultConsumes returns the default consumes media type
+func (o *A1API) DefaultConsumes() string {
+       return o.defaultConsumes
+}
+
+// Formats returns the registered string formats
+func (o *A1API) Formats() strfmt.Registry {
+       return o.formats
+}
+
+// RegisterFormat registers a custom format validator
+func (o *A1API) RegisterFormat(name string, format strfmt.Format, validator strfmt.Validator) {
+       o.formats.Add(name, format, validator)
+}
+
+// Validate validates the registrations in the A1API
+func (o *A1API) Validate() error {
+       var unregistered []string
+
+       if o.JSONConsumer == nil {
+               unregistered = append(unregistered, "JSONConsumer")
+       }
+
+       if o.JSONProducer == nil {
+               unregistered = append(unregistered, "JSONProducer")
+       }
+
+       if o.A1MediatorA1ControllerCreateOrReplacePolicyInstanceHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerCreateOrReplacePolicyInstanceHandler")
+       }
+       if o.A1MediatorA1ControllerCreatePolicyTypeHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerCreatePolicyTypeHandler")
+       }
+       if o.A1eiDataDeliveryA1ControllerDataDeliveryHandler == nil {
+               unregistered = append(unregistered, "a1_e_i_data_delivery.A1ControllerDataDeliveryHandler")
+       }
+       if o.A1MediatorA1ControllerDeletePolicyInstanceHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerDeletePolicyInstanceHandler")
+       }
+       if o.A1MediatorA1ControllerDeletePolicyTypeHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerDeletePolicyTypeHandler")
+       }
+       if o.A1MediatorA1ControllerGetAllInstancesForTypeHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerGetAllInstancesForTypeHandler")
+       }
+       if o.A1MediatorA1ControllerGetAllPolicyTypesHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerGetAllPolicyTypesHandler")
+       }
+       if o.A1MediatorA1ControllerGetHealthcheckHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerGetHealthcheckHandler")
+       }
+       if o.A1MediatorA1ControllerGetPolicyInstanceHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerGetPolicyInstanceHandler")
+       }
+       if o.A1MediatorA1ControllerGetPolicyInstanceStatusHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerGetPolicyInstanceStatusHandler")
+       }
+       if o.A1MediatorA1ControllerGetPolicyTypeHandler == nil {
+               unregistered = append(unregistered, "a1_mediator.A1ControllerGetPolicyTypeHandler")
+       }
+
+       if len(unregistered) > 0 {
+               return fmt.Errorf("missing registration: %s", strings.Join(unregistered, ", "))
+       }
+
+       return nil
+}
+
+// ServeErrorFor gets a error handler for a given operation id
+func (o *A1API) ServeErrorFor(operationID string) func(http.ResponseWriter, *http.Request, error) {
+       return o.ServeError
+}
+
+// AuthenticatorsFor gets the authenticators for the specified security schemes
+func (o *A1API) AuthenticatorsFor(schemes map[string]spec.SecurityScheme) map[string]runtime.Authenticator {
+       return nil
+}
+
+// Authorizer returns the registered authorizer
+func (o *A1API) Authorizer() runtime.Authorizer {
+       return nil
+}
+
+// ConsumersFor gets the consumers for the specified media types.
+// MIME type parameters are ignored here.
+func (o *A1API) ConsumersFor(mediaTypes []string) map[string]runtime.Consumer {
+       result := make(map[string]runtime.Consumer, len(mediaTypes))
+       for _, mt := range mediaTypes {
+               switch mt {
+               case "application/json":
+                       result["application/json"] = o.JSONConsumer
+               }
+
+               if c, ok := o.customConsumers[mt]; ok {
+                       result[mt] = c
+               }
+       }
+       return result
+}
+
+// ProducersFor gets the producers for the specified media types.
+// MIME type parameters are ignored here.
+func (o *A1API) ProducersFor(mediaTypes []string) map[string]runtime.Producer {
+       result := make(map[string]runtime.Producer, len(mediaTypes))
+       for _, mt := range mediaTypes {
+               switch mt {
+               case "application/json":
+                       result["application/json"] = o.JSONProducer
+               }
+
+               if p, ok := o.customProducers[mt]; ok {
+                       result[mt] = p
+               }
+       }
+       return result
+}
+
+// HandlerFor gets a http.Handler for the provided operation method and path
+func (o *A1API) HandlerFor(method, path string) (http.Handler, bool) {
+       if o.handlers == nil {
+               return nil, false
+       }
+       um := strings.ToUpper(method)
+       if _, ok := o.handlers[um]; !ok {
+               return nil, false
+       }
+       if path == "/" {
+               path = ""
+       }
+       h, ok := o.handlers[um][path]
+       return h, ok
+}
+
+// Context returns the middleware context for the a1 API
+func (o *A1API) Context() *middleware.Context {
+       if o.context == nil {
+               o.context = middleware.NewRoutableContext(o.spec, o, nil)
+       }
+
+       return o.context
+}
+
+func (o *A1API) initHandlerCache() {
+       o.Context() // don't care about the result, just that the initialization happened
+       if o.handlers == nil {
+               o.handlers = make(map[string]map[string]http.Handler)
+       }
+
+       if o.handlers["PUT"] == nil {
+               o.handlers["PUT"] = make(map[string]http.Handler)
+       }
+       o.handlers["PUT"]["/a1-p/policytypes/{policy_type_id}/policies/{policy_instance_id}"] = a1_mediator.NewA1ControllerCreateOrReplacePolicyInstance(o.context, o.A1MediatorA1ControllerCreateOrReplacePolicyInstanceHandler)
+       if o.handlers["PUT"] == nil {
+               o.handlers["PUT"] = make(map[string]http.Handler)
+       }
+       o.handlers["PUT"]["/a1-p/policytypes/{policy_type_id}"] = a1_mediator.NewA1ControllerCreatePolicyType(o.context, o.A1MediatorA1ControllerCreatePolicyTypeHandler)
+       if o.handlers["POST"] == nil {
+               o.handlers["POST"] = make(map[string]http.Handler)
+       }
+       o.handlers["POST"]["/data-delivery"] = a1_e_i_data_delivery.NewA1ControllerDataDelivery(o.context, o.A1eiDataDeliveryA1ControllerDataDeliveryHandler)
+       if o.handlers["DELETE"] == nil {
+               o.handlers["DELETE"] = make(map[string]http.Handler)
+       }
+       o.handlers["DELETE"]["/a1-p/policytypes/{policy_type_id}/policies/{policy_instance_id}"] = a1_mediator.NewA1ControllerDeletePolicyInstance(o.context, o.A1MediatorA1ControllerDeletePolicyInstanceHandler)
+       if o.handlers["DELETE"] == nil {
+               o.handlers["DELETE"] = make(map[string]http.Handler)
+       }
+       o.handlers["DELETE"]["/a1-p/policytypes/{policy_type_id}"] = a1_mediator.NewA1ControllerDeletePolicyType(o.context, o.A1MediatorA1ControllerDeletePolicyTypeHandler)
+       if o.handlers["GET"] == nil {
+               o.handlers["GET"] = make(map[string]http.Handler)
+       }
+       o.handlers["GET"]["/a1-p/policytypes/{policy_type_id}/policies"] = a1_mediator.NewA1ControllerGetAllInstancesForType(o.context, o.A1MediatorA1ControllerGetAllInstancesForTypeHandler)
+       if o.handlers["GET"] == nil {
+               o.handlers["GET"] = make(map[string]http.Handler)
+       }
+       o.handlers["GET"]["/a1-p/policytypes"] = a1_mediator.NewA1ControllerGetAllPolicyTypes(o.context, o.A1MediatorA1ControllerGetAllPolicyTypesHandler)
+       if o.handlers["GET"] == nil {
+               o.handlers["GET"] = make(map[string]http.Handler)
+       }
+       o.handlers["GET"]["/a1-p/healthcheck"] = a1_mediator.NewA1ControllerGetHealthcheck(o.context, o.A1MediatorA1ControllerGetHealthcheckHandler)
+       if o.handlers["GET"] == nil {
+               o.handlers["GET"] = make(map[string]http.Handler)
+       }
+       o.handlers["GET"]["/a1-p/policytypes/{policy_type_id}/policies/{policy_instance_id}"] = a1_mediator.NewA1ControllerGetPolicyInstance(o.context, o.A1MediatorA1ControllerGetPolicyInstanceHandler)
+       if o.handlers["GET"] == nil {
+               o.handlers["GET"] = make(map[string]http.Handler)
+       }
+       o.handlers["GET"]["/a1-p/policytypes/{policy_type_id}/policies/{policy_instance_id}/status"] = a1_mediator.NewA1ControllerGetPolicyInstanceStatus(o.context, o.A1MediatorA1ControllerGetPolicyInstanceStatusHandler)
+       if o.handlers["GET"] == nil {
+               o.handlers["GET"] = make(map[string]http.Handler)
+       }
+       o.handlers["GET"]["/a1-p/policytypes/{policy_type_id}"] = a1_mediator.NewA1ControllerGetPolicyType(o.context, o.A1MediatorA1ControllerGetPolicyTypeHandler)
+}
+
+// Serve creates a http handler to serve the API over HTTP
+// can be used directly in http.ListenAndServe(":8000", api.Serve(nil))
+func (o *A1API) Serve(builder middleware.Builder) http.Handler {
+       o.Init()
+
+       if o.Middleware != nil {
+               return o.Middleware(builder)
+       }
+       return o.context.APIHandler(builder)
+}
+
+// Init allows you to just initialize the handler cache, you can then recompose the middleware as you see fit
+func (o *A1API) Init() {
+       if len(o.handlers) == 0 {
+               o.initHandlerCache()
+       }
+}
+
+// RegisterConsumer allows you to add (or override) a consumer for a media type.
+func (o *A1API) RegisterConsumer(mediaType string, consumer runtime.Consumer) {
+       o.customConsumers[mediaType] = consumer
+}
+
+// RegisterProducer allows you to add (or override) a producer for a media type.
+func (o *A1API) RegisterProducer(mediaType string, producer runtime.Producer) {
+       o.customProducers[mediaType] = producer
+}
+
+// AddMiddlewareFor adds a http middleware to existing handler
+func (o *A1API) AddMiddlewareFor(method, path string, builder middleware.Builder) {
+       um := strings.ToUpper(method)
+       if path == "/" {
+               path = ""
+       }
+       o.Init()
+       if h, ok := o.handlers[um][path]; ok {
+               o.handlers[method][path] = builder(h)
+       }
+}