// Package category provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.1 DO NOT EDIT.
package category

import (
	core "github.com/meshery/schemas/models/core"
)

// Defines values for CategoryDefinitionName.
const (
	Analytics                   CategoryDefinitionName = "Analytics"
	AppDefinitionAndDevelopment CategoryDefinitionName = "App Definition and Development"
	CloudNativeNetwork          CategoryDefinitionName = "Cloud Native Network"
	CloudNativeStorage          CategoryDefinitionName = "Cloud Native Storage"
	Database                    CategoryDefinitionName = "Database"
	MachineLearning             CategoryDefinitionName = "Machine Learning"
	ObservabilityAndAnalysis    CategoryDefinitionName = "Observability and Analysis"
	OrchestrationManagement     CategoryDefinitionName = "Orchestration & Management"
	Platform                    CategoryDefinitionName = "Platform"
	Provisioning                CategoryDefinitionName = "Provisioning"
	Runtime                     CategoryDefinitionName = "Runtime"
	SecurityCompliance          CategoryDefinitionName = "Security & Compliance"
	Serverless                  CategoryDefinitionName = "Serverless"
	Tools                       CategoryDefinitionName = "Tools"
	Uncategorized               CategoryDefinitionName = "Uncategorized"
)

// CategoryDefinition Category of the model.
type CategoryDefinition struct {
	// Id A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.
	ID core.Uuid `json:"id" yaml:"id"`

	// Name The category of the model that determines the main grouping.
	Name CategoryDefinitionName `gorm:"name" json:"name" yaml:"name"`

	// Metadata Additional metadata associated with the category.
	Metadata map[string]interface{} `gorm:"type:bytes;serializer:json" json:"metadata,omitempty" yaml:"metadata,omitempty"`
}

// CategoryDefinitionName The category of the model that determines the main grouping.
type CategoryDefinitionName string
