// Package catalog 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 catalog

// Defines values for CatalogDataCompatibility.
const (
	Kubernetes CatalogDataCompatibility = "kubernetes"
)

// Defines values for CatalogDataType.
const (
	Deployment        CatalogDataType = "Deployment"
	Observability     CatalogDataType = "Observability"
	Resiliency        CatalogDataType = "Resiliency"
	Scaling           CatalogDataType = "Scaling"
	Security          CatalogDataType = "Security"
	TrafficManagement CatalogDataType = "Traffic-management"
	Troubleshooting   CatalogDataType = "Troubleshooting"
	Workloads         CatalogDataType = "Workloads"
)

// CatalogData defines model for CatalogData.
type CatalogData struct {
	// Class Published content is classifed by its support level. Content classes help you understand the origin and expected support level for each piece of content. It is important to note that the level of support may vary within each class, and you should exercise discretion when using community-contributed content. Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable. Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility. Content produced and supported by the respective project or organization responsible for the specific technology. This class offers a level of support from the project maintainers themselves. Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Community content may have varying levels of support and reliability.
	Class *string `json:"class,omitempty" yaml:"class,omitempty"`

	// Compatibility One or more models associated with this catalog item. For designs, a list of one or more models implicated by components within the design. For models, this is self-referential.
	Compatibility []CatalogDataCompatibility `json:"compatibility" yaml:"compatibility"`

	// PatternCaveats Specific stipulations to consider and known behaviors to be aware of when using this design.
	PatternCaveats string `json:"patternCaveats" yaml:"patternCaveats"`

	// PatternInfo Purpose of the design along with its intended and unintended uses.
	PatternInfo string `json:"patternInfo" yaml:"patternInfo"`

	// PublishedVersion Tracks the specific content version that has been made available in the Catalog.
	PublishedVersion *string `json:"publishedVersion,omitempty" yaml:"publishedVersion,omitempty"`

	// SnapshotURL Contains reference to the dark and light mode snapshots of the design.
	SnapshotURL *[]string `json:"snapshotURL,omitempty" yaml:"snapshotURL,omitempty"`

	// Type Categorization of the type of design or operational flow depicted in this design.
	Type CatalogDataType `json:"type" yaml:"type"`
}

// CatalogDataCompatibility defines model for CatalogData.Compatibility.
type CatalogDataCompatibility string

// CatalogDataType Categorization of the type of design or operational flow depicted in this design.
type CatalogDataType string
