handlers

package
v0.0.0-...-9e9d5e8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 74 Imported by: 0

Documentation

Overview

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers Meshplay API.

the purpose of this application is to provide an application that is using plain go code to define an API

This should demonstrate all the possible comment annotations that are available to turn go code into a fully compliant swagger 2.0 spec

Schemes: http
BasePath: /
Version: 0.4.27
License: Apache-2.0 http://www.apache.org/licenses/LICENSE-2.0.txt

Consumes:
- application/json
- multipart/form-data

Produces:
- application/json

Security:
- token: []

SecurityDefinitions:
token:
     type: apiKey
     name: token
     in: cookie

swagger:meta

Package handlers :collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Package handlers : collection of handlers (aka "HTTP middleware")

Index

Constants

View Source
const (
	ErrInvalidK8SConfigNilCode    = "1014"
	ErrNilClientCode              = "1015"
	ErrRecordPreferencesCode      = "1018"
	ErrGrafanaConfigCode          = "1019"
	ErrPrometheusConfigCode       = "1020"
	ErrGrafanaQueryCode           = "1021"
	ErrPrometheusQueryCode        = "1022"
	ErrPrometheusBoardsCode       = "1024"
	ErrStaticBoardsCode           = "1025"
	ErrRequestBodyCode            = "1026"
	ErrParseBoolCode              = "1030"
	ErrStreamEventsCode           = "1031"
	ErrStreamClientCode           = "1032"
	ErrPublishSmiResultsCode      = "1033"
	ErrPluginOpenCode             = "1034"
	ErrPluginLookupCode           = "1035"
	ErrPluginRunCode              = "1036"
	ErrParseFormCode              = "1037"
	ErrQueryGetCode               = "1038"
	ErrGetResultCode              = "1039"
	ErrConvertToSpecCode          = "1040"
	ErrFetchSMIResultsCode        = "1041"
	ErrFormFileCode               = "1042"
	ErrReadConfigCode             = "1043"
	ErrLoadConfigCode             = "1044"
	ErrOpenFileCode               = "1045"
	ErrKubeVersionCode            = "1046"
	ErrAddAdapterCode             = "1047"
	ErrRetrieveDataCode           = "1048"
	ErrValidAdapterCode           = "1049"
	ErrOperationIDCode            = "1050"
	ErrMeshClientCode             = "1051"
	ErrApplyChangeCode            = "1052"
	ErrRetrieveMeshDataCode       = "1053"
	ErrApplicationFailureCode     = "1054"
	ErrDecodingCode               = "1055"
	ErrRetrieveUserTokenCode      = "1056"
	ErrFailToSaveCode             = "1057"
	ErrFailToDeleteCode           = "1058"
	ErrWriteResponseCode          = "1059"
	ErrTestConfigsCode            = "1060"
	ErrInvalidGenValueCode        = "1061"
	ErrFailToLoadExtensionsCode   = "1062"
	ErrConversionCode             = "1063"
	ErrParseDurationCode          = "1064"
	ErrLoadTestCode               = "1065"
	ErrFetchKubernetesCode        = "1066"
	ErrPanicRecoveryCode          = "1067"
	ErrBlankNameCode              = "1068"
	ErrInvalidLTURLCode           = "1069"
	ErrVersionCompareCode         = "1070"
	ErrSaveSessionCode            = "1071"
	ErrKubeClientCode             = "1072"
	ErrWorkloadDefinitionCode     = "1073"
	ErrTraitDefinitionCode        = "1074"
	ErrScopeDefinitionCode        = "1075"
	ErrPatternFileCode            = "1076"
	ErrExecutionPlanCode          = "1077"
	ErrInvalidPatternCode         = "1078"
	ErrCompConfigPairsCode        = "1079"
	ErrCreateDirCode              = "1080"
	ErrInvalidRequestObjectCode   = "1081"
	ErrChangeK8sContextCode       = "1082"
	ErrSavingUserPreferenceCode   = "1083"
	ErrGetFilterCode              = "1084"
	ErrSaveFilterCode             = "1085"
	ErrDecodeFilterCode           = "1086"
	ErrEncodeFilterCode           = "1087"
	ErrImportFilterCode           = "1088"
	ErrFetchFilterCode            = "1089"
	ErrDeleteFilterCode           = "1090"
	ErrSavePatternCode            = "1091"
	ErrSaveApplicationCode        = "1092"
	ErrGetPatternCode             = "1093"
	ErrDeletePatternCode          = "1094"
	ErrFetchPatternCode           = "1095"
	ErrImportPatternCode          = "1096"
	ErrEncodePatternCode          = "1097"
	ErrDecodePatternCode          = "1098"
	ErrParsePatternCode           = "1099"
	ErrConvertPatternCode         = "1100"
	ErrInvalidKubeConfigCode      = "1102"
	ErrInvalidKubeHandlerCode     = "1103"
	ErrInvalidKubeContextCode     = "1104"
	ErrValidateCode               = "1106"
	ErrApplicationContentCode     = "1107"
	ErrRemoteApplicationURL       = "1108"
	ErrClonePatternCode           = "1109"
	ErrCloneFilterCode            = "1110"
	ErrGenerateComponentsCode     = "1111"
	ErrPublishCatalogPatternCode  = "1112"
	ErrPublishCatalogFilterCode   = "1113"
	ErrGetMeshModelsCode          = "1114"
	ErrGetUserDetailsCode         = "1115"
	ErrResolvingRelationship      = "1116"
	ErrGetLatestVersionCode       = "1117"
	ErrCreateFileCode             = "1118"
	ErrLoadCertificateCode        = "1119"
	ErrCleanupCertificateCode     = "1120"
	ErrDownlaodWASMFileCode       = "1121"
	ErrFetchProfileCode           = "1122"
	ErrPerformanceTestCode        = "1123"
	ErrFetchApplicationCode       = "1124"
	ErrDeleteApplicationCode      = "1125"
	ErrGetEventsCode              = "1126"
	ErrUpdateEventCode            = "1127"
	ErrDeleteEventCode            = "1128"
	ErrUnsupportedEventStatusCode = "1129"
	ErrBulkUpdateEventCode        = "1537"
	ErrBulkDeleteEventCode        = "1538"
	ErrFetchMeshSyncResourcesCode = "1539"
	ErrDesignSourceContentCode    = "1554"
	ErrGetConnectionsCode         = "1555"
)

Please reference the following before contributing an error code: https://docs.khulnasoft.com/project/contributing/contributing-error https://github.com/khulnasoft/meshkit/blob/master/errors/errors.go

View Source
const DefaultPageSizeForMeshModelComponents = 25

*Meshmodel endpoints *

Variables

View Source
var (
	ErrInvalidK8SConfigNil = errors.New(ErrInvalidK8SConfigNilCode, errors.Alert, []string{"No valid kubernetes config found. Make sure to pass contextIDs in query parameters."}, []string{"Kubernetes config is not initialized with Meshplay"}, []string{"Kubernetes config is not accessible to meshplay or not valid"}, []string{"Upload your kubernetes config via the settings dashboard. If uploaded, wait for a minute for it to get initialized"})
	ErrNilClient           = errors.New(ErrNilClientCode, errors.Alert, []string{"Kubernetes client not initialized"}, []string{"Kubernetes config is not initialized with Meshplay"}, []string{"Kubernetes config is not accessible to meshplay or not valid"}, []string{"Upload your kubernetes config via the settings dashboard. If uploaded, wait for a minute for it to get initialized"})
	ErrPrometheusConfig    = errors.New(ErrPrometheusConfigCode, errors.Alert, []string{"Prometheus endpoint not configured"}, []string{"Cannot find valid Prometheus endpoint in user pref"}, []string{"Prometheus endpoint might not be reachable from meshplay"}, []string{"Setup your Prometheus Endpoint via the settings dashboard"})
	ErrGrafanaConfig       = errors.New(ErrGrafanaConfigCode, errors.Alert, []string{"Grafana endpoint not configured"}, []string{"Cannot find valid grafana endpoint in user pref"}, []string{"Grafana endpoint might not be reachable from meshplay"}, []string{"Setup your Grafana Endpoint via the settings dashboard"})
	ErrStaticBoards        = errors.New(ErrStaticBoardsCode, errors.Alert, []string{"unable to get static board"}, []string{"unable to get static board"}, []string{"No boards could be available in grafana"}, []string{})
	ErrValidAdapter        = errors.New(ErrValidAdapterCode, errors.Alert, []string{"Unable to find valid Adapter URL"}, []string{"unable to find a valid adapter for the given adapter URL"}, []string{"Given adapter URL is not valid"}, []string{"Please provide a valid Adapter URL"})
	ErrAddAdapter          = errors.New(ErrAddAdapterCode, errors.Alert, []string{"meshLocationURL is empty"}, []string{"meshLocationURL is empty to add an adapter"}, []string{"meshLocationURL cannot be empty to add an adapter"}, []string{"please provide the meshLocationURL"})
	ErrMeshClient          = errors.New(ErrMeshClientCode, errors.Alert, []string{"Error creating a mesh client", "Error pinging the mesh adapter"}, []string{"Unable to create a mesh client", "Unable to ping the mesh adapter"}, []string{"Adapter could not be pinged"}, []string{"Unable to connect to the Mesh adapter using the given config, please try again"})
	ErrWriteResponse       = errors.New(ErrWriteResponseCode, errors.Alert, []string{"Error writing response"}, []string{}, []string{}, []string{})
	ErrTestConfigs         = errors.New(ErrTestConfigsCode, errors.Alert, []string{"Error fetching test configs"}, []string{}, []string{}, []string{})
	ErrInvalidGenValue     = errors.New(ErrInvalidGenValueCode, errors.Alert, []string{"Invalid value for gen"}, []string{}, []string{}, []string{"please provide a valid value for gen (load generator)"})
	ErrParseDuration       = errors.New(ErrParseDurationCode, errors.Alert, []string{"error parsing test duration"}, []string{}, []string{"The format of the duration passed could be incorrect"}, []string{"please refer to:  https://docs.khulnasoft.com/guides/meshplayctl#performance-management"})
	ErrPerformanceTest     = errors.New(ErrPerformanceTestCode, errors.Alert, []string{"Load test error"}, []string{}, []string{"Load test endpoint could be not reachable"}, []string{"Make sure load test endpoint is reachable"})
)

