github.com/weaviate/weaviate@v1.24.6/adapters/handlers/rest/operations/weaviate_api.go (about)

     1  //                           _       _
     2  // __      _____  __ ___   ___  __ _| |_ ___
     3  // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
     4  //  \ V  V /  __/ (_| |\ V /| | (_| | ||  __/
     5  //   \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
     6  //
     7  //  Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
     8  //
     9  //  CONTACT: hello@weaviate.io
    10  //
    11  
    12  // Code generated by go-swagger; DO NOT EDIT.
    13  
    14  package operations
    15  
    16  // This file was generated by the swagger tool.
    17  // Editing this file might prove futile when you re-run the swagger generate command
    18  
    19  import (
    20  	"fmt"
    21  	"net/http"
    22  	"strings"
    23  
    24  	"github.com/go-openapi/errors"
    25  	"github.com/go-openapi/loads"
    26  	"github.com/go-openapi/runtime"
    27  	"github.com/go-openapi/runtime/middleware"
    28  	"github.com/go-openapi/runtime/security"
    29  	"github.com/go-openapi/runtime/yamlpc"
    30  	"github.com/go-openapi/spec"
    31  	"github.com/go-openapi/strfmt"
    32  	"github.com/go-openapi/swag"
    33  
    34  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/backups"
    35  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/batch"
    36  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/classifications"
    37  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/graphql"
    38  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/meta"
    39  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/nodes"
    40  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/objects"
    41  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/schema"
    42  	"github.com/weaviate/weaviate/adapters/handlers/rest/operations/well_known"
    43  	"github.com/weaviate/weaviate/entities/models"
    44  )
    45  
    46  // NewWeaviateAPI creates a new Weaviate instance
    47  func NewWeaviateAPI(spec *loads.Document) *WeaviateAPI {
    48  	return &WeaviateAPI{
    49  		handlers:            make(map[string]map[string]http.Handler),
    50  		formats:             strfmt.Default,
    51  		defaultConsumes:     "application/json",
    52  		defaultProduces:     "application/json",
    53  		customConsumers:     make(map[string]runtime.Consumer),
    54  		customProducers:     make(map[string]runtime.Producer),
    55  		PreServerShutdown:   func() {},
    56  		ServerShutdown:      func() {},
    57  		spec:                spec,
    58  		useSwaggerUI:        false,
    59  		ServeError:          errors.ServeError,
    60  		BasicAuthenticator:  security.BasicAuth,
    61  		APIKeyAuthenticator: security.APIKeyAuth,
    62  		BearerAuthenticator: security.BearerAuth,
    63  
    64  		JSONConsumer: runtime.JSONConsumer(),
    65  		YamlConsumer: yamlpc.YAMLConsumer(),
    66  
    67  		JSONProducer: runtime.JSONProducer(),
    68  
    69  		WellKnownGetWellKnownOpenidConfigurationHandler: well_known.GetWellKnownOpenidConfigurationHandlerFunc(func(params well_known.GetWellKnownOpenidConfigurationParams, principal *models.Principal) middleware.Responder {
    70  			return middleware.NotImplemented("operation well_known.GetWellKnownOpenidConfiguration has not yet been implemented")
    71  		}),
    72  		BackupsBackupsCreateHandler: backups.BackupsCreateHandlerFunc(func(params backups.BackupsCreateParams, principal *models.Principal) middleware.Responder {
    73  			return middleware.NotImplemented("operation backups.BackupsCreate has not yet been implemented")
    74  		}),
    75  		BackupsBackupsCreateStatusHandler: backups.BackupsCreateStatusHandlerFunc(func(params backups.BackupsCreateStatusParams, principal *models.Principal) middleware.Responder {
    76  			return middleware.NotImplemented("operation backups.BackupsCreateStatus has not yet been implemented")
    77  		}),
    78  		BackupsBackupsRestoreHandler: backups.BackupsRestoreHandlerFunc(func(params backups.BackupsRestoreParams, principal *models.Principal) middleware.Responder {
    79  			return middleware.NotImplemented("operation backups.BackupsRestore has not yet been implemented")
    80  		}),
    81  		BackupsBackupsRestoreStatusHandler: backups.BackupsRestoreStatusHandlerFunc(func(params backups.BackupsRestoreStatusParams, principal *models.Principal) middleware.Responder {
    82  			return middleware.NotImplemented("operation backups.BackupsRestoreStatus has not yet been implemented")
    83  		}),
    84  		BatchBatchObjectsCreateHandler: batch.BatchObjectsCreateHandlerFunc(func(params batch.BatchObjectsCreateParams, principal *models.Principal) middleware.Responder {
    85  			return middleware.NotImplemented("operation batch.BatchObjectsCreate has not yet been implemented")
    86  		}),
    87  		BatchBatchObjectsDeleteHandler: batch.BatchObjectsDeleteHandlerFunc(func(params batch.BatchObjectsDeleteParams, principal *models.Principal) middleware.Responder {
    88  			return middleware.NotImplemented("operation batch.BatchObjectsDelete has not yet been implemented")
    89  		}),
    90  		BatchBatchReferencesCreateHandler: batch.BatchReferencesCreateHandlerFunc(func(params batch.BatchReferencesCreateParams, principal *models.Principal) middleware.Responder {
    91  			return middleware.NotImplemented("operation batch.BatchReferencesCreate has not yet been implemented")
    92  		}),
    93  		ClassificationsClassificationsGetHandler: classifications.ClassificationsGetHandlerFunc(func(params classifications.ClassificationsGetParams, principal *models.Principal) middleware.Responder {
    94  			return middleware.NotImplemented("operation classifications.ClassificationsGet has not yet been implemented")
    95  		}),
    96  		ClassificationsClassificationsPostHandler: classifications.ClassificationsPostHandlerFunc(func(params classifications.ClassificationsPostParams, principal *models.Principal) middleware.Responder {
    97  			return middleware.NotImplemented("operation classifications.ClassificationsPost has not yet been implemented")
    98  		}),
    99  		GraphqlGraphqlBatchHandler: graphql.GraphqlBatchHandlerFunc(func(params graphql.GraphqlBatchParams, principal *models.Principal) middleware.Responder {
   100  			return middleware.NotImplemented("operation graphql.GraphqlBatch has not yet been implemented")
   101  		}),
   102  		GraphqlGraphqlPostHandler: graphql.GraphqlPostHandlerFunc(func(params graphql.GraphqlPostParams, principal *models.Principal) middleware.Responder {
   103  			return middleware.NotImplemented("operation graphql.GraphqlPost has not yet been implemented")
   104  		}),
   105  		MetaMetaGetHandler: meta.MetaGetHandlerFunc(func(params meta.MetaGetParams, principal *models.Principal) middleware.Responder {
   106  			return middleware.NotImplemented("operation meta.MetaGet has not yet been implemented")
   107  		}),
   108  		NodesNodesGetHandler: nodes.NodesGetHandlerFunc(func(params nodes.NodesGetParams, principal *models.Principal) middleware.Responder {
   109  			return middleware.NotImplemented("operation nodes.NodesGet has not yet been implemented")
   110  		}),
   111  		NodesNodesGetClassHandler: nodes.NodesGetClassHandlerFunc(func(params nodes.NodesGetClassParams, principal *models.Principal) middleware.Responder {
   112  			return middleware.NotImplemented("operation nodes.NodesGetClass has not yet been implemented")
   113  		}),
   114  		ObjectsObjectsClassDeleteHandler: objects.ObjectsClassDeleteHandlerFunc(func(params objects.ObjectsClassDeleteParams, principal *models.Principal) middleware.Responder {
   115  			return middleware.NotImplemented("operation objects.ObjectsClassDelete has not yet been implemented")
   116  		}),
   117  		ObjectsObjectsClassGetHandler: objects.ObjectsClassGetHandlerFunc(func(params objects.ObjectsClassGetParams, principal *models.Principal) middleware.Responder {
   118  			return middleware.NotImplemented("operation objects.ObjectsClassGet has not yet been implemented")
   119  		}),
   120  		ObjectsObjectsClassHeadHandler: objects.ObjectsClassHeadHandlerFunc(func(params objects.ObjectsClassHeadParams, principal *models.Principal) middleware.Responder {
   121  			return middleware.NotImplemented("operation objects.ObjectsClassHead has not yet been implemented")
   122  		}),
   123  		ObjectsObjectsClassPatchHandler: objects.ObjectsClassPatchHandlerFunc(func(params objects.ObjectsClassPatchParams, principal *models.Principal) middleware.Responder {
   124  			return middleware.NotImplemented("operation objects.ObjectsClassPatch has not yet been implemented")
   125  		}),
   126  		ObjectsObjectsClassPutHandler: objects.ObjectsClassPutHandlerFunc(func(params objects.ObjectsClassPutParams, principal *models.Principal) middleware.Responder {
   127  			return middleware.NotImplemented("operation objects.ObjectsClassPut has not yet been implemented")
   128  		}),
   129  		ObjectsObjectsClassReferencesCreateHandler: objects.ObjectsClassReferencesCreateHandlerFunc(func(params objects.ObjectsClassReferencesCreateParams, principal *models.Principal) middleware.Responder {
   130  			return middleware.NotImplemented("operation objects.ObjectsClassReferencesCreate has not yet been implemented")
   131  		}),
   132  		ObjectsObjectsClassReferencesDeleteHandler: objects.ObjectsClassReferencesDeleteHandlerFunc(func(params objects.ObjectsClassReferencesDeleteParams, principal *models.Principal) middleware.Responder {
   133  			return middleware.NotImplemented("operation objects.ObjectsClassReferencesDelete has not yet been implemented")
   134  		}),
   135  		ObjectsObjectsClassReferencesPutHandler: objects.ObjectsClassReferencesPutHandlerFunc(func(params objects.ObjectsClassReferencesPutParams, principal *models.Principal) middleware.Responder {
   136  			return middleware.NotImplemented("operation objects.ObjectsClassReferencesPut has not yet been implemented")
   137  		}),
   138  		ObjectsObjectsCreateHandler: objects.ObjectsCreateHandlerFunc(func(params objects.ObjectsCreateParams, principal *models.Principal) middleware.Responder {
   139  			return middleware.NotImplemented("operation objects.ObjectsCreate has not yet been implemented")
   140  		}),
   141  		ObjectsObjectsDeleteHandler: objects.ObjectsDeleteHandlerFunc(func(params objects.ObjectsDeleteParams, principal *models.Principal) middleware.Responder {
   142  			return middleware.NotImplemented("operation objects.ObjectsDelete has not yet been implemented")
   143  		}),
   144  		ObjectsObjectsGetHandler: objects.ObjectsGetHandlerFunc(func(params objects.ObjectsGetParams, principal *models.Principal) middleware.Responder {
   145  			return middleware.NotImplemented("operation objects.ObjectsGet has not yet been implemented")
   146  		}),
   147  		ObjectsObjectsHeadHandler: objects.ObjectsHeadHandlerFunc(func(params objects.ObjectsHeadParams, principal *models.Principal) middleware.Responder {
   148  			return middleware.NotImplemented("operation objects.ObjectsHead has not yet been implemented")
   149  		}),
   150  		ObjectsObjectsListHandler: objects.ObjectsListHandlerFunc(func(params objects.ObjectsListParams, principal *models.Principal) middleware.Responder {
   151  			return middleware.NotImplemented("operation objects.ObjectsList has not yet been implemented")
   152  		}),
   153  		ObjectsObjectsPatchHandler: objects.ObjectsPatchHandlerFunc(func(params objects.ObjectsPatchParams, principal *models.Principal) middleware.Responder {
   154  			return middleware.NotImplemented("operation objects.ObjectsPatch has not yet been implemented")
   155  		}),
   156  		ObjectsObjectsReferencesCreateHandler: objects.ObjectsReferencesCreateHandlerFunc(func(params objects.ObjectsReferencesCreateParams, principal *models.Principal) middleware.Responder {
   157  			return middleware.NotImplemented("operation objects.ObjectsReferencesCreate has not yet been implemented")
   158  		}),
   159  		ObjectsObjectsReferencesDeleteHandler: objects.ObjectsReferencesDeleteHandlerFunc(func(params objects.ObjectsReferencesDeleteParams, principal *models.Principal) middleware.Responder {
   160  			return middleware.NotImplemented("operation objects.ObjectsReferencesDelete has not yet been implemented")
   161  		}),
   162  		ObjectsObjectsReferencesUpdateHandler: objects.ObjectsReferencesUpdateHandlerFunc(func(params objects.ObjectsReferencesUpdateParams, principal *models.Principal) middleware.Responder {
   163  			return middleware.NotImplemented("operation objects.ObjectsReferencesUpdate has not yet been implemented")
   164  		}),
   165  		ObjectsObjectsUpdateHandler: objects.ObjectsUpdateHandlerFunc(func(params objects.ObjectsUpdateParams, principal *models.Principal) middleware.Responder {
   166  			return middleware.NotImplemented("operation objects.ObjectsUpdate has not yet been implemented")
   167  		}),
   168  		ObjectsObjectsValidateHandler: objects.ObjectsValidateHandlerFunc(func(params objects.ObjectsValidateParams, principal *models.Principal) middleware.Responder {
   169  			return middleware.NotImplemented("operation objects.ObjectsValidate has not yet been implemented")
   170  		}),
   171  		SchemaSchemaClusterStatusHandler: schema.SchemaClusterStatusHandlerFunc(func(params schema.SchemaClusterStatusParams, principal *models.Principal) middleware.Responder {
   172  			return middleware.NotImplemented("operation schema.SchemaClusterStatus has not yet been implemented")
   173  		}),
   174  		SchemaSchemaDumpHandler: schema.SchemaDumpHandlerFunc(func(params schema.SchemaDumpParams, principal *models.Principal) middleware.Responder {
   175  			return middleware.NotImplemented("operation schema.SchemaDump has not yet been implemented")
   176  		}),
   177  		SchemaSchemaObjectsCreateHandler: schema.SchemaObjectsCreateHandlerFunc(func(params schema.SchemaObjectsCreateParams, principal *models.Principal) middleware.Responder {
   178  			return middleware.NotImplemented("operation schema.SchemaObjectsCreate has not yet been implemented")
   179  		}),
   180  		SchemaSchemaObjectsDeleteHandler: schema.SchemaObjectsDeleteHandlerFunc(func(params schema.SchemaObjectsDeleteParams, principal *models.Principal) middleware.Responder {
   181  			return middleware.NotImplemented("operation schema.SchemaObjectsDelete has not yet been implemented")
   182  		}),
   183  		SchemaSchemaObjectsGetHandler: schema.SchemaObjectsGetHandlerFunc(func(params schema.SchemaObjectsGetParams, principal *models.Principal) middleware.Responder {
   184  			return middleware.NotImplemented("operation schema.SchemaObjectsGet has not yet been implemented")
   185  		}),
   186  		SchemaSchemaObjectsPropertiesAddHandler: schema.SchemaObjectsPropertiesAddHandlerFunc(func(params schema.SchemaObjectsPropertiesAddParams, principal *models.Principal) middleware.Responder {
   187  			return middleware.NotImplemented("operation schema.SchemaObjectsPropertiesAdd has not yet been implemented")
   188  		}),
   189  		SchemaSchemaObjectsShardsGetHandler: schema.SchemaObjectsShardsGetHandlerFunc(func(params schema.SchemaObjectsShardsGetParams, principal *models.Principal) middleware.Responder {
   190  			return middleware.NotImplemented("operation schema.SchemaObjectsShardsGet has not yet been implemented")
   191  		}),
   192  		SchemaSchemaObjectsShardsUpdateHandler: schema.SchemaObjectsShardsUpdateHandlerFunc(func(params schema.SchemaObjectsShardsUpdateParams, principal *models.Principal) middleware.Responder {
   193  			return middleware.NotImplemented("operation schema.SchemaObjectsShardsUpdate has not yet been implemented")
   194  		}),
   195  		SchemaSchemaObjectsUpdateHandler: schema.SchemaObjectsUpdateHandlerFunc(func(params schema.SchemaObjectsUpdateParams, principal *models.Principal) middleware.Responder {
   196  			return middleware.NotImplemented("operation schema.SchemaObjectsUpdate has not yet been implemented")
   197  		}),
   198  		SchemaTenantsCreateHandler: schema.TenantsCreateHandlerFunc(func(params schema.TenantsCreateParams, principal *models.Principal) middleware.Responder {
   199  			return middleware.NotImplemented("operation schema.TenantsCreate has not yet been implemented")
   200  		}),
   201  		SchemaTenantsDeleteHandler: schema.TenantsDeleteHandlerFunc(func(params schema.TenantsDeleteParams, principal *models.Principal) middleware.Responder {
   202  			return middleware.NotImplemented("operation schema.TenantsDelete has not yet been implemented")
   203  		}),
   204  		SchemaTenantsGetHandler: schema.TenantsGetHandlerFunc(func(params schema.TenantsGetParams, principal *models.Principal) middleware.Responder {
   205  			return middleware.NotImplemented("operation schema.TenantsGet has not yet been implemented")
   206  		}),
   207  		SchemaTenantsUpdateHandler: schema.TenantsUpdateHandlerFunc(func(params schema.TenantsUpdateParams, principal *models.Principal) middleware.Responder {
   208  			return middleware.NotImplemented("operation schema.TenantsUpdate has not yet been implemented")
   209  		}),
   210  		WeaviateRootHandler: WeaviateRootHandlerFunc(func(params WeaviateRootParams, principal *models.Principal) middleware.Responder {
   211  			return middleware.NotImplemented("operation WeaviateRoot has not yet been implemented")
   212  		}),
   213  		WeaviateWellknownLivenessHandler: WeaviateWellknownLivenessHandlerFunc(func(params WeaviateWellknownLivenessParams, principal *models.Principal) middleware.Responder {
   214  			return middleware.NotImplemented("operation WeaviateWellknownLiveness has not yet been implemented")
   215  		}),
   216  		WeaviateWellknownReadinessHandler: WeaviateWellknownReadinessHandlerFunc(func(params WeaviateWellknownReadinessParams, principal *models.Principal) middleware.Responder {
   217  			return middleware.NotImplemented("operation WeaviateWellknownReadiness has not yet been implemented")
   218  		}),
   219  
   220  		OidcAuth: func(token string, scopes []string) (*models.Principal, error) {
   221  			return nil, errors.NotImplemented("oauth2 bearer auth (oidc) has not yet been implemented")
   222  		},
   223  		// default authorizer is authorized meaning no requests are blocked
   224  		APIAuthorizer: security.Authorized(),
   225  	}
   226  }
   227  
   228  /*WeaviateAPI Cloud-native, modular vector database */
   229  type WeaviateAPI struct {
   230  	spec            *loads.Document
   231  	context         *middleware.Context
   232  	handlers        map[string]map[string]http.Handler
   233  	formats         strfmt.Registry
   234  	customConsumers map[string]runtime.Consumer
   235  	customProducers map[string]runtime.Producer
   236  	defaultConsumes string
   237  	defaultProduces string
   238  	Middleware      func(middleware.Builder) http.Handler
   239  	useSwaggerUI    bool
   240  
   241  	// BasicAuthenticator generates a runtime.Authenticator from the supplied basic auth function.
   242  	// It has a default implementation in the security package, however you can replace it for your particular usage.
   243  	BasicAuthenticator func(security.UserPassAuthentication) runtime.Authenticator
   244  
   245  	// APIKeyAuthenticator generates a runtime.Authenticator from the supplied token auth function.
   246  	// It has a default implementation in the security package, however you can replace it for your particular usage.
   247  	APIKeyAuthenticator func(string, string, security.TokenAuthentication) runtime.Authenticator
   248  
   249  	// BearerAuthenticator generates a runtime.Authenticator from the supplied bearer token auth function.
   250  	// It has a default implementation in the security package, however you can replace it for your particular usage.
   251  	BearerAuthenticator func(string, security.ScopedTokenAuthentication) runtime.Authenticator
   252  
   253  	// JSONConsumer registers a consumer for the following mime types:
   254  	//   - application/json
   255  	JSONConsumer runtime.Consumer
   256  	// YamlConsumer registers a consumer for the following mime types:
   257  	//   - application/yaml
   258  	YamlConsumer runtime.Consumer
   259  
   260  	// JSONProducer registers a producer for the following mime types:
   261  	//   - application/json
   262  	JSONProducer runtime.Producer
   263  
   264  	// OidcAuth registers a function that takes an access token and a collection of required scopes and returns a principal
   265  	// it performs authentication based on an oauth2 bearer token provided in the request
   266  	OidcAuth func(string, []string) (*models.Principal, error)
   267  
   268  	// APIAuthorizer provides access control (ACL/RBAC/ABAC) by providing access to the request and authenticated principal
   269  	APIAuthorizer runtime.Authorizer
   270  
   271  	// WellKnownGetWellKnownOpenidConfigurationHandler sets the operation handler for the get well known openid configuration operation
   272  	WellKnownGetWellKnownOpenidConfigurationHandler well_known.GetWellKnownOpenidConfigurationHandler
   273  	// BackupsBackupsCreateHandler sets the operation handler for the backups create operation
   274  	BackupsBackupsCreateHandler backups.BackupsCreateHandler
   275  	// BackupsBackupsCreateStatusHandler sets the operation handler for the backups create status operation
   276  	BackupsBackupsCreateStatusHandler backups.BackupsCreateStatusHandler
   277  	// BackupsBackupsRestoreHandler sets the operation handler for the backups restore operation
   278  	BackupsBackupsRestoreHandler backups.BackupsRestoreHandler
   279  	// BackupsBackupsRestoreStatusHandler sets the operation handler for the backups restore status operation
   280  	BackupsBackupsRestoreStatusHandler backups.BackupsRestoreStatusHandler
   281  	// BatchBatchObjectsCreateHandler sets the operation handler for the batch objects create operation
   282  	BatchBatchObjectsCreateHandler batch.BatchObjectsCreateHandler
   283  	// BatchBatchObjectsDeleteHandler sets the operation handler for the batch objects delete operation
   284  	BatchBatchObjectsDeleteHandler batch.BatchObjectsDeleteHandler
   285  	// BatchBatchReferencesCreateHandler sets the operation handler for the batch references create operation
   286  	BatchBatchReferencesCreateHandler batch.BatchReferencesCreateHandler
   287  	// ClassificationsClassificationsGetHandler sets the operation handler for the classifications get operation
   288  	ClassificationsClassificationsGetHandler classifications.ClassificationsGetHandler
   289  	// ClassificationsClassificationsPostHandler sets the operation handler for the classifications post operation
   290  	ClassificationsClassificationsPostHandler classifications.ClassificationsPostHandler
   291  	// GraphqlGraphqlBatchHandler sets the operation handler for the graphql batch operation
   292  	GraphqlGraphqlBatchHandler graphql.GraphqlBatchHandler
   293  	// GraphqlGraphqlPostHandler sets the operation handler for the graphql post operation
   294  	GraphqlGraphqlPostHandler graphql.GraphqlPostHandler
   295  	// MetaMetaGetHandler sets the operation handler for the meta get operation
   296  	MetaMetaGetHandler meta.MetaGetHandler
   297  	// NodesNodesGetHandler sets the operation handler for the nodes get operation
   298  	NodesNodesGetHandler nodes.NodesGetHandler
   299  	// NodesNodesGetClassHandler sets the operation handler for the nodes get class operation
   300  	NodesNodesGetClassHandler nodes.NodesGetClassHandler
   301  	// ObjectsObjectsClassDeleteHandler sets the operation handler for the objects class delete operation
   302  	ObjectsObjectsClassDeleteHandler objects.ObjectsClassDeleteHandler
   303  	// ObjectsObjectsClassGetHandler sets the operation handler for the objects class get operation
   304  	ObjectsObjectsClassGetHandler objects.ObjectsClassGetHandler
   305  	// ObjectsObjectsClassHeadHandler sets the operation handler for the objects class head operation
   306  	ObjectsObjectsClassHeadHandler objects.ObjectsClassHeadHandler
   307  	// ObjectsObjectsClassPatchHandler sets the operation handler for the objects class patch operation
   308  	ObjectsObjectsClassPatchHandler objects.ObjectsClassPatchHandler
   309  	// ObjectsObjectsClassPutHandler sets the operation handler for the objects class put operation
   310  	ObjectsObjectsClassPutHandler objects.ObjectsClassPutHandler
   311  	// ObjectsObjectsClassReferencesCreateHandler sets the operation handler for the objects class references create operation
   312  	ObjectsObjectsClassReferencesCreateHandler objects.ObjectsClassReferencesCreateHandler
   313  	// ObjectsObjectsClassReferencesDeleteHandler sets the operation handler for the objects class references delete operation
   314  	ObjectsObjectsClassReferencesDeleteHandler objects.ObjectsClassReferencesDeleteHandler
   315  	// ObjectsObjectsClassReferencesPutHandler sets the operation handler for the objects class references put operation
   316  	ObjectsObjectsClassReferencesPutHandler objects.ObjectsClassReferencesPutHandler
   317  	// ObjectsObjectsCreateHandler sets the operation handler for the objects create operation
   318  	ObjectsObjectsCreateHandler objects.ObjectsCreateHandler
   319  	// ObjectsObjectsDeleteHandler sets the operation handler for the objects delete operation
   320  	ObjectsObjectsDeleteHandler objects.ObjectsDeleteHandler
   321  	// ObjectsObjectsGetHandler sets the operation handler for the objects get operation
   322  	ObjectsObjectsGetHandler objects.ObjectsGetHandler
   323  	// ObjectsObjectsHeadHandler sets the operation handler for the objects head operation
   324  	ObjectsObjectsHeadHandler objects.ObjectsHeadHandler
   325  	// ObjectsObjectsListHandler sets the operation handler for the objects list operation
   326  	ObjectsObjectsListHandler objects.ObjectsListHandler
   327  	// ObjectsObjectsPatchHandler sets the operation handler for the objects patch operation
   328  	ObjectsObjectsPatchHandler objects.ObjectsPatchHandler
   329  	// ObjectsObjectsReferencesCreateHandler sets the operation handler for the objects references create operation
   330  	ObjectsObjectsReferencesCreateHandler objects.ObjectsReferencesCreateHandler
   331  	// ObjectsObjectsReferencesDeleteHandler sets the operation handler for the objects references delete operation
   332  	ObjectsObjectsReferencesDeleteHandler objects.ObjectsReferencesDeleteHandler
   333  	// ObjectsObjectsReferencesUpdateHandler sets the operation handler for the objects references update operation
   334  	ObjectsObjectsReferencesUpdateHandler objects.ObjectsReferencesUpdateHandler
   335  	// ObjectsObjectsUpdateHandler sets the operation handler for the objects update operation
   336  	ObjectsObjectsUpdateHandler objects.ObjectsUpdateHandler
   337  	// ObjectsObjectsValidateHandler sets the operation handler for the objects validate operation
   338  	ObjectsObjectsValidateHandler objects.ObjectsValidateHandler
   339  	// SchemaSchemaClusterStatusHandler sets the operation handler for the schema cluster status operation
   340  	SchemaSchemaClusterStatusHandler schema.SchemaClusterStatusHandler
   341  	// SchemaSchemaDumpHandler sets the operation handler for the schema dump operation
   342  	SchemaSchemaDumpHandler schema.SchemaDumpHandler
   343  	// SchemaSchemaObjectsCreateHandler sets the operation handler for the schema objects create operation
   344  	SchemaSchemaObjectsCreateHandler schema.SchemaObjectsCreateHandler
   345  	// SchemaSchemaObjectsDeleteHandler sets the operation handler for the schema objects delete operation
   346  	SchemaSchemaObjectsDeleteHandler schema.SchemaObjectsDeleteHandler
   347  	// SchemaSchemaObjectsGetHandler sets the operation handler for the schema objects get operation
   348  	SchemaSchemaObjectsGetHandler schema.SchemaObjectsGetHandler
   349  	// SchemaSchemaObjectsPropertiesAddHandler sets the operation handler for the schema objects properties add operation
   350  	SchemaSchemaObjectsPropertiesAddHandler schema.SchemaObjectsPropertiesAddHandler
   351  	// SchemaSchemaObjectsShardsGetHandler sets the operation handler for the schema objects shards get operation
   352  	SchemaSchemaObjectsShardsGetHandler schema.SchemaObjectsShardsGetHandler
   353  	// SchemaSchemaObjectsShardsUpdateHandler sets the operation handler for the schema objects shards update operation
   354  	SchemaSchemaObjectsShardsUpdateHandler schema.SchemaObjectsShardsUpdateHandler
   355  	// SchemaSchemaObjectsUpdateHandler sets the operation handler for the schema objects update operation
   356  	SchemaSchemaObjectsUpdateHandler schema.SchemaObjectsUpdateHandler
   357  	// SchemaTenantsCreateHandler sets the operation handler for the tenants create operation
   358  	SchemaTenantsCreateHandler schema.TenantsCreateHandler
   359  	// SchemaTenantsDeleteHandler sets the operation handler for the tenants delete operation
   360  	SchemaTenantsDeleteHandler schema.TenantsDeleteHandler
   361  	// SchemaTenantsGetHandler sets the operation handler for the tenants get operation
   362  	SchemaTenantsGetHandler schema.TenantsGetHandler
   363  	// SchemaTenantsUpdateHandler sets the operation handler for the tenants update operation
   364  	SchemaTenantsUpdateHandler schema.TenantsUpdateHandler
   365  	// WeaviateRootHandler sets the operation handler for the weaviate root operation
   366  	WeaviateRootHandler WeaviateRootHandler
   367  	// WeaviateWellknownLivenessHandler sets the operation handler for the weaviate wellknown liveness operation
   368  	WeaviateWellknownLivenessHandler WeaviateWellknownLivenessHandler
   369  	// WeaviateWellknownReadinessHandler sets the operation handler for the weaviate wellknown readiness operation
   370  	WeaviateWellknownReadinessHandler WeaviateWellknownReadinessHandler
   371  
   372  	// ServeError is called when an error is received, there is a default handler
   373  	// but you can set your own with this
   374  	ServeError func(http.ResponseWriter, *http.Request, error)
   375  
   376  	// PreServerShutdown is called before the HTTP(S) server is shutdown
   377  	// This allows for custom functions to get executed before the HTTP(S) server stops accepting traffic
   378  	PreServerShutdown func()
   379  
   380  	// ServerShutdown is called when the HTTP(S) server is shut down and done
   381  	// handling all active connections and does not accept connections any more
   382  	ServerShutdown func()
   383  
   384  	// Custom command line argument groups with their descriptions
   385  	CommandLineOptionsGroups []swag.CommandLineOptionsGroup
   386  
   387  	// User defined logger function.
   388  	Logger func(string, ...interface{})
   389  }
   390  
   391  // UseRedoc for documentation at /docs
   392  func (o *WeaviateAPI) UseRedoc() {
   393  	o.useSwaggerUI = false
   394  }
   395  
   396  // UseSwaggerUI for documentation at /docs
   397  func (o *WeaviateAPI) UseSwaggerUI() {
   398  	o.useSwaggerUI = true
   399  }
   400  
   401  // SetDefaultProduces sets the default produces media type
   402  func (o *WeaviateAPI) SetDefaultProduces(mediaType string) {
   403  	o.defaultProduces = mediaType
   404  }
   405  
   406  // SetDefaultConsumes returns the default consumes media type
   407  func (o *WeaviateAPI) SetDefaultConsumes(mediaType string) {
   408  	o.defaultConsumes = mediaType
   409  }
   410  
   411  // SetSpec sets a spec that will be served for the clients.
   412  func (o *WeaviateAPI) SetSpec(spec *loads.Document) {
   413  	o.spec = spec
   414  }
   415  
   416  // DefaultProduces returns the default produces media type
   417  func (o *WeaviateAPI) DefaultProduces() string {
   418  	return o.defaultProduces
   419  }
   420  
   421  // DefaultConsumes returns the default consumes media type
   422  func (o *WeaviateAPI) DefaultConsumes() string {
   423  	return o.defaultConsumes
   424  }
   425  
   426  // Formats returns the registered string formats
   427  func (o *WeaviateAPI) Formats() strfmt.Registry {
   428  	return o.formats
   429  }
   430  
   431  // RegisterFormat registers a custom format validator
   432  func (o *WeaviateAPI) RegisterFormat(name string, format strfmt.Format, validator strfmt.Validator) {
   433  	o.formats.Add(name, format, validator)
   434  }
   435  
   436  // Validate validates the registrations in the WeaviateAPI
   437  func (o *WeaviateAPI) Validate() error {
   438  	var unregistered []string
   439  
   440  	if o.JSONConsumer == nil {
   441  		unregistered = append(unregistered, "JSONConsumer")
   442  	}
   443  	if o.YamlConsumer == nil {
   444  		unregistered = append(unregistered, "YamlConsumer")
   445  	}
   446  
   447  	if o.JSONProducer == nil {
   448  		unregistered = append(unregistered, "JSONProducer")
   449  	}
   450  
   451  	if o.OidcAuth == nil {
   452  		unregistered = append(unregistered, "OidcAuth")
   453  	}
   454  
   455  	if o.WellKnownGetWellKnownOpenidConfigurationHandler == nil {
   456  		unregistered = append(unregistered, "well_known.GetWellKnownOpenidConfigurationHandler")
   457  	}
   458  	if o.BackupsBackupsCreateHandler == nil {
   459  		unregistered = append(unregistered, "backups.BackupsCreateHandler")
   460  	}
   461  	if o.BackupsBackupsCreateStatusHandler == nil {
   462  		unregistered = append(unregistered, "backups.BackupsCreateStatusHandler")
   463  	}
   464  	if o.BackupsBackupsRestoreHandler == nil {
   465  		unregistered = append(unregistered, "backups.BackupsRestoreHandler")
   466  	}
   467  	if o.BackupsBackupsRestoreStatusHandler == nil {
   468  		unregistered = append(unregistered, "backups.BackupsRestoreStatusHandler")
   469  	}
   470  	if o.BatchBatchObjectsCreateHandler == nil {
   471  		unregistered = append(unregistered, "batch.BatchObjectsCreateHandler")
   472  	}
   473  	if o.BatchBatchObjectsDeleteHandler == nil {
   474  		unregistered = append(unregistered, "batch.BatchObjectsDeleteHandler")
   475  	}
   476  	if o.BatchBatchReferencesCreateHandler == nil {
   477  		unregistered = append(unregistered, "batch.BatchReferencesCreateHandler")
   478  	}
   479  	if o.ClassificationsClassificationsGetHandler == nil {
   480  		unregistered = append(unregistered, "classifications.ClassificationsGetHandler")
   481  	}
   482  	if o.ClassificationsClassificationsPostHandler == nil {
   483  		unregistered = append(unregistered, "classifications.ClassificationsPostHandler")
   484  	}
   485  	if o.GraphqlGraphqlBatchHandler == nil {
   486  		unregistered = append(unregistered, "graphql.GraphqlBatchHandler")
   487  	}
   488  	if o.GraphqlGraphqlPostHandler == nil {
   489  		unregistered = append(unregistered, "graphql.GraphqlPostHandler")
   490  	}
   491  	if o.MetaMetaGetHandler == nil {
   492  		unregistered = append(unregistered, "meta.MetaGetHandler")
   493  	}
   494  	if o.NodesNodesGetHandler == nil {
   495  		unregistered = append(unregistered, "nodes.NodesGetHandler")
   496  	}
   497  	if o.NodesNodesGetClassHandler == nil {
   498  		unregistered = append(unregistered, "nodes.NodesGetClassHandler")
   499  	}
   500  	if o.ObjectsObjectsClassDeleteHandler == nil {
   501  		unregistered = append(unregistered, "objects.ObjectsClassDeleteHandler")
   502  	}
   503  	if o.ObjectsObjectsClassGetHandler == nil {
   504  		unregistered = append(unregistered, "objects.ObjectsClassGetHandler")
   505  	}
   506  	if o.ObjectsObjectsClassHeadHandler == nil {
   507  		unregistered = append(unregistered, "objects.ObjectsClassHeadHandler")
   508  	}
   509  	if o.ObjectsObjectsClassPatchHandler == nil {
   510  		unregistered = append(unregistered, "objects.ObjectsClassPatchHandler")
   511  	}
   512  	if o.ObjectsObjectsClassPutHandler == nil {
   513  		unregistered = append(unregistered, "objects.ObjectsClassPutHandler")
   514  	}
   515  	if o.ObjectsObjectsClassReferencesCreateHandler == nil {
   516  		unregistered = append(unregistered, "objects.ObjectsClassReferencesCreateHandler")
   517  	}
   518  	if o.ObjectsObjectsClassReferencesDeleteHandler == nil {
   519  		unregistered = append(unregistered, "objects.ObjectsClassReferencesDeleteHandler")
   520  	}
   521  	if o.ObjectsObjectsClassReferencesPutHandler == nil {
   522  		unregistered = append(unregistered, "objects.ObjectsClassReferencesPutHandler")
   523  	}
   524  	if o.ObjectsObjectsCreateHandler == nil {
   525  		unregistered = append(unregistered, "objects.ObjectsCreateHandler")
   526  	}
   527  	if o.ObjectsObjectsDeleteHandler == nil {
   528  		unregistered = append(unregistered, "objects.ObjectsDeleteHandler")
   529  	}
   530  	if o.ObjectsObjectsGetHandler == nil {
   531  		unregistered = append(unregistered, "objects.ObjectsGetHandler")
   532  	}
   533  	if o.ObjectsObjectsHeadHandler == nil {
   534  		unregistered = append(unregistered, "objects.ObjectsHeadHandler")
   535  	}
   536  	if o.ObjectsObjectsListHandler == nil {
   537  		unregistered = append(unregistered, "objects.ObjectsListHandler")
   538  	}
   539  	if o.ObjectsObjectsPatchHandler == nil {
   540  		unregistered = append(unregistered, "objects.ObjectsPatchHandler")
   541  	}
   542  	if o.ObjectsObjectsReferencesCreateHandler == nil {
   543  		unregistered = append(unregistered, "objects.ObjectsReferencesCreateHandler")
   544  	}
   545  	if o.ObjectsObjectsReferencesDeleteHandler == nil {
   546  		unregistered = append(unregistered, "objects.ObjectsReferencesDeleteHandler")
   547  	}
   548  	if o.ObjectsObjectsReferencesUpdateHandler == nil {
   549  		unregistered = append(unregistered, "objects.ObjectsReferencesUpdateHandler")
   550  	}
   551  	if o.ObjectsObjectsUpdateHandler == nil {
   552  		unregistered = append(unregistered, "objects.ObjectsUpdateHandler")
   553  	}
   554  	if o.ObjectsObjectsValidateHandler == nil {
   555  		unregistered = append(unregistered, "objects.ObjectsValidateHandler")
   556  	}
   557  	if o.SchemaSchemaClusterStatusHandler == nil {
   558  		unregistered = append(unregistered, "schema.SchemaClusterStatusHandler")
   559  	}
   560  	if o.SchemaSchemaDumpHandler == nil {
   561  		unregistered = append(unregistered, "schema.SchemaDumpHandler")
   562  	}
   563  	if o.SchemaSchemaObjectsCreateHandler == nil {
   564  		unregistered = append(unregistered, "schema.SchemaObjectsCreateHandler")
   565  	}
   566  	if o.SchemaSchemaObjectsDeleteHandler == nil {
   567  		unregistered = append(unregistered, "schema.SchemaObjectsDeleteHandler")
   568  	}
   569  	if o.SchemaSchemaObjectsGetHandler == nil {
   570  		unregistered = append(unregistered, "schema.SchemaObjectsGetHandler")
   571  	}
   572  	if o.SchemaSchemaObjectsPropertiesAddHandler == nil {
   573  		unregistered = append(unregistered, "schema.SchemaObjectsPropertiesAddHandler")
   574  	}
   575  	if o.SchemaSchemaObjectsShardsGetHandler == nil {
   576  		unregistered = append(unregistered, "schema.SchemaObjectsShardsGetHandler")
   577  	}
   578  	if o.SchemaSchemaObjectsShardsUpdateHandler == nil {
   579  		unregistered = append(unregistered, "schema.SchemaObjectsShardsUpdateHandler")
   580  	}
   581  	if o.SchemaSchemaObjectsUpdateHandler == nil {
   582  		unregistered = append(unregistered, "schema.SchemaObjectsUpdateHandler")
   583  	}
   584  	if o.SchemaTenantsCreateHandler == nil {
   585  		unregistered = append(unregistered, "schema.TenantsCreateHandler")
   586  	}
   587  	if o.SchemaTenantsDeleteHandler == nil {
   588  		unregistered = append(unregistered, "schema.TenantsDeleteHandler")
   589  	}
   590  	if o.SchemaTenantsGetHandler == nil {
   591  		unregistered = append(unregistered, "schema.TenantsGetHandler")
   592  	}
   593  	if o.SchemaTenantsUpdateHandler == nil {
   594  		unregistered = append(unregistered, "schema.TenantsUpdateHandler")
   595  	}
   596  	if o.WeaviateRootHandler == nil {
   597  		unregistered = append(unregistered, "WeaviateRootHandler")
   598  	}
   599  	if o.WeaviateWellknownLivenessHandler == nil {
   600  		unregistered = append(unregistered, "WeaviateWellknownLivenessHandler")
   601  	}
   602  	if o.WeaviateWellknownReadinessHandler == nil {
   603  		unregistered = append(unregistered, "WeaviateWellknownReadinessHandler")
   604  	}
   605  
   606  	if len(unregistered) > 0 {
   607  		return fmt.Errorf("missing registration: %s", strings.Join(unregistered, ", "))
   608  	}
   609  
   610  	return nil
   611  }
   612  
   613  // ServeErrorFor gets a error handler for a given operation id
   614  func (o *WeaviateAPI) ServeErrorFor(operationID string) func(http.ResponseWriter, *http.Request, error) {
   615  	return o.ServeError
   616  }
   617  
   618  // AuthenticatorsFor gets the authenticators for the specified security schemes
   619  func (o *WeaviateAPI) AuthenticatorsFor(schemes map[string]spec.SecurityScheme) map[string]runtime.Authenticator {
   620  	result := make(map[string]runtime.Authenticator)
   621  	for name := range schemes {
   622  		switch name {
   623  		case "oidc":
   624  			result[name] = o.BearerAuthenticator(name, func(token string, scopes []string) (interface{}, error) {
   625  				return o.OidcAuth(token, scopes)
   626  			})
   627  
   628  		}
   629  	}
   630  	return result
   631  }
   632  
   633  // Authorizer returns the registered authorizer
   634  func (o *WeaviateAPI) Authorizer() runtime.Authorizer {
   635  	return o.APIAuthorizer
   636  }
   637  
   638  // ConsumersFor gets the consumers for the specified media types.
   639  // MIME type parameters are ignored here.
   640  func (o *WeaviateAPI) ConsumersFor(mediaTypes []string) map[string]runtime.Consumer {
   641  	result := make(map[string]runtime.Consumer, len(mediaTypes))
   642  	for _, mt := range mediaTypes {
   643  		switch mt {
   644  		case "application/json":
   645  			result["application/json"] = o.JSONConsumer
   646  		case "application/yaml":
   647  			result["application/yaml"] = o.YamlConsumer
   648  		}
   649  
   650  		if c, ok := o.customConsumers[mt]; ok {
   651  			result[mt] = c
   652  		}
   653  	}
   654  	return result
   655  }
   656  
   657  // ProducersFor gets the producers for the specified media types.
   658  // MIME type parameters are ignored here.
   659  func (o *WeaviateAPI) ProducersFor(mediaTypes []string) map[string]runtime.Producer {
   660  	result := make(map[string]runtime.Producer, len(mediaTypes))
   661  	for _, mt := range mediaTypes {
   662  		switch mt {
   663  		case "application/json":
   664  			result["application/json"] = o.JSONProducer
   665  		}
   666  
   667  		if p, ok := o.customProducers[mt]; ok {
   668  			result[mt] = p
   669  		}
   670  	}
   671  	return result
   672  }
   673  
   674  // HandlerFor gets a http.Handler for the provided operation method and path
   675  func (o *WeaviateAPI) HandlerFor(method, path string) (http.Handler, bool) {
   676  	if o.handlers == nil {
   677  		return nil, false
   678  	}
   679  	um := strings.ToUpper(method)
   680  	if _, ok := o.handlers[um]; !ok {
   681  		return nil, false
   682  	}
   683  	if path == "/" {
   684  		path = ""
   685  	}
   686  	h, ok := o.handlers[um][path]
   687  	return h, ok
   688  }
   689  
   690  // Context returns the middleware context for the weaviate API
   691  func (o *WeaviateAPI) Context() *middleware.Context {
   692  	if o.context == nil {
   693  		o.context = middleware.NewRoutableContext(o.spec, o, nil)
   694  	}
   695  
   696  	return o.context
   697  }
   698  
   699  func (o *WeaviateAPI) initHandlerCache() {
   700  	o.Context() // don't care about the result, just that the initialization happened
   701  	if o.handlers == nil {
   702  		o.handlers = make(map[string]map[string]http.Handler)
   703  	}
   704  
   705  	if o.handlers["GET"] == nil {
   706  		o.handlers["GET"] = make(map[string]http.Handler)
   707  	}
   708  	o.handlers["GET"]["/.well-known/openid-configuration"] = well_known.NewGetWellKnownOpenidConfiguration(o.context, o.WellKnownGetWellKnownOpenidConfigurationHandler)
   709  	if o.handlers["POST"] == nil {
   710  		o.handlers["POST"] = make(map[string]http.Handler)
   711  	}
   712  	o.handlers["POST"]["/backups/{backend}"] = backups.NewBackupsCreate(o.context, o.BackupsBackupsCreateHandler)
   713  	if o.handlers["GET"] == nil {
   714  		o.handlers["GET"] = make(map[string]http.Handler)
   715  	}
   716  	o.handlers["GET"]["/backups/{backend}/{id}"] = backups.NewBackupsCreateStatus(o.context, o.BackupsBackupsCreateStatusHandler)
   717  	if o.handlers["POST"] == nil {
   718  		o.handlers["POST"] = make(map[string]http.Handler)
   719  	}
   720  	o.handlers["POST"]["/backups/{backend}/{id}/restore"] = backups.NewBackupsRestore(o.context, o.BackupsBackupsRestoreHandler)
   721  	if o.handlers["GET"] == nil {
   722  		o.handlers["GET"] = make(map[string]http.Handler)
   723  	}
   724  	o.handlers["GET"]["/backups/{backend}/{id}/restore"] = backups.NewBackupsRestoreStatus(o.context, o.BackupsBackupsRestoreStatusHandler)
   725  	if o.handlers["POST"] == nil {
   726  		o.handlers["POST"] = make(map[string]http.Handler)
   727  	}
   728  	o.handlers["POST"]["/batch/objects"] = batch.NewBatchObjectsCreate(o.context, o.BatchBatchObjectsCreateHandler)
   729  	if o.handlers["DELETE"] == nil {
   730  		o.handlers["DELETE"] = make(map[string]http.Handler)
   731  	}
   732  	o.handlers["DELETE"]["/batch/objects"] = batch.NewBatchObjectsDelete(o.context, o.BatchBatchObjectsDeleteHandler)
   733  	if o.handlers["POST"] == nil {
   734  		o.handlers["POST"] = make(map[string]http.Handler)
   735  	}
   736  	o.handlers["POST"]["/batch/references"] = batch.NewBatchReferencesCreate(o.context, o.BatchBatchReferencesCreateHandler)
   737  	if o.handlers["GET"] == nil {
   738  		o.handlers["GET"] = make(map[string]http.Handler)
   739  	}
   740  	o.handlers["GET"]["/classifications/{id}"] = classifications.NewClassificationsGet(o.context, o.ClassificationsClassificationsGetHandler)
   741  	if o.handlers["POST"] == nil {
   742  		o.handlers["POST"] = make(map[string]http.Handler)
   743  	}
   744  	o.handlers["POST"]["/classifications"] = classifications.NewClassificationsPost(o.context, o.ClassificationsClassificationsPostHandler)
   745  	if o.handlers["POST"] == nil {
   746  		o.handlers["POST"] = make(map[string]http.Handler)
   747  	}
   748  	o.handlers["POST"]["/graphql/batch"] = graphql.NewGraphqlBatch(o.context, o.GraphqlGraphqlBatchHandler)
   749  	if o.handlers["POST"] == nil {
   750  		o.handlers["POST"] = make(map[string]http.Handler)
   751  	}
   752  	o.handlers["POST"]["/graphql"] = graphql.NewGraphqlPost(o.context, o.GraphqlGraphqlPostHandler)
   753  	if o.handlers["GET"] == nil {
   754  		o.handlers["GET"] = make(map[string]http.Handler)
   755  	}
   756  	o.handlers["GET"]["/meta"] = meta.NewMetaGet(o.context, o.MetaMetaGetHandler)
   757  	if o.handlers["GET"] == nil {
   758  		o.handlers["GET"] = make(map[string]http.Handler)
   759  	}
   760  	o.handlers["GET"]["/nodes"] = nodes.NewNodesGet(o.context, o.NodesNodesGetHandler)
   761  	if o.handlers["GET"] == nil {
   762  		o.handlers["GET"] = make(map[string]http.Handler)
   763  	}
   764  	o.handlers["GET"]["/nodes/{className}"] = nodes.NewNodesGetClass(o.context, o.NodesNodesGetClassHandler)
   765  	if o.handlers["DELETE"] == nil {
   766  		o.handlers["DELETE"] = make(map[string]http.Handler)
   767  	}
   768  	o.handlers["DELETE"]["/objects/{className}/{id}"] = objects.NewObjectsClassDelete(o.context, o.ObjectsObjectsClassDeleteHandler)
   769  	if o.handlers["GET"] == nil {
   770  		o.handlers["GET"] = make(map[string]http.Handler)
   771  	}
   772  	o.handlers["GET"]["/objects/{className}/{id}"] = objects.NewObjectsClassGet(o.context, o.ObjectsObjectsClassGetHandler)
   773  	if o.handlers["HEAD"] == nil {
   774  		o.handlers["HEAD"] = make(map[string]http.Handler)
   775  	}
   776  	o.handlers["HEAD"]["/objects/{className}/{id}"] = objects.NewObjectsClassHead(o.context, o.ObjectsObjectsClassHeadHandler)
   777  	if o.handlers["PATCH"] == nil {
   778  		o.handlers["PATCH"] = make(map[string]http.Handler)
   779  	}
   780  	o.handlers["PATCH"]["/objects/{className}/{id}"] = objects.NewObjectsClassPatch(o.context, o.ObjectsObjectsClassPatchHandler)
   781  	if o.handlers["PUT"] == nil {
   782  		o.handlers["PUT"] = make(map[string]http.Handler)
   783  	}
   784  	o.handlers["PUT"]["/objects/{className}/{id}"] = objects.NewObjectsClassPut(o.context, o.ObjectsObjectsClassPutHandler)
   785  	if o.handlers["POST"] == nil {
   786  		o.handlers["POST"] = make(map[string]http.Handler)
   787  	}
   788  	o.handlers["POST"]["/objects/{className}/{id}/references/{propertyName}"] = objects.NewObjectsClassReferencesCreate(o.context, o.ObjectsObjectsClassReferencesCreateHandler)
   789  	if o.handlers["DELETE"] == nil {
   790  		o.handlers["DELETE"] = make(map[string]http.Handler)
   791  	}
   792  	o.handlers["DELETE"]["/objects/{className}/{id}/references/{propertyName}"] = objects.NewObjectsClassReferencesDelete(o.context, o.ObjectsObjectsClassReferencesDeleteHandler)
   793  	if o.handlers["PUT"] == nil {
   794  		o.handlers["PUT"] = make(map[string]http.Handler)
   795  	}
   796  	o.handlers["PUT"]["/objects/{className}/{id}/references/{propertyName}"] = objects.NewObjectsClassReferencesPut(o.context, o.ObjectsObjectsClassReferencesPutHandler)
   797  	if o.handlers["POST"] == nil {
   798  		o.handlers["POST"] = make(map[string]http.Handler)
   799  	}
   800  	o.handlers["POST"]["/objects"] = objects.NewObjectsCreate(o.context, o.ObjectsObjectsCreateHandler)
   801  	if o.handlers["DELETE"] == nil {
   802  		o.handlers["DELETE"] = make(map[string]http.Handler)
   803  	}
   804  	o.handlers["DELETE"]["/objects/{id}"] = objects.NewObjectsDelete(o.context, o.ObjectsObjectsDeleteHandler)
   805  	if o.handlers["GET"] == nil {
   806  		o.handlers["GET"] = make(map[string]http.Handler)
   807  	}
   808  	o.handlers["GET"]["/objects/{id}"] = objects.NewObjectsGet(o.context, o.ObjectsObjectsGetHandler)
   809  	if o.handlers["HEAD"] == nil {
   810  		o.handlers["HEAD"] = make(map[string]http.Handler)
   811  	}
   812  	o.handlers["HEAD"]["/objects/{id}"] = objects.NewObjectsHead(o.context, o.ObjectsObjectsHeadHandler)
   813  	if o.handlers["GET"] == nil {
   814  		o.handlers["GET"] = make(map[string]http.Handler)
   815  	}
   816  	o.handlers["GET"]["/objects"] = objects.NewObjectsList(o.context, o.ObjectsObjectsListHandler)
   817  	if o.handlers["PATCH"] == nil {
   818  		o.handlers["PATCH"] = make(map[string]http.Handler)
   819  	}
   820  	o.handlers["PATCH"]["/objects/{id}"] = objects.NewObjectsPatch(o.context, o.ObjectsObjectsPatchHandler)
   821  	if o.handlers["POST"] == nil {
   822  		o.handlers["POST"] = make(map[string]http.Handler)
   823  	}
   824  	o.handlers["POST"]["/objects/{id}/references/{propertyName}"] = objects.NewObjectsReferencesCreate(o.context, o.ObjectsObjectsReferencesCreateHandler)
   825  	if o.handlers["DELETE"] == nil {
   826  		o.handlers["DELETE"] = make(map[string]http.Handler)
   827  	}
   828  	o.handlers["DELETE"]["/objects/{id}/references/{propertyName}"] = objects.NewObjectsReferencesDelete(o.context, o.ObjectsObjectsReferencesDeleteHandler)
   829  	if o.handlers["PUT"] == nil {
   830  		o.handlers["PUT"] = make(map[string]http.Handler)
   831  	}
   832  	o.handlers["PUT"]["/objects/{id}/references/{propertyName}"] = objects.NewObjectsReferencesUpdate(o.context, o.ObjectsObjectsReferencesUpdateHandler)
   833  	if o.handlers["PUT"] == nil {
   834  		o.handlers["PUT"] = make(map[string]http.Handler)
   835  	}
   836  	o.handlers["PUT"]["/objects/{id}"] = objects.NewObjectsUpdate(o.context, o.ObjectsObjectsUpdateHandler)
   837  	if o.handlers["POST"] == nil {
   838  		o.handlers["POST"] = make(map[string]http.Handler)
   839  	}
   840  	o.handlers["POST"]["/objects/validate"] = objects.NewObjectsValidate(o.context, o.ObjectsObjectsValidateHandler)
   841  	if o.handlers["GET"] == nil {
   842  		o.handlers["GET"] = make(map[string]http.Handler)
   843  	}
   844  	o.handlers["GET"]["/schema/cluster-status"] = schema.NewSchemaClusterStatus(o.context, o.SchemaSchemaClusterStatusHandler)
   845  	if o.handlers["GET"] == nil {
   846  		o.handlers["GET"] = make(map[string]http.Handler)
   847  	}
   848  	o.handlers["GET"]["/schema"] = schema.NewSchemaDump(o.context, o.SchemaSchemaDumpHandler)
   849  	if o.handlers["POST"] == nil {
   850  		o.handlers["POST"] = make(map[string]http.Handler)
   851  	}
   852  	o.handlers["POST"]["/schema"] = schema.NewSchemaObjectsCreate(o.context, o.SchemaSchemaObjectsCreateHandler)
   853  	if o.handlers["DELETE"] == nil {
   854  		o.handlers["DELETE"] = make(map[string]http.Handler)
   855  	}
   856  	o.handlers["DELETE"]["/schema/{className}"] = schema.NewSchemaObjectsDelete(o.context, o.SchemaSchemaObjectsDeleteHandler)
   857  	if o.handlers["GET"] == nil {
   858  		o.handlers["GET"] = make(map[string]http.Handler)
   859  	}
   860  	o.handlers["GET"]["/schema/{className}"] = schema.NewSchemaObjectsGet(o.context, o.SchemaSchemaObjectsGetHandler)
   861  	if o.handlers["POST"] == nil {
   862  		o.handlers["POST"] = make(map[string]http.Handler)
   863  	}
   864  	o.handlers["POST"]["/schema/{className}/properties"] = schema.NewSchemaObjectsPropertiesAdd(o.context, o.SchemaSchemaObjectsPropertiesAddHandler)
   865  	if o.handlers["GET"] == nil {
   866  		o.handlers["GET"] = make(map[string]http.Handler)
   867  	}
   868  	o.handlers["GET"]["/schema/{className}/shards"] = schema.NewSchemaObjectsShardsGet(o.context, o.SchemaSchemaObjectsShardsGetHandler)
   869  	if o.handlers["PUT"] == nil {
   870  		o.handlers["PUT"] = make(map[string]http.Handler)
   871  	}
   872  	o.handlers["PUT"]["/schema/{className}/shards/{shardName}"] = schema.NewSchemaObjectsShardsUpdate(o.context, o.SchemaSchemaObjectsShardsUpdateHandler)
   873  	if o.handlers["PUT"] == nil {
   874  		o.handlers["PUT"] = make(map[string]http.Handler)
   875  	}
   876  	o.handlers["PUT"]["/schema/{className}"] = schema.NewSchemaObjectsUpdate(o.context, o.SchemaSchemaObjectsUpdateHandler)
   877  	if o.handlers["POST"] == nil {
   878  		o.handlers["POST"] = make(map[string]http.Handler)
   879  	}
   880  	o.handlers["POST"]["/schema/{className}/tenants"] = schema.NewTenantsCreate(o.context, o.SchemaTenantsCreateHandler)
   881  	if o.handlers["DELETE"] == nil {
   882  		o.handlers["DELETE"] = make(map[string]http.Handler)
   883  	}
   884  	o.handlers["DELETE"]["/schema/{className}/tenants"] = schema.NewTenantsDelete(o.context, o.SchemaTenantsDeleteHandler)
   885  	if o.handlers["GET"] == nil {
   886  		o.handlers["GET"] = make(map[string]http.Handler)
   887  	}
   888  	o.handlers["GET"]["/schema/{className}/tenants"] = schema.NewTenantsGet(o.context, o.SchemaTenantsGetHandler)
   889  	if o.handlers["PUT"] == nil {
   890  		o.handlers["PUT"] = make(map[string]http.Handler)
   891  	}
   892  	o.handlers["PUT"]["/schema/{className}/tenants"] = schema.NewTenantsUpdate(o.context, o.SchemaTenantsUpdateHandler)
   893  	if o.handlers["GET"] == nil {
   894  		o.handlers["GET"] = make(map[string]http.Handler)
   895  	}
   896  	o.handlers["GET"][""] = NewWeaviateRoot(o.context, o.WeaviateRootHandler)
   897  	if o.handlers["GET"] == nil {
   898  		o.handlers["GET"] = make(map[string]http.Handler)
   899  	}
   900  	o.handlers["GET"]["/.well-known/live"] = NewWeaviateWellknownLiveness(o.context, o.WeaviateWellknownLivenessHandler)
   901  	if o.handlers["GET"] == nil {
   902  		o.handlers["GET"] = make(map[string]http.Handler)
   903  	}
   904  	o.handlers["GET"]["/.well-known/ready"] = NewWeaviateWellknownReadiness(o.context, o.WeaviateWellknownReadinessHandler)
   905  }
   906  
   907  // Serve creates a http handler to serve the API over HTTP
   908  // can be used directly in http.ListenAndServe(":8000", api.Serve(nil))
   909  func (o *WeaviateAPI) Serve(builder middleware.Builder) http.Handler {
   910  	o.Init()
   911  
   912  	if o.Middleware != nil {
   913  		return o.Middleware(builder)
   914  	}
   915  	if o.useSwaggerUI {
   916  		return o.context.APIHandlerSwaggerUI(builder)
   917  	}
   918  	return o.context.APIHandler(builder)
   919  }
   920  
   921  // Init allows you to just initialize the handler cache, you can then recompose the middleware as you see fit
   922  func (o *WeaviateAPI) Init() {
   923  	if len(o.handlers) == 0 {
   924  		o.initHandlerCache()
   925  	}
   926  }
   927  
   928  // RegisterConsumer allows you to add (or override) a consumer for a media type.
   929  func (o *WeaviateAPI) RegisterConsumer(mediaType string, consumer runtime.Consumer) {
   930  	o.customConsumers[mediaType] = consumer
   931  }
   932  
   933  // RegisterProducer allows you to add (or override) a producer for a media type.
   934  func (o *WeaviateAPI) RegisterProducer(mediaType string, producer runtime.Producer) {
   935  	o.customProducers[mediaType] = producer
   936  }
   937  
   938  // AddMiddlewareFor adds a http middleware to existing handler
   939  func (o *WeaviateAPI) AddMiddlewareFor(method, path string, builder middleware.Builder) {
   940  	um := strings.ToUpper(method)
   941  	if path == "/" {
   942  		path = ""
   943  	}
   944  	o.Init()
   945  	if h, ok := o.handlers[um][path]; ok {
   946  		o.handlers[method][path] = builder(h)
   947  	}
   948  }