@meshery/schemas 1.3.52 → 1.3.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -410,7 +410,7 @@ test: Tests that a value at the target location is equal to a specified value.
410
410
  - duplicate: this component is a duplicate of another. The component that is to be the canonical reference and that is duplicated by other components should not be assigned the 'duplicate' status.
411
411
  - maintenance: model is unavailable for a period of time.
412
412
  - enabled: model is available for use for all users of this Meshery Server.
413
- - ignored: model is unavailable for use for all users of this Meshery Server.`,default:"enabled",enum:["ignored","enabled","duplicate","resolved","open"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{"x-order":11,type:"object",description:"Metadata contains additional information associated with the component.",required:["genealogy","isAnnotation","isNamespaced","published","instanceDetails","configurationUISchema"],properties:{genealogy:{"x-order":1,type:"string",description:"Genealogy represents the various representational states of the component.",maxLength:1e3},isAnnotation:{"x-order":2,type:"boolean",description:"Identifies whether the component is semantically meaningful or not; identifies whether the component should be treated as deployable entity or is for purposes of logical representation.",default:false},isNamespaced:{"x-order":3,type:"boolean",description:"Identifies whether the component is scoped to namespace or cluster wide."},published:{"x-order":4,type:"boolean",description:"'published' controls whether the component should be registered in Meshery Registry. When the same 'published' property in Models, is set to 'false', the Model property takes precedence with all Entities in the Model not being registered."},instanceDetails:{"x-order":5,type:"object",description:"InstanceDetails contains information about the instance of the component."},configurationUISchema:{"x-order":6,type:"string",description:"Defines the UI schema for rendering the component's configuration. For more details, visit: https://rjsf-team.github.io/react-jsonschema-form/docs/api-reference/uiSchema/ .",maxLength:2e4}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},configuration:{"x-order":12,description:"The configuration of the component. The configuration is based on the schema defined within the component definition(component.schema).",type:"object",$comment:"The configuration of the component. The configuration is based on the schema defined within the component definition(component.schema).","x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}},component:{"x-order":13,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-go-type":"Component",description:"Data related to the third-party capability that a ComponentDefinition wraps; this payload is treated as a hermetically sealed, opaque object.",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1,maxLength:500},kind:{type:"string",description:"The unique identifier (name) assigned by the registrant to this component. Example: A Kubernetes Pod is of kind 'Pod'.","x-order":2,maxLength:255},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3,maxLength:500}},required:["version","kind","schema"]},createdAt:{description:"Timestamp when the component was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"createdAt",json:"createdAt"},"x-order":14,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the component was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updatedAt",json:"updatedAt"},"x-order":15,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the component was soft-deleted. Null while the component is active.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt,omitempty",yaml:"deletedAt,omitempty"},"x-order":16,"x-go-type":"NullTime",type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}},required:["id","displayName","description","schemaVersion","format","version","configuration","metadata","model","modelReference","component","createdAt","updatedAt"]},{type:"object",properties:{duplicates:{type:"integer",description:"Number of other registered entries sharing this component's kind, version, and model.",minimum:0}}}]},description:"The components matching the query."}}}]}}}},500:{description:"Internal server error."}}},post:{"x-internal":["meshery"],tags:["Registry"],operationId:"registerRegistryComponent",summary:"Register a component definition",description:"Registrant-facing channel through which components are registered into the capabilities registry (used by Meshery Adapters and other registrants during capability registration).",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",description:"Envelope with which a registrant submits an entity definition for registration into the capabilities registry.",required:["connection","entityType","entity"],properties:{connection:{description:"Connection identifying the registrant.",$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name"},"x-order":2,type:"string",description:"Connection Name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":3,type:"string",description:"Human-readable description of the connection and its purpose.",maxLength:1e3},url:{"x-oapi-codegen-extra-tags":{db:"url",json:"url"},"x-order":4,type:"string",format:"uri",description:"URL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).",maxLength:2048},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",json:"credentialId"},"x-order":5,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",json:"type",yaml:"type"},"x-go-name":"ConnectionType","x-order":6,type:"string",description:"Connection Type (platform, telemetry, collaboration)",maxLength:255},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",json:"subType"},"x-order":7,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)",maxLength:255},kind:{"x-oapi-codegen-extra-tags":{db:"kind"},"x-order":8,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)",maxLength:255},modelReference:{"x-go-type":"modelv1beta1.ModelReference","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":8,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"model_reference",db:"model_reference",json:"modelReference",yaml:"modelReference"},"x-generate-db-helpers":true,type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},credentialSchema:{"x-oapi-codegen-extra-tags":{db:"credential_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the credential Associated with the connection"},connectionSchema:{"x-oapi-codegen-extra-tags":{db:"connection_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the connection"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-order":17,description:"Visualization styles for the connection, including svgColor and svgWhite used for UI representation.",type:"object",required:["shape","primaryColor","svgColor","svgWhite","svgComplete"],allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:true,required:["primaryColor","svgColor","svgWhite","svgComplete"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation.",maxLength:500},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation.",maxLength:500},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background.",maxLength:500},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background.",maxLength:500},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background.",maxLength:500},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:500},textOpacity:{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},fontFamily:{type:"string",description:"A comma-separated list of font names to use on the label text.",maxLength:500},fontSize:{type:"string",description:"The size of the label text.",maxLength:500},fontStyle:{type:"string",description:"A CSS font style to be applied to the label text.",maxLength:500},fontWeight:{type:"string",description:"A CSS font weight to be applied to the label text.",maxLength:500},textTransform:{type:"string",description:"A transformation to apply to the label text",enum:["none","uppercase","lowercase"]},opacity:{type:"number",description:"The opacity of the element, ranging from 0 to 1. Note that the opacity of a compound node parent affects the effective opacity of its children.",minimum:0,maximum:1},zIndex:{type:"integer",description:"An integer value that affects the relative draw order of elements. In general, an element with a higher z-index will be drawn on top of an element with a lower z-index. Note that edges are under nodes despite z-index.",minimum:0},label:{type:"string",description:"The text to display for an element's label. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},animation:{type:"object",description:"The animation to apply to the element. example ripple,bounce,etc"}}},{type:"object",properties:{shape:{type:"string",description:"The shape of the node's body. Note that each shape fits within the specified width and height, and so you may have to adjust width and height if you desire an equilateral shape (i.e. width !== height for several equilateral shapes)",enum:["ellipse","triangle","round-triangle","rectangle","round-rectangle","bottom-round-rectangle","cut-rectangle","barrel","rhomboid","diamond","round-diamond","pentagon","round-pentagon","hexagon","round-hexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","star","tag","round-tag","vee","polygon"]},position:{type:"object",additionalProperties:false,required:["x","y"],description:"The position of the node. If the position is set, the node is drawn at that position in the given dimensions. If the position is not set, the node is drawn at a random position.",properties:{x:{type:"number",description:"The x-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"}}},bodyText:{type:"string",description:"The text to display for an element's body. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},bodyTextWrap:{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'.",enum:["none","wrap","ellipsis"]},bodyTextMaxWidth:{type:"string",description:"The maximum width for wrapping text in the node.",maxLength:50},bodyTextOpacity:{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},bodyTextBackgroundColor:{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontSize:{type:"number",description:"The size of the node's body text.",minimum:0},bodyTextColor:{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontWeight:{type:"string",description:"A CSS font weight to be applied to the node's body text.",maxLength:50},bodyTextHorizontalAlign:{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text.",maxLength:50},bodyTextDecoration:{type:"string",description:"A CSS text decoration to be applied to the node's body text.",maxLength:100},bodyTextVerticalAlign:{type:"string",description:"A CSS vertical alignment to be applied to the node's body text.",maxLength:50},width:{type:"number",description:"The width of the node's body or the width of an edge's line.",minimum:0},height:{type:"number",description:"The height of the node's body",minimum:0},backgroundImage:{type:"string",format:"uri",description:"The URL that points to the image to show in the node.",maxLength:2048},backgroundColor:{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},backgroundBlacken:{type:"number",description:"Blackens the node's body for values from 0 to 1; whitens the node's body for values from 0 to -1.",maximum:1,minimum:-1},backgroundOpacity:{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},backgroundPositionX:{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundPositionY:{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetX:{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetY:{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundFit:{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'.",enum:["none","contain","cover"]},backgroundClip:{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'.",enum:["none","node","node-border"]},backgroundWidthRelativeTo:{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},backgroundHeightRelativeTo:{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},borderWidth:{type:"number",description:"The size of the node's border.",minimum:0},borderStyle:{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},borderColor:{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},borderOpacity:{type:"number",description:"The opacity of the node's border",minimum:0,maximum:1},padding:{type:"number",description:"The amount of padding around all sides of the node.",minimum:0},textHalign:{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},textValign:{type:"string",description:"The vertical alignment of a node's label",enum:["top","center","bottom"]},ghost:{type:"string",description:"Whether to use the ghost effect, a semitransparent duplicate of the element drawn at an offset.",default:"no",enum:["yes","no"]},activeBgColor:{type:"string",description:"The colour of the indicator shown when the background is grabbed by the user. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},activeBgOpacity:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},activeBgSize:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},selectionBoxColor:{type:"string",description:"The background colour of the selection box used for drag selection. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},selectionBoxBorderWidth:{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*",minimum:0},selectionBoxOpacity:{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},outsideTextureBgColor:{type:"string",description:"The colour of the area outside the viewport texture when initOptions.textureOnViewport === true. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},outsideTextureBgOpacity:{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},shapePolygonPoints:{type:"string",description:"An array (or a space-separated string) of numbers ranging on [-1, 1], representing alternating x and y values (i.e. x1 y1 x2 y2, x3 y3 ...). This represents the points in the polygon for the node's shape. The bounding box of the node is given by (-1, -1), (1, -1), (1, 1), (-1, 1). The node's position is the origin (0, 0 )",maxLength:2e3},menuBackgroundColor:{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},menuBackgroundOpacity:{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},menuForgroundColor:{type:"string",description:"The colour of the text or icons in the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100}}}]},status:{"x-oapi-codegen-extra-tags":{db:"status"},"x-order":10,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},transitionMap:{type:"object",description:"Map describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.",additionalProperties:{type:"array",items:{type:"object",additionalProperties:false,description:"A single permissible state transition for a connection, describing the next reachable state and the meaning of that transition.",required:["nextState"],properties:{nextState:{description:"The connection state reachable from the current state.","x-go-name":"NextState","x-order":1,type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},description:{type:"string",description:"Human-readable explanation of when or why this transition occurs.",maxLength:1e3,"x-oapi-codegen-extra-tags":{json:"description,omitempty"},"x-order":2}}}},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",json:"transitionMap,omitempty"},"x-order":18},owner:{"x-go-name":"Owner","x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":11,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the connection was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the connection was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},"x-order":13,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the connection was soft-deleted, if applicable.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-order":14,"x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time",nullable:true,"x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta3.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta3/environment",name:"environmentv1beta3"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":15},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":16,"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},default:"connections.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},entityType:{type:"string",description:"Type of the entity being registered (e.g. `component`, `relationship`).",maxLength:255},entity:{type:"string",format:"byte",description:"Base64-encoded JSON definition of the entity being registered."}}}}}},responses:{200:{description:"Component registration processed."},400:{description:"Bad request."},500:{description:"Internal server error."}}}},"/api/registry/components/{name}":{get:{"x-internal":["meshery"],tags:["Registry"],operationId:"getRegistryComponentsByName",summary:"Get registered components by name",security:[],parameters:[{name:"name",in:"path",description:"Kind of the component (e.g. `Deployment`).",required:true,schema:{type:"string",maxLength:255}},{name:"page",in:"query",description:"Zero-indexed page number of the result set.",required:false,schema:{type:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of items per page, or `all` to return every item.",required:false,schema:{type:"string",maxLength:255}},{name:"search",in:"query",description:"When `true`, the component name is matched greedily (substring match).",required:false,schema:{type:"string",maxLength:255}},{name:"order",in:"query",description:"Field to order the results by.",required:false,schema:{type:"string",maxLength:255}},{name:"sort",in:"query",description:"Sort direction (`asc` or `desc`).",required:false,schema:{type:"string",maxLength:255}},{name:"version",in:"query",description:"Filter by model version.",required:false,schema:{type:"string",maxLength:255}},{name:"apiVersion",in:"query",description:"Filter components by their API version.",required:false,schema:{type:"string",maxLength:255}},{name:"trim",in:"query",description:"When `true`, omits large schema payloads from the returned definitions.",required:false,schema:{type:"string",maxLength:255}},{name:"annotations",in:"query",description:"Annotation filter: `true` returns only annotation entities, `false` excludes them, and `include` returns both.",required:false,schema:{type:"string",maxLength:255}}],responses:{200:{description:"Paginated list of matching components.",content:{"application/json":{schema:{description:"A page of registered components.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{components:{type:"array",items:{description:"A registered component, annotated with its duplicate count.",allOf:[{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelID;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
413
+ - ignored: model is unavailable for use for all users of this Meshery Server.`,default:"enabled",enum:["ignored","enabled","duplicate","resolved","open"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{"x-order":11,type:"object",description:"Metadata contains additional information associated with the component.",required:["genealogy","isAnnotation","isNamespaced","published","instanceDetails","configurationUISchema"],properties:{genealogy:{"x-order":1,type:"string",description:"Genealogy represents the various representational states of the component.",maxLength:1e3},isAnnotation:{"x-order":2,type:"boolean",description:"Identifies whether the component is semantically meaningful or not; identifies whether the component should be treated as deployable entity or is for purposes of logical representation.",default:false},isNamespaced:{"x-order":3,type:"boolean",description:"Identifies whether the component is scoped to namespace or cluster wide."},published:{"x-order":4,type:"boolean",description:"'published' controls whether the component should be registered in Meshery Registry. When the same 'published' property in Models, is set to 'false', the Model property takes precedence with all Entities in the Model not being registered."},instanceDetails:{"x-order":5,type:"object",description:"InstanceDetails contains information about the instance of the component."},configurationUISchema:{"x-order":6,type:"string",description:"Defines the UI schema for rendering the component's configuration. For more details, visit: https://rjsf-team.github.io/react-jsonschema-form/docs/api-reference/uiSchema/ .",maxLength:2e4}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},configuration:{"x-order":12,description:"The configuration of the component. The configuration is based on the schema defined within the component definition(component.schema).",type:"object",$comment:"The configuration of the component. The configuration is based on the schema defined within the component definition(component.schema).","x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}},component:{"x-order":13,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-go-type":"Component",description:"Data related to the third-party capability that a ComponentDefinition wraps; this payload is treated as a hermetically sealed, opaque object.",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1,maxLength:500},kind:{type:"string",description:"The unique identifier (name) assigned by the registrant to this component. Example: A Kubernetes Pod is of kind 'Pod'.","x-order":2,maxLength:255},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3,maxLength:500}},required:["version","kind","schema"]},createdAt:{description:"Timestamp when the component was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"createdAt",json:"createdAt"},"x-order":14,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the component was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updatedAt",json:"updatedAt"},"x-order":15,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the component was soft-deleted. Null while the component is active.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt,omitempty",yaml:"deletedAt,omitempty"},"x-order":16,"x-go-type":"NullTime",type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}},required:["id","displayName","description","schemaVersion","format","version","configuration","metadata","model","modelReference","component","createdAt","updatedAt"]},{type:"object",properties:{duplicates:{type:"integer",description:"Number of other registered entries sharing this component's kind, version, and model.",minimum:0}}}]},description:"The components matching the query."}}}]}}}},500:{description:"Internal server error."}}},post:{"x-internal":["meshery"],tags:["Registry"],operationId:"registerRegistryComponent",summary:"Register a component definition",description:"Registrant-facing channel through which components are registered into the capabilities registry (used by Meshery Adapters and other registrants during capability registration).",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",description:"Envelope with which a registrant submits an entity definition for registration into the capabilities registry.",required:["connection","entityType","entity"],properties:{connection:{description:"Connection identifying the registrant.",$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name"},"x-order":2,type:"string",description:"Connection Name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":3,type:"string",description:"Human-readable description of the connection and its purpose.",maxLength:1e3},url:{"x-oapi-codegen-extra-tags":{db:"url",json:"url"},"x-order":4,type:"string",format:"uri",description:"URL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).",maxLength:2048},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",json:"credentialId"},"x-order":5,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",json:"type",yaml:"type"},"x-go-name":"ConnectionType","x-order":6,type:"string",description:"Connection Type (platform, telemetry, collaboration)",maxLength:255},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",json:"subType"},"x-order":7,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)",maxLength:255},kind:{"x-oapi-codegen-extra-tags":{db:"kind"},"x-order":8,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)",maxLength:255},modelReference:{"x-go-type":"modelv1beta1.ModelReference","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":8,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"model_reference",db:"model_reference",json:"modelReference",yaml:"modelReference"},"x-generate-db-helpers":true,type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},credentialSchema:{"x-oapi-codegen-extra-tags":{db:"credential_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the credential Associated with the connection"},connectionSchema:{"x-oapi-codegen-extra-tags":{db:"connection_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the connection"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-order":17,description:"Visualization styles for the connection, including svgColor and svgWhite used for UI representation.",type:"object",required:["shape","primaryColor","svgColor","svgWhite","svgComplete"],allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:true,required:["primaryColor","svgColor","svgWhite","svgComplete"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation.",maxLength:500},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation.",maxLength:500},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background.",maxLength:500},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background.",maxLength:500},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background.",maxLength:500},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:500},textOpacity:{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},fontFamily:{type:"string",description:"A comma-separated list of font names to use on the label text.",maxLength:500},fontSize:{type:"string",description:"The size of the label text.",maxLength:500},fontStyle:{type:"string",description:"A CSS font style to be applied to the label text.",maxLength:500},fontWeight:{type:"string",description:"A CSS font weight to be applied to the label text.",maxLength:500},textTransform:{type:"string",description:"A transformation to apply to the label text",enum:["none","uppercase","lowercase"]},opacity:{type:"number",description:"The opacity of the element, ranging from 0 to 1. Note that the opacity of a compound node parent affects the effective opacity of its children.",minimum:0,maximum:1},zIndex:{type:"integer",description:"An integer value that affects the relative draw order of elements. In general, an element with a higher z-index will be drawn on top of an element with a lower z-index. Note that edges are under nodes despite z-index.",minimum:0},label:{type:"string",description:"The text to display for an element's label. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},animation:{type:"object",description:"The animation to apply to the element. example ripple,bounce,etc"}}},{type:"object",properties:{shape:{type:"string",description:"The shape of the node's body. Note that each shape fits within the specified width and height, and so you may have to adjust width and height if you desire an equilateral shape (i.e. width !== height for several equilateral shapes)",enum:["ellipse","triangle","round-triangle","rectangle","round-rectangle","bottom-round-rectangle","cut-rectangle","barrel","rhomboid","diamond","round-diamond","pentagon","round-pentagon","hexagon","round-hexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","star","tag","round-tag","vee","polygon"]},position:{type:"object",additionalProperties:false,required:["x","y"],description:"The position of the node. If the position is set, the node is drawn at that position in the given dimensions. If the position is not set, the node is drawn at a random position.",properties:{x:{type:"number",description:"The x-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"}}},bodyText:{type:"string",description:"The text to display for an element's body. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},bodyTextWrap:{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'.",enum:["none","wrap","ellipsis"]},bodyTextMaxWidth:{type:"string",description:"The maximum width for wrapping text in the node.",maxLength:50},bodyTextOpacity:{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},bodyTextBackgroundColor:{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontSize:{type:"number",description:"The size of the node's body text.",minimum:0},bodyTextColor:{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontWeight:{type:"string",description:"A CSS font weight to be applied to the node's body text.",maxLength:50},bodyTextHorizontalAlign:{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text.",maxLength:50},bodyTextDecoration:{type:"string",description:"A CSS text decoration to be applied to the node's body text.",maxLength:100},bodyTextVerticalAlign:{type:"string",description:"A CSS vertical alignment to be applied to the node's body text.",maxLength:50},width:{type:"number",description:"The width of the node's body or the width of an edge's line.",minimum:0},height:{type:"number",description:"The height of the node's body",minimum:0},backgroundImage:{type:"string",format:"uri",description:"The URL that points to the image to show in the node.",maxLength:2048},backgroundColor:{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},backgroundBlacken:{type:"number",description:"Blackens the node's body for values from 0 to 1; whitens the node's body for values from 0 to -1.",maximum:1,minimum:-1},backgroundOpacity:{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},backgroundPositionX:{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundPositionY:{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetX:{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetY:{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundFit:{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'.",enum:["none","contain","cover"]},backgroundClip:{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'.",enum:["none","node","node-border"]},backgroundWidthRelativeTo:{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},backgroundHeightRelativeTo:{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},borderWidth:{type:"number",description:"The size of the node's border.",minimum:0},borderStyle:{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},borderColor:{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},borderOpacity:{type:"number",description:"The opacity of the node's border",minimum:0,maximum:1},padding:{type:"number",description:"The amount of padding around all sides of the node.",minimum:0},textHalign:{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},textValign:{type:"string",description:"The vertical alignment of a node's label",enum:["top","center","bottom"]},ghost:{type:"string",description:"Whether to use the ghost effect, a semitransparent duplicate of the element drawn at an offset.",default:"no",enum:["yes","no"]},activeBgColor:{type:"string",description:"The colour of the indicator shown when the background is grabbed by the user. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},activeBgOpacity:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},activeBgSize:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},selectionBoxColor:{type:"string",description:"The background colour of the selection box used for drag selection. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},selectionBoxBorderWidth:{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*",minimum:0},selectionBoxOpacity:{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},outsideTextureBgColor:{type:"string",description:"The colour of the area outside the viewport texture when initOptions.textureOnViewport === true. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},outsideTextureBgOpacity:{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},shapePolygonPoints:{type:"string",description:"An array (or a space-separated string) of numbers ranging on [-1, 1], representing alternating x and y values (i.e. x1 y1 x2 y2, x3 y3 ...). This represents the points in the polygon for the node's shape. The bounding box of the node is given by (-1, -1), (1, -1), (1, 1), (-1, 1). The node's position is the origin (0, 0 )",maxLength:2e3},menuBackgroundColor:{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},menuBackgroundOpacity:{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},menuForgroundColor:{type:"string",description:"The colour of the text or icons in the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100}}}]},status:{"x-oapi-codegen-extra-tags":{db:"status"},"x-order":10,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},transitionMap:{type:"object",description:"Map describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.",additionalProperties:{type:"array",items:{type:"object",additionalProperties:false,description:"A single permissible state transition for a connection, describing the next reachable state and the meaning of that transition.",required:["nextState"],properties:{nextState:{description:"The connection state reachable from the current state.","x-go-name":"NextState","x-order":1,type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},description:{type:"string",description:"Human-readable explanation of when or why this transition occurs.",maxLength:1e3,"x-oapi-codegen-extra-tags":{json:"description,omitempty"},"x-order":2}}}},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",json:"transitionMap,omitempty"},"x-order":18},owner:{"x-go-name":"Owner","x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":11,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the connection was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the connection was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},"x-order":13,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the connection was soft-deleted, if applicable.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-order":14,"x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time",nullable:true,"x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta3.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta3/environment",name:"environmentv1beta3"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":15},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":16,"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},default:"connections.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},entityType:{type:"string",description:"Type of the entity being registered (e.g. `component`, `relationship`).",maxLength:255},entity:{type:"string",format:"byte",description:"Base64-encoded JSON definition of the entity being registered."}}}}}},responses:{200:{description:"Component registration processed."},400:{description:"Bad request."},500:{description:"Internal server error."}}}},"/api/registry/components/{name}":{get:{"x-internal":["meshery"],tags:["Registry"],operationId:"getRegistryComponentsByName",summary:"Get registered components by name",security:[],parameters:[{name:"name",in:"path",description:"Kind of the component (e.g. `Deployment`).",required:true,schema:{type:"string",maxLength:255}},{name:"page",in:"query",description:"Zero-indexed page number of the result set.",required:false,schema:{type:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of items per page, or `all` to return every item.",required:false,schema:{type:"string",maxLength:255}},{name:"search",in:"query",description:"When `true`, the component name is matched greedily (substring match).",required:false,schema:{type:"string",maxLength:255}},{name:"order",in:"query",description:"Field to order the results by.",required:false,schema:{type:"string",maxLength:255}},{name:"sort",in:"query",description:"Sort direction (`asc` or `desc`).",required:false,schema:{type:"string",maxLength:255}},{name:"version",in:"query",description:"Filter by model version.",required:false,schema:{type:"string",maxLength:255}},{name:"apiVersion",in:"query",description:"Filter components by their API version.",required:false,schema:{type:"string",maxLength:255}},{name:"trim",in:"query",description:"When `true`, omits large schema payloads from the returned definitions.",required:false,schema:{type:"string",maxLength:255}},{name:"annotations",in:"query",description:"Annotation filter: `true` returns only annotation entities, `false` excludes them, and `include` returns both.",required:false,schema:{type:"string",maxLength:255}}],responses:{200:{description:"Paginated list of matching components.",content:{"application/json":{schema:{description:"A page of registered components.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{components:{type:"array",items:{description:"A registered component, annotated with its duplicate count.",allOf:[{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelID;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
414
414
  - duplicate: this component is a duplicate of another. The component that is to be the canonical reference and that is duplicated by other components should not be assigned the 'duplicate' status.
415
415
  - maintenance: model is unavailable for a period of time.
416
416
  - enabled: model is available for use for all users of this Meshery Server.
@@ -588,7 +588,7 @@ remove: Removes a value.
588
588
  copy: Copies a value from one location to another.
589
589
  move: Moves a value from one location to another.
590
590
  test: Tests that a value at the target location is equal to a specified value.
591
- `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}}}},description:"The relationships matching the query."}}}]}}}},500:{description:"Internal server error."}}},post:{"x-internal":["meshery"],tags:["Registry"],operationId:"registerRegistryRelationship",summary:"Register a relationship definition",description:"Registrant-facing channel through which relationships are registered into the capabilities registry.",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",description:"Envelope with which a registrant submits an entity definition for registration into the capabilities registry.",required:["connection","entityType","entity"],properties:{connection:{description:"Connection identifying the registrant.",$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name"},"x-order":2,type:"string",description:"Connection Name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":3,type:"string",description:"Human-readable description of the connection and its purpose.",maxLength:1e3},url:{"x-oapi-codegen-extra-tags":{db:"url",json:"url"},"x-order":4,type:"string",format:"uri",description:"URL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).",maxLength:2048},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",json:"credentialId"},"x-order":5,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",json:"type",yaml:"type"},"x-go-name":"ConnectionType","x-order":6,type:"string",description:"Connection Type (platform, telemetry, collaboration)",maxLength:255},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",json:"subType"},"x-order":7,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)",maxLength:255},kind:{"x-oapi-codegen-extra-tags":{db:"kind"},"x-order":8,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)",maxLength:255},modelReference:{"x-go-type":"modelv1beta1.ModelReference","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":8,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"model_reference",db:"model_reference",json:"modelReference",yaml:"modelReference"},"x-generate-db-helpers":true,type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},credentialSchema:{"x-oapi-codegen-extra-tags":{db:"credential_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the credential Associated with the connection"},connectionSchema:{"x-oapi-codegen-extra-tags":{db:"connection_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the connection"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-order":17,description:"Visualization styles for the connection, including svgColor and svgWhite used for UI representation.",type:"object",required:["shape","primaryColor","svgColor","svgWhite","svgComplete"],allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:true,required:["primaryColor","svgColor","svgWhite","svgComplete"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation.",maxLength:500},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation.",maxLength:500},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background.",maxLength:500},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background.",maxLength:500},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background.",maxLength:500},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:500},textOpacity:{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},fontFamily:{type:"string",description:"A comma-separated list of font names to use on the label text.",maxLength:500},fontSize:{type:"string",description:"The size of the label text.",maxLength:500},fontStyle:{type:"string",description:"A CSS font style to be applied to the label text.",maxLength:500},fontWeight:{type:"string",description:"A CSS font weight to be applied to the label text.",maxLength:500},textTransform:{type:"string",description:"A transformation to apply to the label text",enum:["none","uppercase","lowercase"]},opacity:{type:"number",description:"The opacity of the element, ranging from 0 to 1. Note that the opacity of a compound node parent affects the effective opacity of its children.",minimum:0,maximum:1},zIndex:{type:"integer",description:"An integer value that affects the relative draw order of elements. In general, an element with a higher z-index will be drawn on top of an element with a lower z-index. Note that edges are under nodes despite z-index.",minimum:0},label:{type:"string",description:"The text to display for an element's label. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},animation:{type:"object",description:"The animation to apply to the element. example ripple,bounce,etc"}}},{type:"object",properties:{shape:{type:"string",description:"The shape of the node's body. Note that each shape fits within the specified width and height, and so you may have to adjust width and height if you desire an equilateral shape (i.e. width !== height for several equilateral shapes)",enum:["ellipse","triangle","round-triangle","rectangle","round-rectangle","bottom-round-rectangle","cut-rectangle","barrel","rhomboid","diamond","round-diamond","pentagon","round-pentagon","hexagon","round-hexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","star","tag","round-tag","vee","polygon"]},position:{type:"object",additionalProperties:false,required:["x","y"],description:"The position of the node. If the position is set, the node is drawn at that position in the given dimensions. If the position is not set, the node is drawn at a random position.",properties:{x:{type:"number",description:"The x-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"}}},bodyText:{type:"string",description:"The text to display for an element's body. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},bodyTextWrap:{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'.",enum:["none","wrap","ellipsis"]},bodyTextMaxWidth:{type:"string",description:"The maximum width for wrapping text in the node.",maxLength:50},bodyTextOpacity:{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},bodyTextBackgroundColor:{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontSize:{type:"number",description:"The size of the node's body text.",minimum:0},bodyTextColor:{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontWeight:{type:"string",description:"A CSS font weight to be applied to the node's body text.",maxLength:50},bodyTextHorizontalAlign:{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text.",maxLength:50},bodyTextDecoration:{type:"string",description:"A CSS text decoration to be applied to the node's body text.",maxLength:100},bodyTextVerticalAlign:{type:"string",description:"A CSS vertical alignment to be applied to the node's body text.",maxLength:50},width:{type:"number",description:"The width of the node's body or the width of an edge's line.",minimum:0},height:{type:"number",description:"The height of the node's body",minimum:0},backgroundImage:{type:"string",format:"uri",description:"The URL that points to the image to show in the node.",maxLength:2048},backgroundColor:{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},backgroundBlacken:{type:"number",description:"Blackens the node's body for values from 0 to 1; whitens the node's body for values from 0 to -1.",maximum:1,minimum:-1},backgroundOpacity:{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},backgroundPositionX:{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundPositionY:{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetX:{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetY:{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundFit:{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'.",enum:["none","contain","cover"]},backgroundClip:{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'.",enum:["none","node","node-border"]},backgroundWidthRelativeTo:{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},backgroundHeightRelativeTo:{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},borderWidth:{type:"number",description:"The size of the node's border.",minimum:0},borderStyle:{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},borderColor:{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},borderOpacity:{type:"number",description:"The opacity of the node's border",minimum:0,maximum:1},padding:{type:"number",description:"The amount of padding around all sides of the node.",minimum:0},textHalign:{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},textValign:{type:"string",description:"The vertical alignment of a node's label",enum:["top","center","bottom"]},ghost:{type:"string",description:"Whether to use the ghost effect, a semitransparent duplicate of the element drawn at an offset.",default:"no",enum:["yes","no"]},activeBgColor:{type:"string",description:"The colour of the indicator shown when the background is grabbed by the user. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},activeBgOpacity:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},activeBgSize:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},selectionBoxColor:{type:"string",description:"The background colour of the selection box used for drag selection. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},selectionBoxBorderWidth:{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*",minimum:0},selectionBoxOpacity:{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},outsideTextureBgColor:{type:"string",description:"The colour of the area outside the viewport texture when initOptions.textureOnViewport === true. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},outsideTextureBgOpacity:{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},shapePolygonPoints:{type:"string",description:"An array (or a space-separated string) of numbers ranging on [-1, 1], representing alternating x and y values (i.e. x1 y1 x2 y2, x3 y3 ...). This represents the points in the polygon for the node's shape. The bounding box of the node is given by (-1, -1), (1, -1), (1, 1), (-1, 1). The node's position is the origin (0, 0 )",maxLength:2e3},menuBackgroundColor:{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},menuBackgroundOpacity:{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},menuForgroundColor:{type:"string",description:"The colour of the text or icons in the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100}}}]},status:{"x-oapi-codegen-extra-tags":{db:"status"},"x-order":10,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},transitionMap:{type:"object",description:"Map describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.",additionalProperties:{type:"array",items:{type:"object",additionalProperties:false,description:"A single permissible state transition for a connection, describing the next reachable state and the meaning of that transition.",required:["nextState"],properties:{nextState:{description:"The connection state reachable from the current state.","x-go-name":"NextState","x-order":1,type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},description:{type:"string",description:"Human-readable explanation of when or why this transition occurs.",maxLength:1e3,"x-oapi-codegen-extra-tags":{json:"description,omitempty"},"x-order":2}}}},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",json:"transitionMap,omitempty"},"x-order":18},owner:{"x-go-name":"Owner","x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":11,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the connection was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the connection was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},"x-order":13,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the connection was soft-deleted, if applicable.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-order":14,"x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time",nullable:true,"x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta3.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta3/environment",name:"environmentv1beta3"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":15},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":16,"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},default:"connections.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},entityType:{type:"string",description:"Type of the entity being registered (e.g. `component`, `relationship`).",maxLength:255},entity:{type:"string",format:"byte",description:"Base64-encoded JSON definition of the entity being registered."}}}}}},responses:{200:{description:"Relationship registration processed."},400:{description:"Bad request."},500:{description:"Internal server error."}}}},"/api/registry/registrants":{get:{"x-internal":["meshery"],tags:["Registry"],operationId:"getRegistryRegistrants",summary:"List registrants",description:"Returns a paginated list of registrants (hosts) that have registered capabilities into the registry, with a summary count of the entities each has registered.",security:[],parameters:[{name:"page",in:"query",description:"Zero-indexed page number of the result set.",required:false,schema:{type:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of items per page, or `all` to return every item.",required:false,schema:{type:"string",maxLength:255}},{name:"search",in:"query",description:"Filter results by a case-insensitive substring match on name.",required:false,schema:{type:"string",maxLength:255}},{name:"order",in:"query",description:"Field to order the results by.",required:false,schema:{type:"string",maxLength:255}},{name:"sort",in:"query",description:"Sort direction (`asc` or `desc`).",required:false,schema:{type:"string",maxLength:255}}],responses:{200:{description:"Paginated list of registrants.",content:{"application/json":{schema:{description:"A page of registrants.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{registrants:{type:"array",items:{description:"A registrant (host) that has registered capabilities into the registry, with a summary of the entities it has registered.",allOf:[{$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"owner",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},{type:"object",properties:{summary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}}}}]},description:"The registrants matching the query."}}}]}}}},500:{description:"Internal server error."}}}},"/api/registry/register":{post:{"x-internal":["meshery"],tags:["Registry"],operationId:"registerRegistryEntities",summary:"Import entities into the registry",description:"Imports models and their components and relationships into the capabilities registry from a file, URL, or CSV set, optionally registering them for immediate use.",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["importBody","uploadType","register"],properties:{importBody:{oneOf:[{title:"File Import",type:"object",required:["fileName","modelFile"],properties:{fileName:{type:"string",description:"Name of the file being uploaded.",maxLength:255},modelFile:{type:"string",description:"Supported model file formats are: .tar, .tar.gz, and .tgz. See [Import Models Documentation](https://docs.meshery.io/guides/configuration-management/importing-models#import-models-using-meshery-ui) for details"}}},{title:"URL Import",type:"object",required:["url"],properties:{url:{type:"string",format:"uri",description:"A direct URL to a single model file, for example: https://raw.github.com/your-model-file.tar. Supported model file formats are: .tar, .tar.gz, and .tgz. \\n\\nFor bulk import of your model use the GitHub connection or CSV files. See [Import Models Documentation](https://docs.meshery.io/guides/configuration-management/importing-models#import-models-using-meshery-ui) for details"}}},{title:"CSV Import",type:"object",required:["modelCsv","componentCsv","relationshipCsv"],properties:{modelCsv:{type:"string",format:"binary",description:"Upload a CSV file containing model definitions"},componentCsv:{type:"string",format:"binary",description:"Upload a CSV file containing component definitions"},relationshipCsv:{type:"string",format:"binary",description:"Upload a CSV file containing relationship definitions"}}},{title:"Model Create",type:"object",required:["model","url"],properties:{url:{type:"string",description:"URI to the source code or package of the model.",format:"uri",oneOf:[{title:"GitHub",type:"string",pattern:"^git://github\\.com/[\\w.-]+/[\\w.-]+(/[\\w.-]+/[\\w/-]+)?$",description:"Git protocol URL for GitHub repository or specific resource path",example:"git://github.com/cert-manager/cert-manager/master/deploy/crds","x-metadata":{uiType:"url",validationHint:"Enter a git protocol URL (e.g., git://github.com/owner/repo)"}},{title:"Artifact Hub",type:"string",pattern:"^https:\\/\\/artifacthub\\.io\\/packages\\/(search\\?ts_query_web=[\\w.-]+|[\\w.-]+\\/[\\w.-]+\\/[\\w.-]+)$",description:"Artifact Hub package URL or search query URL with model name parameter",example:"https://artifacthub.io/packages/search?ts_query_web={model-name}","x-metadata":{uiType:"url",validationHint:"Enter an Artifact Hub URL (e.g., https://artifacthub.io/packages/search?ts_query_web={meshery-operator})"}}]}}}]},uploadType:{type:"string",title:"Upload method","x-enum-casing-exempt":true,enum:["file","urlImport","csv","url"],enumDescriptions:["Upload a model file (.tar, .tar.gz, .tgz) from your local system","Import a model file using a direct URL to the source","Upload separate CSV files for model definitions, components, and their relationships"],description:"Choose the method you prefer to upload your model file. Select 'File Import' or 'CSV Import' if you have the file on your local system or 'URL Import' if you have the file hosted online."},register:{type:"boolean",nullable:false,description:"The register of the importrequest."}}}}}},responses:{200:{description:"Import processed; response summarizes registered entities and failures.",content:{"application/json":{schema:{type:"object",description:"Summary of an import into the capabilities registry.",properties:{entityCount:{type:"object",description:"Counts of imported and failed entities by type.",properties:{compCount:{type:"integer",description:"Number of components imported.",minimum:0},relCount:{type:"integer",description:"Number of relationships imported.",minimum:0},modelCount:{type:"integer",description:"Number of models imported.",minimum:0},errCompCount:{type:"integer",description:"Number of components that failed to import.",minimum:0},errRelCount:{type:"integer",description:"Number of relationships that failed to import.",minimum:0},errModelCount:{type:"integer",description:"Number of models that failed to import.",minimum:0},totalErrCount:{type:"integer",description:"Total number of entities that failed to import.",minimum:0}}},errMsg:{type:"string",description:"Aggregated, human-readable description of import failures, if any.",maxLength:65536},entityTypeSummary:{type:"object",description:"Per-type summaries of imported entities and failures.",properties:{successfulComponents:{type:"array",items:{type:"object",additionalProperties:true},description:"Components successfully imported."},successfulRelationships:{type:"array",items:{type:"object",additionalProperties:true},description:"Relationships successfully imported."},successfulModels:{type:"array",items:{type:"object",additionalProperties:true},description:"Models successfully imported."},unsuccessfulComponentNames:{type:"array",items:{},description:"Names of entities that failed to import, with their errors."}}},modelName:{type:"array",items:{type:"string",maxLength:255},description:"Names of the models processed by the import."}}}}}},400:{description:"Bad request."},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error."}}}},"/api/registry/generate":{post:{"x-internal":["meshery"],tags:["Registry"],operationId:"generateRegistryComponents",summary:"Generate components for packages",description:"Generates component definitions for the named packages (via Artifact Hub), optionally registering the generated components into the registry.",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",description:"Request to generate components for a set of packages.",required:["data"],properties:{data:{type:"array",items:{type:"object",required:["name"],properties:{name:{type:"string",description:"Name of the package (Artifact Hub package name) to generate components for.",maxLength:255},register:{type:"boolean",description:"Whether to register the generated components into the registry."}}},description:"Packages for which to generate components."}}}}}},responses:{200:{description:"Generation results, one item per requested package.",content:{"application/json":{schema:{type:"array",items:{type:"object",description:"Generation result for a single requested package.",properties:{name:{type:"string",description:"Name of the package the components were generated for.",maxLength:255},components:{type:"array",items:{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelID;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
591
+ `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}}}},description:"The relationships matching the query."}}}]}}}},500:{description:"Internal server error."}}},post:{"x-internal":["meshery"],tags:["Registry"],operationId:"registerRegistryRelationship",summary:"Register a relationship definition",description:"Registrant-facing channel through which relationships are registered into the capabilities registry.",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",description:"Envelope with which a registrant submits an entity definition for registration into the capabilities registry.",required:["connection","entityType","entity"],properties:{connection:{description:"Connection identifying the registrant.",$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name"},"x-order":2,type:"string",description:"Connection Name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":3,type:"string",description:"Human-readable description of the connection and its purpose.",maxLength:1e3},url:{"x-oapi-codegen-extra-tags":{db:"url",json:"url"},"x-order":4,type:"string",format:"uri",description:"URL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).",maxLength:2048},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",json:"credentialId"},"x-order":5,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",json:"type",yaml:"type"},"x-go-name":"ConnectionType","x-order":6,type:"string",description:"Connection Type (platform, telemetry, collaboration)",maxLength:255},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",json:"subType"},"x-order":7,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)",maxLength:255},kind:{"x-oapi-codegen-extra-tags":{db:"kind"},"x-order":8,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)",maxLength:255},modelReference:{"x-go-type":"modelv1beta1.ModelReference","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":8,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"model_reference",db:"model_reference",json:"modelReference",yaml:"modelReference"},"x-generate-db-helpers":true,type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},credentialSchema:{"x-oapi-codegen-extra-tags":{db:"credential_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the credential Associated with the connection"},connectionSchema:{"x-oapi-codegen-extra-tags":{db:"connection_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the connection"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-order":17,description:"Visualization styles for the connection, including svgColor and svgWhite used for UI representation.",type:"object",required:["shape","primaryColor","svgColor","svgWhite","svgComplete"],allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:true,required:["primaryColor","svgColor","svgWhite","svgComplete"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation.",maxLength:500},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation.",maxLength:500},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background.",maxLength:500},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background.",maxLength:500},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background.",maxLength:500},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:500},textOpacity:{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},fontFamily:{type:"string",description:"A comma-separated list of font names to use on the label text.",maxLength:500},fontSize:{type:"string",description:"The size of the label text.",maxLength:500},fontStyle:{type:"string",description:"A CSS font style to be applied to the label text.",maxLength:500},fontWeight:{type:"string",description:"A CSS font weight to be applied to the label text.",maxLength:500},textTransform:{type:"string",description:"A transformation to apply to the label text",enum:["none","uppercase","lowercase"]},opacity:{type:"number",description:"The opacity of the element, ranging from 0 to 1. Note that the opacity of a compound node parent affects the effective opacity of its children.",minimum:0,maximum:1},zIndex:{type:"integer",description:"An integer value that affects the relative draw order of elements. In general, an element with a higher z-index will be drawn on top of an element with a lower z-index. Note that edges are under nodes despite z-index.",minimum:0},label:{type:"string",description:"The text to display for an element's label. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},animation:{type:"object",description:"The animation to apply to the element. example ripple,bounce,etc"}}},{type:"object",properties:{shape:{type:"string",description:"The shape of the node's body. Note that each shape fits within the specified width and height, and so you may have to adjust width and height if you desire an equilateral shape (i.e. width !== height for several equilateral shapes)",enum:["ellipse","triangle","round-triangle","rectangle","round-rectangle","bottom-round-rectangle","cut-rectangle","barrel","rhomboid","diamond","round-diamond","pentagon","round-pentagon","hexagon","round-hexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","star","tag","round-tag","vee","polygon"]},position:{type:"object",additionalProperties:false,required:["x","y"],description:"The position of the node. If the position is set, the node is drawn at that position in the given dimensions. If the position is not set, the node is drawn at a random position.",properties:{x:{type:"number",description:"The x-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"}}},bodyText:{type:"string",description:"The text to display for an element's body. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},bodyTextWrap:{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'.",enum:["none","wrap","ellipsis"]},bodyTextMaxWidth:{type:"string",description:"The maximum width for wrapping text in the node.",maxLength:50},bodyTextOpacity:{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},bodyTextBackgroundColor:{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontSize:{type:"number",description:"The size of the node's body text.",minimum:0},bodyTextColor:{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontWeight:{type:"string",description:"A CSS font weight to be applied to the node's body text.",maxLength:50},bodyTextHorizontalAlign:{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text.",maxLength:50},bodyTextDecoration:{type:"string",description:"A CSS text decoration to be applied to the node's body text.",maxLength:100},bodyTextVerticalAlign:{type:"string",description:"A CSS vertical alignment to be applied to the node's body text.",maxLength:50},width:{type:"number",description:"The width of the node's body or the width of an edge's line.",minimum:0},height:{type:"number",description:"The height of the node's body",minimum:0},backgroundImage:{type:"string",format:"uri",description:"The URL that points to the image to show in the node.",maxLength:2048},backgroundColor:{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},backgroundBlacken:{type:"number",description:"Blackens the node's body for values from 0 to 1; whitens the node's body for values from 0 to -1.",maximum:1,minimum:-1},backgroundOpacity:{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},backgroundPositionX:{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundPositionY:{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetX:{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetY:{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundFit:{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'.",enum:["none","contain","cover"]},backgroundClip:{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'.",enum:["none","node","node-border"]},backgroundWidthRelativeTo:{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},backgroundHeightRelativeTo:{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},borderWidth:{type:"number",description:"The size of the node's border.",minimum:0},borderStyle:{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},borderColor:{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},borderOpacity:{type:"number",description:"The opacity of the node's border",minimum:0,maximum:1},padding:{type:"number",description:"The amount of padding around all sides of the node.",minimum:0},textHalign:{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},textValign:{type:"string",description:"The vertical alignment of a node's label",enum:["top","center","bottom"]},ghost:{type:"string",description:"Whether to use the ghost effect, a semitransparent duplicate of the element drawn at an offset.",default:"no",enum:["yes","no"]},activeBgColor:{type:"string",description:"The colour of the indicator shown when the background is grabbed by the user. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},activeBgOpacity:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},activeBgSize:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},selectionBoxColor:{type:"string",description:"The background colour of the selection box used for drag selection. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},selectionBoxBorderWidth:{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*",minimum:0},selectionBoxOpacity:{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},outsideTextureBgColor:{type:"string",description:"The colour of the area outside the viewport texture when initOptions.textureOnViewport === true. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},outsideTextureBgOpacity:{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},shapePolygonPoints:{type:"string",description:"An array (or a space-separated string) of numbers ranging on [-1, 1], representing alternating x and y values (i.e. x1 y1 x2 y2, x3 y3 ...). This represents the points in the polygon for the node's shape. The bounding box of the node is given by (-1, -1), (1, -1), (1, 1), (-1, 1). The node's position is the origin (0, 0 )",maxLength:2e3},menuBackgroundColor:{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},menuBackgroundOpacity:{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},menuForgroundColor:{type:"string",description:"The colour of the text or icons in the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100}}}]},status:{"x-oapi-codegen-extra-tags":{db:"status"},"x-order":10,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},transitionMap:{type:"object",description:"Map describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.",additionalProperties:{type:"array",items:{type:"object",additionalProperties:false,description:"A single permissible state transition for a connection, describing the next reachable state and the meaning of that transition.",required:["nextState"],properties:{nextState:{description:"The connection state reachable from the current state.","x-go-name":"NextState","x-order":1,type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},description:{type:"string",description:"Human-readable explanation of when or why this transition occurs.",maxLength:1e3,"x-oapi-codegen-extra-tags":{json:"description,omitempty"},"x-order":2}}}},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",json:"transitionMap,omitempty"},"x-order":18},owner:{"x-go-name":"Owner","x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":11,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the connection was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the connection was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},"x-order":13,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the connection was soft-deleted, if applicable.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-order":14,"x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time",nullable:true,"x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta3.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta3/environment",name:"environmentv1beta3"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":15},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":16,"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},default:"connections.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},entityType:{type:"string",description:"Type of the entity being registered (e.g. `component`, `relationship`).",maxLength:255},entity:{type:"string",format:"byte",description:"Base64-encoded JSON definition of the entity being registered."}}}}}},responses:{200:{description:"Relationship registration processed."},400:{description:"Bad request."},500:{description:"Internal server error."}}}},"/api/registry/registrants":{get:{"x-internal":["meshery"],tags:["Registry"],operationId:"getRegistryRegistrants",summary:"List registrants",description:"Returns a paginated list of registrants (hosts) that have registered capabilities into the registry, with a summary count of the entities each has registered.",security:[],parameters:[{name:"page",in:"query",description:"Zero-indexed page number of the result set.",required:false,schema:{type:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of items per page, or `all` to return every item.",required:false,schema:{type:"string",maxLength:255}},{name:"search",in:"query",description:"Filter results by a case-insensitive substring match on name.",required:false,schema:{type:"string",maxLength:255}},{name:"order",in:"query",description:"Field to order the results by.",required:false,schema:{type:"string",maxLength:255}},{name:"sort",in:"query",description:"Sort direction (`asc` or `desc`).",required:false,schema:{type:"string",maxLength:255}}],responses:{200:{description:"Paginated list of registrants.",content:{"application/json":{schema:{description:"A page of registrants.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{registrants:{type:"array",items:{description:"A registrant (host) that has registered capabilities into the registry, with a summary of the entities it has registered.",allOf:[{$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"owner",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},{type:"object",properties:{summary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}}}}]},description:"The registrants matching the query."}}}]}}}},500:{description:"Internal server error."}}}},"/api/registry/register":{post:{"x-internal":["meshery"],tags:["Registry"],operationId:"registerRegistryEntities",summary:"Import entities into the registry",description:"Imports models and their components and relationships into the capabilities registry from a file, URL, or CSV set, optionally registering them for immediate use.",requestBody:{required:true,content:{"application/json":{schema:{type:"object",required:["importBody","uploadType","register"],properties:{importBody:{oneOf:[{title:"File Import",type:"object",required:["fileName","modelFile"],properties:{fileName:{type:"string",description:"Name of the file being uploaded.",maxLength:255},modelFile:{type:"string",description:"Supported model file formats are: .tar, .tar.gz, and .tgz. See [Import Models Documentation](https://docs.meshery.io/guides/configuration-management/importing-models#import-models-using-meshery-ui) for details"}}},{title:"URL Import",type:"object",required:["url"],properties:{url:{type:"string",format:"uri",description:"A direct URL to a single model file, for example: https://raw.github.com/your-model-file.tar. Supported model file formats are: .tar, .tar.gz, and .tgz. \\n\\nFor bulk import of your model use the GitHub connection or CSV files. See [Import Models Documentation](https://docs.meshery.io/guides/configuration-management/importing-models#import-models-using-meshery-ui) for details"}}},{title:"CSV Import",type:"object",required:["modelCsv","componentCsv","relationshipCsv"],properties:{modelCsv:{type:"string",format:"binary",description:"Upload a CSV file containing model definitions"},componentCsv:{type:"string",format:"binary",description:"Upload a CSV file containing component definitions"},relationshipCsv:{type:"string",format:"binary",description:"Upload a CSV file containing relationship definitions"}}},{title:"Model Create",type:"object",required:["model","url"],properties:{url:{type:"string",description:"URI to the source code or package of the model.",format:"uri",oneOf:[{title:"GitHub",type:"string",pattern:"^git://github\\.com/[\\w.-]+/[\\w.-]+(/[\\w.-]+/[\\w/-]+)?$",description:"Git protocol URL for GitHub repository or specific resource path",example:"git://github.com/cert-manager/cert-manager/master/deploy/crds","x-metadata":{uiType:"url",validationHint:"Enter a git protocol URL (e.g., git://github.com/owner/repo)"}},{title:"Artifact Hub",type:"string",pattern:"^https:\\/\\/artifacthub\\.io\\/packages\\/(search\\?ts_query_web=[\\w.-]+|[\\w.-]+\\/[\\w.-]+\\/[\\w.-]+)$",description:"Artifact Hub package URL or search query URL with model name parameter",example:"https://artifacthub.io/packages/search?ts_query_web={model-name}","x-metadata":{uiType:"url",validationHint:"Enter an Artifact Hub URL (e.g., https://artifacthub.io/packages/search?ts_query_web={meshery-operator})"}}]}}}]},uploadType:{type:"string",title:"Upload method","x-enum-casing-exempt":true,enum:["file","urlImport","csv","url"],enumDescriptions:["Upload a model file (.tar, .tar.gz, .tgz) from your local system","Import a model file using a direct URL to the source","Upload separate CSV files for model definitions, components, and their relationships"],description:"Choose the method you prefer to upload your model file. Select 'File Import' or 'CSV Import' if you have the file on your local system or 'URL Import' if you have the file hosted online."},register:{type:"boolean",nullable:false,description:"The register of the importrequest."}}}}}},responses:{200:{description:"Import processed; response summarizes registered entities and failures.",content:{"application/json":{schema:{type:"object",description:"Summary of an import into the capabilities registry.",properties:{entityCount:{type:"object",description:"Counts of imported and failed entities by type.",properties:{compCount:{type:"integer",description:"Number of components imported.",minimum:0},relCount:{type:"integer",description:"Number of relationships imported.",minimum:0},modelCount:{type:"integer",description:"Number of models imported.",minimum:0},errCompCount:{type:"integer",description:"Number of components that failed to import.",minimum:0},errRelCount:{type:"integer",description:"Number of relationships that failed to import.",minimum:0},errModelCount:{type:"integer",description:"Number of models that failed to import.",minimum:0},totalErrCount:{type:"integer",description:"Total number of entities that failed to import.",minimum:0}}},errMsg:{type:"string",description:"Aggregated, human-readable description of import failures, if any.",maxLength:65536},entityTypeSummary:{type:"object",description:"Per-type summaries of imported entities and failures.",properties:{successfulComponents:{type:"array",items:{type:"object",additionalProperties:true},description:"Components successfully imported."},successfulRelationships:{type:"array",items:{type:"object",additionalProperties:true},description:"Relationships successfully imported."},successfulModels:{type:"array",items:{type:"object",additionalProperties:true},description:"Models successfully imported."},unsuccessfulComponentNames:{type:"array",items:{},description:"Names of entities that failed to import, with their errors."}}},modelName:{type:"array",items:{type:"string",maxLength:255},description:"Names of the models processed by the import."}}}}}},400:{description:"Bad request."},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error."}}}},"/api/registry/generate":{post:{"x-internal":["meshery"],tags:["Registry"],operationId:"generateRegistryComponents",summary:"Generate components for packages",description:"Generates component definitions for the named packages (via Artifact Hub), optionally registering the generated components into the registry.",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",description:"Request to generate components for a set of packages.",required:["data"],properties:{data:{type:"array",items:{type:"object",required:["name"],properties:{name:{type:"string",description:"Name of the package (Artifact Hub package name) to generate components for.",maxLength:255},register:{type:"boolean",description:"Whether to register the generated components into the registry."}}},description:"Packages for which to generate components."}}}}}},responses:{200:{description:"Generation results, one item per requested package.",content:{"application/json":{schema:{type:"array",items:{type:"object",description:"Generation result for a single requested package.",properties:{name:{type:"string",description:"Name of the package the components were generated for.",maxLength:255},components:{type:"array",items:{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelID;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
592
592
  - duplicate: this component is a duplicate of another. The component that is to be the canonical reference and that is duplicated by other components should not be assigned the 'duplicate' status.
593
593
  - maintenance: model is unavailable for a period of time.
594
594
  - enabled: model is available for use for all users of this Meshery Server.
@@ -790,7 +790,7 @@ remove: Removes a value.
790
790
  copy: Copies a value from one location to another.
791
791
  move: Moves a value from one location to another.
792
792
  test: Tests that a value at the target location is equal to a specified value.
793
- `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}}}},description:"The relationships matching the query."}}}]},RegistryCategoriesPage:{description:"A page of registry categories.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{categories:{type:"array",items:{$id:"https://schemas.meshery.io/category.yaml",$schema:"http://json-schema.org/draft-07/schema#",type:"object",additionalProperties:false,description:"Category of the model.",required:["id","name","metadata"],properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name",gorm:"name"},default:"Uncategorized",description:"The category of the model that determines the main grouping.",helperText:"Select a model category",enum:["Analytics","App Definition and Development","Cloud Native Network","Cloud Native Storage","Database","Machine Learning","Observability and Analysis","Orchestration & Management","Platform","Provisioning","Runtime","Security & Compliance","Serverless","Tools","Uncategorized"],"x-order":2},metadata:{description:"Additional metadata associated with the category.",type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},description:"The categories matching the query."}}}]},RegistryPoliciesPage:{description:"A page of registered policies.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{policies:{type:"array",items:{type:"object",description:"A registered policy definition.",additionalProperties:true},description:"The policies matching the query."}}}]},RegistryRegistrant:{description:"A registrant (host) that has registered capabilities into the registry, with a summary of the entities it has registered.",allOf:[{$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"owner",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},{type:"object",properties:{summary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}}}}]},RegistrantSummary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}},RegistryRegistrantsPage:{description:"A page of registrants.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{registrants:{type:"array",items:{description:"A registrant (host) that has registered capabilities into the registry, with a summary of the entities it has registered.",allOf:[{$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"owner",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},{type:"object",properties:{summary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}}}}]},description:"The registrants matching the query."}}}]},RegistrantData:{type:"object",description:"Envelope with which a registrant submits an entity definition for registration into the capabilities registry.",required:["connection","entityType","entity"],properties:{connection:{description:"Connection identifying the registrant.",$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name"},"x-order":2,type:"string",description:"Connection Name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":3,type:"string",description:"Human-readable description of the connection and its purpose.",maxLength:1e3},url:{"x-oapi-codegen-extra-tags":{db:"url",json:"url"},"x-order":4,type:"string",format:"uri",description:"URL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).",maxLength:2048},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",json:"credentialId"},"x-order":5,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",json:"type",yaml:"type"},"x-go-name":"ConnectionType","x-order":6,type:"string",description:"Connection Type (platform, telemetry, collaboration)",maxLength:255},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",json:"subType"},"x-order":7,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)",maxLength:255},kind:{"x-oapi-codegen-extra-tags":{db:"kind"},"x-order":8,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)",maxLength:255},modelReference:{"x-go-type":"modelv1beta1.ModelReference","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":8,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"model_reference",db:"model_reference",json:"modelReference",yaml:"modelReference"},"x-generate-db-helpers":true,type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},credentialSchema:{"x-oapi-codegen-extra-tags":{db:"credential_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the credential Associated with the connection"},connectionSchema:{"x-oapi-codegen-extra-tags":{db:"connection_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the connection"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-order":17,description:"Visualization styles for the connection, including svgColor and svgWhite used for UI representation.",type:"object",required:["shape","primaryColor","svgColor","svgWhite","svgComplete"],allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:true,required:["primaryColor","svgColor","svgWhite","svgComplete"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation.",maxLength:500},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation.",maxLength:500},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background.",maxLength:500},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background.",maxLength:500},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background.",maxLength:500},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:500},textOpacity:{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},fontFamily:{type:"string",description:"A comma-separated list of font names to use on the label text.",maxLength:500},fontSize:{type:"string",description:"The size of the label text.",maxLength:500},fontStyle:{type:"string",description:"A CSS font style to be applied to the label text.",maxLength:500},fontWeight:{type:"string",description:"A CSS font weight to be applied to the label text.",maxLength:500},textTransform:{type:"string",description:"A transformation to apply to the label text",enum:["none","uppercase","lowercase"]},opacity:{type:"number",description:"The opacity of the element, ranging from 0 to 1. Note that the opacity of a compound node parent affects the effective opacity of its children.",minimum:0,maximum:1},zIndex:{type:"integer",description:"An integer value that affects the relative draw order of elements. In general, an element with a higher z-index will be drawn on top of an element with a lower z-index. Note that edges are under nodes despite z-index.",minimum:0},label:{type:"string",description:"The text to display for an element's label. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},animation:{type:"object",description:"The animation to apply to the element. example ripple,bounce,etc"}}},{type:"object",properties:{shape:{type:"string",description:"The shape of the node's body. Note that each shape fits within the specified width and height, and so you may have to adjust width and height if you desire an equilateral shape (i.e. width !== height for several equilateral shapes)",enum:["ellipse","triangle","round-triangle","rectangle","round-rectangle","bottom-round-rectangle","cut-rectangle","barrel","rhomboid","diamond","round-diamond","pentagon","round-pentagon","hexagon","round-hexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","star","tag","round-tag","vee","polygon"]},position:{type:"object",additionalProperties:false,required:["x","y"],description:"The position of the node. If the position is set, the node is drawn at that position in the given dimensions. If the position is not set, the node is drawn at a random position.",properties:{x:{type:"number",description:"The x-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"}}},bodyText:{type:"string",description:"The text to display for an element's body. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},bodyTextWrap:{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'.",enum:["none","wrap","ellipsis"]},bodyTextMaxWidth:{type:"string",description:"The maximum width for wrapping text in the node.",maxLength:50},bodyTextOpacity:{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},bodyTextBackgroundColor:{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontSize:{type:"number",description:"The size of the node's body text.",minimum:0},bodyTextColor:{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontWeight:{type:"string",description:"A CSS font weight to be applied to the node's body text.",maxLength:50},bodyTextHorizontalAlign:{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text.",maxLength:50},bodyTextDecoration:{type:"string",description:"A CSS text decoration to be applied to the node's body text.",maxLength:100},bodyTextVerticalAlign:{type:"string",description:"A CSS vertical alignment to be applied to the node's body text.",maxLength:50},width:{type:"number",description:"The width of the node's body or the width of an edge's line.",minimum:0},height:{type:"number",description:"The height of the node's body",minimum:0},backgroundImage:{type:"string",format:"uri",description:"The URL that points to the image to show in the node.",maxLength:2048},backgroundColor:{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},backgroundBlacken:{type:"number",description:"Blackens the node's body for values from 0 to 1; whitens the node's body for values from 0 to -1.",maximum:1,minimum:-1},backgroundOpacity:{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},backgroundPositionX:{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundPositionY:{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetX:{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetY:{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundFit:{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'.",enum:["none","contain","cover"]},backgroundClip:{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'.",enum:["none","node","node-border"]},backgroundWidthRelativeTo:{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},backgroundHeightRelativeTo:{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},borderWidth:{type:"number",description:"The size of the node's border.",minimum:0},borderStyle:{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},borderColor:{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},borderOpacity:{type:"number",description:"The opacity of the node's border",minimum:0,maximum:1},padding:{type:"number",description:"The amount of padding around all sides of the node.",minimum:0},textHalign:{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},textValign:{type:"string",description:"The vertical alignment of a node's label",enum:["top","center","bottom"]},ghost:{type:"string",description:"Whether to use the ghost effect, a semitransparent duplicate of the element drawn at an offset.",default:"no",enum:["yes","no"]},activeBgColor:{type:"string",description:"The colour of the indicator shown when the background is grabbed by the user. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},activeBgOpacity:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},activeBgSize:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},selectionBoxColor:{type:"string",description:"The background colour of the selection box used for drag selection. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},selectionBoxBorderWidth:{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*",minimum:0},selectionBoxOpacity:{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},outsideTextureBgColor:{type:"string",description:"The colour of the area outside the viewport texture when initOptions.textureOnViewport === true. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},outsideTextureBgOpacity:{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},shapePolygonPoints:{type:"string",description:"An array (or a space-separated string) of numbers ranging on [-1, 1], representing alternating x and y values (i.e. x1 y1 x2 y2, x3 y3 ...). This represents the points in the polygon for the node's shape. The bounding box of the node is given by (-1, -1), (1, -1), (1, 1), (-1, 1). The node's position is the origin (0, 0 )",maxLength:2e3},menuBackgroundColor:{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},menuBackgroundOpacity:{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},menuForgroundColor:{type:"string",description:"The colour of the text or icons in the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100}}}]},status:{"x-oapi-codegen-extra-tags":{db:"status"},"x-order":10,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},transitionMap:{type:"object",description:"Map describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.",additionalProperties:{type:"array",items:{type:"object",additionalProperties:false,description:"A single permissible state transition for a connection, describing the next reachable state and the meaning of that transition.",required:["nextState"],properties:{nextState:{description:"The connection state reachable from the current state.","x-go-name":"NextState","x-order":1,type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},description:{type:"string",description:"Human-readable explanation of when or why this transition occurs.",maxLength:1e3,"x-oapi-codegen-extra-tags":{json:"description,omitempty"},"x-order":2}}}},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",json:"transitionMap,omitempty"},"x-order":18},owner:{"x-go-name":"Owner","x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":11,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the connection was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the connection was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},"x-order":13,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the connection was soft-deleted, if applicable.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-order":14,"x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time",nullable:true,"x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta3.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta3/environment",name:"environmentv1beta3"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":15},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":16,"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},default:"connections.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},entityType:{type:"string",description:"Type of the entity being registered (e.g. `component`, `relationship`).",maxLength:255},entity:{type:"string",format:"byte",description:"Base64-encoded JSON definition of the entity being registered."}}},RegistryImportResponse:{type:"object",description:"Summary of an import into the capabilities registry.",properties:{entityCount:{type:"object",description:"Counts of imported and failed entities by type.",properties:{compCount:{type:"integer",description:"Number of components imported.",minimum:0},relCount:{type:"integer",description:"Number of relationships imported.",minimum:0},modelCount:{type:"integer",description:"Number of models imported.",minimum:0},errCompCount:{type:"integer",description:"Number of components that failed to import.",minimum:0},errRelCount:{type:"integer",description:"Number of relationships that failed to import.",minimum:0},errModelCount:{type:"integer",description:"Number of models that failed to import.",minimum:0},totalErrCount:{type:"integer",description:"Total number of entities that failed to import.",minimum:0}}},errMsg:{type:"string",description:"Aggregated, human-readable description of import failures, if any.",maxLength:65536},entityTypeSummary:{type:"object",description:"Per-type summaries of imported entities and failures.",properties:{successfulComponents:{type:"array",items:{type:"object",additionalProperties:true},description:"Components successfully imported."},successfulRelationships:{type:"array",items:{type:"object",additionalProperties:true},description:"Relationships successfully imported."},successfulModels:{type:"array",items:{type:"object",additionalProperties:true},description:"Models successfully imported."},unsuccessfulComponentNames:{type:"array",items:{},description:"Names of entities that failed to import, with their errors."}}},modelName:{type:"array",items:{type:"string",maxLength:255},description:"Names of the models processed by the import."}}},RegistryImportEntityCount:{type:"object",description:"Counts of imported and failed entities by type.",properties:{compCount:{type:"integer",description:"Number of components imported.",minimum:0},relCount:{type:"integer",description:"Number of relationships imported.",minimum:0},modelCount:{type:"integer",description:"Number of models imported.",minimum:0},errCompCount:{type:"integer",description:"Number of components that failed to import.",minimum:0},errRelCount:{type:"integer",description:"Number of relationships that failed to import.",minimum:0},errModelCount:{type:"integer",description:"Number of models that failed to import.",minimum:0},totalErrCount:{type:"integer",description:"Total number of entities that failed to import.",minimum:0}}},RegistryImportEntitySummary:{type:"object",description:"Per-type summaries of imported entities and failures.",properties:{successfulComponents:{type:"array",items:{type:"object",additionalProperties:true},description:"Components successfully imported."},successfulRelationships:{type:"array",items:{type:"object",additionalProperties:true},description:"Relationships successfully imported."},successfulModels:{type:"array",items:{type:"object",additionalProperties:true},description:"Models successfully imported."},unsuccessfulComponentNames:{type:"array",items:{},description:"Names of entities that failed to import, with their errors."}}},GenerateComponentsRequest:{type:"object",description:"Request to generate components for a set of packages.",required:["data"],properties:{data:{type:"array",items:{type:"object",required:["name"],properties:{name:{type:"string",description:"Name of the package (Artifact Hub package name) to generate components for.",maxLength:255},register:{type:"boolean",description:"Whether to register the generated components into the registry."}}},description:"Packages for which to generate components."}}},GenerateComponentsRequestItem:{type:"object",required:["name"],properties:{name:{type:"string",description:"Name of the package (Artifact Hub package name) to generate components for.",maxLength:255},register:{type:"boolean",description:"Whether to register the generated components into the registry."}}},GenerateComponentsResponseItem:{type:"object",description:"Generation result for a single requested package.",properties:{name:{type:"string",description:"Name of the package the components were generated for.",maxLength:255},components:{type:"array",items:{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelID;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
793
+ `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}}}},description:"The relationships matching the query."}}}]},RegistryCategoriesPage:{description:"A page of registry categories.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{categories:{type:"array",items:{$id:"https://schemas.meshery.io/category.yaml",$schema:"http://json-schema.org/draft-07/schema#",type:"object",additionalProperties:false,description:"Category of the model.",required:["id","name","metadata"],properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name",gorm:"name"},default:"Uncategorized",description:"The category of the model that determines the main grouping.",helperText:"Select a model category",enum:["Analytics","App Definition and Development","Cloud Native Network","Cloud Native Storage","Database","Machine Learning","Observability and Analysis","Orchestration & Management","Platform","Provisioning","Runtime","Security & Compliance","Serverless","Tools","Uncategorized"],"x-order":2},metadata:{description:"Additional metadata associated with the category.",type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},description:"The categories matching the query."}}}]},RegistryPoliciesPage:{description:"A page of registered policies.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{policies:{type:"array",items:{type:"object",description:"A registered policy definition.",additionalProperties:true},description:"The policies matching the query."}}}]},RegistryRegistrant:{description:"A registrant (host) that has registered capabilities into the registry, with a summary of the entities it has registered.",allOf:[{$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"owner",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},{type:"object",properties:{summary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}}}}]},RegistrantSummary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}},RegistryRegistrantsPage:{description:"A page of registrants.",allOf:[{type:"object",description:"Pagination metadata common to registry list responses. The canonical wire form is camelCase; the snake_case `page_size` and `total_count` keys are emitted alongside during the deprecation window for consumers still reading the legacy spellings.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items in the page.",minimum:0},totalCount:{type:"integer",description:"Total number of items available.",minimum:0},page_size:{type:"integer",description:"Deprecated snake_case alias of `pageSize`.",minimum:0,deprecated:true},total_count:{type:"integer",description:"Deprecated snake_case alias of `totalCount`.",minimum:0,deprecated:true}}},{type:"object",properties:{registrants:{type:"array",items:{description:"A registrant (host) that has registered capabilities into the registry, with a summary of the entities it has registered.",allOf:[{$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"owner",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},{type:"object",properties:{summary:{type:"object",description:"Counts of the entities a registrant has registered.",properties:{models:{type:"integer",description:"Number of models registered by this registrant.",minimum:0},components:{type:"integer",description:"Number of components registered by this registrant.",minimum:0},relationships:{type:"integer",description:"Number of relationships registered by this registrant.",minimum:0},policies:{type:"integer",description:"Number of policies registered by this registrant.",minimum:0}}}}}]},description:"The registrants matching the query."}}}]},RegistrantData:{type:"object",description:"Envelope with which a registrant submits an entity definition for registration into the capabilities registry.",required:["connection","entityType","entity"],properties:{connection:{description:"Connection identifying the registrant.",$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name"},"x-order":2,type:"string",description:"Connection Name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":3,type:"string",description:"Human-readable description of the connection and its purpose.",maxLength:1e3},url:{"x-oapi-codegen-extra-tags":{db:"url",json:"url"},"x-order":4,type:"string",format:"uri",description:"URL of the remote resource this connection points to (e.g. the Helm repository URL, the Kubernetes API server endpoint, the Grafana instance URL).",maxLength:2048},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",json:"credentialId"},"x-order":5,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",json:"type",yaml:"type"},"x-go-name":"ConnectionType","x-order":6,type:"string",description:"Connection Type (platform, telemetry, collaboration)",maxLength:255},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",json:"subType"},"x-order":7,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)",maxLength:255},kind:{"x-oapi-codegen-extra-tags":{db:"kind"},"x-order":8,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)",maxLength:255},modelReference:{"x-go-type":"modelv1beta1.ModelReference","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":8,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"model_reference",db:"model_reference",json:"modelReference",yaml:"modelReference"},"x-generate-db-helpers":true,type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},credentialSchema:{"x-oapi-codegen-extra-tags":{db:"credential_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the credential Associated with the connection"},connectionSchema:{"x-oapi-codegen-extra-tags":{db:"connection_schema"},"x-order":9,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Schema for the connection"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-order":17,description:"Visualization styles for the connection, including svgColor and svgWhite used for UI representation.",type:"object",required:["shape","primaryColor","svgColor","svgWhite","svgComplete"],allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:true,required:["primaryColor","svgColor","svgWhite","svgComplete"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation.",maxLength:500},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation.",maxLength:500},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background.",maxLength:500},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background.",maxLength:500},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background.",maxLength:500},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:500},textOpacity:{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},fontFamily:{type:"string",description:"A comma-separated list of font names to use on the label text.",maxLength:500},fontSize:{type:"string",description:"The size of the label text.",maxLength:500},fontStyle:{type:"string",description:"A CSS font style to be applied to the label text.",maxLength:500},fontWeight:{type:"string",description:"A CSS font weight to be applied to the label text.",maxLength:500},textTransform:{type:"string",description:"A transformation to apply to the label text",enum:["none","uppercase","lowercase"]},opacity:{type:"number",description:"The opacity of the element, ranging from 0 to 1. Note that the opacity of a compound node parent affects the effective opacity of its children.",minimum:0,maximum:1},zIndex:{type:"integer",description:"An integer value that affects the relative draw order of elements. In general, an element with a higher z-index will be drawn on top of an element with a lower z-index. Note that edges are under nodes despite z-index.",minimum:0},label:{type:"string",description:"The text to display for an element's label. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},animation:{type:"object",description:"The animation to apply to the element. example ripple,bounce,etc"}}},{type:"object",properties:{shape:{type:"string",description:"The shape of the node's body. Note that each shape fits within the specified width and height, and so you may have to adjust width and height if you desire an equilateral shape (i.e. width !== height for several equilateral shapes)",enum:["ellipse","triangle","round-triangle","rectangle","round-rectangle","bottom-round-rectangle","cut-rectangle","barrel","rhomboid","diamond","round-diamond","pentagon","round-pentagon","hexagon","round-hexagon","concave-hexagon","heptagon","round-heptagon","octagon","round-octagon","star","tag","round-tag","vee","polygon"]},position:{type:"object",additionalProperties:false,required:["x","y"],description:"The position of the node. If the position is set, the node is drawn at that position in the given dimensions. If the position is not set, the node is drawn at a random position.",properties:{x:{type:"number",description:"The x-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.",minimum:-1e6,maximum:1e6,"x-go-type":"float64"}}},bodyText:{type:"string",description:"The text to display for an element's body. Can give a path, e.g. data(id) will label with the elements id",maxLength:500},bodyTextWrap:{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'.",enum:["none","wrap","ellipsis"]},bodyTextMaxWidth:{type:"string",description:"The maximum width for wrapping text in the node.",maxLength:50},bodyTextOpacity:{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},bodyTextBackgroundColor:{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontSize:{type:"number",description:"The size of the node's body text.",minimum:0},bodyTextColor:{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},bodyTextFontWeight:{type:"string",description:"A CSS font weight to be applied to the node's body text.",maxLength:50},bodyTextHorizontalAlign:{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text.",maxLength:50},bodyTextDecoration:{type:"string",description:"A CSS text decoration to be applied to the node's body text.",maxLength:100},bodyTextVerticalAlign:{type:"string",description:"A CSS vertical alignment to be applied to the node's body text.",maxLength:50},width:{type:"number",description:"The width of the node's body or the width of an edge's line.",minimum:0},height:{type:"number",description:"The height of the node's body",minimum:0},backgroundImage:{type:"string",format:"uri",description:"The URL that points to the image to show in the node.",maxLength:2048},backgroundColor:{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},backgroundBlacken:{type:"number",description:"Blackens the node's body for values from 0 to 1; whitens the node's body for values from 0 to -1.",maximum:1,minimum:-1},backgroundOpacity:{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},backgroundPositionX:{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundPositionY:{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetX:{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundOffsetY:{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)",maxLength:50},backgroundFit:{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'.",enum:["none","contain","cover"]},backgroundClip:{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'.",enum:["none","node","node-border"]},backgroundWidthRelativeTo:{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},backgroundHeightRelativeTo:{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'.",enum:["none","inner","outer"]},borderWidth:{type:"number",description:"The size of the node's border.",minimum:0},borderStyle:{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},borderColor:{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},borderOpacity:{type:"number",description:"The opacity of the node's border",minimum:0,maximum:1},padding:{type:"number",description:"The amount of padding around all sides of the node.",minimum:0},textHalign:{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},textValign:{type:"string",description:"The vertical alignment of a node's label",enum:["top","center","bottom"]},ghost:{type:"string",description:"Whether to use the ghost effect, a semitransparent duplicate of the element drawn at an offset.",default:"no",enum:["yes","no"]},activeBgColor:{type:"string",description:"The colour of the indicator shown when the background is grabbed by the user. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},activeBgOpacity:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},activeBgSize:{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*.",maxLength:50},selectionBoxColor:{type:"string",description:"The background colour of the selection box used for drag selection. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},selectionBoxBorderWidth:{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*",minimum:0},selectionBoxOpacity:{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},outsideTextureBgColor:{type:"string",description:"The colour of the area outside the viewport texture when initOptions.textureOnViewport === true. Selector needs to be *core*. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},outsideTextureBgOpacity:{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},shapePolygonPoints:{type:"string",description:"An array (or a space-separated string) of numbers ranging on [-1, 1], representing alternating x and y values (i.e. x1 y1 x2 y2, x3 y3 ...). This represents the points in the polygon for the node's shape. The bounding box of the node is given by (-1, -1), (1, -1), (1, 1), (-1, 1). The node's position is the origin (0, 0 )",maxLength:2e3},menuBackgroundColor:{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100},menuBackgroundOpacity:{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},menuForgroundColor:{type:"string",description:"The colour of the text or icons in the component menu. Colours may be specified by name (e.g. red), hex (e.g.",maxLength:100}}}]},status:{"x-oapi-codegen-extra-tags":{db:"status"},"x-order":10,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},transitionMap:{type:"object",description:"Map describing the connection state machine. Each key is a current connection status and its value is the list of states the connection may transition to from that status, along with a description of each transition.",additionalProperties:{type:"array",items:{type:"object",additionalProperties:false,description:"A single permissible state transition for a connection, describing the next reachable state and the meaning of that transition.",required:["nextState"],properties:{nextState:{description:"The connection state reachable from the current state.","x-go-name":"NextState","x-order":1,type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},description:{type:"string",description:"Human-readable explanation of when or why this transition occurs.",maxLength:1e3,"x-oapi-codegen-extra-tags":{json:"description,omitempty"},"x-order":2}}}},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",db:"-",json:"transitionMap,omitempty"},"x-order":18},owner:{"x-go-name":"Owner","x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":11,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the connection was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the connection was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},"x-order":13,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the connection was soft-deleted, if applicable.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-order":14,"x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time",nullable:true,"x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta3.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta3/environment",name:"environmentv1beta3"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":15},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":16,"x-oapi-codegen-extra-tags":{db:"-",gorm:"-"},default:"connections.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},entityType:{type:"string",description:"Type of the entity being registered (e.g. `component`, `relationship`).",maxLength:255},entity:{type:"string",format:"byte",description:"Base64-encoded JSON definition of the entity being registered."}}},RegistryImportResponse:{type:"object",description:"Summary of an import into the capabilities registry.",properties:{entityCount:{type:"object",description:"Counts of imported and failed entities by type.",properties:{compCount:{type:"integer",description:"Number of components imported.",minimum:0},relCount:{type:"integer",description:"Number of relationships imported.",minimum:0},modelCount:{type:"integer",description:"Number of models imported.",minimum:0},errCompCount:{type:"integer",description:"Number of components that failed to import.",minimum:0},errRelCount:{type:"integer",description:"Number of relationships that failed to import.",minimum:0},errModelCount:{type:"integer",description:"Number of models that failed to import.",minimum:0},totalErrCount:{type:"integer",description:"Total number of entities that failed to import.",minimum:0}}},errMsg:{type:"string",description:"Aggregated, human-readable description of import failures, if any.",maxLength:65536},entityTypeSummary:{type:"object",description:"Per-type summaries of imported entities and failures.",properties:{successfulComponents:{type:"array",items:{type:"object",additionalProperties:true},description:"Components successfully imported."},successfulRelationships:{type:"array",items:{type:"object",additionalProperties:true},description:"Relationships successfully imported."},successfulModels:{type:"array",items:{type:"object",additionalProperties:true},description:"Models successfully imported."},unsuccessfulComponentNames:{type:"array",items:{},description:"Names of entities that failed to import, with their errors."}}},modelName:{type:"array",items:{type:"string",maxLength:255},description:"Names of the models processed by the import."}}},RegistryImportEntityCount:{type:"object",description:"Counts of imported and failed entities by type.",properties:{compCount:{type:"integer",description:"Number of components imported.",minimum:0},relCount:{type:"integer",description:"Number of relationships imported.",minimum:0},modelCount:{type:"integer",description:"Number of models imported.",minimum:0},errCompCount:{type:"integer",description:"Number of components that failed to import.",minimum:0},errRelCount:{type:"integer",description:"Number of relationships that failed to import.",minimum:0},errModelCount:{type:"integer",description:"Number of models that failed to import.",minimum:0},totalErrCount:{type:"integer",description:"Total number of entities that failed to import.",minimum:0}}},RegistryImportEntitySummary:{type:"object",description:"Per-type summaries of imported entities and failures.",properties:{successfulComponents:{type:"array",items:{type:"object",additionalProperties:true},description:"Components successfully imported."},successfulRelationships:{type:"array",items:{type:"object",additionalProperties:true},description:"Relationships successfully imported."},successfulModels:{type:"array",items:{type:"object",additionalProperties:true},description:"Models successfully imported."},unsuccessfulComponentNames:{type:"array",items:{},description:"Names of entities that failed to import, with their errors."}}},GenerateComponentsRequest:{type:"object",description:"Request to generate components for a set of packages.",required:["data"],properties:{data:{type:"array",items:{type:"object",required:["name"],properties:{name:{type:"string",description:"Name of the package (Artifact Hub package name) to generate components for.",maxLength:255},register:{type:"boolean",description:"Whether to register the generated components into the registry."}}},description:"Packages for which to generate components."}}},GenerateComponentsRequestItem:{type:"object",required:["name"],properties:{name:{type:"string",description:"Name of the package (Artifact Hub package name) to generate components for.",maxLength:255},register:{type:"boolean",description:"Whether to register the generated components into the registry."}}},GenerateComponentsResponseItem:{type:"object",description:"Generation result for a single requested package.",properties:{name:{type:"string",description:"Name of the package the components were generated for.",maxLength:255},components:{type:"array",items:{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelID;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
794
794
  - duplicate: this component is a duplicate of another. The component that is to be the canonical reference and that is duplicated by other components should not be assigned the 'duplicate' status.
795
795
  - maintenance: model is unavailable for a period of time.
796
796
  - enabled: model is available for use for all users of this Meshery Server.