Functions

func CheckLatestVersion

func CheckLatestVersion(serverVersion string) (*bool, string, error)

CheckLatestVersion takes in the current server version compares it with the target and returns the (isOutdated, latestVersion, error)

func ErrApplicationFailure

func ErrApplicationFailure(err error, obj string) error

func ErrApplicationSourceContent

func ErrApplicationSourceContent(err error, obj string) error

func ErrApplyChange

func ErrApplyChange(err error) error

func ErrBlankName

func ErrBlankName(err error) error

func ErrBulkDeleteEvent

func ErrBulkDeleteEvent(err error) error

func ErrBulkUpdateEvent

func ErrBulkUpdateEvent(err error) error

func ErrChangeK8sContext

func ErrChangeK8sContext(err error) error

func ErrCleanupCertificate

func ErrCleanupCertificate(err error, obj string) error

func ErrCloneFilter

func ErrCloneFilter(err error) error

func ErrClonePattern

func ErrClonePattern(err error) error

func ErrCompConfigPairs

func ErrCompConfigPairs(err error) error

func ErrConversion

func ErrConversion(err error) error

func ErrConvertPattern

func ErrConvertPattern(err error) error

func ErrConvertToSpec

func ErrConvertToSpec(err error) error

func ErrCreateDir

func ErrCreateDir(err error, obj string) error

func ErrCreateFile

func ErrCreateFile(err error, obj string) error

func ErrDecodeFilter

func ErrDecodeFilter(err error) error

func ErrDecodePattern

func ErrDecodePattern(err error) error

func ErrDecoding

func ErrDecoding(err error, obj string) error

func ErrDeleteApplication

func ErrDeleteApplication(err error) error

func ErrDeleteEvent

func ErrDeleteEvent(err error, id string) error

func ErrDeleteFilter

func ErrDeleteFilter(err error) error

func ErrDeletePattern

func ErrDeletePattern(err error) error

func ErrDesignSourceContent

func ErrDesignSourceContent(err error, obj string) error

func ErrDownloadWASMFile

func ErrDownloadWASMFile(err error, obj string) error

func ErrEncodeFilter

func ErrEncodeFilter(err error) error

func ErrEncodePattern

func ErrEncodePattern(err error) error

func ErrExecutionPlan

func ErrExecutionPlan(err error) error

func ErrFailToDelete

func ErrFailToDelete(err error, obj string) error

func ErrFailToLoadExtensions

func ErrFailToLoadExtensions(err error) error

func ErrFailToSave

func ErrFailToSave(err error, obj string) error

func ErrFetchApplication

func ErrFetchApplication(err error) error

func ErrFetchFilter

func ErrFetchFilter(err error) error

func ErrFetchKubernetes

func ErrFetchKubernetes(err error) error

func ErrFetchMeshSyncResources

func ErrFetchMeshSyncResources(err error) error

ErrFetchMeshSyncResources

func ErrFetchPattern

func ErrFetchPattern(err error) error

func ErrFetchProfile

func ErrFetchProfile(err error) error

func ErrFetchSMIResults

func ErrFetchSMIResults(err error) error

func ErrFormFile

func ErrFormFile(err error) error

func ErrGenerateComponents

func ErrGenerateComponents(err error) error

func ErrGetConnections

func ErrGetConnections(err error) error

func ErrGetEvents

func ErrGetEvents(err error) error

func ErrGetFilter

func ErrGetFilter(err error) error

func ErrGetLatestVersion

func ErrGetLatestVersion(err error) error

func ErrGetMeshModels

func ErrGetMeshModels(err error) error

func ErrGetPattern

func ErrGetPattern(err error) error

func ErrGetResult

func ErrGetResult(err error) error

func ErrGetUserDetails

func ErrGetUserDetails(err error) error

func ErrGrafanaQuery

func ErrGrafanaQuery(err error) error

func ErrImportFilter

func ErrImportFilter(err error) error

func ErrImportPattern

func ErrImportPattern(err error) error

func ErrInvalidKubeConfig

func ErrInvalidKubeConfig(err error, content string) error

func ErrInvalidKubeContext

func ErrInvalidKubeContext(err error, content string) error

func ErrInvalidKubeHandler

func ErrInvalidKubeHandler(err error, content string) error

func ErrInvalidLTURL

func ErrInvalidLTURL(url string) error

func ErrInvalidPattern

func ErrInvalidPattern(err error) error

func ErrInvalidRequestObject

func ErrInvalidRequestObject(fields ...string) error

func ErrKubeClient

func ErrKubeClient(err error) error

func ErrKubeVersion

func ErrKubeVersion(err error) error

func ErrLoadCertificate

func ErrLoadCertificate(err error) error

func ErrLoadConfig

func ErrLoadConfig(err error) error

func ErrLoadTest

func ErrLoadTest(err error, obj string) error

func ErrOpenFile

func ErrOpenFile(file string) error

func ErrOperationID

func ErrOperationID(err error) error

func ErrPanicRecovery

func ErrPanicRecovery(r interface{}) error

func ErrParseBool

func ErrParseBool(err error, obj string) error

func ErrParseForm

func ErrParseForm(err error) error

func ErrParsePattern

func ErrParsePattern(err error) error

func ErrPatternFile

func ErrPatternFile(err error) error

func ErrPluginLookup

func ErrPluginLookup(err error) error

func ErrPluginOpen

func ErrPluginOpen(err error) error

func ErrPluginRun

func ErrPluginRun(err error) error

func ErrPrometheusBoards

func ErrPrometheusBoards(err error) error

func ErrPrometheusQuery

func ErrPrometheusQuery(err error) error

func ErrPublishCatalogFilter

func ErrPublishCatalogFilter(err error) error

func ErrPublishCatalogPattern

func ErrPublishCatalogPattern(err error) error

func ErrPublishSmiResults

func ErrPublishSmiResults(err error) error

func ErrQueryGet

func ErrQueryGet(obj string) error

func ErrReadConfig

func ErrReadConfig(err error) error

func ErrRecordPreferences

func ErrRecordPreferences(err error) error

func ErrRemoteApplication

func ErrRemoteApplication(err error) error

func ErrRequestBody

func ErrRequestBody(err error) error

func ErrResolvingRegoRelationship

func ErrResolvingRegoRelationship(err error) error

func ErrRetrieveData

func ErrRetrieveData(err error) error

func ErrRetrieveMeshData

func ErrRetrieveMeshData(err error) error

func ErrRetrieveUserToken

func ErrRetrieveUserToken(err error) error

func ErrSaveApplication

func ErrSaveApplication(err error) error

func ErrSaveFilter

func ErrSaveFilter(err error) error

func ErrSavePattern

func ErrSavePattern(err error) error

func ErrSaveSession

func ErrSaveSession(err error) error

func ErrSavingUserPreference

func ErrSavingUserPreference(err error) error

func ErrScopeDefinition

func ErrScopeDefinition(err error) error

func ErrStreamClient

func ErrStreamClient(err error) error

func ErrStreamEvents

func ErrStreamEvents(err error) error

func ErrTraitDefinition

func ErrTraitDefinition(err error) error

func ErrUnsupportedEventStatus

func ErrUnsupportedEventStatus(err error, status string) error

func ErrUpdateEvent

func ErrUpdateEvent(err error, id string) error

func ErrValidate

func ErrValidate(err error) error

func ErrVersionCompare

func ErrVersionCompare(err error) error

func ErrWorkloadDefinition

