@meshery/schemas 0.0.2-0
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.
- package/LICENSE +201 -0
- package/README.md +472 -0
- package/dist/api.d.mts +18 -0
- package/dist/api.d.ts +18 -0
- package/dist/api.js +2 -0
- package/dist/api.mjs +2 -0
- package/dist/cloudApi.d.mts +2956 -0
- package/dist/cloudApi.d.ts +2956 -0
- package/dist/cloudApi.js +1 -0
- package/dist/cloudApi.mjs +1 -0
- package/dist/index.d.mts +35351 -0
- package/dist/index.d.ts +35351 -0
- package/dist/index.js +302 -0
- package/dist/index.mjs +302 -0
- package/dist/mesheryApi.d.mts +4248 -0
- package/dist/mesheryApi.d.ts +4248 -0
- package/dist/mesheryApi.js +1 -0
- package/dist/mesheryApi.mjs +1 -0
- package/package.json +42 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
'use strict';var e={openapi:"3.0.0",info:{title:"design",version:"1.0.0"},paths:{"/api/pattern/import":{post:{summary:"Import Design",operationId:"ImportDesign",requestBody:{required:true,content:{"multipart/form-data":{schema:{type:"object",description:"Choose the method you prefer to upload your design file. Select 'File Upload' if you have the file on your local system, or 'URL Import' if you have the file hosted online.",enum:["file","url"],properties:{file:{type:"string",format:"file",description:"Supported formats: Kubernetes Manifests, Helm Charts, Docker Compose, and Meshery Designs. See [Import Designs Documentation](https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-ui) for details"},file_name:{type:"string",description:"The name of the pattern file being imported."},name:{type:"string",default:"Untitled Design",description:"Provide a name for your design file. This name will help you identify the file more easily. You can also change the name of your design after importing it."},url:{type:"string",format:"uri",description:"Provide the URL of the file you want to import. This should be a direct URL to a single file, for example: https://raw.github.com/your-design-file.yaml. Also, ensure that design is in a supported format: Kubernetes Manifest, Helm Chart, Docker Compose, or Meshery Design. See [Import Designs Documentation](https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-ui) for details"}}}}}},responses:{200:{description:"Successful Import",content:{"application/json":{schema:{type:"object",properties:{message:{type:"string"}}}}}},400:{description:"Invalid request format"},500:{description:"Internal server error"}}}}},components:{schemas:{DeletePatternModel:{type:"object",properties:{id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true}}},PatternFile:{$schema:"http://json-schema.org/draft-07/schema#",title:"Design Schema",description:"Designs are your primary tool for collaborative authorship of your infrastructure, workflow, and processes.",type:"object",properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{type:"string",description:"Name of the design; a descriptive, but concise title for the design document.","x-order":2},schemaVersion:{description:"Specifies the version of the schema to which the design conforms.","x-order":3,type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{default:"v0.0.1","x-order":4,description:"Revision of the design as expressed by an auto-incremented, SemVer-compliant version number. May be manually set by a user or third-party system, but will always be required to be of version number higher than the previously defined version number.",minLength:1,maxLength:50,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-]+)*)?$"},metadata:{type:"object","x-order":5,additionalProperties:true,properties:{resolvedAliases:{description:"Map of resolved aliases present in the design",type:"object","x-go-type":"map[string]core.ResolvedAlias","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},additionalProperties:{description:"An resolved alias is an component that acts as an ref/pointer to a field in another component, resolvedAlias are aware of there immediate parents and completely resolved parents also",allOf:[{description:"An alias is an component that acts as an ref/pointer to a field in another component, nonResolvedAlias are not aware of there immediate parents",type:"object",properties:{relationship_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"}},alias_component_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"}},immediate_parent_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"}},immediate_ref_field_path:{type:"array",items:{type:"string"}}},required:["relationship_id","alias_component_id","immediate_parent_id","immediate_ref_field_path"]},{type:"object",properties:{resolved_parent_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"}},resolved_ref_field_path:{type:"array",items:{type:"string"}}},required:["resolved_parent_id","resolved_ref_field_path"]}]}}}},components:{description:"A list of one or more component declarations.",minItems:0,"x-order":6,type:"array",items:{"x-go-type":"*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component"},$id:"https://schemas.meshery.io/component.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},displayName:{"x-order":4,description:"Name of the component in human-readible 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"}},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":"model.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model"},"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"},$id:"https://schemas.meshery.io/model.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},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:
|
|
2
|
+
- 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.
|
|
3
|
+
- maintenance: model is unavailable for a period of time.
|
|
4
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
5
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-order":7,"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"},default:"enabled"},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},"x-order":8,"x-go-type":"connection.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{"x-order":1,description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id"},"x-order":3,description:"Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type"},"x-order":5,type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,type:"object"},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":{yaml:"user_id",json:"user_id"},"x-order":9,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},registrantId:{description:"ID of the registrant.","x-oapi-codegen-extra-tags":{yaml:"connection_id",json:"connection_id",gorm:"column:connection_id"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},categoryId:{description:"ID of the category.","x-oapi-codegen-extra-tags":{yaml:"-",json:"-",gorm:"categoryID"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"},"x-go-type":"category.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",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 entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},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.",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:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategory.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"string",title:"SubCategory",description:"Sub category of the model determines the secondary grouping.",default:"Uncategorized",enum:["API Gateway","API Integration","Application Definition & Image Build","Automation & Configuration","Certified Kubernetes - Distribution","Chaos Engineering","Cloud Native Storage","Cloud Provider","CNI","Compute","Container Registry","Container Runtime","Container Security","Container","Content Delivery Network","Continuous Integration & Delivery","Coordination & Service Discovery","Database","Flowchart","Framework","Installable Platform","Key Management","Key Management Service","Kubernetes","Logging","Machine Learning","Management Governance","Metrics","Monitoring","Networking Content Delivery","Operating System","Query","Remote Procedure Call","Scheduling & Orchestration","Secrets Management","Security Identity & Compliance","Service Mesh","Service Proxy","Source Version Control","Storage","Specifications","Streaming & Messaging","Tools","Tracing","Uncategorized","Video Conferencing"],minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",required:["svgWhite","svgColor"],properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-order":1},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},"x-order":2,default:false},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,default:"#00b39f","x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"},"x-order":3},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,default:"#00D3A9","x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"},"x-order":4},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"},"x-order":5,default:'<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z" fill="#fff"/><path d="M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z" fill="#fff" fill-opacity=".8"/><path d="m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z" fill="#fff"/><path d="M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z" fill="#fff" fill-opacity=".8"/><path d="m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z" fill="#fff"/><path d="M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z" fill="#fff"/><path d="M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z" fill="#fff"/><path d="M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z" fill="#fff" fill-opacity=".8"/><path d="M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z" fill="#fff"/><path d="M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z" fill="#fff" fill-opacity=".8"/><path d="M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z" fill="#fff"/><path d="M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z" fill="#fff" fill-opacity=".8"/><path d="M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z" fill="#fff"/><path d="M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z" fill="#fff" fill-opacity=".8"/></svg>'},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"},"x-order":6,default:'<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 134.95 135.02"><defs><style>.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}</style></defs><title>meshery-logo-light</title><polygon points="69.49 31.82 69.49 64.07 97.44 47.89 69.49 31.82" class="cls-1"/><polygon points="69.49 70.81 69.49 103.22 97.7 87.09 69.49 70.81" class="cls-1"/><polygon points="65.47 63.85 65.47 32.09 37.87 47.92 65.47 63.85" class="cls-2"/><path d="M10.1,103.1a67.79,67.79,0,0,0,21.41,21.55V90.71Z" class="cls-2"/><polygon points="65.47 103.06 65.47 71.05 37.8 87.07 65.47 103.06" class="cls-2"/><polygon points="35.54 122.63 63.56 106.61 35.54 90.41 35.54 122.63" class="cls-1"/><polygon points="99.61 122.8 99.61 90.63 71.63 106.63 99.61 122.8" class="cls-2"/><path d="M127,99.37a67.22,67.22,0,0,0,7.91-28.94L105.78,87.11Z" class="cls-2"/><polygon points="103.64 83.69 131.76 67.61 103.64 51.45 103.64 83.69" class="cls-1"/><polygon points="99.61 44.5 99.61 12.52 71.76 28.49 99.61 44.5" class="cls-2"/><polygon points="99.61 83.55 99.61 51.28 71.7 67.44 99.61 83.55" class="cls-2"/><polygon points="67.48 135.02 67.49 135.02 67.48 135.02 67.48 135.02" class="cls-2"/><polygon points="35.54 51.22 35.54 83.73 63.66 67.45 35.54 51.22" class="cls-1"/><path d="M65.47,0A67.2,67.2,0,0,0,35.83,7.83l29.64,17Z" class="cls-2"/><polygon points="35.54 12.3 35.54 44.62 63.68 28.48 35.54 12.3" class="cls-1"/><path d="M31.51,10.34A67.89,67.89,0,0,0,10.1,31.89L31.51,44.25Z" class="cls-2"/><path d="M99.43,8A67.23,67.23,0,0,0,69.49,0V25.15Z" class="cls-1"/><path d="M0,69.87A67.27,67.27,0,0,0,8.07,99.63L29.76,87.07Z" class="cls-1"/><path d="M8.07,35.37A67.16,67.16,0,0,0,0,65L29.79,47.91Z" class="cls-1"/><path d="M35.78,127.13A67.13,67.13,0,0,0,65.47,135V110.15Z" class="cls-2"/><path d="M124.92,32a67.9,67.9,0,0,0-21.28-21.52V44.3Z" class="cls-1"/><path d="M103.64,124.54A68,68,0,0,0,125,102.86L103.64,90.52Z" class="cls-1"/><path d="M135,64.81a67.06,67.06,0,0,0-8-29.35L105.49,47.88Z" class="cls-2"/><path d="M69.49,135a67.12,67.12,0,0,0,29.63-7.83L69.49,110Z" class="cls-1"/><polygon points="31.51 83.44 31.51 51.56 3.83 67.43 31.51 83.44" class="cls-2"/></svg>'},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"},"x-order":7},shape:{"x-order":8,type:"string",description:"The shape of the node\u2019s 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)",default:"circle",enum:["circle","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"]}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",json:"metadata",yaml:"metadata"},"x-order":11,additionalProperties:true},model:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-order":12,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.",allOf:[{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"}],"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},"x-order":1}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"}},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"}},componentsCount:{type:"integer",description:"Number of components associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{json:"components_count",yaml:"components_count",gorm:"-"},default:0},relationshipsCount:{type:"integer",description:"Number of relationships associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships_count",yaml:"relationships_count"},default:0}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},modelId:{description:"ModelId is the foreign key to the model to which the component belongs.","x-oapi-codegen-extra-tags":{gorm:"index:idx_component_definition_dbs_model_id,column:model_id",yaml:"-",json:"-"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},"x-order":8,type:"object",description:"Visualization styles for a component",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."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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},"z-index":{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."},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"},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.","x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.","x-go-type":"float64"}}},"body-text":{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"},"body-text-wrap":{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'."},"body-text-max-width":{type:"string",description:"The maximum width for wrapping text in the node."},"body-text-opacity":{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},"body-text-background-color":{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-size":{type:"number",description:"The size of the node's body text."},"body-text-color":{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-weight":{type:"string",description:"A CSS font weight to be applied to the node's body text."},"body-text-horizontal-align":{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text."},"body-text-decoration":{type:"string",description:"A CSS text decoration to be applied to the node's body text."},"body-text-vertical-align":{type:"string",description:"A CSS vertical alignment to be applied to the node's body text."},width:{type:"number",description:"The width of the node's body or the width of an edge's line."},height:{type:"number",description:"The height of the node's body"},"background-image":{type:"string",description:"The URL that points to the image to show in the node."},"background-color":{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g."},"background-blacken":{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},"background-opacity":{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},"background-position-x":{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-position-y":{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-x":{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-y":{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-fit":{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'."},"background-clip":{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'."},"background-width-relative-to":{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'."},"background-height-relative-to":{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'."},"border-width":{type:"number",description:"The size of the node's border.",minimum:0},"border-style":{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},"border-color":{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g."},"border-opacity":{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},"text-halign":{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},"text-valign":{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"]},"active-bg-color":{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."},"active-bg-opacity":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"active-bg-size":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"selection-box-color":{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."},"selection-box-border-width":{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*"},"selection-box-opacity":{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},"outside-texture-bg-color":{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."},"outside-texture-bg-opacity":{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},"shape-polygon-points":{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 )"},"menu-background-color":{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g."},"menu-background-opacity":{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},"menu-forground-color":{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."}}}]},capabilities:{"x-order":9,type:"array",description:"Meshery manages components in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. ComponentDefinitions may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"capabilities",json:"capabilities"},default:[{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Performance Test",description:"Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.",kind:"action",type:"operator",subType:"perf-test",key:"",entityState:["instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Workload Configuration",description:"Configure the workload specific setting of a component",kind:"mutate",type:"configuration",subType:"config",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Labels and Annotations Configuration",description:"Configure Labels And Annotations for the component ",kind:"mutate",type:"configuration",subType:"labels-and-annotations",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Relationships",description:"View relationships for the component",kind:"view",type:"configuration",subType:"relationship",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Json Schema",description:"View Component Definition ",kind:"view",type:"configuration",subType:"definition",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Styling",description:"Configure the visual styles for the component",kind:"mutate",type:"style",subType:"",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Change Shape",description:"Change the shape of the component",kind:"mutate",type:"style",subType:"shape",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Compound Drag And Drop",description:"Drag and Drop a component into a parent component in graph view",kind:"interaction",type:"graph",subType:"compoundDnd",key:"",entityState:["declaration"],status:"enabled",metadata:null}]},status:{"x-order":10,type:"string",description:`Status of component, including:
|
|
6
|
+
- 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.
|
|
7
|
+
- maintenance: model is unavailable for a period of time.
|
|
8
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
9
|
+
- 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."},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 clsuter 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/ ."}},"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 Component Defintion wraps , this is herematicaly sealed an",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1},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},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3}},required:["version","kind","schema"]}},required:["id","displayName","description","schemaVersion","format","version","configuration","metadata","modelId","model","component"]}},preferences:{type:"object",description:"Design-level preferences","x-order":7,properties:{layers:{type:"object",description:"List of available layers"}},required:["layers"]},relationships:{description:"List of relationships between components",type:"array","x-order":8,items:{"x-go-type":"*relationship.RelationshipDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha3/relationship"},$id:"https://schemas.meshery.io/relationship.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Relationships define the nature of interaction between interconnected components in Meshery. The combination of relationship properties kind, type, and subtype characterize various genealogical relations among and between components. Relationships have selectors, selector sets, metadata, and optional parameters. Learn more at https://docs.meshery.io/concepts/logical/relationships.",required:["schemaVersion","version","model","kind","type","subType"],additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the relationship definition.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"v1alpha3"},version:{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},model:{description:"Name of the model in which this relationship is packaged.",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
10
|
+
- 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.
|
|
11
|
+
- maintenance: model is unavailable for a period of time.
|
|
12
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
13
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",oneOf:[{const:"inventory",description:"A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component."},{const:"matchLabels",description:"Match label relationships offer a dynamic association between one or more components and are a flexible way to group and manage related components in Meshery."},{const:"permission",description:"A relationship that represents a set of security-centric bindings between components."},{const:"network",description:"A relationship that represents a line of communication between two or more components."},{const:"firewall",description:"A relationship that act as a network-based security boundary for ingress and egress traffic."},{const:"mount",description:"A relationship that represents volume mounts between components."},{const:"alias",description:"An alias for a field path in another component."},{const:"annotation",description:"A relationship that provide valuable context for users, controllers, and third-party tools within the Meshery ecosystem."}],"x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},kind:{description:"Kind of the Relationship. Learn more about relationships - https://docs.meshery.io/concepts/logical/relationships.",enum:["hierarchical","edge","sibling"],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of relationships. Used to group relationships similar in nature.","x-go-name":"RelationshipType",gorm:"column:type",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of relationship classification. The combination of Kind, Type and SubType together uniquely identify a Relationship.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},status:{type:"string",description:"Status of the relationship.",default:"enabled",enum:["pending","approved","ignored","enabled","deleted"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},evaluationQuery:{description:"Optional. Assigns the policy to be used for the evaluation of the relationship. Deprecation Notice: In the future, this property is either to be removed or to it is to be an array of optional policy $refs.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"evaluationQuery",json:"evaluationQuery"}},capabilities:{type:"array",description:"Capabilities associated with the relationship.",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}},metadata:{type:"object",description:"Metadata contains additional information associated with the Relationship.",additionalProperties:true,"x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:Id"},properties:{description:{description:"Characterization of the meaning of the relationship and its relevance to both Meshery and entities under management.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},isAnnotation:{type:"boolean",description:"Indicates whether the relationship should be treated as a logical representation only","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},default:false},styles:{anyOf:[{type:"object",description:"Visualization styles for a relationship",allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}}},{properties:{"edge-animation":{type:"string",description:"The animation to use for the edge. Can be like 'marching-ants' , 'blink' , 'moving-gradient',etc ."},"curve-style":{type:"string",description:"The curving method used to separate two or more edges between two nodes; may be haystack (very fast, bundled straight edges for which loops and compounds are unsupported), straight (straight edges with all arrows supported), bezier (bundled curved edges), unbundled-bezier (curved edges for use with manual control points), segments (a series of straight lines), taxi (right-angled lines, hierarchically bundled). Note that haystack edges work best with ellipse, rectangle, or similar nodes. Smaller node shapes, like triangle, will not be as aesthetically pleasing. Also note that edge endpoint arrows are unsupported for haystack edges.",default:"straight",enum:["straight","haystack","bezier","unbundled-bezier","segments","taxi"]},"line-color":{type:"string",description:"The colour of the edge\u2019s line. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"line-style":{type:"string",description:"The style of the edge\u2019s line.",enum:["solid","dotted","dashed"]},"line-cap":{type:"string",description:"The cap style of the edge\u2019s line; may be butt (default), round, or square. The cap may or may not be visible, depending on the shape of the node and the relative size of the node and edge. Caps other than butt extend beyond the specified endpoint of the edge.",enum:["butt","round","square"],default:"butt"},"line-opacity":{type:"number",minimum:0,maximum:1,default:1,description:"The opacity of the edge\u2019s line and arrow. Useful if you wish to have a separate opacity for the edge label versus the edge line. Note that the opacity value of the edge element affects the effective opacity of its line and label subcomponents."},"target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"mid-target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"mid-target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"mid-target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"arrow-scale":{type:"number",description:"Scaling for the arrow size.",minimum:0},"source-label":{type:"string",description:"The text to display for an edge\u2019s source label. Can give a path, e.g. data(id) will label with the elements id"},"target-label":{type:"string",description:"The text to display for an edge\u2019s target label. Can give a path, e.g. data(id) will label with the elements id"}}}]},{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}},$comment:"Extension point for additional styles"}],"x-oapi-codegen-extra-tags":{yaml:"styles",json:"styles"}}}},selectors:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},type:"array",description:"Selectors are organized as an array, with each item containing a distinct set of selectors that share a common functionality. This structure allows for flexibility in defining relationships, even when different components are involved.",$comment:"Sets of selectors are interpreted as a logical UNION. Properties within a selector `allow` and `deny` are interpreted as logical AND, while 'from' and 'to' represents a UNION of set of combinatorial pairs.",items:{type:"object",description:"Optional selectors used to match Components. Absence of a selector means that it is applied to all Components.",additionalProperties:false,required:["allow"],properties:{deny:{description:"Optional selectors used to define relationships which should not be created / is restricted.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
14
|
+
- 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.
|
|
15
|
+
- maintenance: model is unavailable for a period of time.
|
|
16
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
17
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
18
|
+
|
|
19
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
20
|
+
replace: Replaces a value.
|
|
21
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
22
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
23
|
+
remove: Removes a value.
|
|
24
|
+
copy: Copies a value from one location to another.
|
|
25
|
+
move: Moves a value from one location to another.
|
|
26
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
27
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
28
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
29
|
+
- 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.
|
|
30
|
+
- maintenance: model is unavailable for a period of time.
|
|
31
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
32
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
33
|
+
|
|
34
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
35
|
+
replace: Replaces a value.
|
|
36
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
37
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
38
|
+
remove: Removes a value.
|
|
39
|
+
copy: Copies a value from one location to another.
|
|
40
|
+
move: Moves a value from one location to another.
|
|
41
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
42
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
43
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}},allow:{description:"Selectors used to define relationships which are allowed.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},match_strategy_matrix:{description:"Strategy criterion for determing how to match the values at mutator/mutated paths",type:"array",items:{type:"array",items:{type:"string"}}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
44
|
+
- 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.
|
|
45
|
+
- maintenance: model is unavailable for a period of time.
|
|
46
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
47
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
48
|
+
|
|
49
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
50
|
+
replace: Replaces a value.
|
|
51
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
52
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
53
|
+
remove: Removes a value.
|
|
54
|
+
copy: Copies a value from one location to another.
|
|
55
|
+
move: Moves a value from one location to another.
|
|
56
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
57
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
58
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
59
|
+
- 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.
|
|
60
|
+
- maintenance: model is unavailable for a period of time.
|
|
61
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
62
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
63
|
+
|
|
64
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
65
|
+
replace: Replaces a value.
|
|
66
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
67
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
68
|
+
remove: Removes a value.
|
|
69
|
+
copy: Copies a value from one location to another.
|
|
70
|
+
move: Moves a value from one location to another.
|
|
71
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
72
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
73
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}}}}}}}}},required:["id","name","schemaVersion","version","components","relationships"]},MesheryPattern:{type:"object",properties:{catalog_data:{"x-go-type":"catalog.CatalogData","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha2/catalog"},type:"object",properties:{publishedVersion:{description:"Tracks the specific content version that has been made available in the Catalog.",type:"string"},class:{description:"Published content is classifed by its support level. Content classes help you understand the origin and expected support level for each piece of content. It is important to note that the level of support may vary within each class, and you should exercise discretion when using community-contributed content. Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable. Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility. Content produced and supported by the respective project or organization responsible for the specific technology. This class offers a level of support from the project maintainers themselves. Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Community content may have varying levels of support and reliability.",type:"string",oneOf:[{const:"official",description:"Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable."},{const:"verified",description:"Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility."},{const:"reference architecture",description:"Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Reference architecture content may have varying levels of support and reliability."}]},compatibility:{type:"array",title:"Model",items:{enum:["kubernetes"],type:"string"},uniqueItems:true,minItems:1,description:"One or more models associated with this catalog item. For designs, a list of one or more models implicated by components within the design. For models, this is self-referential."},pattern_caveats:{type:"string",title:"Caveats and Considerations",description:"Specific stipulations to consider and known behaviors to be aware of when using this design."},pattern_info:{type:"string",title:"Description",minLength:1,description:"Purpose of the design along with its intended and unintended uses."},type:{type:"string",title:"Type",enum:["Deployment","Observability","Resiliency","Scaling","Security","Traffic-management","Troubleshooting","Workloads"],default:"Deployment",description:"Categorization of the type of design or operational flow depicted in this design."},snapshotURL:{type:"array",items:{type:"string",format:"uri",pattern:"^(https?|http?|oci)://"},description:"Contains reference to the dark and light mode snapshots of the design."}},required:["compatibility","pattern_caveats","pattern_info","type"]},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},user_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},location:{type:"object",additionalProperties:{type:"string"},"x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},pattern_file:{"x-go-type":"PatternFile",$schema:"http://json-schema.org/draft-07/schema#",title:"Design Schema",description:"Designs are your primary tool for collaborative authorship of your infrastructure, workflow, and processes.",type:"object",properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{type:"string",description:"Name of the design; a descriptive, but concise title for the design document.","x-order":2},schemaVersion:{description:"Specifies the version of the schema to which the design conforms.","x-order":3,type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{default:"v0.0.1","x-order":4,description:"Revision of the design as expressed by an auto-incremented, SemVer-compliant version number. May be manually set by a user or third-party system, but will always be required to be of version number higher than the previously defined version number.",minLength:1,maxLength:50,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-]+)*)?$"},metadata:{type:"object","x-order":5,additionalProperties:true,properties:{resolvedAliases:{description:"Map of resolved aliases present in the design",type:"object","x-go-type":"map[string]core.ResolvedAlias","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},additionalProperties:{description:"An resolved alias is an component that acts as an ref/pointer to a field in another component, resolvedAlias are aware of there immediate parents and completely resolved parents also",allOf:[{description:"An alias is an component that acts as an ref/pointer to a field in another component, nonResolvedAlias are not aware of there immediate parents",type:"object",properties:{relationship_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"}},alias_component_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"}},immediate_parent_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"}},immediate_ref_field_path:{type:"array",items:{type:"string"}}},required:["relationship_id","alias_component_id","immediate_parent_id","immediate_ref_field_path"]},{type:"object",properties:{resolved_parent_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"}},resolved_ref_field_path:{type:"array",items:{type:"string"}}},required:["resolved_parent_id","resolved_ref_field_path"]}]}}}},components:{description:"A list of one or more component declarations.",minItems:0,"x-order":6,type:"array",items:{"x-go-type":"*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component"},$id:"https://schemas.meshery.io/component.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},displayName:{"x-order":4,description:"Name of the component in human-readible 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"}},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":"model.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model"},"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"},$id:"https://schemas.meshery.io/model.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},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:
|
|
74
|
+
- 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.
|
|
75
|
+
- maintenance: model is unavailable for a period of time.
|
|
76
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
77
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-order":7,"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"},default:"enabled"},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},"x-order":8,"x-go-type":"connection.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{"x-order":1,description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id"},"x-order":3,description:"Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type"},"x-order":5,type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,type:"object"},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":{yaml:"user_id",json:"user_id"},"x-order":9,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},registrantId:{description:"ID of the registrant.","x-oapi-codegen-extra-tags":{yaml:"connection_id",json:"connection_id",gorm:"column:connection_id"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},categoryId:{description:"ID of the category.","x-oapi-codegen-extra-tags":{yaml:"-",json:"-",gorm:"categoryID"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"},"x-go-type":"category.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",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 entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},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.",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:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategory.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"string",title:"SubCategory",description:"Sub category of the model determines the secondary grouping.",default:"Uncategorized",enum:["API Gateway","API Integration","Application Definition & Image Build","Automation & Configuration","Certified Kubernetes - Distribution","Chaos Engineering","Cloud Native Storage","Cloud Provider","CNI","Compute","Container Registry","Container Runtime","Container Security","Container","Content Delivery Network","Continuous Integration & Delivery","Coordination & Service Discovery","Database","Flowchart","Framework","Installable Platform","Key Management","Key Management Service","Kubernetes","Logging","Machine Learning","Management Governance","Metrics","Monitoring","Networking Content Delivery","Operating System","Query","Remote Procedure Call","Scheduling & Orchestration","Secrets Management","Security Identity & Compliance","Service Mesh","Service Proxy","Source Version Control","Storage","Specifications","Streaming & Messaging","Tools","Tracing","Uncategorized","Video Conferencing"],minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",required:["svgWhite","svgColor"],properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-order":1},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},"x-order":2,default:false},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,default:"#00b39f","x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"},"x-order":3},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,default:"#00D3A9","x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"},"x-order":4},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"},"x-order":5,default:'<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z" fill="#fff"/><path d="M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z" fill="#fff" fill-opacity=".8"/><path d="m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z" fill="#fff"/><path d="M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z" fill="#fff" fill-opacity=".8"/><path d="m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z" fill="#fff"/><path d="M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z" fill="#fff"/><path d="M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z" fill="#fff"/><path d="M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z" fill="#fff" fill-opacity=".8"/><path d="M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z" fill="#fff"/><path d="M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z" fill="#fff" fill-opacity=".8"/><path d="M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z" fill="#fff"/><path d="M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z" fill="#fff" fill-opacity=".8"/><path d="M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z" fill="#fff"/><path d="M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z" fill="#fff" fill-opacity=".8"/></svg>'},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"},"x-order":6,default:'<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 134.95 135.02"><defs><style>.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}</style></defs><title>meshery-logo-light</title><polygon points="69.49 31.82 69.49 64.07 97.44 47.89 69.49 31.82" class="cls-1"/><polygon points="69.49 70.81 69.49 103.22 97.7 87.09 69.49 70.81" class="cls-1"/><polygon points="65.47 63.85 65.47 32.09 37.87 47.92 65.47 63.85" class="cls-2"/><path d="M10.1,103.1a67.79,67.79,0,0,0,21.41,21.55V90.71Z" class="cls-2"/><polygon points="65.47 103.06 65.47 71.05 37.8 87.07 65.47 103.06" class="cls-2"/><polygon points="35.54 122.63 63.56 106.61 35.54 90.41 35.54 122.63" class="cls-1"/><polygon points="99.61 122.8 99.61 90.63 71.63 106.63 99.61 122.8" class="cls-2"/><path d="M127,99.37a67.22,67.22,0,0,0,7.91-28.94L105.78,87.11Z" class="cls-2"/><polygon points="103.64 83.69 131.76 67.61 103.64 51.45 103.64 83.69" class="cls-1"/><polygon points="99.61 44.5 99.61 12.52 71.76 28.49 99.61 44.5" class="cls-2"/><polygon points="99.61 83.55 99.61 51.28 71.7 67.44 99.61 83.55" class="cls-2"/><polygon points="67.48 135.02 67.49 135.02 67.48 135.02 67.48 135.02" class="cls-2"/><polygon points="35.54 51.22 35.54 83.73 63.66 67.45 35.54 51.22" class="cls-1"/><path d="M65.47,0A67.2,67.2,0,0,0,35.83,7.83l29.64,17Z" class="cls-2"/><polygon points="35.54 12.3 35.54 44.62 63.68 28.48 35.54 12.3" class="cls-1"/><path d="M31.51,10.34A67.89,67.89,0,0,0,10.1,31.89L31.51,44.25Z" class="cls-2"/><path d="M99.43,8A67.23,67.23,0,0,0,69.49,0V25.15Z" class="cls-1"/><path d="M0,69.87A67.27,67.27,0,0,0,8.07,99.63L29.76,87.07Z" class="cls-1"/><path d="M8.07,35.37A67.16,67.16,0,0,0,0,65L29.79,47.91Z" class="cls-1"/><path d="M35.78,127.13A67.13,67.13,0,0,0,65.47,135V110.15Z" class="cls-2"/><path d="M124.92,32a67.9,67.9,0,0,0-21.28-21.52V44.3Z" class="cls-1"/><path d="M103.64,124.54A68,68,0,0,0,125,102.86L103.64,90.52Z" class="cls-1"/><path d="M135,64.81a67.06,67.06,0,0,0-8-29.35L105.49,47.88Z" class="cls-2"/><path d="M69.49,135a67.12,67.12,0,0,0,29.63-7.83L69.49,110Z" class="cls-1"/><polygon points="31.51 83.44 31.51 51.56 3.83 67.43 31.51 83.44" class="cls-2"/></svg>'},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"},"x-order":7},shape:{"x-order":8,type:"string",description:"The shape of the node\u2019s 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)",default:"circle",enum:["circle","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"]}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",json:"metadata",yaml:"metadata"},"x-order":11,additionalProperties:true},model:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-order":12,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.",allOf:[{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"}],"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},"x-order":1}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"}},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"}},componentsCount:{type:"integer",description:"Number of components associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{json:"components_count",yaml:"components_count",gorm:"-"},default:0},relationshipsCount:{type:"integer",description:"Number of relationships associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships_count",yaml:"relationships_count"},default:0}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},modelId:{description:"ModelId is the foreign key to the model to which the component belongs.","x-oapi-codegen-extra-tags":{gorm:"index:idx_component_definition_dbs_model_id,column:model_id",yaml:"-",json:"-"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},"x-order":8,type:"object",description:"Visualization styles for a component",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."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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},"z-index":{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."},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"},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.","x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.","x-go-type":"float64"}}},"body-text":{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"},"body-text-wrap":{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'."},"body-text-max-width":{type:"string",description:"The maximum width for wrapping text in the node."},"body-text-opacity":{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},"body-text-background-color":{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-size":{type:"number",description:"The size of the node's body text."},"body-text-color":{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-weight":{type:"string",description:"A CSS font weight to be applied to the node's body text."},"body-text-horizontal-align":{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text."},"body-text-decoration":{type:"string",description:"A CSS text decoration to be applied to the node's body text."},"body-text-vertical-align":{type:"string",description:"A CSS vertical alignment to be applied to the node's body text."},width:{type:"number",description:"The width of the node's body or the width of an edge's line."},height:{type:"number",description:"The height of the node's body"},"background-image":{type:"string",description:"The URL that points to the image to show in the node."},"background-color":{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g."},"background-blacken":{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},"background-opacity":{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},"background-position-x":{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-position-y":{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-x":{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-y":{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-fit":{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'."},"background-clip":{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'."},"background-width-relative-to":{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'."},"background-height-relative-to":{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'."},"border-width":{type:"number",description:"The size of the node's border.",minimum:0},"border-style":{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},"border-color":{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g."},"border-opacity":{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},"text-halign":{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},"text-valign":{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"]},"active-bg-color":{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."},"active-bg-opacity":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"active-bg-size":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"selection-box-color":{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."},"selection-box-border-width":{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*"},"selection-box-opacity":{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},"outside-texture-bg-color":{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."},"outside-texture-bg-opacity":{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},"shape-polygon-points":{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 )"},"menu-background-color":{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g."},"menu-background-opacity":{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},"menu-forground-color":{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."}}}]},capabilities:{"x-order":9,type:"array",description:"Meshery manages components in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. ComponentDefinitions may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"capabilities",json:"capabilities"},default:[{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Performance Test",description:"Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.",kind:"action",type:"operator",subType:"perf-test",key:"",entityState:["instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Workload Configuration",description:"Configure the workload specific setting of a component",kind:"mutate",type:"configuration",subType:"config",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Labels and Annotations Configuration",description:"Configure Labels And Annotations for the component ",kind:"mutate",type:"configuration",subType:"labels-and-annotations",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Relationships",description:"View relationships for the component",kind:"view",type:"configuration",subType:"relationship",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Json Schema",description:"View Component Definition ",kind:"view",type:"configuration",subType:"definition",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Styling",description:"Configure the visual styles for the component",kind:"mutate",type:"style",subType:"",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Change Shape",description:"Change the shape of the component",kind:"mutate",type:"style",subType:"shape",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Compound Drag And Drop",description:"Drag and Drop a component into a parent component in graph view",kind:"interaction",type:"graph",subType:"compoundDnd",key:"",entityState:["declaration"],status:"enabled",metadata:null}]},status:{"x-order":10,type:"string",description:`Status of component, including:
|
|
78
|
+
- 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.
|
|
79
|
+
- maintenance: model is unavailable for a period of time.
|
|
80
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
81
|
+
- 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."},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 clsuter 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/ ."}},"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 Component Defintion wraps , this is herematicaly sealed an",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1},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},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3}},required:["version","kind","schema"]}},required:["id","displayName","description","schemaVersion","format","version","configuration","metadata","modelId","model","component"]}},preferences:{type:"object",description:"Design-level preferences","x-order":7,properties:{layers:{type:"object",description:"List of available layers"}},required:["layers"]},relationships:{description:"List of relationships between components",type:"array","x-order":8,items:{"x-go-type":"*relationship.RelationshipDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha3/relationship"},$id:"https://schemas.meshery.io/relationship.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Relationships define the nature of interaction between interconnected components in Meshery. The combination of relationship properties kind, type, and subtype characterize various genealogical relations among and between components. Relationships have selectors, selector sets, metadata, and optional parameters. Learn more at https://docs.meshery.io/concepts/logical/relationships.",required:["schemaVersion","version","model","kind","type","subType"],additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the relationship definition.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"v1alpha3"},version:{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},model:{description:"Name of the model in which this relationship is packaged.",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
82
|
+
- 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.
|
|
83
|
+
- maintenance: model is unavailable for a period of time.
|
|
84
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
85
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",oneOf:[{const:"inventory",description:"A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component."},{const:"matchLabels",description:"Match label relationships offer a dynamic association between one or more components and are a flexible way to group and manage related components in Meshery."},{const:"permission",description:"A relationship that represents a set of security-centric bindings between components."},{const:"network",description:"A relationship that represents a line of communication between two or more components."},{const:"firewall",description:"A relationship that act as a network-based security boundary for ingress and egress traffic."},{const:"mount",description:"A relationship that represents volume mounts between components."},{const:"alias",description:"An alias for a field path in another component."},{const:"annotation",description:"A relationship that provide valuable context for users, controllers, and third-party tools within the Meshery ecosystem."}],"x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},kind:{description:"Kind of the Relationship. Learn more about relationships - https://docs.meshery.io/concepts/logical/relationships.",enum:["hierarchical","edge","sibling"],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of relationships. Used to group relationships similar in nature.","x-go-name":"RelationshipType",gorm:"column:type",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of relationship classification. The combination of Kind, Type and SubType together uniquely identify a Relationship.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},status:{type:"string",description:"Status of the relationship.",default:"enabled",enum:["pending","approved","ignored","enabled","deleted"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},evaluationQuery:{description:"Optional. Assigns the policy to be used for the evaluation of the relationship. Deprecation Notice: In the future, this property is either to be removed or to it is to be an array of optional policy $refs.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"evaluationQuery",json:"evaluationQuery"}},capabilities:{type:"array",description:"Capabilities associated with the relationship.",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}},metadata:{type:"object",description:"Metadata contains additional information associated with the Relationship.",additionalProperties:true,"x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:Id"},properties:{description:{description:"Characterization of the meaning of the relationship and its relevance to both Meshery and entities under management.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},isAnnotation:{type:"boolean",description:"Indicates whether the relationship should be treated as a logical representation only","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},default:false},styles:{anyOf:[{type:"object",description:"Visualization styles for a relationship",allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}}},{properties:{"edge-animation":{type:"string",description:"The animation to use for the edge. Can be like 'marching-ants' , 'blink' , 'moving-gradient',etc ."},"curve-style":{type:"string",description:"The curving method used to separate two or more edges between two nodes; may be haystack (very fast, bundled straight edges for which loops and compounds are unsupported), straight (straight edges with all arrows supported), bezier (bundled curved edges), unbundled-bezier (curved edges for use with manual control points), segments (a series of straight lines), taxi (right-angled lines, hierarchically bundled). Note that haystack edges work best with ellipse, rectangle, or similar nodes. Smaller node shapes, like triangle, will not be as aesthetically pleasing. Also note that edge endpoint arrows are unsupported for haystack edges.",default:"straight",enum:["straight","haystack","bezier","unbundled-bezier","segments","taxi"]},"line-color":{type:"string",description:"The colour of the edge\u2019s line. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"line-style":{type:"string",description:"The style of the edge\u2019s line.",enum:["solid","dotted","dashed"]},"line-cap":{type:"string",description:"The cap style of the edge\u2019s line; may be butt (default), round, or square. The cap may or may not be visible, depending on the shape of the node and the relative size of the node and edge. Caps other than butt extend beyond the specified endpoint of the edge.",enum:["butt","round","square"],default:"butt"},"line-opacity":{type:"number",minimum:0,maximum:1,default:1,description:"The opacity of the edge\u2019s line and arrow. Useful if you wish to have a separate opacity for the edge label versus the edge line. Note that the opacity value of the edge element affects the effective opacity of its line and label subcomponents."},"target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"mid-target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"mid-target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"mid-target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"arrow-scale":{type:"number",description:"Scaling for the arrow size.",minimum:0},"source-label":{type:"string",description:"The text to display for an edge\u2019s source label. Can give a path, e.g. data(id) will label with the elements id"},"target-label":{type:"string",description:"The text to display for an edge\u2019s target label. Can give a path, e.g. data(id) will label with the elements id"}}}]},{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}},$comment:"Extension point for additional styles"}],"x-oapi-codegen-extra-tags":{yaml:"styles",json:"styles"}}}},selectors:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},type:"array",description:"Selectors are organized as an array, with each item containing a distinct set of selectors that share a common functionality. This structure allows for flexibility in defining relationships, even when different components are involved.",$comment:"Sets of selectors are interpreted as a logical UNION. Properties within a selector `allow` and `deny` are interpreted as logical AND, while 'from' and 'to' represents a UNION of set of combinatorial pairs.",items:{type:"object",description:"Optional selectors used to match Components. Absence of a selector means that it is applied to all Components.",additionalProperties:false,required:["allow"],properties:{deny:{description:"Optional selectors used to define relationships which should not be created / is restricted.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
86
|
+
- 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.
|
|
87
|
+
- maintenance: model is unavailable for a period of time.
|
|
88
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
89
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
90
|
+
|
|
91
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
92
|
+
replace: Replaces a value.
|
|
93
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
94
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
95
|
+
remove: Removes a value.
|
|
96
|
+
copy: Copies a value from one location to another.
|
|
97
|
+
move: Moves a value from one location to another.
|
|
98
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
99
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
100
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
101
|
+
- 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.
|
|
102
|
+
- maintenance: model is unavailable for a period of time.
|
|
103
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
104
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
105
|
+
|
|
106
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
107
|
+
replace: Replaces a value.
|
|
108
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
109
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
110
|
+
remove: Removes a value.
|
|
111
|
+
copy: Copies a value from one location to another.
|
|
112
|
+
move: Moves a value from one location to another.
|
|
113
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
114
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
115
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}},allow:{description:"Selectors used to define relationships which are allowed.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},match_strategy_matrix:{description:"Strategy criterion for determing how to match the values at mutator/mutated paths",type:"array",items:{type:"array",items:{type:"string"}}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
116
|
+
- 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.
|
|
117
|
+
- maintenance: model is unavailable for a period of time.
|
|
118
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
119
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
120
|
+
|
|
121
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
122
|
+
replace: Replaces a value.
|
|
123
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
124
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
125
|
+
remove: Removes a value.
|
|
126
|
+
copy: Copies a value from one location to another.
|
|
127
|
+
move: Moves a value from one location to another.
|
|
128
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
129
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
130
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
131
|
+
- 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.
|
|
132
|
+
- maintenance: model is unavailable for a period of time.
|
|
133
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
134
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
135
|
+
|
|
136
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
137
|
+
replace: Replaces a value.
|
|
138
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
139
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
140
|
+
remove: Removes a value.
|
|
141
|
+
copy: Copies a value from one location to another.
|
|
142
|
+
move: Moves a value from one location to another.
|
|
143
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
144
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
145
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}}}}}}}}},required:["id","name","schemaVersion","version","components","relationships"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},visibility:{type:"string","x-go-type-skip-optional-pointer":true}}},MesheryPatternPage:{type:"object",properties:{page:{type:"integer"},page_size:{type:"integer"},patterns:{type:"array",items:{"x-go-type":"MesheryPattern",type:"object",properties:{catalog_data:{"x-go-type":"catalog.CatalogData","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha2/catalog"},type:"object",properties:{publishedVersion:{description:"Tracks the specific content version that has been made available in the Catalog.",type:"string"},class:{description:"Published content is classifed by its support level. Content classes help you understand the origin and expected support level for each piece of content. It is important to note that the level of support may vary within each class, and you should exercise discretion when using community-contributed content. Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable. Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility. Content produced and supported by the respective project or organization responsible for the specific technology. This class offers a level of support from the project maintainers themselves. Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Community content may have varying levels of support and reliability.",type:"string",oneOf:[{const:"official",description:"Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable."},{const:"verified",description:"Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility."},{const:"reference architecture",description:"Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Reference architecture content may have varying levels of support and reliability."}]},compatibility:{type:"array",title:"Model",items:{enum:["kubernetes"],type:"string"},uniqueItems:true,minItems:1,description:"One or more models associated with this catalog item. For designs, a list of one or more models implicated by components within the design. For models, this is self-referential."},pattern_caveats:{type:"string",title:"Caveats and Considerations",description:"Specific stipulations to consider and known behaviors to be aware of when using this design."},pattern_info:{type:"string",title:"Description",minLength:1,description:"Purpose of the design along with its intended and unintended uses."},type:{type:"string",title:"Type",enum:["Deployment","Observability","Resiliency","Scaling","Security","Traffic-management","Troubleshooting","Workloads"],default:"Deployment",description:"Categorization of the type of design or operational flow depicted in this design."},snapshotURL:{type:"array",items:{type:"string",format:"uri",pattern:"^(https?|http?|oci)://"},description:"Contains reference to the dark and light mode snapshots of the design."}},required:["compatibility","pattern_caveats","pattern_info","type"]},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},user_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},location:{type:"object",additionalProperties:{type:"string"},"x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},pattern_file:{"x-go-type":"PatternFile",$schema:"http://json-schema.org/draft-07/schema#",title:"Design Schema",description:"Designs are your primary tool for collaborative authorship of your infrastructure, workflow, and processes.",type:"object",properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{type:"string",description:"Name of the design; a descriptive, but concise title for the design document.","x-order":2},schemaVersion:{description:"Specifies the version of the schema to which the design conforms.","x-order":3,type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{default:"v0.0.1","x-order":4,description:"Revision of the design as expressed by an auto-incremented, SemVer-compliant version number. May be manually set by a user or third-party system, but will always be required to be of version number higher than the previously defined version number.",minLength:1,maxLength:50,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-]+)*)?$"},metadata:{type:"object","x-order":5,additionalProperties:true,properties:{resolvedAliases:{description:"Map of resolved aliases present in the design",type:"object","x-go-type":"map[string]core.ResolvedAlias","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},additionalProperties:{description:"An resolved alias is an component that acts as an ref/pointer to a field in another component, resolvedAlias are aware of there immediate parents and completely resolved parents also",allOf:[{description:"An alias is an component that acts as an ref/pointer to a field in another component, nonResolvedAlias are not aware of there immediate parents",type:"object",properties:{relationship_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"}},alias_component_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"}},immediate_parent_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"}},immediate_ref_field_path:{type:"array",items:{type:"string"}}},required:["relationship_id","alias_component_id","immediate_parent_id","immediate_ref_field_path"]},{type:"object",properties:{resolved_parent_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"}},resolved_ref_field_path:{type:"array",items:{type:"string"}}},required:["resolved_parent_id","resolved_ref_field_path"]}]}}}},components:{description:"A list of one or more component declarations.",minItems:0,"x-order":6,type:"array",items:{"x-go-type":"*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component"},$id:"https://schemas.meshery.io/component.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},displayName:{"x-order":4,description:"Name of the component in human-readible 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"}},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":"model.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model"},"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"},$id:"https://schemas.meshery.io/model.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},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:
|
|
146
|
+
- 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.
|
|
147
|
+
- maintenance: model is unavailable for a period of time.
|
|
148
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
149
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-order":7,"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"},default:"enabled"},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},"x-order":8,"x-go-type":"connection.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{"x-order":1,description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id"},"x-order":3,description:"Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type"},"x-order":5,type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,type:"object"},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":{yaml:"user_id",json:"user_id"},"x-order":9,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},registrantId:{description:"ID of the registrant.","x-oapi-codegen-extra-tags":{yaml:"connection_id",json:"connection_id",gorm:"column:connection_id"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},categoryId:{description:"ID of the category.","x-oapi-codegen-extra-tags":{yaml:"-",json:"-",gorm:"categoryID"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"},"x-go-type":"category.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",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 entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},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.",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:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategory.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"string",title:"SubCategory",description:"Sub category of the model determines the secondary grouping.",default:"Uncategorized",enum:["API Gateway","API Integration","Application Definition & Image Build","Automation & Configuration","Certified Kubernetes - Distribution","Chaos Engineering","Cloud Native Storage","Cloud Provider","CNI","Compute","Container Registry","Container Runtime","Container Security","Container","Content Delivery Network","Continuous Integration & Delivery","Coordination & Service Discovery","Database","Flowchart","Framework","Installable Platform","Key Management","Key Management Service","Kubernetes","Logging","Machine Learning","Management Governance","Metrics","Monitoring","Networking Content Delivery","Operating System","Query","Remote Procedure Call","Scheduling & Orchestration","Secrets Management","Security Identity & Compliance","Service Mesh","Service Proxy","Source Version Control","Storage","Specifications","Streaming & Messaging","Tools","Tracing","Uncategorized","Video Conferencing"],minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",required:["svgWhite","svgColor"],properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-order":1},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},"x-order":2,default:false},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,default:"#00b39f","x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"},"x-order":3},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,default:"#00D3A9","x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"},"x-order":4},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"},"x-order":5,default:'<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z" fill="#fff"/><path d="M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z" fill="#fff" fill-opacity=".8"/><path d="m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z" fill="#fff"/><path d="M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z" fill="#fff" fill-opacity=".8"/><path d="m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z" fill="#fff"/><path d="M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z" fill="#fff"/><path d="M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z" fill="#fff"/><path d="M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z" fill="#fff" fill-opacity=".8"/><path d="M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z" fill="#fff"/><path d="M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z" fill="#fff" fill-opacity=".8"/><path d="M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z" fill="#fff"/><path d="M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z" fill="#fff" fill-opacity=".8"/><path d="M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z" fill="#fff"/><path d="M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z" fill="#fff" fill-opacity=".8"/></svg>'},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"},"x-order":6,default:'<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 134.95 135.02"><defs><style>.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}</style></defs><title>meshery-logo-light</title><polygon points="69.49 31.82 69.49 64.07 97.44 47.89 69.49 31.82" class="cls-1"/><polygon points="69.49 70.81 69.49 103.22 97.7 87.09 69.49 70.81" class="cls-1"/><polygon points="65.47 63.85 65.47 32.09 37.87 47.92 65.47 63.85" class="cls-2"/><path d="M10.1,103.1a67.79,67.79,0,0,0,21.41,21.55V90.71Z" class="cls-2"/><polygon points="65.47 103.06 65.47 71.05 37.8 87.07 65.47 103.06" class="cls-2"/><polygon points="35.54 122.63 63.56 106.61 35.54 90.41 35.54 122.63" class="cls-1"/><polygon points="99.61 122.8 99.61 90.63 71.63 106.63 99.61 122.8" class="cls-2"/><path d="M127,99.37a67.22,67.22,0,0,0,7.91-28.94L105.78,87.11Z" class="cls-2"/><polygon points="103.64 83.69 131.76 67.61 103.64 51.45 103.64 83.69" class="cls-1"/><polygon points="99.61 44.5 99.61 12.52 71.76 28.49 99.61 44.5" class="cls-2"/><polygon points="99.61 83.55 99.61 51.28 71.7 67.44 99.61 83.55" class="cls-2"/><polygon points="67.48 135.02 67.49 135.02 67.48 135.02 67.48 135.02" class="cls-2"/><polygon points="35.54 51.22 35.54 83.73 63.66 67.45 35.54 51.22" class="cls-1"/><path d="M65.47,0A67.2,67.2,0,0,0,35.83,7.83l29.64,17Z" class="cls-2"/><polygon points="35.54 12.3 35.54 44.62 63.68 28.48 35.54 12.3" class="cls-1"/><path d="M31.51,10.34A67.89,67.89,0,0,0,10.1,31.89L31.51,44.25Z" class="cls-2"/><path d="M99.43,8A67.23,67.23,0,0,0,69.49,0V25.15Z" class="cls-1"/><path d="M0,69.87A67.27,67.27,0,0,0,8.07,99.63L29.76,87.07Z" class="cls-1"/><path d="M8.07,35.37A67.16,67.16,0,0,0,0,65L29.79,47.91Z" class="cls-1"/><path d="M35.78,127.13A67.13,67.13,0,0,0,65.47,135V110.15Z" class="cls-2"/><path d="M124.92,32a67.9,67.9,0,0,0-21.28-21.52V44.3Z" class="cls-1"/><path d="M103.64,124.54A68,68,0,0,0,125,102.86L103.64,90.52Z" class="cls-1"/><path d="M135,64.81a67.06,67.06,0,0,0-8-29.35L105.49,47.88Z" class="cls-2"/><path d="M69.49,135a67.12,67.12,0,0,0,29.63-7.83L69.49,110Z" class="cls-1"/><polygon points="31.51 83.44 31.51 51.56 3.83 67.43 31.51 83.44" class="cls-2"/></svg>'},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"},"x-order":7},shape:{"x-order":8,type:"string",description:"The shape of the node\u2019s 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)",default:"circle",enum:["circle","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"]}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",json:"metadata",yaml:"metadata"},"x-order":11,additionalProperties:true},model:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-order":12,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.",allOf:[{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"}],"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},"x-order":1}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"}},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"}},componentsCount:{type:"integer",description:"Number of components associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{json:"components_count",yaml:"components_count",gorm:"-"},default:0},relationshipsCount:{type:"integer",description:"Number of relationships associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships_count",yaml:"relationships_count"},default:0}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},modelId:{description:"ModelId is the foreign key to the model to which the component belongs.","x-oapi-codegen-extra-tags":{gorm:"index:idx_component_definition_dbs_model_id,column:model_id",yaml:"-",json:"-"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},"x-order":8,type:"object",description:"Visualization styles for a component",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."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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},"z-index":{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."},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"},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.","x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.","x-go-type":"float64"}}},"body-text":{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"},"body-text-wrap":{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'."},"body-text-max-width":{type:"string",description:"The maximum width for wrapping text in the node."},"body-text-opacity":{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},"body-text-background-color":{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-size":{type:"number",description:"The size of the node's body text."},"body-text-color":{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-weight":{type:"string",description:"A CSS font weight to be applied to the node's body text."},"body-text-horizontal-align":{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text."},"body-text-decoration":{type:"string",description:"A CSS text decoration to be applied to the node's body text."},"body-text-vertical-align":{type:"string",description:"A CSS vertical alignment to be applied to the node's body text."},width:{type:"number",description:"The width of the node's body or the width of an edge's line."},height:{type:"number",description:"The height of the node's body"},"background-image":{type:"string",description:"The URL that points to the image to show in the node."},"background-color":{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g."},"background-blacken":{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},"background-opacity":{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},"background-position-x":{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-position-y":{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-x":{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-y":{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-fit":{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'."},"background-clip":{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'."},"background-width-relative-to":{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'."},"background-height-relative-to":{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'."},"border-width":{type:"number",description:"The size of the node's border.",minimum:0},"border-style":{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},"border-color":{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g."},"border-opacity":{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},"text-halign":{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},"text-valign":{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"]},"active-bg-color":{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."},"active-bg-opacity":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"active-bg-size":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"selection-box-color":{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."},"selection-box-border-width":{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*"},"selection-box-opacity":{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},"outside-texture-bg-color":{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."},"outside-texture-bg-opacity":{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},"shape-polygon-points":{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 )"},"menu-background-color":{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g."},"menu-background-opacity":{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},"menu-forground-color":{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."}}}]},capabilities:{"x-order":9,type:"array",description:"Meshery manages components in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. ComponentDefinitions may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"capabilities",json:"capabilities"},default:[{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Performance Test",description:"Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.",kind:"action",type:"operator",subType:"perf-test",key:"",entityState:["instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Workload Configuration",description:"Configure the workload specific setting of a component",kind:"mutate",type:"configuration",subType:"config",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Labels and Annotations Configuration",description:"Configure Labels And Annotations for the component ",kind:"mutate",type:"configuration",subType:"labels-and-annotations",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Relationships",description:"View relationships for the component",kind:"view",type:"configuration",subType:"relationship",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Json Schema",description:"View Component Definition ",kind:"view",type:"configuration",subType:"definition",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Styling",description:"Configure the visual styles for the component",kind:"mutate",type:"style",subType:"",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Change Shape",description:"Change the shape of the component",kind:"mutate",type:"style",subType:"shape",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Compound Drag And Drop",description:"Drag and Drop a component into a parent component in graph view",kind:"interaction",type:"graph",subType:"compoundDnd",key:"",entityState:["declaration"],status:"enabled",metadata:null}]},status:{"x-order":10,type:"string",description:`Status of component, including:
|
|
150
|
+
- 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.
|
|
151
|
+
- maintenance: model is unavailable for a period of time.
|
|
152
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
153
|
+
- 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."},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 clsuter 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/ ."}},"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 Component Defintion wraps , this is herematicaly sealed an",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1},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},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3}},required:["version","kind","schema"]}},required:["id","displayName","description","schemaVersion","format","version","configuration","metadata","modelId","model","component"]}},preferences:{type:"object",description:"Design-level preferences","x-order":7,properties:{layers:{type:"object",description:"List of available layers"}},required:["layers"]},relationships:{description:"List of relationships between components",type:"array","x-order":8,items:{"x-go-type":"*relationship.RelationshipDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha3/relationship"},$id:"https://schemas.meshery.io/relationship.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Relationships define the nature of interaction between interconnected components in Meshery. The combination of relationship properties kind, type, and subtype characterize various genealogical relations among and between components. Relationships have selectors, selector sets, metadata, and optional parameters. Learn more at https://docs.meshery.io/concepts/logical/relationships.",required:["schemaVersion","version","model","kind","type","subType"],additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the relationship definition.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"v1alpha3"},version:{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},model:{description:"Name of the model in which this relationship is packaged.",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
154
|
+
- 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.
|
|
155
|
+
- maintenance: model is unavailable for a period of time.
|
|
156
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
157
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",oneOf:[{const:"inventory",description:"A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component."},{const:"matchLabels",description:"Match label relationships offer a dynamic association between one or more components and are a flexible way to group and manage related components in Meshery."},{const:"permission",description:"A relationship that represents a set of security-centric bindings between components."},{const:"network",description:"A relationship that represents a line of communication between two or more components."},{const:"firewall",description:"A relationship that act as a network-based security boundary for ingress and egress traffic."},{const:"mount",description:"A relationship that represents volume mounts between components."},{const:"alias",description:"An alias for a field path in another component."},{const:"annotation",description:"A relationship that provide valuable context for users, controllers, and third-party tools within the Meshery ecosystem."}],"x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},kind:{description:"Kind of the Relationship. Learn more about relationships - https://docs.meshery.io/concepts/logical/relationships.",enum:["hierarchical","edge","sibling"],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of relationships. Used to group relationships similar in nature.","x-go-name":"RelationshipType",gorm:"column:type",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of relationship classification. The combination of Kind, Type and SubType together uniquely identify a Relationship.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},status:{type:"string",description:"Status of the relationship.",default:"enabled",enum:["pending","approved","ignored","enabled","deleted"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},evaluationQuery:{description:"Optional. Assigns the policy to be used for the evaluation of the relationship. Deprecation Notice: In the future, this property is either to be removed or to it is to be an array of optional policy $refs.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"evaluationQuery",json:"evaluationQuery"}},capabilities:{type:"array",description:"Capabilities associated with the relationship.",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}},metadata:{type:"object",description:"Metadata contains additional information associated with the Relationship.",additionalProperties:true,"x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:Id"},properties:{description:{description:"Characterization of the meaning of the relationship and its relevance to both Meshery and entities under management.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},isAnnotation:{type:"boolean",description:"Indicates whether the relationship should be treated as a logical representation only","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},default:false},styles:{anyOf:[{type:"object",description:"Visualization styles for a relationship",allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}}},{properties:{"edge-animation":{type:"string",description:"The animation to use for the edge. Can be like 'marching-ants' , 'blink' , 'moving-gradient',etc ."},"curve-style":{type:"string",description:"The curving method used to separate two or more edges between two nodes; may be haystack (very fast, bundled straight edges for which loops and compounds are unsupported), straight (straight edges with all arrows supported), bezier (bundled curved edges), unbundled-bezier (curved edges for use with manual control points), segments (a series of straight lines), taxi (right-angled lines, hierarchically bundled). Note that haystack edges work best with ellipse, rectangle, or similar nodes. Smaller node shapes, like triangle, will not be as aesthetically pleasing. Also note that edge endpoint arrows are unsupported for haystack edges.",default:"straight",enum:["straight","haystack","bezier","unbundled-bezier","segments","taxi"]},"line-color":{type:"string",description:"The colour of the edge\u2019s line. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"line-style":{type:"string",description:"The style of the edge\u2019s line.",enum:["solid","dotted","dashed"]},"line-cap":{type:"string",description:"The cap style of the edge\u2019s line; may be butt (default), round, or square. The cap may or may not be visible, depending on the shape of the node and the relative size of the node and edge. Caps other than butt extend beyond the specified endpoint of the edge.",enum:["butt","round","square"],default:"butt"},"line-opacity":{type:"number",minimum:0,maximum:1,default:1,description:"The opacity of the edge\u2019s line and arrow. Useful if you wish to have a separate opacity for the edge label versus the edge line. Note that the opacity value of the edge element affects the effective opacity of its line and label subcomponents."},"target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"mid-target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"mid-target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"mid-target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"arrow-scale":{type:"number",description:"Scaling for the arrow size.",minimum:0},"source-label":{type:"string",description:"The text to display for an edge\u2019s source label. Can give a path, e.g. data(id) will label with the elements id"},"target-label":{type:"string",description:"The text to display for an edge\u2019s target label. Can give a path, e.g. data(id) will label with the elements id"}}}]},{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}},$comment:"Extension point for additional styles"}],"x-oapi-codegen-extra-tags":{yaml:"styles",json:"styles"}}}},selectors:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},type:"array",description:"Selectors are organized as an array, with each item containing a distinct set of selectors that share a common functionality. This structure allows for flexibility in defining relationships, even when different components are involved.",$comment:"Sets of selectors are interpreted as a logical UNION. Properties within a selector `allow` and `deny` are interpreted as logical AND, while 'from' and 'to' represents a UNION of set of combinatorial pairs.",items:{type:"object",description:"Optional selectors used to match Components. Absence of a selector means that it is applied to all Components.",additionalProperties:false,required:["allow"],properties:{deny:{description:"Optional selectors used to define relationships which should not be created / is restricted.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
158
|
+
- 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.
|
|
159
|
+
- maintenance: model is unavailable for a period of time.
|
|
160
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
161
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
162
|
+
|
|
163
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
164
|
+
replace: Replaces a value.
|
|
165
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
166
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
167
|
+
remove: Removes a value.
|
|
168
|
+
copy: Copies a value from one location to another.
|
|
169
|
+
move: Moves a value from one location to another.
|
|
170
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
171
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
172
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
173
|
+
- 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.
|
|
174
|
+
- maintenance: model is unavailable for a period of time.
|
|
175
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
176
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
177
|
+
|
|
178
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
179
|
+
replace: Replaces a value.
|
|
180
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
181
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
182
|
+
remove: Removes a value.
|
|
183
|
+
copy: Copies a value from one location to another.
|
|
184
|
+
move: Moves a value from one location to another.
|
|
185
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
186
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
187
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}},allow:{description:"Selectors used to define relationships which are allowed.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},match_strategy_matrix:{description:"Strategy criterion for determing how to match the values at mutator/mutated paths",type:"array",items:{type:"array",items:{type:"string"}}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
188
|
+
- 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.
|
|
189
|
+
- maintenance: model is unavailable for a period of time.
|
|
190
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
191
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
192
|
+
|
|
193
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
194
|
+
replace: Replaces a value.
|
|
195
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
196
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
197
|
+
remove: Removes a value.
|
|
198
|
+
copy: Copies a value from one location to another.
|
|
199
|
+
move: Moves a value from one location to another.
|
|
200
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
201
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
202
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
203
|
+
- 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.
|
|
204
|
+
- maintenance: model is unavailable for a period of time.
|
|
205
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
206
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
207
|
+
|
|
208
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
209
|
+
replace: Replaces a value.
|
|
210
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
211
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
212
|
+
remove: Removes a value.
|
|
213
|
+
copy: Copies a value from one location to another.
|
|
214
|
+
move: Moves a value from one location to another.
|
|
215
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
216
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
217
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}}}}}}}}},required:["id","name","schemaVersion","version","components","relationships"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},visibility:{type:"string","x-go-type-skip-optional-pointer":true}}}},resultType:{type:"string"},total_count:{type:"integer"}}},MesheryPatternDeleteRequestBody:{type:"object",properties:{patterns:{type:"array",items:{"x-go-type":"DeletePatternModel",type:"object",properties:{id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true}}}}}},MesheryPatternRequestBody:{type:"object",properties:{path:{type:"string","x-go-type-skip-optional-pointer":true},pattern_data:{"x-go-type":"MesheryPattern",type:"object",properties:{catalog_data:{"x-go-type":"catalog.CatalogData","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha2/catalog"},type:"object",properties:{publishedVersion:{description:"Tracks the specific content version that has been made available in the Catalog.",type:"string"},class:{description:"Published content is classifed by its support level. Content classes help you understand the origin and expected support level for each piece of content. It is important to note that the level of support may vary within each class, and you should exercise discretion when using community-contributed content. Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable. Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility. Content produced and supported by the respective project or organization responsible for the specific technology. This class offers a level of support from the project maintainers themselves. Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Community content may have varying levels of support and reliability.",type:"string",oneOf:[{const:"official",description:"Content produced and fully supported by Meshery maintainers. This represents the highest level of support and is considered the most reliable."},{const:"verified",description:"Content produced by partners and verified by Meshery maintainers. While not directly maintained by Meshery, it has undergone a verification process to ensure quality and compatibility."},{const:"reference architecture",description:"Content produced and shared by Meshery users. This includes a wide range of content, such as performance profiles, test results, filters, patterns, and applications. Reference architecture content may have varying levels of support and reliability."}]},compatibility:{type:"array",title:"Model",items:{enum:["kubernetes"],type:"string"},uniqueItems:true,minItems:1,description:"One or more models associated with this catalog item. For designs, a list of one or more models implicated by components within the design. For models, this is self-referential."},pattern_caveats:{type:"string",title:"Caveats and Considerations",description:"Specific stipulations to consider and known behaviors to be aware of when using this design."},pattern_info:{type:"string",title:"Description",minLength:1,description:"Purpose of the design along with its intended and unintended uses."},type:{type:"string",title:"Type",enum:["Deployment","Observability","Resiliency","Scaling","Security","Traffic-management","Troubleshooting","Workloads"],default:"Deployment",description:"Categorization of the type of design or operational flow depicted in this design."},snapshotURL:{type:"array",items:{type:"string",format:"uri",pattern:"^(https?|http?|oci)://"},description:"Contains reference to the dark and light mode snapshots of the design."}},required:["compatibility","pattern_caveats","pattern_info","type"]},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},user_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},location:{type:"object",additionalProperties:{type:"string"},"x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},pattern_file:{"x-go-type":"PatternFile",$schema:"http://json-schema.org/draft-07/schema#",title:"Design Schema",description:"Designs are your primary tool for collaborative authorship of your infrastructure, workflow, and processes.",type:"object",properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{type:"string",description:"Name of the design; a descriptive, but concise title for the design document.","x-order":2},schemaVersion:{description:"Specifies the version of the schema to which the design conforms.","x-order":3,type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{default:"v0.0.1","x-order":4,description:"Revision of the design as expressed by an auto-incremented, SemVer-compliant version number. May be manually set by a user or third-party system, but will always be required to be of version number higher than the previously defined version number.",minLength:1,maxLength:50,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-]+)*)?$"},metadata:{type:"object","x-order":5,additionalProperties:true,properties:{resolvedAliases:{description:"Map of resolved aliases present in the design",type:"object","x-go-type":"map[string]core.ResolvedAlias","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},additionalProperties:{description:"An resolved alias is an component that acts as an ref/pointer to a field in another component, resolvedAlias are aware of there immediate parents and completely resolved parents also",allOf:[{description:"An alias is an component that acts as an ref/pointer to a field in another component, nonResolvedAlias are not aware of there immediate parents",type:"object",properties:{relationship_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"}},alias_component_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"}},immediate_parent_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"}},immediate_ref_field_path:{type:"array",items:{type:"string"}}},required:["relationship_id","alias_component_id","immediate_parent_id","immediate_ref_field_path"]},{type:"object",properties:{resolved_parent_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"}},resolved_ref_field_path:{type:"array",items:{type:"string"}}},required:["resolved_parent_id","resolved_ref_field_path"]}]}}}},components:{description:"A list of one or more component declarations.",minItems:0,"x-order":6,type:"array",items:{"x-go-type":"*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component"},$id:"https://schemas.meshery.io/component.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},displayName:{"x-order":4,description:"Name of the component in human-readible 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"}},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":"model.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model"},"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"},$id:"https://schemas.meshery.io/model.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},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:
|
|
218
|
+
- 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.
|
|
219
|
+
- maintenance: model is unavailable for a period of time.
|
|
220
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
221
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-order":7,"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"},default:"enabled"},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},"x-order":8,"x-go-type":"connection.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{"x-order":1,description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id"},"x-order":3,description:"Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type"},"x-order":5,type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,type:"object"},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":{yaml:"user_id",json:"user_id"},"x-order":9,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},registrantId:{description:"ID of the registrant.","x-oapi-codegen-extra-tags":{yaml:"connection_id",json:"connection_id",gorm:"column:connection_id"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},categoryId:{description:"ID of the category.","x-oapi-codegen-extra-tags":{yaml:"-",json:"-",gorm:"categoryID"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"},"x-go-type":"category.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",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 entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},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.",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:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategory.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"string",title:"SubCategory",description:"Sub category of the model determines the secondary grouping.",default:"Uncategorized",enum:["API Gateway","API Integration","Application Definition & Image Build","Automation & Configuration","Certified Kubernetes - Distribution","Chaos Engineering","Cloud Native Storage","Cloud Provider","CNI","Compute","Container Registry","Container Runtime","Container Security","Container","Content Delivery Network","Continuous Integration & Delivery","Coordination & Service Discovery","Database","Flowchart","Framework","Installable Platform","Key Management","Key Management Service","Kubernetes","Logging","Machine Learning","Management Governance","Metrics","Monitoring","Networking Content Delivery","Operating System","Query","Remote Procedure Call","Scheduling & Orchestration","Secrets Management","Security Identity & Compliance","Service Mesh","Service Proxy","Source Version Control","Storage","Specifications","Streaming & Messaging","Tools","Tracing","Uncategorized","Video Conferencing"],minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",required:["svgWhite","svgColor"],properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-order":1},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},"x-order":2,default:false},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,default:"#00b39f","x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"},"x-order":3},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,default:"#00D3A9","x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"},"x-order":4},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"},"x-order":5,default:'<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z" fill="#fff"/><path d="M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z" fill="#fff" fill-opacity=".8"/><path d="m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z" fill="#fff"/><path d="M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z" fill="#fff" fill-opacity=".8"/><path d="m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z" fill="#fff"/><path d="M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z" fill="#fff"/><path d="M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z" fill="#fff"/><path d="M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z" fill="#fff" fill-opacity=".8"/><path d="M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z" fill="#fff"/><path d="M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z" fill="#fff" fill-opacity=".8"/><path d="M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z" fill="#fff"/><path d="M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z" fill="#fff" fill-opacity=".8"/><path d="M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z" fill="#fff"/><path d="M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z" fill="#fff" fill-opacity=".8"/></svg>'},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"},"x-order":6,default:'<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 134.95 135.02"><defs><style>.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}</style></defs><title>meshery-logo-light</title><polygon points="69.49 31.82 69.49 64.07 97.44 47.89 69.49 31.82" class="cls-1"/><polygon points="69.49 70.81 69.49 103.22 97.7 87.09 69.49 70.81" class="cls-1"/><polygon points="65.47 63.85 65.47 32.09 37.87 47.92 65.47 63.85" class="cls-2"/><path d="M10.1,103.1a67.79,67.79,0,0,0,21.41,21.55V90.71Z" class="cls-2"/><polygon points="65.47 103.06 65.47 71.05 37.8 87.07 65.47 103.06" class="cls-2"/><polygon points="35.54 122.63 63.56 106.61 35.54 90.41 35.54 122.63" class="cls-1"/><polygon points="99.61 122.8 99.61 90.63 71.63 106.63 99.61 122.8" class="cls-2"/><path d="M127,99.37a67.22,67.22,0,0,0,7.91-28.94L105.78,87.11Z" class="cls-2"/><polygon points="103.64 83.69 131.76 67.61 103.64 51.45 103.64 83.69" class="cls-1"/><polygon points="99.61 44.5 99.61 12.52 71.76 28.49 99.61 44.5" class="cls-2"/><polygon points="99.61 83.55 99.61 51.28 71.7 67.44 99.61 83.55" class="cls-2"/><polygon points="67.48 135.02 67.49 135.02 67.48 135.02 67.48 135.02" class="cls-2"/><polygon points="35.54 51.22 35.54 83.73 63.66 67.45 35.54 51.22" class="cls-1"/><path d="M65.47,0A67.2,67.2,0,0,0,35.83,7.83l29.64,17Z" class="cls-2"/><polygon points="35.54 12.3 35.54 44.62 63.68 28.48 35.54 12.3" class="cls-1"/><path d="M31.51,10.34A67.89,67.89,0,0,0,10.1,31.89L31.51,44.25Z" class="cls-2"/><path d="M99.43,8A67.23,67.23,0,0,0,69.49,0V25.15Z" class="cls-1"/><path d="M0,69.87A67.27,67.27,0,0,0,8.07,99.63L29.76,87.07Z" class="cls-1"/><path d="M8.07,35.37A67.16,67.16,0,0,0,0,65L29.79,47.91Z" class="cls-1"/><path d="M35.78,127.13A67.13,67.13,0,0,0,65.47,135V110.15Z" class="cls-2"/><path d="M124.92,32a67.9,67.9,0,0,0-21.28-21.52V44.3Z" class="cls-1"/><path d="M103.64,124.54A68,68,0,0,0,125,102.86L103.64,90.52Z" class="cls-1"/><path d="M135,64.81a67.06,67.06,0,0,0-8-29.35L105.49,47.88Z" class="cls-2"/><path d="M69.49,135a67.12,67.12,0,0,0,29.63-7.83L69.49,110Z" class="cls-1"/><polygon points="31.51 83.44 31.51 51.56 3.83 67.43 31.51 83.44" class="cls-2"/></svg>'},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"},"x-order":7},shape:{"x-order":8,type:"string",description:"The shape of the node\u2019s 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)",default:"circle",enum:["circle","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"]}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",json:"metadata",yaml:"metadata"},"x-order":11,additionalProperties:true},model:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-order":12,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.",allOf:[{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"}],"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},"x-order":1}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"}},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"}},componentsCount:{type:"integer",description:"Number of components associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{json:"components_count",yaml:"components_count",gorm:"-"},default:0},relationshipsCount:{type:"integer",description:"Number of relationships associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships_count",yaml:"relationships_count"},default:0}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},modelId:{description:"ModelId is the foreign key to the model to which the component belongs.","x-oapi-codegen-extra-tags":{gorm:"index:idx_component_definition_dbs_model_id,column:model_id",yaml:"-",json:"-"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},"x-order":8,type:"object",description:"Visualization styles for a component",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."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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},"z-index":{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."},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"},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.","x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.","x-go-type":"float64"}}},"body-text":{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"},"body-text-wrap":{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'."},"body-text-max-width":{type:"string",description:"The maximum width for wrapping text in the node."},"body-text-opacity":{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},"body-text-background-color":{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-size":{type:"number",description:"The size of the node's body text."},"body-text-color":{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-weight":{type:"string",description:"A CSS font weight to be applied to the node's body text."},"body-text-horizontal-align":{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text."},"body-text-decoration":{type:"string",description:"A CSS text decoration to be applied to the node's body text."},"body-text-vertical-align":{type:"string",description:"A CSS vertical alignment to be applied to the node's body text."},width:{type:"number",description:"The width of the node's body or the width of an edge's line."},height:{type:"number",description:"The height of the node's body"},"background-image":{type:"string",description:"The URL that points to the image to show in the node."},"background-color":{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g."},"background-blacken":{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},"background-opacity":{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},"background-position-x":{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-position-y":{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-x":{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-y":{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-fit":{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'."},"background-clip":{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'."},"background-width-relative-to":{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'."},"background-height-relative-to":{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'."},"border-width":{type:"number",description:"The size of the node's border.",minimum:0},"border-style":{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},"border-color":{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g."},"border-opacity":{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},"text-halign":{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},"text-valign":{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"]},"active-bg-color":{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."},"active-bg-opacity":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"active-bg-size":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"selection-box-color":{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."},"selection-box-border-width":{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*"},"selection-box-opacity":{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},"outside-texture-bg-color":{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."},"outside-texture-bg-opacity":{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},"shape-polygon-points":{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 )"},"menu-background-color":{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g."},"menu-background-opacity":{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},"menu-forground-color":{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."}}}]},capabilities:{"x-order":9,type:"array",description:"Meshery manages components in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. ComponentDefinitions may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"capabilities",json:"capabilities"},default:[{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Performance Test",description:"Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.",kind:"action",type:"operator",subType:"perf-test",key:"",entityState:["instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Workload Configuration",description:"Configure the workload specific setting of a component",kind:"mutate",type:"configuration",subType:"config",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Labels and Annotations Configuration",description:"Configure Labels And Annotations for the component ",kind:"mutate",type:"configuration",subType:"labels-and-annotations",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Relationships",description:"View relationships for the component",kind:"view",type:"configuration",subType:"relationship",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Json Schema",description:"View Component Definition ",kind:"view",type:"configuration",subType:"definition",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Styling",description:"Configure the visual styles for the component",kind:"mutate",type:"style",subType:"",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Change Shape",description:"Change the shape of the component",kind:"mutate",type:"style",subType:"shape",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Compound Drag And Drop",description:"Drag and Drop a component into a parent component in graph view",kind:"interaction",type:"graph",subType:"compoundDnd",key:"",entityState:["declaration"],status:"enabled",metadata:null}]},status:{"x-order":10,type:"string",description:`Status of component, including:
|
|
222
|
+
- 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.
|
|
223
|
+
- maintenance: model is unavailable for a period of time.
|
|
224
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
225
|
+
- 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."},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 clsuter 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/ ."}},"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 Component Defintion wraps , this is herematicaly sealed an",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1},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},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3}},required:["version","kind","schema"]}},required:["id","displayName","description","schemaVersion","format","version","configuration","metadata","modelId","model","component"]}},preferences:{type:"object",description:"Design-level preferences","x-order":7,properties:{layers:{type:"object",description:"List of available layers"}},required:["layers"]},relationships:{description:"List of relationships between components",type:"array","x-order":8,items:{"x-go-type":"*relationship.RelationshipDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha3/relationship"},$id:"https://schemas.meshery.io/relationship.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Relationships define the nature of interaction between interconnected components in Meshery. The combination of relationship properties kind, type, and subtype characterize various genealogical relations among and between components. Relationships have selectors, selector sets, metadata, and optional parameters. Learn more at https://docs.meshery.io/concepts/logical/relationships.",required:["schemaVersion","version","model","kind","type","subType"],additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the relationship definition.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"v1alpha3"},version:{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},model:{description:"Name of the model in which this relationship is packaged.",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
226
|
+
- 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.
|
|
227
|
+
- maintenance: model is unavailable for a period of time.
|
|
228
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
229
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",oneOf:[{const:"inventory",description:"A hierarchical inventory relationship in which the configuration of (parent) component is patched with the configuration of other (child) component. Eg: The configuration of the EnvoyFilter (parent) component is patched with the configuration as received from WASMFilter (child) component."},{const:"matchLabels",description:"Match label relationships offer a dynamic association between one or more components and are a flexible way to group and manage related components in Meshery."},{const:"permission",description:"A relationship that represents a set of security-centric bindings between components."},{const:"network",description:"A relationship that represents a line of communication between two or more components."},{const:"firewall",description:"A relationship that act as a network-based security boundary for ingress and egress traffic."},{const:"mount",description:"A relationship that represents volume mounts between components."},{const:"alias",description:"An alias for a field path in another component."},{const:"annotation",description:"A relationship that provide valuable context for users, controllers, and third-party tools within the Meshery ecosystem."}],"x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},kind:{description:"Kind of the Relationship. Learn more about relationships - https://docs.meshery.io/concepts/logical/relationships.",enum:["hierarchical","edge","sibling"],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of relationships. Used to group relationships similar in nature.","x-go-name":"RelationshipType",gorm:"column:type",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of relationship classification. The combination of Kind, Type and SubType together uniquely identify a Relationship.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},status:{type:"string",description:"Status of the relationship.",default:"enabled",enum:["pending","approved","ignored","enabled","deleted"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},evaluationQuery:{description:"Optional. Assigns the policy to be used for the evaluation of the relationship. Deprecation Notice: In the future, this property is either to be removed or to it is to be an array of optional policy $refs.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"evaluationQuery",json:"evaluationQuery"}},capabilities:{type:"array",description:"Capabilities associated with the relationship.",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}},metadata:{type:"object",description:"Metadata contains additional information associated with the Relationship.",additionalProperties:true,"x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:Id"},properties:{description:{description:"Characterization of the meaning of the relationship and its relevance to both Meshery and entities under management.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},isAnnotation:{type:"boolean",description:"Indicates whether the relationship should be treated as a logical representation only","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},default:false},styles:{anyOf:[{type:"object",description:"Visualization styles for a relationship",allOf:[{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}}},{properties:{"edge-animation":{type:"string",description:"The animation to use for the edge. Can be like 'marching-ants' , 'blink' , 'moving-gradient',etc ."},"curve-style":{type:"string",description:"The curving method used to separate two or more edges between two nodes; may be haystack (very fast, bundled straight edges for which loops and compounds are unsupported), straight (straight edges with all arrows supported), bezier (bundled curved edges), unbundled-bezier (curved edges for use with manual control points), segments (a series of straight lines), taxi (right-angled lines, hierarchically bundled). Note that haystack edges work best with ellipse, rectangle, or similar nodes. Smaller node shapes, like triangle, will not be as aesthetically pleasing. Also note that edge endpoint arrows are unsupported for haystack edges.",default:"straight",enum:["straight","haystack","bezier","unbundled-bezier","segments","taxi"]},"line-color":{type:"string",description:"The colour of the edge\u2019s line. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"line-style":{type:"string",description:"The style of the edge\u2019s line.",enum:["solid","dotted","dashed"]},"line-cap":{type:"string",description:"The cap style of the edge\u2019s line; may be butt (default), round, or square. The cap may or may not be visible, depending on the shape of the node and the relative size of the node and edge. Caps other than butt extend beyond the specified endpoint of the edge.",enum:["butt","round","square"],default:"butt"},"line-opacity":{type:"number",minimum:0,maximum:1,default:1,description:"The opacity of the edge\u2019s line and arrow. Useful if you wish to have a separate opacity for the edge label versus the edge line. Note that the opacity value of the edge element affects the effective opacity of its line and label subcomponents."},"target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"mid-target-arrow-color":{type:"string",description:"The colour of the edge\u2019s source arrow. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"mid-target-arrow-shape":{type:"string",description:"The shape of the edge\u2019s source arrow",enum:["triangle","triangle-tee","circle-triangle","triangle-cross","triangle-backcurve","vee","tee","square","circle","diamond","chevron","none"]},"mid-target-arrow-fill":{type:"string",description:"The fill state of the edge\u2019s source arrow",enum:["filled","hollow"]},"arrow-scale":{type:"number",description:"Scaling for the arrow size.",minimum:0},"source-label":{type:"string",description:"The text to display for an edge\u2019s source label. Can give a path, e.g. data(id) will label with the elements id"},"target-label":{type:"string",description:"The text to display for an edge\u2019s target label. Can give a path, e.g. data(id) will label with the elements id"}}}]},{type:"object",description:"Common styles for all entities",additionalProperties:false,required:["primaryColor","svgColor","svgWhite"],properties:{primaryColor:{type:"string",description:"Primary color of the component used for UI representation."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g. #ff0000 or #f00), RGB (e.g. rgb(255, 0, 0)), or HSL (e.g. hsl(0, 100%, 50%))."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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.See https://js.cytoscape.org/#style/visibility",minimum:0,maximum:1},"z-index":{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."},label:{type:"string",description:"The text to display for an element\u2019s label. Can give a path, e.g. data(id) will label with the elements id"}},$comment:"Extension point for additional styles"}],"x-oapi-codegen-extra-tags":{yaml:"styles",json:"styles"}}}},selectors:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},type:"array",description:"Selectors are organized as an array, with each item containing a distinct set of selectors that share a common functionality. This structure allows for flexibility in defining relationships, even when different components are involved.",$comment:"Sets of selectors are interpreted as a logical UNION. Properties within a selector `allow` and `deny` are interpreted as logical AND, while 'from' and 'to' represents a UNION of set of combinatorial pairs.",items:{type:"object",description:"Optional selectors used to match Components. Absence of a selector means that it is applied to all Components.",additionalProperties:false,required:["allow"],properties:{deny:{description:"Optional selectors used to define relationships which should not be created / is restricted.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
230
|
+
- 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.
|
|
231
|
+
- maintenance: model is unavailable for a period of time.
|
|
232
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
233
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
234
|
+
|
|
235
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
236
|
+
replace: Replaces a value.
|
|
237
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
238
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
239
|
+
remove: Removes a value.
|
|
240
|
+
copy: Copies a value from one location to another.
|
|
241
|
+
move: Moves a value from one location to another.
|
|
242
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
243
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
244
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
245
|
+
- 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.
|
|
246
|
+
- maintenance: model is unavailable for a period of time.
|
|
247
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
248
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
249
|
+
|
|
250
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
251
|
+
replace: Replaces a value.
|
|
252
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
253
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
254
|
+
remove: Removes a value.
|
|
255
|
+
copy: Copies a value from one location to another.
|
|
256
|
+
move: Moves a value from one location to another.
|
|
257
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
258
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
259
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}},allow:{description:"Selectors used to define relationships which are allowed.",type:"object",required:["to","from"],properties:{from:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},match_strategy_matrix:{description:"Strategy criterion for determing how to match the values at mutator/mutated paths",type:"array",items:{type:"array",items:{type:"string"}}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
260
|
+
- 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.
|
|
261
|
+
- maintenance: model is unavailable for a period of time.
|
|
262
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
263
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
264
|
+
|
|
265
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
266
|
+
replace: Replaces a value.
|
|
267
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
268
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
269
|
+
remove: Removes a value.
|
|
270
|
+
copy: Copies a value from one location to another.
|
|
271
|
+
move: Moves a value from one location to another.
|
|
272
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
273
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
274
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}},to:{description:"Describes the component(s) which are involved in the relationship along with a set of actions to perform upon selection match.",type:"array",items:{type:"object",additionalProperties:false,properties:{kind:{type:"string","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},model:{description:"Name of the model implicated by this selector. Learn more at https://docs.meshery.io/concepts/models",$id:"https://schemas.meshery.io/model.json",$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).",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the model definition.",type:"string","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:{description:"The unique name for the model within the scope of a registrant.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},displayName:{description:"Human-readable name for the model.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_]*$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"Description of the model.",minLength:1,maxLength:1e3,"x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},status:{type:"string",description:`Status of model, including:
|
|
275
|
+
- 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.
|
|
276
|
+
- maintenance: model is unavailable for a period of time.
|
|
277
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
278
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name",json:"name"},type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id",json:"credential_id"},description:"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",json:"type"},type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type",json:"sub_type"},type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind",json:"kind"},type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata",json:"metadata"},type:"object"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status",json:"status"},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":{yaml:"user_id",json:"user_id"},type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},category:{type:"object",description:"Category of the model.",properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"}},metadata:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}},"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"}},subCategory:{type:"string",description:"Sub-category of the model.",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["schemaVersion","version","displayName","kind","type","entityState","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"],"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"}},version:{description:"Version of the capability 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-]+)*)?$","x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"}},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"}},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"kind",json:"kind"}},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"type",json:"type"}},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"subType",json:"subType"}},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$","x-oapi-codegen-extra-tags":{yaml:"key",json:"key"}},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed.","x-oapi-codegen-extra-tags":{yaml:"entityState",json:"entityState"}}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"],"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"}},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true,"x-oapi-codegen-extra-tags":{yaml:"metadata",json:"metadata"}}}}},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"}},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"}},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"}},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"}},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"}},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"}}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},additionalProperties:true},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":{yaml:"version",json:"version"},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-]+)*)?$"}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"}}},required:["name","version","registrant","category"]},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},match:{type:"object",additionalProperties:false,oneOf:[{type:"array",items:{type:"array",items:{type:"string"}}},{properties:{from:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}]}]}},to:{$comment:"Type is array so that mutliple bindings can be supported between 2 nodes",type:"array",items:{type:"object",allOf:[{properties:{kind:{type:"string"},id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"match",json:"match"}},patch:{allOf:[{properties:{patchStrategy:{description:`patchStrategy allows you to make specific changes to a resource using a standard JSON Patch format (RFC 6902).
|
|
279
|
+
|
|
280
|
+
add: Inserts a value into an array or adds a member to an object.
|
|
281
|
+
replace: Replaces a value.
|
|
282
|
+
merge: Combines the values of the target location with the values from the patch. If the target location doesn't exist, it is created.
|
|
283
|
+
strategic:specific to Kubernetes and understands the structure of Kubernetes objects. It can handle complex changes like updating lists and maps, as well as preserving default values. However, it's not supported for custom resources. For custom resources, only JSON Patch and Merge Patch are typically supported.
|
|
284
|
+
remove: Removes a value.
|
|
285
|
+
copy: Copies a value from one location to another.
|
|
286
|
+
move: Moves a value from one location to another.
|
|
287
|
+
test: Tests that a value at the target location is equal to a specified value.`,$comment:`Array Indexing: When working with arrays, be aware that Kubernetes uses zero-based indexing in JSON patch paths.
|
|
288
|
+
Merge Patch vs. JSON Patch: Merge patches are less flexible than JSON patches and do not support all the same operations.
|
|
289
|
+
Strategic Merge Patch: For some Kubernetes resources, you can also use the strategic type for a strategic merge patch, which understands the structure of Kubernetes objects and can handle complex operations.`,type:"string",enum:["merge","strategic","add","remove","copy","move","test"],default:"copy"}}},{oneOf:[{properties:{mutatorRef:{type:"array",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]."},description:"JSON ref to value from where patch should be applied."}}},{properties:{mutatedRef:{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:"patch",json:"patch"}}},description:"Optional fields that are a part of the `from` selector. Absence of a field has an implied * meaning."}}}}}}}}}}},required:["id","name","schemaVersion","version","components","relationships"]},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},visibility:{type:"string","x-go-type-skip-optional-pointer":true}}},save:{type:"boolean"},url:{description:"endpoint",'format"':"uri",pattern:"^https?://","x-go-type-skip-optional-pointer":true,type:"string"},name:{type:"string"}}},MesheryPatternImportRequestBody:{type:"object",description:"Choose the method you prefer to upload your design file. Select 'File Upload' if you have the file on your local system, or 'URL Import' if you have the file hosted online.",enum:["file","url"],properties:{file:{type:"string",format:"file",description:"Supported formats: Kubernetes Manifests, Helm Charts, Docker Compose, and Meshery Designs. See [Import Designs Documentation](https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-ui) for details"},file_name:{type:"string",description:"The name of the pattern file being imported."},name:{type:"string",default:"Untitled Design",description:"Provide a name for your design file. This name will help you identify the file more easily. You can also change the name of your design after importing it."},url:{type:"string",format:"uri",description:"Provide the URL of the file you want to import. This should be a direct URL to a single file, for example: https://raw.github.com/your-design-file.yaml. Also, ensure that design is in a supported format: Kubernetes Manifest, Helm Chart, Docker Compose, or Meshery Design. See [Import Designs Documentation](https://docs.meshery.io/guides/configuration-management/importing-designs#import-designs-using-meshery-ui) for details"}}}}},$schema:"http://json-schema.org/draft-04/schema#"},t=e;var i={openapi:"3.0.0",info:{title:"category",version:"1.0.0"},paths:{},components:{schemas:{CategoryDefinition:{$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",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 entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},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.",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:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}}}},$schema:"http://json-schema.org/draft-04/schema#"},a=i;var o={openapi:"3.0.0",info:{title:"SubCategory API",version:"1.0.0"},paths:{},components:{schemas:{SubCategoryDefinition:{$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"string",title:"SubCategory",description:"Sub category of the model determines the secondary grouping.",default:"Uncategorized",enum:["API Gateway","API Integration","Application Definition & Image Build","Automation & Configuration","Certified Kubernetes - Distribution","Chaos Engineering","Cloud Native Storage","Cloud Provider","CNI","Compute","Container Registry","Container Runtime","Container Security","Container","Content Delivery Network","Continuous Integration & Delivery","Coordination & Service Discovery","Database","Flowchart","Framework","Installable Platform","Key Management","Key Management Service","Kubernetes","Logging","Machine Learning","Management Governance","Metrics","Monitoring","Networking Content Delivery","Operating System","Query","Remote Procedure Call","Scheduling & Orchestration","Secrets Management","Security Identity & Compliance","Service Mesh","Service Proxy","Source Version Control","Storage","Specifications","Streaming & Messaging","Tools","Tracing","Uncategorized","Video Conferencing"],minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}}}},$schema:"http://json-schema.org/draft-04/schema#"},n=o;var r={openapi:"3.0.0",info:{title:"component",version:"1.0.0"},paths:{},components:{schemas:{ComponentDefinition:{$id:"https://schemas.meshery.io/component.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},displayName:{"x-order":4,description:"Name of the component in human-readible 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"}},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":"model.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model"},"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"},$id:"https://schemas.meshery.io/model.json",$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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},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-]+)*)?$",default:"v0.0.1"},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:
|
|
290
|
+
- 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.
|
|
291
|
+
- maintenance: model is unavailable for a period of time.
|
|
292
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
293
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-order":7,"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"},default:"enabled"},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},"x-order":8,"x-go-type":"connection.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{"x-order":1,description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id"},"x-order":3,description:"Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type"},"x-order":5,type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,type:"object"},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":{yaml:"user_id",json:"user_id"},"x-order":9,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},registrantId:{description:"ID of the registrant.","x-oapi-codegen-extra-tags":{yaml:"connection_id",json:"connection_id",gorm:"column:connection_id"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},categoryId:{description:"ID of the category.","x-oapi-codegen-extra-tags":{yaml:"-",json:"-",gorm:"categoryID"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"},"x-go-type":"category.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",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 entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},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.",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:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategory.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"string",title:"SubCategory",description:"Sub category of the model determines the secondary grouping.",default:"Uncategorized",enum:["API Gateway","API Integration","Application Definition & Image Build","Automation & Configuration","Certified Kubernetes - Distribution","Chaos Engineering","Cloud Native Storage","Cloud Provider","CNI","Compute","Container Registry","Container Runtime","Container Security","Container","Content Delivery Network","Continuous Integration & Delivery","Coordination & Service Discovery","Database","Flowchart","Framework","Installable Platform","Key Management","Key Management Service","Kubernetes","Logging","Machine Learning","Management Governance","Metrics","Monitoring","Networking Content Delivery","Operating System","Query","Remote Procedure Call","Scheduling & Orchestration","Secrets Management","Security Identity & Compliance","Service Mesh","Service Proxy","Source Version Control","Storage","Specifications","Streaming & Messaging","Tools","Tracing","Uncategorized","Video Conferencing"],minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",required:["svgWhite","svgColor"],properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-order":1},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},"x-order":2,default:false},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,default:"#00b39f","x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"},"x-order":3},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,default:"#00D3A9","x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"},"x-order":4},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"},"x-order":5,default:'<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z" fill="#fff"/><path d="M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z" fill="#fff" fill-opacity=".8"/><path d="m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z" fill="#fff"/><path d="M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z" fill="#fff" fill-opacity=".8"/><path d="m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z" fill="#fff"/><path d="M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z" fill="#fff"/><path d="M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z" fill="#fff"/><path d="M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z" fill="#fff" fill-opacity=".8"/><path d="M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z" fill="#fff"/><path d="M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z" fill="#fff" fill-opacity=".8"/><path d="M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z" fill="#fff"/><path d="M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z" fill="#fff" fill-opacity=".8"/><path d="M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z" fill="#fff"/><path d="M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z" fill="#fff" fill-opacity=".8"/></svg>'},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"},"x-order":6,default:'<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 134.95 135.02"><defs><style>.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}</style></defs><title>meshery-logo-light</title><polygon points="69.49 31.82 69.49 64.07 97.44 47.89 69.49 31.82" class="cls-1"/><polygon points="69.49 70.81 69.49 103.22 97.7 87.09 69.49 70.81" class="cls-1"/><polygon points="65.47 63.85 65.47 32.09 37.87 47.92 65.47 63.85" class="cls-2"/><path d="M10.1,103.1a67.79,67.79,0,0,0,21.41,21.55V90.71Z" class="cls-2"/><polygon points="65.47 103.06 65.47 71.05 37.8 87.07 65.47 103.06" class="cls-2"/><polygon points="35.54 122.63 63.56 106.61 35.54 90.41 35.54 122.63" class="cls-1"/><polygon points="99.61 122.8 99.61 90.63 71.63 106.63 99.61 122.8" class="cls-2"/><path d="M127,99.37a67.22,67.22,0,0,0,7.91-28.94L105.78,87.11Z" class="cls-2"/><polygon points="103.64 83.69 131.76 67.61 103.64 51.45 103.64 83.69" class="cls-1"/><polygon points="99.61 44.5 99.61 12.52 71.76 28.49 99.61 44.5" class="cls-2"/><polygon points="99.61 83.55 99.61 51.28 71.7 67.44 99.61 83.55" class="cls-2"/><polygon points="67.48 135.02 67.49 135.02 67.48 135.02 67.48 135.02" class="cls-2"/><polygon points="35.54 51.22 35.54 83.73 63.66 67.45 35.54 51.22" class="cls-1"/><path d="M65.47,0A67.2,67.2,0,0,0,35.83,7.83l29.64,17Z" class="cls-2"/><polygon points="35.54 12.3 35.54 44.62 63.68 28.48 35.54 12.3" class="cls-1"/><path d="M31.51,10.34A67.89,67.89,0,0,0,10.1,31.89L31.51,44.25Z" class="cls-2"/><path d="M99.43,8A67.23,67.23,0,0,0,69.49,0V25.15Z" class="cls-1"/><path d="M0,69.87A67.27,67.27,0,0,0,8.07,99.63L29.76,87.07Z" class="cls-1"/><path d="M8.07,35.37A67.16,67.16,0,0,0,0,65L29.79,47.91Z" class="cls-1"/><path d="M35.78,127.13A67.13,67.13,0,0,0,65.47,135V110.15Z" class="cls-2"/><path d="M124.92,32a67.9,67.9,0,0,0-21.28-21.52V44.3Z" class="cls-1"/><path d="M103.64,124.54A68,68,0,0,0,125,102.86L103.64,90.52Z" class="cls-1"/><path d="M135,64.81a67.06,67.06,0,0,0-8-29.35L105.49,47.88Z" class="cls-2"/><path d="M69.49,135a67.12,67.12,0,0,0,29.63-7.83L69.49,110Z" class="cls-1"/><polygon points="31.51 83.44 31.51 51.56 3.83 67.43 31.51 83.44" class="cls-2"/></svg>'},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"},"x-order":7},shape:{"x-order":8,type:"string",description:"The shape of the node\u2019s 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)",default:"circle",enum:["circle","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"]}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",json:"metadata",yaml:"metadata"},"x-order":11,additionalProperties:true},model:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-order":12,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.",allOf:[{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"}],"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},"x-order":1}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"}},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"}},componentsCount:{type:"integer",description:"Number of components associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{json:"components_count",yaml:"components_count",gorm:"-"},default:0},relationshipsCount:{type:"integer",description:"Number of relationships associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships_count",yaml:"relationships_count"},default:0}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},modelId:{description:"ModelId is the foreign key to the model to which the component belongs.","x-oapi-codegen-extra-tags":{gorm:"index:idx_component_definition_dbs_model_id,column:model_id",yaml:"-",json:"-"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},styles:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"styles",json:"styles"},"x-go-type":"core.ComponentStyles","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/core"},"x-order":8,type:"object",description:"Visualization styles for a component",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."},secondaryColor:{type:"string",description:"Secondary color of the entity used for UI representation."},svgWhite:{type:"string",description:"White SVG of the entity used for UI representation on dark background."},svgColor:{type:"string",description:"Colored SVG of the entity used for UI representation on light background."},svgComplete:{type:"string",description:"Complete SVG of the entity used for UI representation, often inclusive of background."},color:{type:"string",description:"The color of the element's label. Colours may be specified by name (e.g. red), hex (e.g."},"text-opacity":{type:"number",description:"The opacity of the label text, including its outline.",minimum:0,maximum:1},"font-family":{type:"string",description:"A comma-separated list of font names to use on the label text."},"font-size":{type:"string",description:"The size of the label text."},"font-style":{type:"string",description:"A CSS font style to be applied to the label text."},"font-weight":{type:"string",description:"A CSS font weight to be applied to the label text."},"text-transform":{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},"z-index":{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."},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"},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.","x-go-type":"float64"},y:{type:"number",description:"The y-coordinate of the node.","x-go-type":"float64"}}},"body-text":{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"},"body-text-wrap":{type:"string",description:"How to wrap the text in the node. Can be 'none', 'wrap', or 'ellipsis'."},"body-text-max-width":{type:"string",description:"The maximum width for wrapping text in the node."},"body-text-opacity":{type:"number",description:"The opacity of the node's body text, including its outline.",minimum:0,maximum:1},"body-text-background-color":{type:"string",description:"The colour of the node's body text background. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-size":{type:"number",description:"The size of the node's body text."},"body-text-color":{type:"string",description:"The colour of the node's body text. Colours may be specified by name (e.g. red), hex (e.g."},"body-text-font-weight":{type:"string",description:"A CSS font weight to be applied to the node's body text."},"body-text-horizontal-align":{type:"string",description:"A CSS horizontal alignment to be applied to the node's body text."},"body-text-decoration":{type:"string",description:"A CSS text decoration to be applied to the node's body text."},"body-text-vertical-align":{type:"string",description:"A CSS vertical alignment to be applied to the node's body text."},width:{type:"number",description:"The width of the node's body or the width of an edge's line."},height:{type:"number",description:"The height of the node's body"},"background-image":{type:"string",description:"The URL that points to the image to show in the node."},"background-color":{type:"string",description:"The colour of the node's body. Colours may be specified by name (e.g. red), hex (e.g."},"background-blacken":{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},"background-opacity":{type:"number",description:"The opacity level of the node's background colour",maximum:1,minimum:0},"background-position-x":{type:"string",description:"The x position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-position-y":{type:"string",description:"The y position of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-x":{type:"string",description:"The x offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-offset-y":{type:"string",description:"The y offset of the background image, measured in percent (e.g. 50%) or pixels (e.g. 10px)"},"background-fit":{type:"string",description:"How the background image is fit to the node. Can be 'none', 'contain', or 'cover'."},"background-clip":{type:"string",description:"How the background image is clipped to the node. Can be 'none', 'node', or 'node-border'."},"background-width-relative-to":{type:"string",description:"How the background image's width is determined. Can be 'none', 'inner', or 'outer'."},"background-height-relative-to":{type:"string",description:"How the background image's height is determined. Can be 'none', 'inner', or 'outer'."},"border-width":{type:"number",description:"The size of the node's border.",minimum:0},"border-style":{type:"string",description:"The style of the node's border",enum:["solid","dotted","dashed","double"]},"border-color":{type:"string",description:"The colour of the node's border. Colours may be specified by name (e.g. red), hex (e.g."},"border-opacity":{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},"text-halign":{type:"string",description:"The horizontal alignment of a node's label",enum:["left","center","right"]},"text-valign":{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"]},"active-bg-color":{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."},"active-bg-opacity":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"active-bg-size":{type:"string",description:"The opacity of the active background indicator. Selector needs to be *core*."},"selection-box-color":{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."},"selection-box-border-width":{type:"number",description:"The size of the border on the selection box. Selector needs to be *core*"},"selection-box-opacity":{type:"number",description:"The opacity of the selection box. Selector needs to be *core*",minimum:0,maximum:1},"outside-texture-bg-color":{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."},"outside-texture-bg-opacity":{type:"number",description:"The opacity of the area outside the viewport texture. Selector needs to be *core*",minimum:0,maximum:1},"shape-polygon-points":{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 )"},"menu-background-color":{type:"string",description:"The colour of the background of the component menu. Colours may be specified by name (e.g. red), hex (e.g."},"menu-background-opacity":{type:"number",description:"The opacity of the background of the component menu.",minimum:0,maximum:1},"menu-forground-color":{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."}}}]},capabilities:{"x-order":9,type:"array",description:"Meshery manages components in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. ComponentDefinitions may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{description:"Version of the capability 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-]+)*)?$",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",yaml:"capabilities",json:"capabilities"},default:[{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Performance Test",description:"Initiate a performance test. Meshery will execute the load generation, collect metrics, and present the results.",kind:"action",type:"operator",subType:"perf-test",key:"",entityState:["instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Workload Configuration",description:"Configure the workload specific setting of a component",kind:"mutate",type:"configuration",subType:"config",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Labels and Annotations Configuration",description:"Configure Labels And Annotations for the component ",kind:"mutate",type:"configuration",subType:"labels-and-annotations",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Relationships",description:"View relationships for the component",kind:"view",type:"configuration",subType:"relationship",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Json Schema",description:"View Component Definition ",kind:"view",type:"configuration",subType:"definition",key:"",entityState:["declaration","instance"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Styling",description:"Configure the visual styles for the component",kind:"mutate",type:"style",subType:"",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Change Shape",description:"Change the shape of the component",kind:"mutate",type:"style",subType:"shape",key:"",entityState:["declaration"],status:"enabled",metadata:null},{schemaVersion:"capability.meshery.io/v1alpha1",version:"0.7.0",displayName:"Compound Drag And Drop",description:"Drag and Drop a component into a parent component in graph view",kind:"interaction",type:"graph",subType:"compoundDnd",key:"",entityState:["declaration"],status:"enabled",metadata:null}]},status:{"x-order":10,type:"string",description:`Status of component, including:
|
|
294
|
+
- 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.
|
|
295
|
+
- maintenance: model is unavailable for a period of time.
|
|
296
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
297
|
+
- 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."},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 clsuter 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/ ."}},"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 Component Defintion wraps , this is herematicaly sealed an",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1},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},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3}},required:["version","kind","schema"]}},required:["id","displayName","description","schemaVersion","format","version","configuration","metadata","modelId","model","component"]},Component:{description:"data related to the third party capability that Component Defintion wraps , this is herematicaly sealed an",type:"object",properties:{version:{type:"string",description:"Version of the component produced by the registrant. Example: APIVersion of a Kubernetes Pod.","x-order":1},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},schema:{type:"string",description:"JSON schema of the object as defined by the registrant.","x-order":3}},required:["version","kind","schema"]}}},$schema:"http://json-schema.org/draft-04/schema#"},s=r;var p={openapi:"3.0.0",info:{title:"model",version:"1.0.0"},paths:{"/api/meshmodels/register":{post:{summary:"Register mesh models",operationId:"RegisterMeshmodels",requestBody:{required:true,content:{"multipart/form-data":{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."},modelFile:{type:"string",format:"file",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",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}}}}}},responses:{200:{description:"Successful registration",content:{"application/json":{schema:{type:"object",properties:{message:{type:"string"}}}}}},400:{description:"Invalid request format"},500:{description:"Internal server error"}}}}},components:{schemas:{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.",allOf:[{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"}],"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},"x-order":1}}},ModelDefinition:{$id:"https://schemas.meshery.io/model.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Models serve as a portable unit of packaging to define managed entities, their relationships, and capabilities.",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"},default:"00000000-00000000-00000000-00000000"},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:"v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"}},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:
|
|
298
|
+
- 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.
|
|
299
|
+
- maintenance: model is unavailable for a period of time.
|
|
300
|
+
- enabled: model is available for use for all users of this Meshery Server.
|
|
301
|
+
- ignored: model is unavailable for use for all users of this Meshery Server.`,enum:["ignored","enabled","duplicate"],"x-order":7,"x-oapi-codegen-extra-tags":{yaml:"status",json:"status"},default:"enabled"},registrant:{"x-oapi-codegen-extra-tags":{yaml:"registrant",json:"registrant",gorm:"foreignKey:RegistrantId;references:Id"},"x-order":8,"x-go-type":"connection.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection"},$id:"https://schemas.meshery.io/component.json",$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:["kind","type","status"],properties:{id:{"x-order":1,description:"ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credential_id:{"x-go-name":"CredentialId","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credential_id"},"x-order":3,description:"Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type"},sub_type:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"sub_type"},"x-order":5,type:"string",description:"Connection Subtype"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,type:"object"},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":{yaml:"user_id",json:"user_id"},"x-order":9,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},created_at:{"x-oapi-codegen-extra-tags":{yaml:"created_at",json:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{yaml:"updated_at",json:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{yaml:"deleted_at",json:"deleted_at"},"x-order":12,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},registrantId:{description:"ID of the registrant.","x-oapi-codegen-extra-tags":{yaml:"connection_id",json:"connection_id",gorm:"column:connection_id"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},categoryId:{description:"ID of the category.","x-oapi-codegen-extra-tags":{yaml:"-",json:"-",gorm:"categoryID"},"x-order":8,type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:Id"},"x-go-type":"category.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",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 entites in Meshery. The UUID core defintion is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},default:"00000000-00000000-00000000-00000000"},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.",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:{type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategory.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory"},$id:"https://schemas.meshery.io/category.json",$schema:"http://json-schema.org/draft-07/schema#",type:"string",title:"SubCategory",description:"Sub category of the model determines the secondary grouping.",default:"Uncategorized",enum:["API Gateway","API Integration","Application Definition & Image Build","Automation & Configuration","Certified Kubernetes - Distribution","Chaos Engineering","Cloud Native Storage","Cloud Provider","CNI","Compute","Container Registry","Container Runtime","Container Security","Container","Content Delivery Network","Continuous Integration & Delivery","Coordination & Service Discovery","Database","Flowchart","Framework","Installable Platform","Key Management","Key Management Service","Kubernetes","Logging","Machine Learning","Management Governance","Metrics","Monitoring","Networking Content Delivery","Operating System","Query","Remote Procedure Call","Scheduling & Orchestration","Secrets Management","Security Identity & Compliance","Service Mesh","Service Proxy","Source Version Control","Storage","Specifications","Streaming & Messaging","Tools","Tracing","Uncategorized","Video Conferencing"],minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"subCategory",json:"subCategory"}},metadata:{type:"object",description:"Metadata containing additional information associated with the model.",required:["svgWhite","svgColor"],properties:{capabilities:{type:"array",description:"Capabilities associated with the model",items:{"x-go-type":"capability.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability"},$id:"https://schemas.meshery.io/capability.json",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery manages entities in accordance with their specific capabilities. This field explicitly identifies those capabilities largely by what actions a given component supports; e.g. metric-scrape, sub-interface, and so on. This field is extensible. Entities may define a broad array of capabilities, which are in-turn dynamically interpretted by Meshery for full lifecycle management.",additionalProperties:false,type:"object",required:["description","schemaVersion","version","displayName","kind","type","subType","entityState","key","status"],"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},properties:{schemaVersion:{description:"Specifies the version of the schema to which the capability definition conforms.",type:"string",minLength:2,maxLength:100,pattern:"^(([a-z.])+/?)*v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix"]},version:{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"},displayName:{description:"Name of the capability in human-readible format.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{type:"string",description:"A written representation of the purpose and characteristics of the capability."},kind:{description:"Top-level categorization of the capability",additionalProperties:false,anyOf:[{const:"action",description:"For capabilities related to executing actions on entities. Example: initiate log streaming on a Pod. Example: initiate deployment of a component."},{const:"mutate",description:"For capabilities related to mutating an entity. Example: the ability to change the configuration of a component."},{const:"view",description:"For capabilities related to viewing an entity. Example: the ability to view a components configuration."},{const:"interaction",description:"Catch all for capabilities related to interaction with entities. Example: the ability for a component to be dragged and dropped. Example: supports event bubbling to parent components. "}],type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},type:{description:"Classification of capabilities. Used to group capabilities similar in nature.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},subType:{description:"Most granular unit of capability classification. The combination of Kind, Type and SubType together uniquely identify a Capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},key:{description:"Key that backs the capability.",type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},entityState:{description:"State of the entity in which the capability is applicable.",type:"array",items:{type:"string",enum:["declaration","instance"],pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$",description:"A string starting with an alphanumeric character. Spaces and hyphens allowed."}},status:{type:"string",description:"Status of the capability",default:"enabled",enum:["enabled","disabled"]},metadata:{type:"object",description:"Metadata contains additional information associated with the capability. Extension point.",additionalProperties:true}},default:[{description:"Configure the visual styles for the component",displayName:"Styling",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"",type:"style",version:"0.7.0"},{description:"Change the shape of the component",displayName:"Change Shape",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"shape",type:"style",version:"0.7.0"},{description:"Drag and Drop a component into a parent component in graph view",displayName:"Compound Drag And Drop",entityState:["declaration"],key:"",kind:"interaction",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"compoundDnd",type:"graph",version:"0.7.0"},{description:"Add text to nodes body",displayName:"Body Text",entityState:["declaration"],key:"",kind:"mutate",schemaVersion:"capability.meshery.io/v1alpha1",status:"enabled",subType:"body-text",type:"style",version:"0.7.0"}]},"x-order":1},isAnnotation:{type:"boolean",description:"Indicates whether the model and its entities should be treated as deployable entities or as logical representations.","x-oapi-codegen-extra-tags":{yaml:"isAnnotation",json:"isAnnotation"},"x-order":2,default:false},primaryColor:{type:"string",description:"Primary color associated with the model.",minLength:1,maxLength:50,default:"#00b39f","x-oapi-codegen-extra-tags":{yaml:"primaryColor",json:"primaryColor"},"x-order":3},secondaryColor:{type:"string",description:"Secondary color associated with the model.",minLength:1,maxLength:50,default:"#00D3A9","x-oapi-codegen-extra-tags":{yaml:"secondaryColor",json:"secondaryColor"},"x-order":4},svgWhite:{type:"string",description:"SVG representation of the model in white color.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgWhite",json:"svgWhite"},"x-order":5,default:'<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M16.405 8.732v6.57l5.694-3.297-5.694-3.273Zm0 7.942v6.602l5.747-3.285-5.747-3.317Z" fill="#fff"/><path d="M15.586 15.256v-6.47l-5.622 3.225 5.622 3.245ZM4.307 23.252a13.809 13.809 0 0 0 4.362 4.39v-6.914l-4.362 2.524Zm11.279-.008v-6.52L9.95 19.985l5.636 3.258Z" fill="#fff" fill-opacity=".8"/><path d="m9.49 27.23 5.707-3.263-5.707-3.3v6.563Z" fill="#fff"/><path d="M22.54 27.265v-6.553l-5.699 3.259 5.7 3.294Zm5.58-4.773a13.697 13.697 0 0 0 1.612-5.895l-5.934 3.397 4.323 2.498Z" fill="#fff" fill-opacity=".8"/><path d="m23.362 19.298 5.728-3.276-5.728-3.291v6.567Z" fill="#fff"/><path d="M22.541 11.315V4.8l-5.673 3.253 5.673 3.262Zm0 7.955v-6.574l-5.685 3.292 5.685 3.281Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 12.684v6.622l5.728-3.316-5.728-3.306Z" fill="#fff"/><path d="M15.586 2.25a13.69 13.69 0 0 0-6.037 1.595l6.037 3.463V2.25Z" fill="#fff" fill-opacity=".8"/><path d="M9.49 4.756v6.583l5.732-3.288L9.49 4.756Z" fill="#fff"/><path d="M8.669 4.356a13.83 13.83 0 0 0-4.362 4.39l4.362 2.518V4.356Z" fill="#fff" fill-opacity=".8"/><path d="M22.504 3.88a13.695 13.695 0 0 0-6.099-1.63v5.123l6.1-3.493ZM2.25 16.483c.071 2.12.634 4.196 1.644 6.062l4.418-2.559-6.062-3.503Zm1.644-7.028a13.68 13.68 0 0 0-1.644 6.036l6.068-3.482-4.424-2.554Z" fill="#fff"/><path d="M9.539 28.147a13.673 13.673 0 0 0 6.047 1.603v-5.062L9.54 28.147Z" fill="#fff" fill-opacity=".8"/><path d="M27.697 8.768a13.83 13.83 0 0 0-4.335-4.383v6.889l4.335-2.506ZM23.362 27.62a13.851 13.851 0 0 0 4.351-4.417l-4.351-2.514v6.93Z" fill="#fff"/><path d="M29.75 15.452a13.659 13.659 0 0 0-1.63-5.979l-4.381 2.53 6.011 3.45Z" fill="#fff" fill-opacity=".8"/><path d="M16.405 29.75a13.673 13.673 0 0 0 6.036-1.595l-6.036-3.498v5.093Z" fill="#fff"/><path d="M8.669 19.247v-6.494L3.03 15.986l5.639 3.261Z" fill="#fff" fill-opacity=".8"/></svg>'},svgColor:{type:"string",description:"SVG representation of the model in colored format.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgColor",json:"svgColor"},"x-order":6,default:'<svg xmlns="http://www.w3.org/2000/svg" id="Layer_1" data-name="Layer 1" viewBox="0 0 134.95 135.02"><defs><style>.cls-1{fill:#00d3a9}.cls-2{fill:#00b39f}</style></defs><title>meshery-logo-light</title><polygon points="69.49 31.82 69.49 64.07 97.44 47.89 69.49 31.82" class="cls-1"/><polygon points="69.49 70.81 69.49 103.22 97.7 87.09 69.49 70.81" class="cls-1"/><polygon points="65.47 63.85 65.47 32.09 37.87 47.92 65.47 63.85" class="cls-2"/><path d="M10.1,103.1a67.79,67.79,0,0,0,21.41,21.55V90.71Z" class="cls-2"/><polygon points="65.47 103.06 65.47 71.05 37.8 87.07 65.47 103.06" class="cls-2"/><polygon points="35.54 122.63 63.56 106.61 35.54 90.41 35.54 122.63" class="cls-1"/><polygon points="99.61 122.8 99.61 90.63 71.63 106.63 99.61 122.8" class="cls-2"/><path d="M127,99.37a67.22,67.22,0,0,0,7.91-28.94L105.78,87.11Z" class="cls-2"/><polygon points="103.64 83.69 131.76 67.61 103.64 51.45 103.64 83.69" class="cls-1"/><polygon points="99.61 44.5 99.61 12.52 71.76 28.49 99.61 44.5" class="cls-2"/><polygon points="99.61 83.55 99.61 51.28 71.7 67.44 99.61 83.55" class="cls-2"/><polygon points="67.48 135.02 67.49 135.02 67.48 135.02 67.48 135.02" class="cls-2"/><polygon points="35.54 51.22 35.54 83.73 63.66 67.45 35.54 51.22" class="cls-1"/><path d="M65.47,0A67.2,67.2,0,0,0,35.83,7.83l29.64,17Z" class="cls-2"/><polygon points="35.54 12.3 35.54 44.62 63.68 28.48 35.54 12.3" class="cls-1"/><path d="M31.51,10.34A67.89,67.89,0,0,0,10.1,31.89L31.51,44.25Z" class="cls-2"/><path d="M99.43,8A67.23,67.23,0,0,0,69.49,0V25.15Z" class="cls-1"/><path d="M0,69.87A67.27,67.27,0,0,0,8.07,99.63L29.76,87.07Z" class="cls-1"/><path d="M8.07,35.37A67.16,67.16,0,0,0,0,65L29.79,47.91Z" class="cls-1"/><path d="M35.78,127.13A67.13,67.13,0,0,0,65.47,135V110.15Z" class="cls-2"/><path d="M124.92,32a67.9,67.9,0,0,0-21.28-21.52V44.3Z" class="cls-1"/><path d="M103.64,124.54A68,68,0,0,0,125,102.86L103.64,90.52Z" class="cls-1"/><path d="M135,64.81a67.06,67.06,0,0,0-8-29.35L105.49,47.88Z" class="cls-2"/><path d="M69.49,135a67.12,67.12,0,0,0,29.63-7.83L69.49,110Z" class="cls-1"/><polygon points="31.51 83.44 31.51 51.56 3.83 67.43 31.51 83.44" class="cls-2"/></svg>'},svgComplete:{type:"string",description:"SVG representation of the complete model.",minLength:1,"x-oapi-codegen-extra-tags":{yaml:"svgComplete",json:"svgComplete"},"x-order":7},shape:{"x-order":8,type:"string",description:"The shape of the node\u2019s 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)",default:"circle",enum:["circle","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"]}},"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json",json:"metadata",yaml:"metadata"},"x-order":11,additionalProperties:true},model:{"x-oapi-codegen-extra-tags":{gorm:"type:bytes;serializer:json"},"x-order":12,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.",allOf:[{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-]+)*)?$",description:"A valid semantic version string between 5 and 256 characters. The pattern allows for a major.minor.patch version followed by an optional pre-release tag like '-alpha' or '-beta.2' and an optional build metadata tag like '+build.1.",default:"v0.0.1"}],"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},"x-order":1}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"}},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"}},componentsCount:{type:"integer",description:"Number of components associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{json:"components_count",yaml:"components_count",gorm:"-"},default:0},relationshipsCount:{type:"integer",description:"Number of relationships associated with the model.","x-order":13,"x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships_count",yaml:"relationships_count"},default:0}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},ImportRequest:{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."},modelFile:{type:"string",format:"file",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",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}}},ImportBody:{oneOf:[{title:"File Import",type:"object",required:["fileName","modelFile"],properties:{fileName:{type:"string",description:"Name of the file being uploaded."},modelFile:{type:"string",format:"file",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})"}}]}}}]}}},$schema:"http://json-schema.org/draft-04/schema#"},d=p;var c={openapi:"3.0.0",info:{title:"environment",description:"Documentation for meshery Cloud REST APIs",contact:{email:"support@layer5.io"},version:"v0.6.394"},servers:[{url:"https://cloud.layer5.io",description:"Meshery Cloud production server URL"},{url:"https://staging-cloud.layer5.io",description:"Meshery Cloud staging server URL"},{url:"http://localhost:9876",description:"Meshery Cloud development server URL (controlled via PORT environment variable)"}],security:[{jwt:[]}],tags:[{name:"environments",description:"APIs for environments"}],components:{responses:{200:{description:"ok",content:{"text/plain":{schema:{type:"string"}}}},400:{description:"Invalid request body or request param",content:{"text/plain":{schema:{type:"string"}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},parameters:{environmentId:{name:"environmentId",in:"path",description:"Environment ID",schema:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-type-skip-optional-pointer":true},required:true},search:{name:"search",in:"query",description:"Get responses that match search param value",schema:{type:"string"}},order:{name:"order",in:"query",description:"Get ordered responses",schema:{type:"string"}},page:{name:"page",in:"query",description:"Get responses by page",schema:{type:"string"}},pagesize:{name:"pagesize",in:"query",description:"Get responses by pagesize",schema:{type:"string"}},orgIDQuery:{name:"orgID",in:"query",description:"User's organization ID",schema:{type:"string"},required:true}},securitySchemes:{jwt:{type:"http",scheme:"Bearer",bearerFormat:"JWT"}},schemas:{environment:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}},environmentConnectionMapping:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},environment_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-skip-optional-pointer":true},connection_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"connection_id",json:"connection_id"},"x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}},environmentPayload:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"An environment is a collection of resources. Provide a name that meaningfully represents these resources. You can change the name of the environment even after its creation."},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"An environment is a collection of resources, such as connections & credentail. Provide a detailed description to clarify the purpose of this environment and the types of resources it encompasses. You can modify the description at any Time. Learn more about environments [here](https://docs.meshery.io/concepts/logical/environments)."},OrganizationID:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgId","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["name","organizationID"]},environmentPage:{properties:{page:{type:"integer","x-go-type-skip-optional-pointer":true},page_size:{type:"integer","x-go-type-skip-optional-pointer":true},total_count:{type:"integer","x-go-type-skip-optional-pointer":true},environments:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"Environment",properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}}},requestBodies:{environmentPayload:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"An environment is a collection of resources. Provide a name that meaningfully represents these resources. You can change the name of the environment even after its creation."},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"An environment is a collection of resources, such as connections & credentail. Provide a detailed description to clarify the purpose of this environment and the types of resources it encompasses. You can modify the description at any Time. Learn more about environments [here](https://docs.meshery.io/concepts/logical/environments)."},OrganizationID:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgId","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["name","organizationID"]}}}}}},paths:{"/api/environments":{post:{tags:["environments"],operationId:"CreateEnvironment",summary:"Create an environment",description:"Creates a new environment",requestBody:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"An environment is a collection of resources. Provide a name that meaningfully represents these resources. You can change the name of the environment even after its creation."},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"An environment is a collection of resources, such as connections & credentail. Provide a detailed description to clarify the purpose of this environment and the types of resources it encompasses. You can modify the description at any Time. Learn more about environments [here](https://docs.meshery.io/concepts/logical/environments)."},OrganizationID:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgId","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["name","organizationID"]}}}},responses:{201:{description:"Created environment",content:{"application/json":{schema:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}},400:{description:"Invalid request body or request param",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},get:{tags:["environments"],operationId:"GetEnvironments",summary:"Get all environments",description:"Gets all environments",parameters:[{name:"search",in:"query",description:"Get responses that match search param value",schema:{type:"string"}},{name:"order",in:"query",description:"Get ordered responses",schema:{type:"string"}},{name:"page",in:"query",description:"Get responses by page",schema:{type:"string"}},{name:"pagesize",in:"query",description:"Get responses by pagesize",schema:{type:"string"}},{name:"orgID",in:"query",description:"User's organization ID",schema:{type:"string"},required:true}],responses:{200:{description:"Environments",content:{"application/json":{schema:{properties:{page:{type:"integer","x-go-type-skip-optional-pointer":true},page_size:{type:"integer","x-go-type-skip-optional-pointer":true},total_count:{type:"integer","x-go-type-skip-optional-pointer":true},environments:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"Environment",properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}}},$schema:"http://json-schema.org/draft-04/schema#"},l=c;var m={openapi:"3.0.0",info:{title:"workspace",description:"Documentation for meshery Cloud REST APIs",contact:{email:"support@layer5.io"},version:"v0.6.394"},servers:[{url:"https://cloud.layer5.io",description:"Meshery Cloud production server URL"},{url:"https://staging-cloud.layer5.io",description:"Meshery Cloud staging server URL"},{url:"http://localhost:9876",description:"Meshery Cloud development server URL (controlled via PORT environment variable)"}],security:[{jwt:[]}],tags:[{name:"workspaces",description:"Workspaces serve as a virtual space for your team-based work, allows you to control access and more, Provide a detailed description to clarify the purpose of this workspace. Remember you can changes description of workspace after it's creations too. Learn more about workspaces [here](https://docs.meshery.io/concepts/logical/workspaces)."}],paths:{"/api/workspaces":{get:{summary:"Get all workspaces",tags:["workspaces"],responses:{200:{description:"List of workspaces",content:{"application/json":{schema:{properties:{page:{type:"integer","x-go-type-skip-optional-pointer":true},page_size:{type:"integer","x-go-type-skip-optional-pointer":true},total_count:{type:"integer","x-go-type-skip-optional-pointer":true},workspaces:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"Workspace",properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}}}}}}},post:{summary:"Create a workspace",tags:["workspaces"],requestBody:{description:"Body for creating workspace",required:true,content:{"application/json":{schema:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"Provide a name that meaningfully represents this workspace. You can change the name of the workspace even after its creation."},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"Workspaces serve as a virtual space for your team-based work, allows you to control access and more, Provide a detailed description to clarify the purpose of this workspace. Remember you can changes description of workspace after it's creations too. Learn more about workspaces [here](https://docs.meshery.io/concepts/logical/workspaces)"},organization_id:{type:"string",description:"Select an organization in which you want to create this new workspace. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["name","organization_id"]}}}},responses:{201:{description:"Workspace created successfully",content:{"application/json":{schema:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}}}}},"/api/workspaces/{id}":{get:{summary:"Get workspace by ID",tags:["workspaces"],parameters:[{name:"id",in:"path",required:true,schema:{type:"string"}}],responses:{200:{description:"Workspace details",content:{"application/json":{schema:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}}}},put:{summary:"Update workspace",tags:["workspaces"],parameters:[{name:"id",in:"path",required:true,schema:{type:"string"}}],requestBody:{description:"Body for updating workspace",required:true,content:{"application/json":{schema:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"Name of workspace"},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"Environment description"},organization_id:{type:"string",description:"Organization ID","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["organization_id"]}}}},responses:{200:{description:"Workspace updated successfully",content:{"application/json":{schema:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}}}},delete:{summary:"Delete workspace",tags:["workspaces"],parameters:[{name:"id",in:"path",required:true,schema:{type:"string"}}],responses:{200:{description:"Workspace deleted successfully"}}}}},components:{securitySchemes:{jwt:{type:"http",scheme:"Bearer",bearerFormat:"JWT"}},schemas:{workspace:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}},workspacesTeamsMapping:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},team_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"team_id",json:"team_id"},"x-go-type-name":"TeamId","x-go-type-skip-optional-pointer":true},workspace_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"},"x-go-type-name":"WorkspaceId","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}},workspacesEnvironmentsMapping:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},environment_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-name":"EnvironmentId","x-go-type-skip-optional-pointer":true},workspace_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"},"x-go-type-name":"WorkspaceId","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}},workspacesViewsMapping:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},view_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"view_id",json:"view_id"},"x-go-type-name":"ViewId","x-go-type-skip-optional-pointer":true},workspace_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"},"x-go-type-name":"WorkspaceId","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}},workspacesDesignsMapping:{properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},design_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"design_id",json:"design_id"},"x-go-type-name":"DesignId","x-go-type-skip-optional-pointer":true},workspace_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"},"x-go-type-name":"WorkspaceId","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}},workspaceUpdatePayload:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"Name of workspace"},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"Environment description"},organization_id:{type:"string",description:"Organization ID","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["organization_id"]},workspacePayload:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"Provide a name that meaningfully represents this workspace. You can change the name of the workspace even after its creation."},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"Workspaces serve as a virtual space for your team-based work, allows you to control access and more, Provide a detailed description to clarify the purpose of this workspace. Remember you can changes description of workspace after it's creations too. Learn more about workspaces [here](https://docs.meshery.io/concepts/logical/workspaces)"},organization_id:{type:"string",description:"Select an organization in which you want to create this new workspace. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["name","organization_id"]},workspacePage:{properties:{page:{type:"integer","x-go-type-skip-optional-pointer":true},page_size:{type:"integer","x-go-type-skip-optional-pointer":true},total_count:{type:"integer","x-go-type-skip-optional-pointer":true},workspaces:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"Workspace",properties:{ID:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"id",json:"id"},"x-go-type-name":"GeneralId","x-go-type-skip-optional-pointer":true},name:{type:"string","x-go-type-skip-optional-pointer":true},description:{type:"string","x-go-type-skip-optional-pointer":true},organization_id:{type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},"x-go-type-name":"OrganizationId","x-go-type-skip-optional-pointer":true},owner:{type:"string","x-go-type-skip-optional-pointer":true},created_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{description:"SQL null Timestamp to handle null values of time.","x-go-type":"sql.NullTime",type:"string","x-go-type-skip-optional-pointer":true}}}}}}},requestBodies:{workspacePayload:{description:"Body for creating workspace",required:true,content:{"application/json":{schema:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"Provide a name that meaningfully represents this workspace. You can change the name of the workspace even after its creation."},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"Workspaces serve as a virtual space for your team-based work, allows you to control access and more, Provide a detailed description to clarify the purpose of this workspace. Remember you can changes description of workspace after it's creations too. Learn more about workspaces [here](https://docs.meshery.io/concepts/logical/workspaces)"},organization_id:{type:"string",description:"Select an organization in which you want to create this new workspace. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["name","organization_id"]}}}},workspaceUpdatePayload:{description:"Body for updating workspace",required:true,content:{"application/json":{schema:{properties:{name:{type:"string","x-go-type-skip-optional-pointer":true,description:"Name of workspace"},description:{type:"string","x-go-type-skip-optional-pointer":true,description:"Environment description"},organization_id:{type:"string",description:"Organization ID","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id"}}},required:["organization_id"]}}}}}},$schema:"http://json-schema.org/draft-04/schema#"},g=m;
|
|
302
|
+
exports.CategoryDefinitionV1Beta1OpenApiSchema=a;exports.ComponentDefinitionV1Beta1OpenApiSchema=s;exports.DesignDefinitionV1Beta1OpenApiSchema=t;exports.EnvironmentDefinitionV1Beta1OpenApiSchema=l;exports.ModelDefinitionV1Beta1OpenApiSchema=d;exports.SubCategoryDefinitionV1Beta1OpenApiSchema=n;exports.WorkspaceDefinitionV1Beta1OpenApiSchema=g;
|