func ErrWorkloadDefinition(err error) error

func K8sFSMMiddleware

func K8sFSMMiddleware(ctx context.Context, h *Handler, provider models.Provider, user *models.User)

func KubernetesMiddleware

func KubernetesMiddleware(ctx context.Context, h *Handler, provider models.Provider, user *models.User, k8sContextIDs []string) (context.Context, error)

func NewHandlerInstance

func NewHandlerInstance(
	handlerConfig *models.HandlerConfig,
	meshSyncCh chan struct{},
	logger logger.Handler,
	brokerConn broker.Handler,
	compRegHelper *models.ComponentsRegistrationHelper,
	mctrlHelper *models.MeshplayControllersHelper,
	dbHandler *database.Handler,
	eb *events.EventStreamer,
	regManager *meshmodel.RegistryManager,
	provider string,
	rego *policies.Rego,
	connToInstanceTracker *machines.ConnectionToStateMachineInstanceTracker,
) models.HandlerInterface

NewHandlerInstance returns a Handler instance

func ServeReactComponentFromPackage

func ServeReactComponentFromPackage(
	w http.ResponseWriter,
	r *http.Request,
	reqBasePath string,
	provider models.Provider,
)

ServeReactComponentFromPackage serves static assets from the package located at provider.PackageLocation()

func ServeUI

func ServeUI(w http.ResponseWriter, r *http.Request, reqBasePath, baseFolderPath string)

ServeUI - helps serve static files for both meshplay ui and provider ui

Types

type ContentModifier

type ContentModifier struct {
	// contains filtered or unexported fields
}

ContentModifier To be used while adding metadata to patterns,filters and applicationss

func NewContentModifier

func NewContentModifier(token string,
	provider models.Provider,
	prefObj *models.Preference,
	userID string) *ContentModifier

func (*ContentModifier) AddMetadataForPatterns

func (mc *ContentModifier) AddMetadataForPatterns(ctx context.Context, contentBytes *[]byte) error

TODO: Similar mechanisms for filters and applications AddMetadataForPatterns takes in response bytes, and add metadata to it based on some checks

type ExtensionVersion

type ExtensionVersion struct {
	Version string `json:"version,omitempty"`
}

Defines the version metadata for the extension

type Handler

type Handler struct {
	K8sCompRegHelper    *models.ComponentsRegistrationHelper
	MeshplayCtrlsHelper *models.MeshplayControllersHelper
	Provider            string // When set, all endpoints consider tokens / identities / capabilities valid from the single, designated provider.
	SystemID            *uuid.UUID

	EventsBuffer                            *events.EventStreamer
	Rego                                    *policies.Rego
	ConnectionToStateMachineInstanceTracker *machines.ConnectionToStateMachineInstanceTracker
	// contains filtered or unexported fields
}

Handler type is the bucket for configs and http handlers

func (*Handler) AdapterPingHandler

func (h *Handler) AdapterPingHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, _ models.Provider)

AdapterPingHandler is used to ping a given adapter

func (*Handler) AdaptersHandler

func (h *Handler) AdaptersHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

AdaptersHandler is used to fetch all the adapters

func (*Handler) AddConnectionToEnvironmentHandler

func (h *Handler) AddConnectionToEnvironmentHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) AddDesignToWorkspaceHandler

func (h *Handler) AddDesignToWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route POST /api/workspaces/{id}/designs/{designID} WorkspacesAPI idAddMeshplayDesignToWorkspace Handle POST request for adding a meshplay design to a workspace

Adds a meshplay design to a workspace responses: 201: workspaceDesignsMappingResponseWrapper

func (*Handler) AddEnvironmentToWorkspaceHandler

func (h *Handler) AddEnvironmentToWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route POST /api/workspaces/{id}/environments/{environmentID} WorkspacesAPI idAddEnvironmentToWorkspace Handle POST request for adding an environment to a workspace

Adds an environment to a workspace responses: 201: workspaceEnvironmentsMappingResponseWrapper

func (*Handler) ApplicationFileHandler

func (h *Handler) ApplicationFileHandler(
	rw http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

ApplicationFileHandler handles the requested related to application files

func (*Handler) ApplicationFileRequestHandler

func (h *Handler) ApplicationFileRequestHandler(
	rw http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

ApplicationFileRequestHandler will handle requests of both type GET and POST on the route /api/application

func (*Handler) AuthMiddleware

func (h *Handler) AuthMiddleware(next http.Handler, auth models.AuthenticationMechanism) http.Handler

AuthMiddleware is a middleware to validate if a user is authenticated

func (*Handler) AvailableAdaptersHandler

func (h *Handler) AvailableAdaptersHandler(w http.ResponseWriter, _ *http.Request)

AdaptersHandler is used to fetch all the adapters

func (*Handler) BulkDeleteEvent

func (h *Handler) BulkDeleteEvent(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

func (*Handler) BulkUpdateEventStatus

func (h *Handler) BulkUpdateEventStatus(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

func (*Handler) CloneMeshplayFilterHandler

func (h *Handler) CloneMeshplayFilterHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route POST /api/filter/clone/{id} FiltersAPI idCloneMeshplayFilter Handle Clone for a Meshplay Filter

Creates a local copy of a published filter with id: id responses:

200: noContentWrapper

CloneMeshplayFilterHandler clones a filter with the given id

func (*Handler) CloneMeshplayPatternHandler

func (h *Handler) CloneMeshplayPatternHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route POST /api/pattern/clone/{id} PatternsAPI idCloneMeshplayPattern Handle Clone for a Meshplay Pattern

Creates a local copy of a published pattern with id: id responses:

200 : noContentWrapper

CloneMeshplayPatternHandler clones a pattern with the given id

func (*Handler) CollectStaticMetrics

func (h *Handler) CollectStaticMetrics(config *models.SubmitMetricsConfig) error

CollectStaticMetrics is used for collecting static metrics from prometheus and submitting it to Remote Provider

func (*Handler) DeleteConnection

func (h *Handler) DeleteConnection(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route DELETE /api/integrations/connections/{connectionId} DeleteConnection idDeleteConnection Handle DELETE request for deleting an existing connection by connection ID

Deletes existing connection responses: 200: noContentWrapper

func (*Handler) DeleteContext

func (h *Handler) DeleteContext(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

func (*Handler) DeleteEnvironmentHandler

func (h *Handler) DeleteEnvironmentHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) DeleteEvent

func (h *Handler) DeleteEvent(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

func (*Handler) DeleteMeshSyncResource

func (h *Handler) DeleteMeshSyncResource(rw http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) DeleteMeshplayApplicationHandler

func (h *Handler) DeleteMeshplayApplicationHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

DeleteMeshplayApplicationHandler deletes a application with the given id

func (*Handler) DeleteMeshplayFilterHandler

func (h *Handler) DeleteMeshplayFilterHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route DELETE /api/filter/{id} FiltersAPI idDeleteMeshplayFilter Handle Delete for a Meshplay Filter

Deletes a meshplay filter with ID: id responses:

200: noContentWrapper

DeleteMeshplayFilterHandler deletes a filter with the given id

func (*Handler) DeleteMeshplayPatternHandler

func (h *Handler) DeleteMeshplayPatternHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route DELETE /api/pattern/{id} PatternsAPI idDeleteMeshplayPattern Handle Delete for a Meshplay Pattern

Deletes a meshplay pattern with ID: id responses:

200: noContentWrapper

DeleteMeshplayPatternHandler deletes a pattern with the given id

func (*Handler) DeleteMultiMeshplayPatternsHandler

func (h *Handler) DeleteMultiMeshplayPatternsHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route DELETE /api/patterns PatternsAPI idDeleteMeshplayPattern Handle Delete for multiple Meshplay Patterns

DeleteMultiMeshplayPatternsHandler deletes patterns with the given ids

func (*Handler) DeletePerformanceProfileHandler

func (h *Handler) DeletePerformanceProfileHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

DeletePerformanceProfileHandler deletes a performance profile with the given id

func (*Handler) DeleteScheduleHandler

func (h *Handler) DeleteScheduleHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

DeleteScheduleHandler deletes a schedule with the given id

func (*Handler) DeleteUserCredential

func (h *Handler) DeleteUserCredential(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) DeleteWorkspaceHandler

func (h *Handler) DeleteWorkspaceHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route DELETE /api/workspaces/{id} WorkspaceAPI idDeleteWorkspaceHandler Handle DELETE for Workspace based on ID

Deletes a workspace responses: 201: workspaceResponseWrapper

func (*Handler) DesignFileRequestHandlerWithSourceType

func (h *Handler) DesignFileRequestHandlerWithSourceType(
	rw http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

PatternFileRequestHandler will handle requests of both type GET and POST on the route /api/pattern

func (*Handler) DiscoverK8SContextFromKubeConfig

func (h *Handler) DiscoverK8SContextFromKubeConfig(userID string, token string, prov models.Provider) ([]*models.K8sContext, error)

func (*Handler) DownloadMeshplayPatternHandler

func (h *Handler) DownloadMeshplayPatternHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

func (*Handler) EvaluateRelationshipPolicy

func (h *Handler) EvaluateRelationshipPolicy(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route POST /api/meshmodels/relationships/evaluate EvaluateRelationshipPolicy relationshipPolicyEvalPayloadWrapper Handle POST request for evaluating relationships in the provided design file by running a set of provided evaluation queries on the design file

responses: 200

func (*Handler) EventStreamHandler

func (h *Handler) EventStreamHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, p models.Provider)

EventStreamHandler endpoint is used for streaming events to the frontend

func (*Handler) ExtensionsEndpointHandler

func (h *Handler) ExtensionsEndpointHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, _ models.Provider)

func (*Handler) ExtensionsHandler

func (h *Handler) ExtensionsHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

* ExtensionsHandler is a handler function which works as a proxy to resolve the * request of any extension point to its remote provider

func (*Handler) ExtensionsVersionHandler

func (h *Handler) ExtensionsVersionHandler(w http.ResponseWriter, _ *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) FetchAllResultsHandler

func (h *Handler) FetchAllResultsHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, p models.Provider)

FetchAllResultsHandler fetchs pages of results from Remote Provider and presents it to the UI

func (*Handler) FetchResultsHandler

func (h *Handler) FetchResultsHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, p models.Provider)

FetchResultsHandler fetchs pages of results from Remote Provider and presents it to the UI

func (*Handler) FetchSingleSmiResultHandler

func (h *Handler) FetchSingleSmiResultHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, p models.Provider)

FetchSingleSmiResultHandler gets the result of single smi conformance test

func (*Handler) FetchSmiResultsHandler

func (h *Handler) FetchSmiResultsHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, p models.Provider)

swagger:route GET /api/smi/results Smi idFetchSmiResults Handle GET request for the results of all the smi conformance tests

Results can be further filtered through query parameter

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10

```?search={status|mesh_version|mesh_name|date|id}``` If search is non empty then a greedy search is performed responses:

200: smiResultsResponseWrapper

func (*Handler) FilterFileHandler

func (h *Handler) FilterFileHandler(
	rw http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

FilterFileHandler handles the requested related to filter files

func (*Handler) FilterFileRequestHandler

func (h *Handler) FilterFileRequestHandler(
	rw http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

FilterFileRequestHandler will handle requests of both type GET and POST on the route /api/filter

func (*Handler) GetAllContexts

func (h *Handler) GetAllContexts(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route GET /api/system/kubernetes/contexts GetAllContexts idGetAllContexts Handle GET request for all kubernetes contexts.

Contexts can be further filtered through query parameter

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10

```?search={contextname}``` If search is non empty then a greedy search is performed responses:

200: systemK8sContextsResponseWrapper

func (*Handler) GetAllEvents

func (h *Handler) GetAllEvents(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

func (*Handler) GetAllMeshmodelComponents

func (h *Handler) GetAllMeshmodelComponents(rw http.ResponseWriter, r *http.Request)

func (*Handler) GetAllMeshmodelComponentsByName

func (h *Handler) GetAllMeshmodelComponentsByName(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/components/{name} GetAllMeshmodelComponentsByName idGetAllMeshmodelComponentsByName Handle GET request for getting meshmodel components of a specific type by name across all models and categories

Example: ```/api/meshmodels/components/Namespace``` Components can be further filtered through query parameter

```?model={model}``` If model is unspecified then all models are returned

```?version={version}``` If version is unspecified then all model versions are returned

```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities

```?search={true/false}``` If search is true then a greedy search is performed

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. responses: 200: []meshmodelComponentsDuplicateResponseWrapper

func (*Handler) GetAllMeshmodelPolicies

func (h *Handler) GetAllMeshmodelPolicies(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models/{model}/policies/ GetMeshmodelPolicies idGetMeshmodelPolicies Handle GET request for getting meshmodel policies of a specific model by name.

Example: ```/api/meshmodels/models/kubernetes/policies```

// ```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?search={true/false}``` If search is true then a greedy search is performed

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses:

200: []meshmodelPoliciesResponseWrapper

func (*Handler) GetAllMeshmodelPoliciesByName

func (h *Handler) GetAllMeshmodelPoliciesByName(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models/{model}/policies/{name} GetMeshmodelPoliciesByName idGetMeshmodelPoliciesByName Handle GET request for getting meshmodel policies of a specific model by name.

Example: ```/api/meshmodels/models/kubernetes/policies/{name}```

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?search={true/false}``` If search is true then a greedy search is performed

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses:

200: []meshmodelPoliciesResponseWrapper

func (*Handler) GetAllMeshmodelRelationships

func (h *Handler) GetAllMeshmodelRelationships(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models/{model}/relationships GetAllMeshmodelRelationships idGetAllMeshmodelRelationshipsByModel Handle GET request for getting meshmodel relationships of a specific model

Example: ```/api/meshmodel/model/kubernetes/relationship```

Relationships can be further filtered through query parameter

```?version={version}```

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses:

200: meshmodelRelationshipsResponseWrapper

func (*Handler) GetCatalogMeshplayFiltersHandler

func (h *Handler) GetCatalogMeshplayFiltersHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

swagger:route GET /api/filter/catalog FiltersAPI idGetCatalogMeshplayFiltersHandler Handle GET request for catalog filters

Filters can be further filtered through query parameter

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10.

```?search={filtername}``` If search is non empty then a greedy search is performed responses:

200: meshplayFiltersResponseWrapper

func (*Handler) GetCatalogMeshplayPatternsHandler

func (h *Handler) GetCatalogMeshplayPatternsHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

swagger:route GET /api/pattern/catalog PatternsAPI idGetCatalogMeshplayPatternsHandler Handle GET request for catalog patterns

Patterns can be further filtered through query parameter

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10.

```?search={patternname}``` If search is non empty then a greedy search is performed responses:

200: meshplayPatternsResponseWrapper

func (*Handler) GetConnections

func (h *Handler) GetConnections(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

swagger:route GET /api/integrations/connections GetConnections idGetConnections Handle GET request for getting all connections

```?order={field}``` orders on the passed field

```?search={}``` If search is non empty then a greedy search is performed

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10

```?filter={filter}``` Filter connections with type or sub_type, eg /api/integrations/connections?filter=type%20platform or /api/integrations/connections?filter=sub_type%20management

```?status={status}``` Status takes array as param to filter connections based on status, eg /api/integrations/connections?status=["connected", "deleted"]

```?kind={kind}``` Kind takes array as param to filter connections based on kind, eg /api/integrations/connections?kind=["meshplay", "kubernetes"] responses: 200: meshplayConnectionsResponseWrapper

func (*Handler) GetConnectionsByKind

func (h *Handler) GetConnectionsByKind(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route GET /api/integrations/connections/{connectionKind} GetConnectionsByKind idGetConnectionsByKind Handle GET request for getting all connections for a given kind.

```?order={field}``` orders on the passed field

```?search={}``` If search is non empty then a greedy search is performed

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10 responses: 200: ConnectionPage

func (*Handler) GetConnectionsOfEnvironmentHandler

func (h *Handler) GetConnectionsOfEnvironmentHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route GET /api/environments/{environmentID}/connections EnvironmentAPI idGetConnectionsOfEnvironmentHandler Handle GET for all Connections of Environment

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 20

```?search={environments_name}``` If search is non empty then a greedy search is performed

```?filter={{"assigned": true/false, "deleted_at": true/false}}``` defaults to assigned: false, deleted_at: false

Returns all connections of environment responses:

200: meshplayConnectionsResponseWrapper

func (*Handler) GetConnectionsStatus

func (h *Handler) GetConnectionsStatus(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route GET /api/integrations/connections/status GetConnectionsStatus idGetConnectionsStatus Handle GET request for getting all connections status

Get all connections status responses: 200: meshplayConnectionsStatusPage

func (*Handler) GetContext

func (h *Handler) GetContext(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

not being used....

func (*Handler) GetContextsFromK8SConfig

func (h *Handler) GetContextsFromK8SConfig(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

GetContextsFromK8SConfig returns the context list for a given k8s config

func (*Handler) GetDesignsOfWorkspaceHandler

func (h *Handler) GetDesignsOfWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route GET /api/workspaces/{id}/designs WorkspacesAPI idGetWorkspaceMeshplayDesigns Handles GET for all Meshplay Designs in a Workspace

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 20

```?search={name}``` If search is non empty then a greedy search is performed

```?filter={{"assigned": true/false, "deleted_at": true/false}}``` defaults to assigned: false, deleted_at: false responses:

200: meshplayPatternsResponseWrapper

func (*Handler) GetEnvironmentByIDHandler

func (h *Handler) GetEnvironmentByIDHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetEnvironments

func (h *Handler) GetEnvironments(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetEnvironmentsOfWorkspaceHandler

func (h *Handler) GetEnvironmentsOfWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route GET /api/workspaces/{id}/environments WorkspacesAPI idGetWorkspaceEnvironments Handles GET for all Environments in a Workspace

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 20

```?search={name}``` If search is non empty then a greedy search is performed

```?orgID={orgid}``` orgID is used to retrieve workspaces belonging to a particular org *required*

```?filter={{"assigned": true/false, "deleted_at": true/false}}``` defaults to assigned: false, deleted_at: false responses:

200: environmentsResponseWrapper

func (*Handler) GetEventTypes

func (h *Handler) GetEventTypes(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

swagger:route GET /api/events/types EventsAPI idGetEventStreamer Handle GET request for available event categories and actions. responses: 200:

func (*Handler) GetMeshSyncResources

func (h *Handler) GetMeshSyncResources(rw http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetMeshSyncResourcesKinds

func (h *Handler) GetMeshSyncResourcesKinds(rw http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetMeshmodelCategories

func (h *Handler) GetMeshmodelCategories(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories GetMeshmodelCategories idGetMeshmodelCategories Handle GET request for getting all meshmodel categories

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?search={categoryName}``` If search is non empty then a greedy search is performed

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses:

200: []meshmodelCategoriesResponseWrapper

func (*Handler) GetMeshmodelCategoriesByName

func (h *Handler) GetMeshmodelCategoriesByName(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories/{category} GetMeshmodelCategoriesByName idGetMeshmodelCategoriesByName Handle GET request for getting all meshmodel categories of a given name

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?search={true/false}``` If search is true then a greedy search is performed responses:

200: []meshmodelCategoriesResponseWrapper

func (*Handler) GetMeshmodelComponentByCategory

func (h *Handler) GetMeshmodelComponentByCategory(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories/{category}/components GetMeshmodelComponentByCategory idGetMeshmodelComponentByCategory Handle GET request for getting meshmodel components of a specific model and category.

Components can be further filtered through query parameter

```?version={version}```

```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities

```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned

```?order={field}``` orders on the passed field

```?search={componentname}``` If search is non empty then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. responses:

200: []meshmodelComponentsDuplicateResponseWrapper

func (*Handler) GetMeshmodelComponentByModel

func (h *Handler) GetMeshmodelComponentByModel(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models/{model}/components GetMeshmodelComponentByModel idGetMeshmodelComponentByModel Handle GET request for getting meshmodel components of a specific model. The component type/model name should be lowercase like "kubernetes", "istio"

Example: ```/api/meshmodels/models/kubernetes/components``` Components can be further filtered through query parameter

```?version={version}```

```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities

```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned

```?search={componentname}``` If search is non empty then a greedy search is performed

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. responses: 200: []meshmodelComponentsDuplicateResponseWrapper

func (*Handler) GetMeshmodelComponentByModelByCategory

func (h *Handler) GetMeshmodelComponentByModelByCategory(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories/{category}/models/{model}/components GetMeshmodelComponentByModelByCategory idGetMeshmodelComponentByModelByCategory

Handle GET request for getting meshmodel components of a specific model and category. The component type/model name should be lowercase like "kubernetes", "istio"

Example: ```/api/meshmodels/categories/Orchestration``` and Management/models/kubernetes/components Components can be further filtered through query parameter

```?version={version}```

```?trim={[true]}``` When trim is set to true, the underlying schemas are not returned for entities

```?apiVersion={apiVersion}``` If apiVersion is unspecified then all models are returned

```?order={field}``` orders on the passed field

```?search={componentname}``` If search is non empty then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. responses: 200: []meshmodelComponentsDuplicateResponseWrapper

func (*Handler) GetMeshmodelComponentsByNameByCategory

func (h *Handler) GetMeshmodelComponentsByNameByCategory(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories/{category}/components/{name} GetMeshmodelComponentsByNameByCategory idGetMeshmodelComponentsByNameByCategory Handle GET request for getting meshmodel components of a specific type category.

Example: ```/api/meshmodels/categories/Orchestration``` and Management/components/Namespace Components can be further filtered through query parameter

```?model={model}``` If model is unspecified then all models are returned

```?version={version}``` If version is unspecified then all model versions are returned

```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned

```?order={field}``` orders on the passed field

```?search={true/false}``` If search is true then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. responses:

200: []meshmodelComponentsDuplicateResponseWrapper

func (*Handler) GetMeshmodelComponentsByNameByModel

func (h *Handler) GetMeshmodelComponentsByNameByModel(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models/{model}/components/{name} GetMeshmodelComponentsByNameByModel idGetMeshmodelComponentsByNameByModel Handle GET request for getting meshmodel components of a specific model.

Example: ```/api/meshmodels/models/kubernetes/components/Namespace``` Components can be further filtered through query parameter

```?version={version}``` If version is unspecified then all model versions are returned

```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?search={true/false}``` If search is true then a greedy search is performed

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. returned. responses:

200: []meshmodelComponentsDuplicateResponseWrapper

func (*Handler) GetMeshmodelComponentsByNameByModelByCategory

func (h *Handler) GetMeshmodelComponentsByNameByModelByCategory(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories/{category}/models/{model}/components/{name} GetMeshmodelComponentsByNameByModelByCategory idGetMeshmodelComponentsByNameByModelByCategory Handle GET request for getting meshmodel components of a specific type by model and category.

Example: ```/api/meshmodels/categories/Orchestration``` and Management/models/kubernetes/components/Namespace Components can be further filtered through query parameter

```?version={version}``` If version is unspecified then all model versions are returned

```?apiVersion={apiVersion}``` If apiVersion is unspecified then all components are returned

```?order={field}``` orders on the passed field

```?search={true/false}``` If search is true then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all```

```?annotations={["true"/"false"/]}``` If "true" components having "isAnnotation" property as true are "only" returned, If false all components except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation components being returned. responses: 200: []meshmodelComponentsDuplicateResponseWrapper

func (*Handler) GetMeshmodelModels

func (h *Handler) GetMeshmodelModels(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models GetMeshmodelModels idGetMeshmodelModels Handle GET request for getting all meshmodel models

Returns a list of registered models across all categories

```?version={version}``` If version is unspecified then all models are returned

```?order={field}``` orders on the passed field

```?search={modelname}``` If search is non empty then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses: ```?annotations={["true"/"false"/]}``` If "true" models having "isAnnotation" property as true are "only" returned, If false all models except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation models being returned.

200: meshmodelModelsDuplicateResponseWrapper

func (*Handler) GetMeshmodelModelsByCategories

func (h *Handler) GetMeshmodelModelsByCategories(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories/{category}/models GetMeshmodelModelsByCategories idGetMeshmodelModelsByCategories

Handle GET request for getting all meshmodel models for a given category. The component type/model name should be lowercase like "kubernetes", "istio"

```?version={version}``` If version is unspecified then all models are returned

```?order={field}``` orders on the passed field

```?search={modelname}``` If search is non empty then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` ```?annotations={["true"/"false"/]}``` When this query parameter is "true", only models with the "isAnnotation" property set to true are returned. When this query parameter is "false", all models except those considered to be annotation models are returned. Any other value of the query parameter results in both annoations as well as non-annotation models being returned. responses: ```?annotations={["true"/"false"/]}``` If "true" models having "isAnnotation" property as true are "only" returned, If false all models except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation models being returned.

200: []meshmodelModelsDuplicateResponseWrapper

func (*Handler) GetMeshmodelModelsByCategoriesByModel

func (h *Handler) GetMeshmodelModelsByCategoriesByModel(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/categories/{category}/models/{model} GetMeshmodelModelsByCategoriesByModel idGetMeshmodelModelsByCategoriesByModel

Handle GET request for getting all meshmodel models for a given category. The component type/model name should be lowercase like "kubernetes", "istio"

```?version={version}``` If version is unspecified then all models are returned

```?order={field}``` orders on the passed field

```?search={true/false}``` If search is true then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses: ```?annotations={["true"/"false"/]}``` If "true" models having "isAnnotation" property as true are "only" returned, If false all models except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation models being returned.

200: []meshmodelModelsDuplicateResponseWrapper

func (*Handler) GetMeshmodelModelsByName

func (h *Handler) GetMeshmodelModelsByName(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models/{model} GetMeshmodelModelsByName idGetMeshmodelModelsByName Handle GET request for getting all meshmodel models. The component type/model name should be lowercase like "kubernetes", "istio"

Returns a list of registered models across all categories

```?version={version}``` If version is unspecified then all models are returned

```?order={field}``` orders on the passed field

```?search={true/false}``` If search is true then a greedy search is performed

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses: ```?annotations={["true"/"false"/]}``` If "true" models having "isAnnotation" property as true are "only" returned, If false all models except "annotations" are returned. Any other value of the query parameter results in both annoations as well as non-annotation models being returned.

200: []meshmodelModelsDuplicateResponseWrapper

func (*Handler) GetMeshmodelRegistrants

func (h *Handler) GetMeshmodelRegistrants(rw http.ResponseWriter, r *http.Request)

func (*Handler) GetMeshmodelRelationshipByName

func (h *Handler) GetMeshmodelRelationshipByName(rw http.ResponseWriter, r *http.Request)

swagger:route GET /api/meshmodels/models/{model}/relationships/{name} GetMeshmodelRelationshipByName idGetMeshmodelRelationshipByName Handle GET request for getting meshmodel relationships of a specific model by name.

Example: ```/api/meshmodels/models/kubernetes/relationships/Edge```

Relationships can be further filtered through query parameter

```?version={version}```

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?search={true/false}``` If search is true then a greedy search is performed

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 25. To return all results: ```pagesize=all``` responses:

200: []meshmodelRelationshipsResponseWrapper

func (*Handler) GetMeshplayApplicationFile

func (h *Handler) GetMeshplayApplicationFile(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetMeshplayApplicationFile returns the application file with the given id

func (*Handler) GetMeshplayApplicationHandler

func (h *Handler) GetMeshplayApplicationHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetMeshplayApplicationHandler fetched the application with the given id

func (*Handler) GetMeshplayApplicationSourceHandler

func (h *Handler) GetMeshplayApplicationSourceHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetMeshplayApplicationHandler fetched the application with the given id

func (*Handler) GetMeshplayApplicationTypesHandler

func (h *Handler) GetMeshplayApplicationTypesHandler(
	rw http.ResponseWriter,
	_ *http.Request,
	_ *models.Preference,
	_ *models.User,
	_ models.Provider,
)

swagger:route GET /api/application/types ApplicationsAPI typeGetMeshplayApplication Handle GET request for Meshplay Application types

Get application file types responses:

200: meshplayApplicationTypesResponseWrapper

func (*Handler) GetMeshplayApplicationsHandler

func (h *Handler) GetMeshplayApplicationsHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

GetMeshplayApplicationsHandler returns the list of all the applications saved by the current user

func (*Handler) GetMeshplayDesignTypesHandler

func (h *Handler) GetMeshplayDesignTypesHandler(
	rw http.ResponseWriter,
	_ *http.Request,
	_ *models.Preference,
	_ *models.User,
	_ models.Provider,
)

swagger:route GET /api/pattern/types PatternsAPI typeGetMeshplayPatternTypesHandler Handle GET request for Meshplay Pattern types

Get pattern file types responses:

200: meshplayApplicationTypesResponseWrapper

func (*Handler) GetMeshplayFilterFileHandler

func (h *Handler) GetMeshplayFilterFileHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

swagger:route GET /api/filter/file/{id} FiltersAPI idGetFilterFile Handle GET request for filter file with given id

Returns the Meshplay Filter file saved by the current user with the given id responses:

200: meshplayFilterResponseWrapper

func (*Handler) GetMeshplayFilterHandler

func (h *Handler) GetMeshplayFilterHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetMeshplayFilterHandler fetched the filter with the given id

func (*Handler) GetMeshplayFiltersHandler

func (h *Handler) GetMeshplayFiltersHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

swagger:route GET /api/filter FiltersAPI idGetFilterFiles Handle GET request for filters

Returns the list of all the filters saved by the current user

```?order={field}``` orders on the passed field

```?search=<filter name>``` A string matching is done on the specified filter name

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10

```?visibility={[visibility]}``` Default visibility is public + private; Mulitple visibility filters can be passed as an array Eg: ```?visibility=["public", "published"]``` will return public and published filters

responses:

200: meshplayFiltersResponseWrapper

func (*Handler) GetMeshplayPatternHandler

func (h *Handler) GetMeshplayPatternHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetMeshplayPatternHandler fetched the pattern with the given id

func (*Handler) GetMeshplayPatternSourceHandler

func (h *Handler) GetMeshplayPatternSourceHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetMeshplayPatternHandler fetched the design using the given id and sourcetype

func (*Handler) GetMeshplayPatternsHandler

func (h *Handler) GetMeshplayPatternsHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

swagger:route GET /api/pattern PatternsAPI idGetPatternFiles Handle GET request for patterns

Returns the list of all the patterns saved by the current user This will return all the patterns with their details

```?order={field}``` orders on the passed field

```?search=<design name>``` A string matching is done on the specified design name

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 10

```?visibility={[visibility]}``` Default visibility is public + private; Mulitple visibility filters can be passed as an array Eg: ```?visibility=["public", "published"]``` will return public and published designs

responses:

200: meshplayPatternsResponseWrapper

func (*Handler) GetOrganizations

func (h *Handler) GetOrganizations(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetPerformanceProfileHandler

func (h *Handler) GetPerformanceProfileHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

swagger:route GET /api/user/performance/profiles/{id} PerformanceAPI idGetSinglePerformanceProfile Handle GET requests for performance results of a profile

Returns single performance profile with the given id responses:

200: performanceProfileResponseWrapper

GetPerformanceProfileHandler fetched the performance profile with the given id

func (*Handler) GetPerformanceProfilesHandler

func (h *Handler) GetPerformanceProfilesHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetPerformanceProfilesHandler returns the list of all the performance profiles saved by the current user TODO: make sure cert data is not passed along and used only when test are run add a flag to control this

func (*Handler) GetResultHandler

func (h *Handler) GetResultHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, p models.Provider)

GetResultHandler gets an individual result from provider

func (*Handler) GetSMPServiceMeshes

func (h *Handler) GetSMPServiceMeshes(w http.ResponseWriter, _ *http.Request, _ *models.Preference, _ *models.User, _ models.Provider)

GetSMPServiceMeshes handles the available meshes request

func (*Handler) GetScheduleHandler

func (h *Handler) GetScheduleHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

GetScheduleHandler fetches the schedule with the given id

func (*Handler) GetSchedulesHandler

func (h *Handler) GetSchedulesHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

swagger:route GET /api/user/schedules SchedulesAPI idGetSchedules Handle GET request for Schedules

Returns the list of all the schedules saved by the current user

```?order={field}``` orders on the passed field

```?page={page-number}``` Default page number is 0

```?pagesize={pagesize}``` Default pagesize is 10 responses:

200: schedulesResponseWrapper

func (*Handler) GetSystemDatabase

func (h *Handler) GetSystemDatabase(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route GET /api/system/database GetSystemDatabase idGetSystemDatabase Handle GET request for getting summary about the system database.

Tables can be further filtered through query parameter

```?order={field}``` orders on the passed field

```?sort={asc/desc}``` Default behavior is asc

```?page={page-number}``` Default page number is 1

```?pagesize={pagesize}``` Default pagesize is 10. To return all results: ```pagesize=all```

```?search={tablename}``` If search is non empty then a greedy search is performed responses:

200: systemDatabaseResponseWrapper

func (*Handler) GetUserByIDHandler

func (h *Handler) GetUserByIDHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetUserCredentialByID

func (h *Handler) GetUserCredentialByID(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

func (*Handler) GetUserCredentials

func (h *Handler) GetUserCredentials(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

func (*Handler) GetUsers

func (h *Handler) GetUsers(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetUsersKeys

func (h *Handler) GetUsersKeys(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetWorkspaceByIdHandler

func (h *Handler) GetWorkspaceByIdHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GetWorkspacesHandler

func (h *Handler) GetWorkspacesHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) GrafanaBoardImportForPrometheusHandler

func (h *Handler) GrafanaBoardImportForPrometheusHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, _ models.Provider)

GrafanaBoardImportForPrometheusHandler accepts a Grafana board json, parses it and returns the list of panels

func (*Handler) GrafanaBoardsHandler

func (h *Handler) GrafanaBoardsHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, p models.Provider)

GrafanaBoardsHandler is used for fetching Grafana boards and panels

func (*Handler) GrafanaConfigHandler

func (h *Handler) GrafanaConfigHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, p models.Provider)

GrafanaConfigHandler is used for fetching or persisting or removing Grafana configuration

func (*Handler) GrafanaPingHandler

func (h *Handler) GrafanaPingHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, p models.Provider)

GrafanaPingHandler - used to initiate a Grafana ping

func (*Handler) GrafanaQueryHandler

func (h *Handler) GrafanaQueryHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, p models.Provider)

GrafanaQueryHandler is used for handling Grafana queries

func (*Handler) GrafanaQueryRangeHandler

func (h *Handler) GrafanaQueryRangeHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

GrafanaQueryRangeHandler is used for handling Grafana Range queries

func (*Handler) GraphqlMiddleware

func (h *Handler) GraphqlMiddleware(next http.Handler) func(http.ResponseWriter, *http.Request, *models.Preference, *models.User, models.Provider)

GraphqlSessionInjectorMiddleware - is a middleware which injects user and session object

func (*Handler) HandleResourceSchemas

func (h *Handler) HandleResourceSchemas(rw http.ResponseWriter, r *http.Request)

HandleResourceSchemas handles the request to retrieve and merge resource schemas. swagger:route GET /api/schema/resource/{resourceName} HandleResourceSchemas

Handles the request to retrieve and merge resource JSON schema and UI schema.

Responses:

200
500

func (*Handler) K8SConfigHandler

func (h *Handler) K8SConfigHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

K8SConfigHandler is used for persisting kubernetes config and context info

func (*Handler) K8sRegistrationHandler

func (h *Handler) K8sRegistrationHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route POST /api/system/kubernetes/register SystemAPI idPostK8SRegistration Handle registration request for Kubernetes components

Used to register Kubernetes components to Meshplay from a kubeconfig file responses:

	202:
 400:
 500:

func (*Handler) KubernetesMiddleware

KubernetesMiddleware is a middleware that is responsible for handling kubernetes related stuff such as setting contexts, component generation etc.

func (*Handler) KubernetesPingHandler

func (h *Handler) KubernetesPingHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

KubernetesPingHandler - fetches server version to simulate ping

func (*Handler) LoadExtensionFromPackage

func (h *Handler) LoadExtensionFromPackage(_ http.ResponseWriter, _ *http.Request, provider models.Provider) error

func (*Handler) LoadTestHandler

func (h *Handler) LoadTestHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

LoadTestHandler runs the load test with the given parameters

func (*Handler) LoadTestUsingSMPHandler

func (h *Handler) LoadTestUsingSMPHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, provider models.Provider)

LoadTestUsingSMPHandler runs the load test with the given parameters and SMP

func (*Handler) LoginHandler

func (h *Handler) LoginHandler(w http.ResponseWriter, r *http.Request, p models.Provider, fromMiddleWare bool)

LoginHandler redirects user for auth or issues session

func (*Handler) LogoutHandler

func (h *Handler) LogoutHandler(w http.ResponseWriter, req *http.Request, p models.Provider)

LogoutHandler destroys the session and redirects to home.

func (*Handler) MeshAdapterConfigHandler

func (h *Handler) MeshAdapterConfigHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

MeshAdapterConfigHandler is used to persist adapter config

func (*Handler) MeshModelGenerationHandler

func (h *Handler) MeshModelGenerationHandler(rw http.ResponseWriter, r *http.Request)

request body should be json request body should be of format - {data: [{name: string, register: boolean}]} response format - {data: [{name: string, components: [component], errors: [string] }]}

func (*Handler) MeshOpsHandler

func (h *Handler) MeshOpsHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

MeshOpsHandler is used to send operations to the adapters

func (*Handler) PatternFileHandler

func (h *Handler) PatternFileHandler(
	rw http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

PatternFileHandler handles the requested related to pattern files

func (*Handler) PatternFileRequestHandler

func (h *Handler) PatternFileRequestHandler(
	rw http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

PatternFileRequestHandler will handle requests of both type GET and POST on the route /api/pattern

func (*Handler) ProcessConnectionRegistration

func (h *Handler) ProcessConnectionRegistration(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

func (*Handler) PrometheusConfigHandler

func (h *Handler) PrometheusConfigHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

PrometheusConfigHandler is used for persisting prometheus configuration

func (*Handler) PrometheusPingHandler

func (h *Handler) PrometheusPingHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, p models.Provider)

PrometheusPingHandler - fetches server version to simulate ping

func (*Handler) PrometheusQueryHandler

func (h *Handler) PrometheusQueryHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, p models.Provider)

PrometheusQueryHandler handles prometheus queries

func (*Handler) PrometheusQueryRangeHandler

func (h *Handler) PrometheusQueryRangeHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

PrometheusQueryRangeHandler handles prometheus range queries

func (*Handler) PrometheusStaticBoardHandler

func (h *Handler) PrometheusStaticBoardHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, _ *models.User, provider models.Provider)

PrometheusStaticBoardHandler returns the static board

func (*Handler) ProviderCapabilityHandler

func (h *Handler) ProviderCapabilityHandler(
	w http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

ProviderCapabilityHandler returns the capabilities.json for the provider

func (*Handler) ProviderComponentsHandler

func (h *Handler) ProviderComponentsHandler(
	w http.ResponseWriter,
	r *http.Request,
	prefObj *models.Preference,
	user *models.User,
	provider models.Provider,
)

ProviderComponentsHandler handlers the requests to serve react components from the provider package

func (*Handler) ProviderHandler

func (h *Handler) ProviderHandler(w http.ResponseWriter, r *http.Request)

ProviderHandler - handles the choice of provider

func (*Handler) ProviderMiddleware

func (h *Handler) ProviderMiddleware(next http.Handler) http.Handler

ProviderMiddleware is a middleware to validate if a provider is set

func (*Handler) ProviderUIHandler

func (h *Handler) ProviderUIHandler(w http.ResponseWriter, r *http.Request)

ProviderUIHandler - serves providers UI

func (*Handler) ProvidersHandler

func (h *Handler) ProvidersHandler(w http.ResponseWriter, _ *http.Request)

ProvidersHandler returns a list of providers

func (*Handler) PublishCatalogFilterHandler

func (h *Handler) PublishCatalogFilterHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route POST /api/filter/catalog/publish FiltersAPI idPublishCatalogFilterHandler Handle Publish for a Meshplay Filter

Publishes filter to Meshplay Catalog by setting visibility to published and setting catalog data responses:

202: noContentWrapper

PublishCatalogFilterHandler set visibility of filter with given id as published

func (*Handler) PublishCatalogPatternHandler

func (h *Handler) PublishCatalogPatternHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route POST /api/pattern/catalog/publish PatternsAPI idPublishCatalogPatternHandler Handle Publish for a Meshplay Pattern

Publishes pattern to Meshplay Catalog by setting visibility to published and setting catalog data responses:

202: noContentWrapper

PublishCatalogPatternHandler sets visibility of pattern with given id as published

func (*Handler) RegisterMeshmodelComponents

func (h *Handler) RegisterMeshmodelComponents(rw http.ResponseWriter, r *http.Request)

request body should be json request body should be of ComponentCapability format

func (*Handler) RegisterMeshmodelRelationships

func (h *Handler) RegisterMeshmodelRelationships(rw http.ResponseWriter, r *http.Request)

func (*Handler) RemoveConnectionFromEnvironmentHandler

func (h *Handler) RemoveConnectionFromEnvironmentHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) RemoveDesignFromWorkspaceHandler

func (h *Handler) RemoveDesignFromWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route DELETE /api/workspaces/{id}/designs/{designID} WorkspacesAPI idRemoveMeshplayDesignFromWorkspace Handle DELETE request for removing a meshplay design from a workspace

Removes a meshplay design from a workspace responses: 201: workspaceDesignsMappingResponseWrapper

func (*Handler) RemoveEnvironmentFromWorkspaceHandler

func (h *Handler) RemoveEnvironmentFromWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

swagger:route DELETE /api/workspaces/{id}/environments/{environmentID} WorkspacesAPI idRemoveEnvironmentFromWorkspace Handle DELETE request for removing an environment from a workspace

Removes an environment from a workspace responses: 201: workspaceEnvironmentsMappingResponseWrapper

func (*Handler) ResetSystemDatabase

func (h *Handler) ResetSystemDatabase(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

Reset the system database to its initial state.

func (*Handler) SaveConnection

func (h *Handler) SaveConnection(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route POST /api/integrations/connections PostConnection idPostConnection Handle POST request for creating a new connection

Creates a new connection responses: 201: noContentWrapper

func (*Handler) SaveEnvironment

func (h *Handler) SaveEnvironment(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route POST /api/environments PostEnvironment idSaveEnvironment Handle POST request for creating a new environment

Creates a new environment responses: 201: noContentWrapper

func (*Handler) SavePerformanceProfileHandler

func (h *Handler) SavePerformanceProfileHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

SavePerformanceProfileHandler will save performance profile using the current provider's persistence mechanism

func (*Handler) SaveScheduleHandler

func (h *Handler) SaveScheduleHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	_ *models.User,
	provider models.Provider,
)

SaveScheduleHandler will save schedule using the current provider's persistence mechanism

func (*Handler) SaveSelectedGrafanaBoardsHandler

func (h *Handler) SaveSelectedGrafanaBoardsHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, p models.Provider)

SaveSelectedGrafanaBoardsHandler is used to persist board and panel selection

func (*Handler) SaveSelectedPrometheusBoardsHandler

func (h *Handler) SaveSelectedPrometheusBoardsHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

SaveSelectedPrometheusBoardsHandler persists selected board and panels

func (*Handler) SaveUserCredential

func (h *Handler) SaveUserCredential(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

func (*Handler) SaveWorkspaceHandler

func (h *Handler) SaveWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route POST /api/workspaces PostWorkspace idSaveWorkspace Handle POST request for creating a new workspace

Creates a new workspace responses: 201: workspaceResponseWrapper

func (*Handler) ServerVersionHandler

func (h *Handler) ServerVersionHandler(w http.ResponseWriter, _ *http.Request)

ServerVersionHandler handles the version api request for the server

func (*Handler) SessionInjectorMiddleware

func (h *Handler) SessionInjectorMiddleware(next func(http.ResponseWriter, *http.Request, *models.Preference, *models.User, models.Provider)) http.Handler

SessionInjectorMiddleware - is a middleware which injects user and session object

func (*Handler) SessionSyncHandler

func (h *Handler) SessionSyncHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

SessionSyncHandler is used to send session data to the UI for initial sync

func (*Handler) ShareDesignHandler

func (h *Handler) ShareDesignHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) ShareFilterHandler

func (h *Handler) ShareFilterHandler(w http.ResponseWriter, r *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

func (*Handler) TokenHandler

func (h *Handler) TokenHandler(w http.ResponseWriter, r *http.Request, p models.Provider, fromMiddleWare bool)

TokenHandler Receives token from the actual provider

func (*Handler) UnPublishCatalogFilterHandler

func (h *Handler) UnPublishCatalogFilterHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route DELETE /api/filter/catalog/unpublish FiltersAPI idUnPublishCatalogFilterHandler Handle UnPublish for a Meshplay Filter

Unpublishes filter from Meshplay Catalog by setting visibility to private and removing catalog data from website responses:

200: noContentWrapper

UnPublishCatalogFilterHandler sets visibility of filter with given id as private

func (*Handler) UnPublishCatalogPatternHandler

func (h *Handler) UnPublishCatalogPatternHandler(
	rw http.ResponseWriter,
	r *http.Request,
	_ *models.Preference,
	user *models.User,
	provider models.Provider,
)

swagger:route DELETE /api/pattern/catalog/unpublish PatternsAPI idUnPublishCatalogPatternHandler Handle Publish for a Meshplay Pattern

Unpublishes pattern from Meshplay Catalog by setting visibility to private and removing catalog data from website responses:

200: noContentWrapper

UnPublishCatalogPatternHandler sets visibility of pattern with given id as private

func (*Handler) UpdateConnection

func (h *Handler) UpdateConnection(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route PUT /api/integrations/connections/{connectionKind} PutConnection idPutConnection Handle PUT request for updating an existing connection

Updates existing connection responses: 200: noContentWrapper

func (*Handler) UpdateConnectionById

func (h *Handler) UpdateConnectionById(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route PUT /api/integrations/connections/{connectionId} PutConnectionById idPutConnectionById Handle PUT request for updating an existing connection by connection ID

Updates existing connection using ID responses: 200: meshplayConnectionResponseWrapper

func (*Handler) UpdateConnectionStatus

func (h *Handler) UpdateConnectionStatus(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

func (*Handler) UpdateEnvironmentHandler

func (h *Handler) UpdateEnvironmentHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route PUT /api/environments/{id} PostEnvironment idUpdateEnvironmentHandler Handle PUT request for updating a environment

Updates a environment responses:

200: environmentResponseWrapper

func (*Handler) UpdateEventStatus

func (h *Handler) UpdateEventStatus(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

func (*Handler) UpdateUserCredential

func (h *Handler) UpdateUserCredential(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

func (*Handler) UpdateWorkspaceHandler

func (h *Handler) UpdateWorkspaceHandler(w http.ResponseWriter, req *http.Request, _ *models.Preference, user *models.User, provider models.Provider)

swagger:route PUT /api/workspaces/{id} PostWorkspace idUpdateWorkspaceHandler Handle PUT request for updating a workspace

Updates a workspace responses:

200: workspaceResponseWrapper

func (*Handler) UserHandler

func (h *Handler) UserHandler(w http.ResponseWriter, _ *http.Request, _ *models.Preference, user *models.User, _ models.Provider)

UserHandler returns info about the logged in user

func (*Handler) UserPrefsHandler

func (h *Handler) UserPrefsHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

UserPrefsHandler updates anonymous stats for user or for persisting load test preferences

func (*Handler) UserTestPreferenceDelete

func (h *Handler) UserTestPreferenceDelete(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

UserTestPreferenceDelete deletes the PerformanceTestConfig object

func (*Handler) UserTestPreferenceGet

func (h *Handler) UserTestPreferenceGet(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

UserTestPreferenceGet gets the PerformanceTestConfig object

func (*Handler) UserTestPreferenceHandler

func (h *Handler) UserTestPreferenceHandler(w http.ResponseWriter, req *http.Request, prefObj *models.Preference, user *models.User, provider models.Provider)

UserTestPreferenceHandler is used for persisting load test preferences

func (*Handler) UserTestPreferenceStore

func (h *Handler) UserTestPreferenceStore(w http.ResponseWriter, req *http.Request, _ *models.Preference, _ *models.User, provider models.Provider)

UserTestPreferenceStore is used for persisting load test preferences

func (*Handler) ValidationHandler

func (h *Handler) ValidationHandler(rw http.ResponseWriter, r *http.Request)

request body should be json request body should be of format - {validationItems: {[id]:{schema: string, value: string, valueType: "JSON"|"YAML"|"CUE"}}} response format - {[id]: {isValid: bool, error: string}}

type IDParameterWrapper

type IDParameterWrapper struct {
	// id for a specific
	// in: path
	// required: true
	ID strfmt.UUID `json:"id"`
}

swagger:parameters idGetMeshplayPattern idDeleteMeshplayPattern idGetSinglePerformanceProfile idDeletePerformanceProfile idGETProfileResults idDeleteSchedules idGetSingleSchedule idDeleteMeshplayApplicationFile idGetMeshplayApplication idDeleteMeshplayFilter idGetMeshplayFilter

type MeshplayApplicationRequestBody

type MeshplayApplicationRequestBody struct {
	URL             string                      `json:"url,omitempty"`
	Path            string                      `json:"path,omitempty"`
	Save            bool                        `json:"save,omitempty"`
	ApplicationData *models.MeshplayApplication `json:"application_data,omitempty"`
	CytoscapeJSON   string                      `json:"cytoscape_json,omitempty"`
	Name            string                      `json:"name,omitempty"`
}

MeshplayApplicationRequestBody refers to the type of request body that SaveMeshplayApplication would receive

type MeshplayPatternRequestBody

type MeshplayPatternRequestBody struct {
	Name          string                  `json:"name,omitempty"`
	URL           string                  `json:"url,omitempty"`
	Path          string                  `json:"path,omitempty"`
	Save          bool                    `json:"save,omitempty"`
	PatternData   *models.MeshplayPattern `json:"pattern_data,omitempty"`
	CytoscapeJSON string                  `json:"cytoscape_json,omitempty"`
}

MeshplayPatternRequestBody refers to the type of request body that SaveMeshplayPattern would receive

type SMPMeshes

type SMPMeshes struct {
	AvailableMeshes []string `json:"available_meshes,omitempty"`
}

SMPMeshes defines the JSON payload structure for available meshes api

type SaveK8sContextResponse

type SaveK8sContextResponse struct {
	RegisteredContexts []models.K8sContext `json:"registered_contexts"`
	ConnectedContexts  []models.K8sContext `json:"connected_contexts"`
	IgnoredContexts    []models.K8sContext `json:"ignored_contexts"`
	ErroredContexts    []models.K8sContext `json:"errored_contexts"`
}

SaveK8sContextResponse - struct used as (json marshaled) response to requests for saving k8s contexts

type SessionSyncData

type SessionSyncData struct {
	*models.Preference `json:",inline"`
	K8sConfigs         []SessionSyncDataK8sConfig `json:"k8sConfig,omitempty"`
}

type SessionSyncDataK8sConfig

type SessionSyncDataK8sConfig struct {
	ContextID         string     `json:"id,omitempty"`
	ContextName       string     `json:"name,omitempty"`
	ClusterConfigured bool       `json:"clusterConfigured,omitempty"`
	ConfiguredServer  string     `json:"server,omitempty"`
	ClusterID         string     `json:"clusterID,omitempty"`
	CreatedAt         *time.Time `json:"created_at,omitempty"`
	UpdatedAt         *time.Time `json:"updated_at,omitempty"`
}

type UUIDParamsWrapper

type UUIDParamsWrapper struct {
	// in: query
	UUID strfmt.UUID `json:"uuid"`
}

Parameter swagger:parameters idDeleteLoadPreferences idGetLoadPreferences

type Version

type Version struct {
	Build          string `json:"build,omitempty"`
	Latest         string `json:"latest,omitempty"`
	Outdated       *bool  `json:"outdated,omitempty"`
	CommitSHA      string `json:"commitsha,omitempty"`
	ReleaseChannel string `json:"release_channel,omitempty"`
}

Version defines the Json payload structure for version api\

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL