@meshery/schemas 1.0.5 → 1.0.6

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/dist/index.js CHANGED
@@ -538,7 +538,7 @@ test: Tests that a value at the target location is equal to a specified value.
538
538
  - 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.
539
539
  - maintenance: model is unavailable for a period of time.
540
540
  - enabled: model is available for use for all users of this Meshery Server.
541
- - 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":"connectionv1beta1.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection",name:"connectionv1beta1"},$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"user_id",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},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"}},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"}},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:ID"},"x-go-type":"categoryv1beta1.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category",name:"categoryv1beta1"},$id:"https://schemas.meshery.io/category.yaml",$schema:"http://json-schema.org/draft-07/schema#",type:"object",additionalProperties:false,description:"Category of the model.",required:["id","name","metadata"],properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name",gorm:"name"},default:"Uncategorized",description:"The category of the model that determines the main grouping.",enum:["Analytics","App Definition and Development","Cloud Native Network","Cloud Native Storage","Database","Machine Learning","Observability and Analysis","Orchestration & Management","Platform","Provisioning","Runtime","Security & Compliance","Serverless","Tools","Uncategorized"],"x-order":2},metadata:{description:"Additional metadata associated with the category.",type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategoryv1beta1.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory",name:"subcategoryv1beta1"},$id:"https://schemas.meshery.io/category.yaml",$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":"capabilityv1alpha1.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability",name:"capabilityv1alpha1"},$id:"https://schemas.meshery.io/capability.yaml",$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][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the 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-]+)*)?$"},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.",maxLength:5e3},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/v1beta1",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/v1beta1",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/v1beta1",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/v1beta1",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'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"]}},"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.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"},description:"The relationships of the model."},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"},description:"The components of the model."},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,minimum: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,minimum:0},created_at:{"x-order":14,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{"x-order":15,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},RegistrantReference:{type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}},ModelReference:{type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}},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"},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.",maxLength:255},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","x-enum-casing-exempt":true,enum:["file","urlImport","csv","url"],enumDescriptions:["Upload a model file (.tar, .tar.gz, .tgz) from your local system","Import a model file using a direct URL to the source","Upload separate CSV files for model definitions, components, and their relationships"],description:"Choose the method you prefer to upload your model file. Select 'File Import' or 'CSV Import' if you have the file on your local system or 'URL Import' if you have the file hosted online."},register:{type:"boolean",nullable:false,description:"The register of the importrequest."}}},ImportBody:{oneOf:[{title:"File Import",type:"object",required:["fileName","modelFile"],properties:{fileName:{type:"string",description:"Name of the file being uploaded.",maxLength:255},modelFile:{type:"string",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})"}}]}}}]},MeshModelModelsPage:{type:"object",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},total_count:{type:"integer",description:"Total number of items available.",minimum:0},models:{type:"array",items:{type:"object",additionalProperties:true},description:"The models of the meshmodelmodelspage."}}}}}},d=p;var c={openapi:"3.0.0",info:{title:"Environment",description:"OpenAPI schema for environment management in Meshery Cloud.",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},servers:[{url:"http://localhost:9081",description:"Meshery Server 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"}}}},404:{description:"Result not found",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:{$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},EnvironmentConnectionMapping:{properties:{id:{"x-go-name":"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,description:"ID of the associated environment."},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,description:"ID of the associated connection."},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":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},EnvironmentPayload:{properties:{name:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]},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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}},EnvironmentConnectionsPage:{type:"object",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},total_count:{type:"integer",description:"Total number of items available.",minimum:0},connections:{type:"array",items:{type:"object",additionalProperties:true},description:"The connections of the environmentconnectionspage."}}}},requestBodies:{environmentPayload:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{properties:{name:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]}}}}}},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:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]}}}},responses:{201:{description:"Created environment",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}}}}},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"}}}}}},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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}}}}},"/api/environments/{environmentId}":{get:{tags:["environments"],operationId:"getEnvironmentById",summary:"Get environment by ID",parameters:[{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},{name:"orgId",in:"query",description:"User's organization ID",schema:{type:"string"},required:true}],responses:{200:{description:"Environment page",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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},put:{tags:["environments"],operationId:"updateEnvironment",summary:"Update an environment",parameters:[{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}],requestBody:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{properties:{name:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]}}}},responses:{200:{description:"Environment page",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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{tags:["environments"],operationId:"deleteEnvironment",summary:"Delete an environment",parameters:[{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}],responses:{204:{description:"Environment deleted"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/environments/{environmentId}/connections":{get:{tags:["environments"],operationId:"getEnvironmentConnections",summary:"Get environment connections",parameters:[{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},{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:"filter",in:"query",required:false,schema:{type:"string"}}],responses:{200:{description:"Environment connections",content:{"application/json":{schema:{type:"object",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},total_count:{type:"integer",description:"Total number of items available.",minimum:0},connections:{type:"array",items:{type:"object",additionalProperties:true},description:"The connections of the environmentconnectionspage."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}}}},m=c;var l={openapi:"3.0.0",info:{title:"Workspace",description:"OpenAPI schema for workspace management in Meshery Cloud.",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},servers:[{url:"https://cloud.meshery.io",description:"Meshery Cloud production server URL"},{url:"https://staging-cloud.meshery.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:"APIs for Meshery Cloud workspaces."},{name:"views",description:"APIs for Meshery Cloud views associated with workspaces."},{name:"designs",description:"APIs for Meshery Cloud designs associated with workspaces."}],paths:{"/api/workspaces":{get:{"x-internal":["cloud"],tags:["workspaces"],operationId:"getWorkspaces",summary:"Get all workspaces",description:"Gets all workspaces accessible to the current user.",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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Workspaces",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspaces.",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":"AvailableWorkspace",type:"object",description:"Workspace with resolved owner details, as returned in list and get responses.",additionalProperties:false,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",description:"Name of the workspace.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},org_name:{type:"string",description:"Name of the owning organization.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"org_name",json:"org_name,omitempty"}},owner:{type:"string",description:"Display name of the workspace owner.",maxLength:255,"x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"}},owner_id:{description:"User ID of the workspace owner.","x-go-name":"OwnerId","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_email:{type:"string",description:"Email address of the workspace owner.",maxLength:320,"x-oapi-codegen-extra-tags":{db:"owner_email",json:"owner_email,omitempty"}},owner_avatar:{type:"string",description:"Avatar URL of the workspace owner.",maxLength:2048,"x-oapi-codegen-extra-tags":{db:"owner_avatar",json:"owner_avatar,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},organization_id:{type:"string",format:"uuid",description:"Organization to which this workspace belongs.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"OrganizationId","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"List of workspaces with resolved owner details."}}}}}},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"}}}}}},post:{"x-internal":["cloud"],tags:["workspaces"],operationId:"createWorkspace",summary:"Create a workspace",description:"Creates a new workspace.",requestBody:{description:"Body for creating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for creating a workspace.",required:["name","organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}},responses:{201:{description:"Created workspace",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}}}}},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"}}}}}}},"/api/workspaces/{workspaceId}":{get:{"x-internal":["cloud"],tags:["workspaces"],operationId:"getWorkspaceById",summary:"Get a workspace by ID",description:"Gets a workspace by its ID.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true}],responses:{200:{description:"Workspace",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},put:{"x-internal":["cloud"],tags:["workspaces"],operationId:"updateWorkspace",summary:"Update a workspace",description:"Updates a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true}],requestBody:{description:"Body for updating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for updating a workspace.",required:["organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}},responses:{200:{description:"Workspace",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{"x-internal":["cloud"],tags:["workspaces"],operationId:"deleteWorkspace",summary:"Delete a workspace",description:"Deletes a workspace by its ID.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true}],responses:{204:{description:"Workspace deleted"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/teams":{get:{"x-internal":["cloud"],tags:["workspaces"],operationId:"getTeamsOfWorkspace",summary:"Get teams assigned to a workspace",description:"Gets teams assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Teams",content:{"application/json":{schema:{type:"object",description:"Paginated list of teams",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},teams:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"Team",$id:"https://schemas.meshery.io/team.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A Team is a group of one or more users. Teams are often used as a grouping mechanism for assigning permissions, whether in the context of an organization, a workspace, or some other domain within Meshery. Learn more at https://docs.meshery.io/concepts/logical/teams",additionalProperties:false,type:"object",required:["id","name"],properties:{id:{description:"Team ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Team name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":3,type:"string",description:"Team description",maxLength:5e3},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":4,description:"User ID of the owner of the team",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":5,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object",description:"Additional metadata for the team"},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":6,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":7,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":8,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"The teams of the teampage."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/teams/{teamId}":{post:{"x-internal":["cloud"],tags:["workspaces"],operationId:"assignTeamToWorkspace",summary:"Assign a team to a workspace",description:"Assigns a team to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"teamId",in:"path",description:"Team ID",schema:{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},required:true}],responses:{200:{description:"Workspace team mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-team mappings.",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},workspacesTeamsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesTeamsMapping",type:"object",description:"Junction record linking a workspace to a team.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-team mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{"x-internal":["cloud"],tags:["workspaces"],operationId:"unassignTeamFromWorkspace",summary:"Unassign a team from a workspace",description:"Removes a team from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"teamId",in:"path",description:"Team ID",schema:{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},required:true}],responses:{204:{description:"Workspace team mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/environments":{get:{"x-internal":["cloud"],tags:["workspaces"],operationId:"getEnvironmentsOfWorkspace",summary:"Get environments assigned to a workspace",description:"Gets environments assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true,"x-order":7},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true,"x-order":9},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/environments/{environmentId}":{post:{"x-internal":["cloud"],tags:["workspaces"],operationId:"assignEnvironmentToWorkspace",summary:"Assign an environment to a workspace",description:"Assigns an environment to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-name":"EnvironmentId","x-go-type-skip-optional-pointer":true},required:true}],responses:{200:{description:"Workspace environment mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-environment mappings.",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},workspacesEnvironmentsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesEnvironmentsMapping",type:"object",description:"Junction record linking a workspace to an environment.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-environment mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{"x-internal":["cloud"],tags:["workspaces"],operationId:"unassignEnvironmentFromWorkspace",summary:"Unassign an environment from a workspace",description:"Removes an environment from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-name":"EnvironmentId","x-go-type-skip-optional-pointer":true},required:true}],responses:{204:{description:"Workspace environment mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/designs":{get:{"x-internal":["cloud"],tags:["workspaces","designs"],operationId:"getDesignsOfWorkspace",summary:"Get designs assigned to a workspace",description:"Gets designs assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Designs",content:{"application/json":{schema:{type:"object",description:"Paginated list of designs.",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},designs:{type:"array","x-go-type-skip-optional-pointer":true,items:{type:"object",properties:{catalogData:{"x-go-type":"catalogv1beta1.CatalogData","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/catalog",name:"catalogv1beta1"},type:"object",additionalProperties:false,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},patternFile:{"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",additionalProperties:false,properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",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][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},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/core",name:"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","x-go-type":"[]*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component",name:"component"},items:{allOf:[{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-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":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
541
+ - 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":"connectionv1beta1.Connection","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/connection",name:"connectionv1beta1"},$id:"https://schemas.meshery.io/connection.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Meshery Connections are managed and unmanaged resources that either through discovery or manual entry are tracked by Meshery. Learn more at https://docs.meshery.io/concepts/logical/connections",additionalProperties:false,type:"object",required:["id","schemaVersion","name","type","subType","kind","status"],properties:{id:{description:"Connection ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Connection Name"},credentialId:{"x-go-name":"CredentialID","x-oapi-codegen-extra-tags":{db:"credential_id",yaml:"credentialId"},"x-order":3,description:"Associated Credential ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},type:{"x-oapi-codegen-extra-tags":{db:"type",yaml:"type"},"x-order":4,type:"string",description:"Connection Type (platform, telemetry, collaboration)"},subType:{"x-oapi-codegen-extra-tags":{db:"sub_type",yaml:"subType"},"x-order":5,type:"string",description:"Connection Subtype (cloud, identity, metrics, chat, git, orchestration)"},kind:{"x-oapi-codegen-extra-tags":{db:"kind",yaml:"kind"},"x-order":6,type:"string",description:"Connection Kind (meshery, kubernetes, prometheus, grafana, gke, aws, azure, slack, github)"},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":7,"x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core"},"x-go-type-skip-optional-pointer":true,type:"object",description:"Additional connection metadata"},status:{"x-oapi-codegen-extra-tags":{db:"status",yaml:"status"},"x-order":8,description:"Connection Status",type:"string",enum:["discovered","registered","connected","ignored","maintenance","disconnected","deleted","not found"]},user_id:{"x-go-name":"UserID","x-oapi-codegen-extra-tags":{db:"user_id",yaml:"user_id"},"x-order":9,description:"User ID who owns this connection",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":11,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":12,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},environments:{type:"array",description:"Associated environments for this connection",items:{"x-go-type":"*environmentv1beta1.Environment","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/environment",name:"environmentv1beta1"},$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},"x-oapi-codegen-extra-tags":{db:"-",yaml:"environments",gorm:"-"},"x-go-type-skip-optional-pointer":true,"x-order":13},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":14,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"connections.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]}}},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"}},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"}},category:{"x-order":9,"x-oapi-codegen-extra-tags":{yaml:"category",json:"category",gorm:"foreignKey:CategoryId;references:ID"},"x-go-type":"categoryv1beta1.CategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/category",name:"categoryv1beta1"},$id:"https://schemas.meshery.io/category.yaml",$schema:"http://json-schema.org/draft-07/schema#",type:"object",additionalProperties:false,description:"Category of the model.",required:["id","name","metadata"],properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",minLength:1,maxLength:100,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name",gorm:"name"},default:"Uncategorized",description:"The category of the model that determines the main grouping.",enum:["Analytics","App Definition and Development","Cloud Native Network","Cloud Native Storage","Database","Machine Learning","Observability and Analysis","Orchestration & Management","Platform","Provisioning","Runtime","Security & Compliance","Serverless","Tools","Uncategorized"],"x-order":2},metadata:{description:"Additional metadata associated with the category.",type:"object","x-oapi-codegen-extra-tags":{yaml:"metadata,omitempty",json:"metadata,omitempty",gorm:"type:bytes;serializer:json"},"x-order":3}}},subCategory:{"x-order":10,"x-go-type":"subcategoryv1beta1.SubCategoryDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/subcategory",name:"subcategoryv1beta1"},$id:"https://schemas.meshery.io/category.yaml",$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":"capabilityv1alpha1.Capability","x-go-type-import":{path:"github.com/meshery/schemas/models/v1alpha1/capability",name:"capabilityv1alpha1"},$id:"https://schemas.meshery.io/capability.yaml",$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][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the 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-]+)*)?$"},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.",maxLength:5e3},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/v1beta1",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/v1beta1",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/v1beta1",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/v1beta1",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'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"]}},"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.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},relationships:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"relationships",yaml:"relationships"},description:"The relationships of the model."},components:{type:"array","x-go-type":"interface{}","x-oapi-codegen-extra-tags":{gorm:"-",json:"components",yaml:"components"},description:"The components of the model."},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,minimum: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,minimum:0},created_at:{"x-order":14,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{"x-order":15,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true}},required:["id","schemaVersion","displayName","status","subCategory","model","name","description","version","registrant","category","categoryId","registrantId","relationshipsCount","componentsCount","components","relationships"]},RegistrantReference:{type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}},ModelReference:{type:"object",required:["id","name","version","displayName","model","registrant"],properties:{id:{type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"]},version:{description:"Version of the model definition.",type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{type:"string",description:"Human-readable name for the model.",minLength:1,maxLength:100,pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"]},model:{type:"object",description:"Registrant-defined data associated with the model. Properties pertain to the software being managed (e.g. Kubernetes v1.31).",required:["version"],properties:{version:{description:"Version of the model as defined by the registrant.","x-oapi-codegen-extra-tags":{json:"version"},"x-order":1,type:"string",minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"}}},registrant:{"x-go-type":"RegistrantReference","x-oapi-codegen-extra-tags":{json:"registrant"},type:"object",required:["kind"],properties:{kind:{type:"string",description:"Kind of the registrant.",maxLength:255}}}},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"},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.",maxLength:255},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","x-enum-casing-exempt":true,enum:["file","urlImport","csv","url"],enumDescriptions:["Upload a model file (.tar, .tar.gz, .tgz) from your local system","Import a model file using a direct URL to the source","Upload separate CSV files for model definitions, components, and their relationships"],description:"Choose the method you prefer to upload your model file. Select 'File Import' or 'CSV Import' if you have the file on your local system or 'URL Import' if you have the file hosted online."},register:{type:"boolean",nullable:false,description:"The register of the importrequest."}}},ImportBody:{oneOf:[{title:"File Import",type:"object",required:["fileName","modelFile"],properties:{fileName:{type:"string",description:"Name of the file being uploaded.",maxLength:255},modelFile:{type:"string",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})"}}]}}}]},MeshModelModelsPage:{type:"object",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},total_count:{type:"integer",description:"Total number of items available.",minimum:0},models:{type:"array",items:{type:"object",additionalProperties:true},description:"The models of the meshmodelmodelspage."}}}}}},d=p;var c={openapi:"3.0.0",info:{title:"Environment",description:"OpenAPI schema for environment management in Meshery Cloud.",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},servers:[{url:"http://localhost:9081",description:"Meshery Server 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"}}}},404:{description:"Result not found",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:{$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},EnvironmentConnectionMapping:{properties:{id:{"x-go-name":"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:{"x-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-skip-optional-pointer":true,description:"ID of the associated environment.",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},connection_id:{"x-oapi-codegen-extra-tags":{db:"connection_id",json:"connection_id"},"x-go-type-skip-optional-pointer":true,description:"ID of the associated connection.",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},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":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},EnvironmentPayload:{properties:{name:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]},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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}},EnvironmentConnectionsPage:{type:"object",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},total_count:{type:"integer",description:"Total number of items available.",minimum:0},connections:{type:"array",items:{type:"object",additionalProperties:true},description:"The connections of the environmentconnectionspage."}}}},requestBodies:{environmentPayload:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{properties:{name:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]}}}}}},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:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]}}}},responses:{201:{description:"Created environment",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}}}}},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"}}}}}},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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}}}}},"/api/environments/{environmentId}":{get:{tags:["environments"],operationId:"getEnvironmentById",summary:"Get environment by ID",parameters:[{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},{name:"orgId",in:"query",description:"User's organization ID",schema:{type:"string"},required:true}],responses:{200:{description:"Environment page",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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},put:{tags:["environments"],operationId:"updateEnvironment",summary:"Update an environment",parameters:[{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}],requestBody:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{properties:{name:{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.",type:"string","x-go-type-skip-optional-pointer":true},description:{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).",type:"string","x-go-type-skip-optional-pointer":true},organization_id:{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"},maxLength:500,format:"uuid"}},required:["name","organization_id"]}}}},responses:{200:{description:"Environment page",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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{"x-order":7,description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{"x-order":9,description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{tags:["environments"],operationId:"deleteEnvironment",summary:"Delete an environment",parameters:[{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}],responses:{204:{description:"Environment deleted"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/environments/{environmentId}/connections":{get:{tags:["environments"],operationId:"getEnvironmentConnections",summary:"Get environment connections",parameters:[{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},{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:"filter",in:"query",required:false,schema:{type:"string"}}],responses:{200:{description:"Environment connections",content:{"application/json":{schema:{type:"object",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},page_size:{type:"integer",description:"Number of items per page.",minimum:1},total_count:{type:"integer",description:"Total number of items available.",minimum:0},connections:{type:"array",items:{type:"object",additionalProperties:true},description:"The connections of the environmentconnectionspage."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}}}},m=c;var l={openapi:"3.0.0",info:{title:"Workspace",description:"OpenAPI schema for workspace management in Meshery Cloud.",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},servers:[{url:"https://cloud.meshery.io",description:"Meshery Cloud production server URL"},{url:"https://staging-cloud.meshery.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:"APIs for Meshery Cloud workspaces."},{name:"views",description:"APIs for Meshery Cloud views associated with workspaces."},{name:"designs",description:"APIs for Meshery Cloud designs associated with workspaces."}],paths:{"/api/workspaces":{get:{tags:["workspaces"],operationId:"getWorkspaces",summary:"Get all workspaces",description:"Gets all workspaces accessible to the current user.",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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Workspaces",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspaces.",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":"AvailableWorkspace",type:"object",description:"Workspace with resolved owner details, as returned in list and get responses.",additionalProperties:false,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",description:"Name of the workspace.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},org_name:{type:"string",description:"Name of the owning organization.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"org_name",json:"org_name,omitempty"}},owner:{type:"string",description:"Display name of the workspace owner.",maxLength:255,"x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"}},owner_id:{description:"User ID of the workspace owner.","x-go-name":"OwnerId","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_email:{type:"string",description:"Email address of the workspace owner.",maxLength:320,"x-oapi-codegen-extra-tags":{db:"owner_email",json:"owner_email,omitempty"}},owner_avatar:{type:"string",description:"Avatar URL of the workspace owner.",maxLength:2048,"x-oapi-codegen-extra-tags":{db:"owner_avatar",json:"owner_avatar,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationId","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"List of workspaces with resolved owner details."}}}}}},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"}}}}}},post:{tags:["workspaces"],operationId:"createWorkspace",summary:"Create a workspace",description:"Creates a new workspace.",requestBody:{description:"Body for creating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for creating a workspace.",required:["name","organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}},responses:{201:{description:"Created workspace",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}}}}},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"}}}}}}},"/api/workspaces/{workspaceId}":{get:{tags:["workspaces"],operationId:"getWorkspaceById",summary:"Get a workspace by ID",description:"Gets a workspace by its ID.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true}],responses:{200:{description:"Workspace",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},put:{tags:["workspaces"],operationId:"updateWorkspace",summary:"Update a workspace",description:"Updates a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true}],requestBody:{description:"Body for updating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for updating a workspace.",required:["organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}},responses:{200:{description:"Workspace",content:{"application/json":{schema:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{tags:["workspaces"],operationId:"deleteWorkspace",summary:"Delete a workspace",description:"Deletes a workspace by its ID.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true}],responses:{204:{description:"Workspace deleted"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/teams":{get:{tags:["workspaces"],operationId:"getTeamsOfWorkspace",summary:"Get teams assigned to a workspace",description:"Gets teams assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Teams",content:{"application/json":{schema:{type:"object",description:"Paginated list of teams",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},teams:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"Team",$id:"https://schemas.meshery.io/team.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A Team is a group of one or more users. Teams are often used as a grouping mechanism for assigning permissions, whether in the context of an organization, a workspace, or some other domain within Meshery. Learn more at https://docs.meshery.io/concepts/logical/teams",additionalProperties:false,type:"object",required:["id","name"],properties:{id:{description:"Team ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":2,type:"string",description:"Team name",minLength:1,maxLength:255},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":3,type:"string",description:"Team description",maxLength:5e3},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":4,description:"User ID of the owner of the team",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{"x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":5,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object",description:"Additional metadata for the team"},created_at:{"x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-order":6,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updated_at:{"x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-order":7,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deleted_at:{"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-order":8,description:"SQL null Timestamp to handle null values of time.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"The teams of the teampage."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/teams/{teamId}":{post:{tags:["workspaces"],operationId:"assignTeamToWorkspace",summary:"Assign a team to a workspace",description:"Assigns a team to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"teamId",in:"path",description:"Team ID",schema:{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},required:true}],responses:{200:{description:"Workspace team mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-team mappings.",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},workspacesTeamsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesTeamsMapping",type:"object",description:"Junction record linking a workspace to a team.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-team mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{tags:["workspaces"],operationId:"unassignTeamFromWorkspace",summary:"Unassign a team from a workspace",description:"Removes a team from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"teamId",in:"path",description:"Team ID",schema:{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},required:true}],responses:{204:{description:"Workspace team mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/environments":{get:{tags:["workspaces"],operationId:"getEnvironmentsOfWorkspace",summary:"Get environments assigned to a workspace",description:"Gets environments assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],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",$id:"https://schemas.meshery.io/environment.yaml",$schema:"http://json-schema.org/draft-07/schema#",title:"Environment",description:"Environments allow you to logically group related Connections and their associated Credentials. Learn more at https://docs.meshery.io/concepts/logical/environments",additionalProperties:false,type:"object",example:{id:"00000000-0000-0000-0000-000000000000",schemaVersion:"environments.meshery.io/v1beta1",name:"Production Environment",description:"Connections and credentials for the production cluster.",organization_id:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",created_at:"0001-01-01T00:00:00Z",metadata:{},updated_at:"0001-01-01T00:00:00Z",deleted_at:null},required:["id","schemaVersion","name","description","organization_id"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",yaml:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",yaml:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",yaml:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organization_id:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",yaml:"organization_id"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",yaml:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true,"x-order":7},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",yaml:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true,"x-order":9},deleted_at:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,"x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Environments associated with this resource."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/environments/{environmentId}":{post:{tags:["workspaces"],operationId:"assignEnvironmentToWorkspace",summary:"Assign an environment to a workspace",description:"Assigns an environment to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-name":"EnvironmentId","x-go-type-skip-optional-pointer":true},required:true}],responses:{200:{description:"Workspace environment mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-environment mappings.",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},workspacesEnvironmentsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesEnvironmentsMapping",type:"object",description:"Junction record linking a workspace to an environment.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-environment mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{tags:["workspaces"],operationId:"unassignEnvironmentFromWorkspace",summary:"Unassign an environment from a workspace",description:"Removes an environment from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-name":"EnvironmentId","x-go-type-skip-optional-pointer":true},required:true}],responses:{204:{description:"Workspace environment mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/designs":{get:{tags:["workspaces","designs"],operationId:"getDesignsOfWorkspace",summary:"Get designs assigned to a workspace",description:"Gets designs assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Designs",content:{"application/json":{schema:{type:"object",description:"Paginated list of designs.",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},designs:{type:"array","x-go-type-skip-optional-pointer":true,items:{type:"object",properties:{catalogData:{"x-go-type":"catalogv1beta1.CatalogData","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/catalog",name:"catalogv1beta1"},type:"object",additionalProperties:false,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},patternFile:{"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",additionalProperties:false,properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",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][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},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/core",name:"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","x-go-type":"[]*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component",name:"component"},items:{allOf:[{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-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":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
542
542
  - 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.
543
543
  - maintenance: model is unavailable for a period of time.
544
544
  - enabled: model is available for use for all users of this Meshery Server.
@@ -586,7 +586,7 @@ remove: Removes a value.
586
586
  copy: Copies a value from one location to another.
587
587
  move: Moves a value from one location to another.
588
588
  test: Tests that a value at the target location is equal to a specified value.
589
- `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}]}}},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}}},description:"Designs in this page."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/designs/{designId}":{post:{"x-internal":["cloud"],tags:["workspaces","designs"],operationId:"assignDesignToWorkspace",summary:"Assign a design to a workspace",description:"Assigns a design to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"designId",in:"path",description:"Design ID",schema:{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},required:true}],responses:{200:{description:"Workspace design mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-design mappings.",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},workspacesDesignsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesDesignsMapping",type:"object",description:"Junction record linking a workspace to a design.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-design mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{"x-internal":["cloud"],tags:["workspaces","designs"],operationId:"unassignDesignFromWorkspace",summary:"Unassign a design from a workspace",description:"Removes a design from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"designId",in:"path",description:"Design ID",schema:{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},required:true}],responses:{204:{description:"Workspace design mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/views":{get:{"x-internal":["cloud"],tags:["workspaces","views"],operationId:"getViewsOfWorkspace",summary:"Get views assigned to a workspace",description:"Gets views assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Views",content:{"application/json":{schema:{type:"object",description:"Paginated list of views with location enrichment.",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},views:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"MesheryViewWithLocation",type:"object",description:"A view enriched with the workspace and organization it belongs to.",required:["workspace_id","organization_id"],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",description:"Display name of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},visibility:{type:"string",description:"Visibility level of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility,omitempty"}},filters:{type:"object",description:"Filter configuration for this view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"filters",json:"filters,omitempty"}},metadata:{type:"object",description:"Metadata associated with the view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},user_id:{type:"string",format:"uuid",description:"ID of the user who created the view.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"UserID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"user_id",json:"user_id,omitempty"}},workspace_name:{type:"string",description:"Name of the workspace this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_name",json:"workspace_name,omitempty"}},workspace_id:{type:"string",format:"uuid",description:"ID of the workspace this view belongs to.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"WorkspaceID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},organization_id:{type:"string",format:"uuid",description:"ID of the organization this view belongs to.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id"}},organization_name:{type:"string",description:"Name of the organization this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_name",json:"organization_name,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the view was soft deleted. Null while the view remains active.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Views in this page, enriched with workspace and organization context."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/views/{viewId}":{post:{"x-internal":["cloud"],tags:["workspaces","views"],operationId:"assignViewToWorkspace",summary:"Assign a view to a workspace",description:"Assigns a view to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"viewId",in:"path",description:"View ID",schema:{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},required:true}],responses:{200:{description:"Workspace view mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-view mappings.",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},workspacesViewsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesViewsMapping",type:"object",description:"Junction record linking a workspace to a view.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-view mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{"x-internal":["cloud"],tags:["workspaces","views"],operationId:"unassignViewFromWorkspace",summary:"Unassign a view from a workspace",description:"Removes a view from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"viewId",in:"path",description:"View ID",schema:{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},required:true}],responses:{204:{description:"Workspace view mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},parameters:{workspaceId:{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},teamId:{name:"teamId",in:"path",description:"Team ID",schema:{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},required:true},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-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-name":"EnvironmentId","x-go-type-skip-optional-pointer":true},required:true},designId:{name:"designId",in:"path",description:"Design ID",schema:{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},required:true},viewId:{name:"viewId",in:"path",description:"View ID",schema:{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},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"}},filter:{name:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},schemas:{Workspace:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},AvailableWorkspace:{type:"object",description:"Workspace with resolved owner details, as returned in list and get responses.",additionalProperties:false,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",description:"Name of the workspace.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},org_name:{type:"string",description:"Name of the owning organization.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"org_name",json:"org_name,omitempty"}},owner:{type:"string",description:"Display name of the workspace owner.",maxLength:255,"x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"}},owner_id:{description:"User ID of the workspace owner.","x-go-name":"OwnerId","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_email:{type:"string",description:"Email address of the workspace owner.",maxLength:320,"x-oapi-codegen-extra-tags":{db:"owner_email",json:"owner_email,omitempty"}},owner_avatar:{type:"string",description:"Avatar URL of the workspace owner.",maxLength:2048,"x-oapi-codegen-extra-tags":{db:"owner_avatar",json:"owner_avatar,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},organization_id:{type:"string",format:"uuid",description:"Organization to which this workspace belongs.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"OrganizationId","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacePayload:{type:"object",description:"Payload for creating a workspace.",required:["name","organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}},WorkspaceUpdatePayload:{type:"object",description:"Payload for updating a workspace.",required:["organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}},WorkspacePage:{type:"object",description:"Paginated list of workspaces.",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":"AvailableWorkspace",type:"object",description:"Workspace with resolved owner details, as returned in list and get responses.",additionalProperties:false,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",description:"Name of the workspace.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},org_name:{type:"string",description:"Name of the owning organization.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"org_name",json:"org_name,omitempty"}},owner:{type:"string",description:"Display name of the workspace owner.",maxLength:255,"x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"}},owner_id:{description:"User ID of the workspace owner.","x-go-name":"OwnerId","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_email:{type:"string",description:"Email address of the workspace owner.",maxLength:320,"x-oapi-codegen-extra-tags":{db:"owner_email",json:"owner_email,omitempty"}},owner_avatar:{type:"string",description:"Avatar URL of the workspace owner.",maxLength:2048,"x-oapi-codegen-extra-tags":{db:"owner_avatar",json:"owner_avatar,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},organization_id:{type:"string",format:"uuid",description:"Organization to which this workspace belongs.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"OrganizationId","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"List of workspaces with resolved owner details."}}},WorkspacesTeamsMapping:{type:"object",description:"Junction record linking a workspace to a team.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesTeamsMappingPage:{type:"object",description:"Paginated list of workspace-team mappings.",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},workspacesTeamsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesTeamsMapping",type:"object",description:"Junction record linking a workspace to a team.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-team mapping entries."}}},WorkspacesEnvironmentsMapping:{type:"object",description:"Junction record linking a workspace to an environment.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesEnvironmentsMappingPage:{type:"object",description:"Paginated list of workspace-environment mappings.",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},workspacesEnvironmentsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesEnvironmentsMapping",type:"object",description:"Junction record linking a workspace to an environment.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-environment mapping entries."}}},WorkspacesDesignsMapping:{type:"object",description:"Junction record linking a workspace to a design.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesDesignsMappingPage:{type:"object",description:"Paginated list of workspace-design mappings.",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},workspacesDesignsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesDesignsMapping",type:"object",description:"Junction record linking a workspace to a design.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-design mapping entries."}}},WorkspacesViewsMapping:{type:"object",description:"Junction record linking a workspace to a view.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesViewsMappingPage:{type:"object",description:"Paginated list of workspace-view mappings.",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},workspacesViewsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesViewsMapping",type:"object",description:"Junction record linking a workspace to a view.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-view mapping entries."}}},MesheryDesignPage:{type:"object",description:"Paginated list of designs.",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},designs:{type:"array","x-go-type-skip-optional-pointer":true,items:{type:"object",properties:{catalogData:{"x-go-type":"catalogv1beta1.CatalogData","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/catalog",name:"catalogv1beta1"},type:"object",additionalProperties:false,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},patternFile:{"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",additionalProperties:false,properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",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][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},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/core",name:"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","x-go-type":"[]*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component",name:"component"},items:{allOf:[{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-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":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
589
+ `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}]}}},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}}},description:"Designs in this page."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/designs/{designId}":{post:{tags:["workspaces","designs"],operationId:"assignDesignToWorkspace",summary:"Assign a design to a workspace",description:"Assigns a design to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"designId",in:"path",description:"Design ID",schema:{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},required:true}],responses:{200:{description:"Workspace design mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-design mappings.",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},workspacesDesignsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesDesignsMapping",type:"object",description:"Junction record linking a workspace to a design.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-design mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{tags:["workspaces","designs"],operationId:"unassignDesignFromWorkspace",summary:"Unassign a design from a workspace",description:"Removes a design from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"designId",in:"path",description:"Design ID",schema:{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},required:true}],responses:{204:{description:"Workspace design mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/views":{get:{tags:["workspaces","views"],operationId:"getViewsOfWorkspace",summary:"Get views assigned to a workspace",description:"Gets views assigned to or available for a workspace depending on the filter.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{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:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}],responses:{200:{description:"Views",content:{"application/json":{schema:{type:"object",description:"Paginated list of views with location enrichment.",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},views:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"MesheryViewWithLocation",type:"object",description:"A view enriched with the workspace and organization it belongs to.",required:["workspace_id","organization_id"],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",description:"Display name of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},visibility:{type:"string",description:"Visibility level of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility,omitempty"}},filters:{type:"object",description:"Filter configuration for this view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"filters",json:"filters,omitempty"}},metadata:{type:"object",description:"Metadata associated with the view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},user_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"},"x-go-name":"UserID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"user_id",json:"user_id,omitempty"}},workspace_name:{type:"string",description:"Name of the workspace this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_name",json:"workspace_name,omitempty"}},workspace_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"},"x-go-name":"WorkspaceID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},organization_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"},"x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id"}},organization_name:{type:"string",description:"Name of the organization this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_name",json:"organization_name,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the view was soft deleted. Null while the view remains active.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Views in this page, enriched with workspace and organization context."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/workspaces/{workspaceId}/views/{viewId}":{post:{tags:["workspaces","views"],operationId:"assignViewToWorkspace",summary:"Assign a view to a workspace",description:"Assigns a view to a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"viewId",in:"path",description:"View ID",schema:{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},required:true}],responses:{200:{description:"Workspace view mappings",content:{"application/json":{schema:{type:"object",description:"Paginated list of workspace-view mappings.",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},workspacesViewsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesViewsMapping",type:"object",description:"Junction record linking a workspace to a view.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-view mapping entries."}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{tags:["workspaces","views"],operationId:"unassignViewFromWorkspace",summary:"Unassign a view from a workspace",description:"Removes a view from a workspace.",parameters:[{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},{name:"viewId",in:"path",description:"View ID",schema:{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},required:true}],responses:{204:{description:"Workspace view mapping removed"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},parameters:{workspaceId:{name:"workspaceId",in:"path",description:"Workspace ID",schema:{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},required:true},teamId:{name:"teamId",in:"path",description:"Team ID",schema:{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},required:true},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-oapi-codegen-extra-tags":{db:"environment_id",json:"environment_id"},"x-go-type-name":"EnvironmentId","x-go-type-skip-optional-pointer":true},required:true},designId:{name:"designId",in:"path",description:"Design ID",schema:{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},required:true},viewId:{name:"viewId",in:"path",description:"View ID",schema:{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},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"}},filter:{name:"filter",in:"query",description:"JSON-encoded filter string used for assignment and soft-delete filters.",schema:{type:"string"}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},schemas:{Workspace:{$id:"https://schemas.meshery.io/workspace.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"A workspace is a logical grouping of resources within an organization. Workspaces provide a way to organize environments, designs, teams, and views. Learn more at https://docs.meshery.io/concepts/logical/workspaces",additionalProperties:false,type:"object",required:["id","name","organization_id","created_at","updated_at"],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",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{description:"User ID of the workspace owner.","x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},AvailableWorkspace:{type:"object",description:"Workspace with resolved owner details, as returned in list and get responses.",additionalProperties:false,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",description:"Name of the workspace.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},org_name:{type:"string",description:"Name of the owning organization.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"org_name",json:"org_name,omitempty"}},owner:{type:"string",description:"Display name of the workspace owner.",maxLength:255,"x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"}},owner_id:{description:"User ID of the workspace owner.","x-go-name":"OwnerId","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_email:{type:"string",description:"Email address of the workspace owner.",maxLength:320,"x-oapi-codegen-extra-tags":{db:"owner_email",json:"owner_email,omitempty"}},owner_avatar:{type:"string",description:"Avatar URL of the workspace owner.",maxLength:2048,"x-oapi-codegen-extra-tags":{db:"owner_avatar",json:"owner_avatar,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationId","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacePayload:{type:"object",description:"Payload for creating a workspace.",required:["name","organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}},WorkspaceUpdatePayload:{type:"object",description:"Payload for updating a workspace.",required:["organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}},WorkspacePage:{type:"object",description:"Paginated list of workspaces.",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":"AvailableWorkspace",type:"object",description:"Workspace with resolved owner details, as returned in list and get responses.",additionalProperties:false,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",description:"Name of the workspace.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"description",json:"description,omitempty"}},org_name:{type:"string",description:"Name of the owning organization.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"org_name",json:"org_name,omitempty"}},owner:{type:"string",description:"Display name of the workspace owner.",maxLength:255,"x-oapi-codegen-extra-tags":{db:"owner",json:"owner,omitempty"}},owner_id:{description:"User ID of the workspace owner.","x-go-name":"OwnerId","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_email:{type:"string",description:"Email address of the workspace owner.",maxLength:320,"x-oapi-codegen-extra-tags":{db:"owner_email",json:"owner_email,omitempty"}},owner_avatar:{type:"string",description:"Avatar URL of the workspace owner.",maxLength:2048,"x-oapi-codegen-extra-tags":{db:"owner_avatar",json:"owner_avatar,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},organization_id:{description:"Organization to which this workspace belongs.","x-go-name":"OrganizationId","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"List of workspaces with resolved owner details."}}},WorkspacesTeamsMapping:{type:"object",description:"Junction record linking a workspace to a team.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesTeamsMappingPage:{type:"object",description:"Paginated list of workspace-team mappings.",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},workspacesTeamsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesTeamsMapping",type:"object",description:"Junction record linking a workspace to a team.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-team mapping entries."}}},WorkspacesEnvironmentsMapping:{type:"object",description:"Junction record linking a workspace to an environment.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesEnvironmentsMappingPage:{type:"object",description:"Paginated list of workspace-environment mappings.",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},workspacesEnvironmentsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesEnvironmentsMapping",type:"object",description:"Junction record linking a workspace to an environment.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-environment mapping entries."}}},WorkspacesDesignsMapping:{type:"object",description:"Junction record linking a workspace to a design.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesDesignsMappingPage:{type:"object",description:"Paginated list of workspace-design mappings.",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},workspacesDesignsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesDesignsMapping",type:"object",description:"Junction record linking a workspace to a design.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-design mapping entries."}}},WorkspacesViewsMapping:{type:"object",description:"Junction record linking a workspace to a view.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},WorkspacesViewsMappingPage:{type:"object",description:"Paginated list of workspace-view mappings.",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},workspacesViewsMapping:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"WorkspacesViewsMapping",type:"object",description:"Junction record linking a workspace to a view.",additionalProperties:false,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},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},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},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the resource was deleted.","x-go-type":"NullTime",type:"string",format:"date-time","x-go-name":"DeletedAt","x-oapi-codegen-extra-tags":{db:"deleted_at",yaml:"deleted_at"},"x-go-type-skip-optional-pointer":true}}},description:"Workspace-view mapping entries."}}},MesheryDesignPage:{type:"object",description:"Paginated list of designs.",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},designs:{type:"array","x-go-type-skip-optional-pointer":true,items:{type:"object",properties:{catalogData:{"x-go-type":"catalogv1beta1.CatalogData","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/catalog",name:"catalogv1beta1"},type:"object",additionalProperties:false,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},patternFile:{"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",additionalProperties:false,properties:{id:{"x-order":1,type:"string",format:"uuid",description:"A Universally Unique Identifier used to uniquely identify entities in Meshery. The UUID core definition is used across different schemas.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},name:{type:"string",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][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},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/core",name:"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","x-go-type":"[]*component.ComponentDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/component",name:"component"},items:{allOf:[{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-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":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{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"},"x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
590
590
  - 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.
591
591
  - maintenance: model is unavailable for a period of time.
592
592
  - enabled: model is available for use for all users of this Meshery Server.
@@ -634,7 +634,7 @@ remove: Removes a value.
634
634
  copy: Copies a value from one location to another.
635
635
  move: Moves a value from one location to another.
636
636
  test: Tests that a value at the target location is equal to a specified value.
637
- `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}]}}},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}}},description:"Designs in this page."}}},MesheryView:{type:"object",description:"A view enriched with the workspace and organization it belongs to.",required:["workspace_id","organization_id"],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",description:"Display name of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},visibility:{type:"string",description:"Visibility level of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility,omitempty"}},filters:{type:"object",description:"Filter configuration for this view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"filters",json:"filters,omitempty"}},metadata:{type:"object",description:"Metadata associated with the view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},user_id:{type:"string",format:"uuid",description:"ID of the user who created the view.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"UserID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"user_id",json:"user_id,omitempty"}},workspace_name:{type:"string",description:"Name of the workspace this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_name",json:"workspace_name,omitempty"}},workspace_id:{type:"string",format:"uuid",description:"ID of the workspace this view belongs to.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"WorkspaceID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},organization_id:{type:"string",format:"uuid",description:"ID of the organization this view belongs to.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id"}},organization_name:{type:"string",description:"Name of the organization this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_name",json:"organization_name,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the view was soft deleted. Null while the view remains active.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},MesheryViewPage:{type:"object",description:"Paginated list of views with location enrichment.",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},views:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"MesheryViewWithLocation",type:"object",description:"A view enriched with the workspace and organization it belongs to.",required:["workspace_id","organization_id"],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",description:"Display name of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},visibility:{type:"string",description:"Visibility level of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility,omitempty"}},filters:{type:"object",description:"Filter configuration for this view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"filters",json:"filters,omitempty"}},metadata:{type:"object",description:"Metadata associated with the view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},user_id:{type:"string",format:"uuid",description:"ID of the user who created the view.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"UserID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"user_id",json:"user_id,omitempty"}},workspace_name:{type:"string",description:"Name of the workspace this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_name",json:"workspace_name,omitempty"}},workspace_id:{type:"string",format:"uuid",description:"ID of the workspace this view belongs to.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"WorkspaceID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},organization_id:{type:"string",format:"uuid",description:"ID of the organization this view belongs to.","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"},"x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id"}},organization_name:{type:"string",description:"Name of the organization this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_name",json:"organization_name,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the view was soft deleted. Null while the view remains active.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Views in this page, enriched with workspace and organization context."}}}},requestBodies:{workspacePayload:{description:"Body for creating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for creating a workspace.",required:["name","organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}},workspaceUpdatePayload:{description:"Body for updating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for updating a workspace.",required:["organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}}}}},g=l;var y={openapi:"3.0.0",info:{title:"Invitation",description:"OpenAPI schema for managing invitations.","x-deprecated":true,"x-superseded-by":"v1beta2",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},tags:[{name:"Invitation",description:"Operations related to invitation"}],security:[{jwt:[]}],paths:{"/api/organizations/invitations/{invitationId}":{get:{"x-internal":["cloud"],operationId:"getInvitation",tags:["Invitation"],summary:"Get an invitation by ID",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{"x-internal":["cloud"],operationId:"deleteInvitation",tags:["Invitation"],summary:"Delete an invitation by ID",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],responses:{204:{description:"Invitation deleted"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},put:{"x-internal":["cloud"],operationId:"updateInvitation",tags:["Invitation"],summary:"Update an existing invitation",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],requestBody:{content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating an invitation.",required:["name","description","org_id","emails","roles","teams","status"],properties:{id:{"x-go-name":"ID",description:"Existing invitation ID for updates; omit on create.","x-oapi-codegen-extra-tags":{json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation.","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite).","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default,omitempty"}},name:{type:"string",description:"Name of the invitation."},description:{type:"string",description:"Description of the invitation."},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string"}},org_id:{type:"string",description:"ID of the organization to which the user is invited.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable.","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at,omitempty"}},quota:{type:"integer",description:"Quota for the invitation."},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."}}}}},required:true},responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/organizations/invitations":{get:{"x-internal":["cloud"],operationId:"getInvitations",tags:["Invitation"],summary:"Get all invitations for the organization",responses:{200:{content:{"application/json":{schema:{type:"object",required:["data","total"],properties:{data:{type:"array",items:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}},"x-go-type":"Invitation"},description:"List of invitations","x-oapi-codegen-extra-tags":{json:"data"}},total:{type:"integer",description:"Total number of invitations available","x-oapi-codegen-extra-tags":{json:"total"}}}}}}},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"}}}}}},post:{"x-internal":["cloud"],operationId:"createInvitation",tags:["Invitation"],summary:"Create a new invitation for the organization",requestBody:{content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating an invitation.",required:["name","description","org_id","emails","roles","teams","status"],properties:{id:{"x-go-name":"ID",description:"Existing invitation ID for updates; omit on create.","x-oapi-codegen-extra-tags":{json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation.","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite).","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default,omitempty"}},name:{type:"string",description:"Name of the invitation."},description:{type:"string",description:"Description of the invitation."},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string"}},org_id:{type:"string",description:"ID of the organization to which the user is invited.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable.","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at,omitempty"}},quota:{type:"integer",description:"Quota for the invitation."},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."}}}}},required:true},responses:{201:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}}}}},"/api/organizations/invitations/{invitationId}/accept":{post:{"x-internal":["cloud"],operationId:"acceptInvitation",tags:["Invitation"],summary:"Accept an invitation by ID",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/identity/orgs/{orgId}/users/invite":{post:{"x-internal":["cloud"],operationId:"handleUserInvite",tags:["Invitation"],summary:"Invite users to an organization",parameters:[{name:"orgId",in:"path",required:true,description:"The ID of the organization",schema:{type:"string"}}],requestBody:{required:true,content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},responses:{200:{description:"Invitation request accepted",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/identity/users/request":{post:{"x-internal":["cloud"],operationId:"signupRequest",tags:["Invitation"],summary:"Create a signup request",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},responses:{200:{description:"Signup request created",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}},get:{"x-internal":["cloud"],operationId:"getSignupRequests",tags:["Invitation"],summary:"Get signup requests",parameters:[{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:"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:"filter",in:"query",description:"Get filtered reponses",schema:{type:"string"}}],responses:{200:{description:"Signup requests page",content:{"application/json":{schema:{type:"object",properties:{page:{type:"integer"},page_size:{type:"integer"},total_count:{type:"integer"},data:{type:"array",items:{type:"object",additionalProperties: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"}}}}}}},"/api/identity/users/request/approve":{post:{"x-internal":["cloud"],operationId:"approveSignupRequest",tags:["Invitation"],summary:"Approve a signup request",responses:{200:{description:"Signup request approved",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}}},"/api/identity/users/request/deny":{post:{"x-internal":["cloud"],operationId:"denySignupRequest",tags:["Invitation"],summary:"Deny a signup request",responses:{200:{description:"Signup request denied",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}}},"/api/identity/users/request/notification":{get:{"x-internal":["cloud"],operationId:"getSignupRequestNotification",tags:["Invitation"],summary:"Get signup request notification summary",responses:{200:{description:"Signup request notification payload",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},204:{description:"No pending signup request notifications"},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"}}}}}}}},components:{parameters:{organization_id:{name:"organizationId",in:"path",required:true,description:"The ID of the organization",schema:{type:"string"}},invitation_id:{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}},responses:{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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},schemas:{Uuid:{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"}},InvitationsPage:{type:"object",required:["data","total"],properties:{data:{type:"array",items:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}},"x-go-type":"Invitation"},description:"List of invitations","x-oapi-codegen-extra-tags":{json:"data"}},total:{type:"integer",description:"Total number of invitations available","x-oapi-codegen-extra-tags":{json:"total"}}}},SignupRequest:{type:"object",additionalProperties:true},SignupRequestsPage:{type:"object",properties:{page:{type:"integer"},page_size:{type:"integer"},total_count:{type:"integer"},data:{type:"array",items:{type:"object",additionalProperties:true}}}},InvitationPayload:{type:"object",description:"Payload for creating or updating an invitation.",required:["name","description","org_id","emails","roles","teams","status"],properties:{id:{"x-go-name":"ID",description:"Existing invitation ID for updates; omit on create.","x-oapi-codegen-extra-tags":{json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation.","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite).","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default,omitempty"}},name:{type:"string",description:"Name of the invitation."},description:{type:"string",description:"Description of the invitation."},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string"}},org_id:{type:"string",description:"ID of the organization to which the user is invited.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable.","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at,omitempty"}},quota:{type:"integer",description:"Quota for the invitation."},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."}}},InvitationStatus:{type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},Invitation:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},h=y;var u={openapi:"3.0.0",info:{title:"Badge",description:"OpenAPI schema for managing badges.",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},security:[{jwt:[]}],tags:[{name:"Badge"}],paths:{"/api/organizations/badges/{id}":{delete:{"x-internal":["cloud"],operationId:"deleteBadgeById",tags:["Badge"],summary:"Delete a badge by its ID",parameters:[{name:"id",in:"path",description:"Unique identifier",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}],responses:{204:{description:"Badge deleted"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},get:{"x-internal":["cloud"],operationId:"getBadgeById",tags:["Badge"],summary:"Get a badge by its ID",parameters:[{name:"id",in:"path",description:"Unique identifier",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}],responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/organizations/badges":{post:{"x-internal":["cloud"],operationId:"createOrUpdateBadge",tags:["Badge"],summary:"Create a new badge or update an existing badge",requestBody:{content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating a badge.",required:["label","name","org_id","description","image_url"],properties:{id:{"x-go-name":"ID",description:"Existing badge ID for updates; omit on create.","x-oapi-codegen-extra-tags":{db:"id",json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},org_id:{description:"The ID of the organization in which this badge is available.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}}}}}},required:true},responses:{201:{content:{"application/json":{schema:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}}}}},"/api/identity/badges":{get:{"x-internal":["cloud"],operationId:"getAvailableBadges",tags:["Badge"],summary:"Get available badges",responses:{200:{description:"Available badges",content:{"application/json":{schema:{type:"object",properties:{badges:{type:"object",additionalProperties:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}},description:"The badges of the badgespage."}}}}}},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"}}}}}}},"/api/identity/users/badges":{put:{"x-internal":["cloud"],operationId:"assignBadges",tags:["Badge"],summary:"Assign badges to a user",requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{badges:{type:"array",items:{type:"string"},description:"The badges of the badgeassignment."},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},notify:{type:"boolean",description:"The notify of the badgeassignment."}}}}}},responses:{200:{description:"Badge assignment result",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}}}},components:{responses:{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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},schemas:{BadgePayload:{type:"object",description:"Payload for creating or updating a badge.",required:["label","name","org_id","description","image_url"],properties:{id:{"x-go-name":"ID",description:"Existing badge ID for updates; omit on create.","x-oapi-codegen-extra-tags":{db:"id",json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},org_id:{description:"The ID of the organization in which this badge is available.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}}}},Badge:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}},BadgesPage:{type:"object",properties:{badges:{type:"object",additionalProperties:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}},description:"The badges of the badgespage."}}},BadgeAssignmentPayload:{type:"object",properties:{badges:{type:"array",items:{type:"string"},description:"The badges of the badgeassignment."},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},notify:{type:"boolean",description:"The notify of the badgeassignment."}}}}}},f=u;var x={openapi:"3.0.0",info:{title:"Component",description:"OpenAPI schema for component definitions in Meshery.",version:"v1beta2",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},paths:{},components:{schemas:{ComponentDefinition:{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta2",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
637
+ `,enum:["merge","strategic","add","remove","copy","move","test"]},mutatorRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatorRef,omitempty",json:"mutatorRef,omitempty"},type:"array",description:"JSON ref to value from where patch should be applied.",items:{type:"array",items:{type:"string"},description:"The sequence of mutatorRef and mutatedRef must match. eg: mutatorRef: [[config, url], [config, name]], mutatedRef: [[configPatch, value], [name]]. The value [config, url] will be patched at [configPatch, value]. Similarly [config,name] will be patched at [name]."}},mutatedRef:{"x-oapi-codegen-extra-tags":{yaml:"mutatedRef,omitempty",json:"mutatedRef,omitempty"},type:"array",items:{type:"array",items:{type:"string"},description:"JSONPath (https://en.wikipedia.org/wiki/JSONPath) to property to be patched."}}}}}},"x-oapi-codegen-extra-tags":{yaml:"to",json:"to"}}}}}}}}}]}}},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}}},description:"Designs in this page."}}},MesheryView:{type:"object",description:"A view enriched with the workspace and organization it belongs to.",required:["workspace_id","organization_id"],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",description:"Display name of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},visibility:{type:"string",description:"Visibility level of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility,omitempty"}},filters:{type:"object",description:"Filter configuration for this view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"filters",json:"filters,omitempty"}},metadata:{type:"object",description:"Metadata associated with the view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},user_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"},"x-go-name":"UserID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"user_id",json:"user_id,omitempty"}},workspace_name:{type:"string",description:"Name of the workspace this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_name",json:"workspace_name,omitempty"}},workspace_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"},"x-go-name":"WorkspaceID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},organization_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"},"x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id"}},organization_name:{type:"string",description:"Name of the organization this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_name",json:"organization_name,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the view was soft deleted. Null while the view remains active.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},MesheryViewPage:{type:"object",description:"Paginated list of views with location enrichment.",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},views:{type:"array","x-go-type-skip-optional-pointer":true,items:{"x-go-type":"MesheryViewWithLocation",type:"object",description:"A view enriched with the workspace and organization it belongs to.",required:["workspace_id","organization_id"],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",description:"Display name of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"name",json:"name,omitempty"}},visibility:{type:"string",description:"Visibility level of the view.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"visibility",json:"visibility,omitempty"}},filters:{type:"object",description:"Filter configuration for this view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"filters",json:"filters,omitempty"}},metadata:{type:"object",description:"Metadata associated with the view.","x-go-type":"core.Map","x-go-type-import":{path:"github.com/meshery/schemas/models/core",name:"core"},"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata,omitempty"}},user_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"},"x-go-name":"UserID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"user_id",json:"user_id,omitempty"}},workspace_name:{type:"string",description:"Name of the workspace this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_name",json:"workspace_name,omitempty"}},workspace_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"},"x-go-name":"WorkspaceID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"workspace_id",json:"workspace_id"}},organization_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"},"x-go-name":"OrganizationID","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_id",json:"organization_id"}},organization_name:{type:"string",description:"Name of the organization this view belongs to.",maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"organization_name",json:"organization_name,omitempty"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{description:"Timestamp when the view was soft deleted. Null while the view remains active.","x-go-type":"meshcore.NullTime","x-go-type-import":{name:"meshcore",path:"github.com/meshery/schemas/models/core"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},description:"Views in this page, enriched with workspace and organization context."}}}},requestBodies:{workspacePayload:{description:"Body for creating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for creating a workspace.",required:["name","organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}},workspaceUpdatePayload:{description:"Body for updating a workspace",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for updating a workspace.",required:["organization_id"],properties:{name:{type:"string",description:"Name of the workspace.",minLength:1,maxLength:255,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"name,omitempty"}},description:{type:"string",description:"Description of the workspace.",maxLength:5e3,"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"description,omitempty"}},organization_id:{type:"string",description:"Organization ID.",maxLength:36,format:"uuid","x-go-type-skip-optional-pointer":true,"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{json:"organization_id,omitempty"}},metadata:{type:"object",description:"Metadata associated with the workspace.","x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{json:"metadata,omitempty"}}}}}}}}}},g=l;var y={openapi:"3.0.0",info:{title:"Invitation",description:"OpenAPI schema for managing invitations.","x-deprecated":true,"x-superseded-by":"v1beta2",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},tags:[{name:"Invitation",description:"Operations related to invitation"}],security:[{jwt:[]}],paths:{"/api/organizations/invitations/{invitationId}":{get:{"x-internal":["cloud"],operationId:"getInvitation",tags:["Invitation"],summary:"Get an invitation by ID",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},delete:{"x-internal":["cloud"],operationId:"deleteInvitation",tags:["Invitation"],summary:"Delete an invitation by ID",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],responses:{204:{description:"Invitation deleted"},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},put:{"x-internal":["cloud"],operationId:"updateInvitation",tags:["Invitation"],summary:"Update an existing invitation",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],requestBody:{content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating an invitation.",required:["name","description","org_id","emails","roles","teams","status"],properties:{id:{"x-go-name":"ID",description:"Existing invitation ID for updates; omit on create.","x-oapi-codegen-extra-tags":{json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation.","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite).","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default,omitempty"}},name:{type:"string",description:"Name of the invitation."},description:{type:"string",description:"Description of the invitation."},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string"}},org_id:{type:"string",description:"ID of the organization to which the user is invited.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable.","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at,omitempty"}},quota:{type:"integer",description:"Quota for the invitation."},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."}}}}},required:true},responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/organizations/invitations":{get:{"x-internal":["cloud"],operationId:"getInvitations",tags:["Invitation"],summary:"Get all invitations for the organization",responses:{200:{content:{"application/json":{schema:{type:"object",required:["data","total"],properties:{data:{type:"array",items:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}},"x-go-type":"Invitation"},description:"List of invitations","x-oapi-codegen-extra-tags":{json:"data"}},total:{type:"integer",description:"Total number of invitations available","x-oapi-codegen-extra-tags":{json:"total"}}}}}}},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"}}}}}},post:{"x-internal":["cloud"],operationId:"createInvitation",tags:["Invitation"],summary:"Create a new invitation for the organization",requestBody:{content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating an invitation.",required:["name","description","org_id","emails","roles","teams","status"],properties:{id:{"x-go-name":"ID",description:"Existing invitation ID for updates; omit on create.","x-oapi-codegen-extra-tags":{json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation.","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite).","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default,omitempty"}},name:{type:"string",description:"Name of the invitation."},description:{type:"string",description:"Description of the invitation."},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string"}},org_id:{type:"string",description:"ID of the organization to which the user is invited.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable.","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at,omitempty"}},quota:{type:"integer",description:"Quota for the invitation."},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."}}}}},required:true},responses:{201:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}}}}},"/api/organizations/invitations/{invitationId}/accept":{post:{"x-internal":["cloud"],operationId:"acceptInvitation",tags:["Invitation"],summary:"Accept an invitation by ID",parameters:[{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}],responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/identity/orgs/{orgId}/users/invite":{post:{"x-internal":["cloud"],operationId:"handleUserInvite",tags:["Invitation"],summary:"Invite users to an organization",parameters:[{name:"orgId",in:"path",required:true,description:"The ID of the organization",schema:{type:"string"}}],requestBody:{required:true,content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},responses:{200:{description:"Invitation request accepted",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/identity/users/request":{post:{"x-internal":["cloud"],operationId:"signupRequest",tags:["Invitation"],summary:"Create a signup request",security:[],requestBody:{required:true,content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},responses:{200:{description:"Signup request created",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}},get:{"x-internal":["cloud"],operationId:"getSignupRequests",tags:["Invitation"],summary:"Get signup requests",parameters:[{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:"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:"filter",in:"query",description:"Get filtered reponses",schema:{type:"string"}}],responses:{200:{description:"Signup requests page",content:{"application/json":{schema:{type:"object",properties:{page:{type:"integer"},page_size:{type:"integer"},total_count:{type:"integer"},data:{type:"array",items:{type:"object",additionalProperties: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"}}}}}}},"/api/identity/users/request/approve":{post:{"x-internal":["cloud"],operationId:"approveSignupRequest",tags:["Invitation"],summary:"Approve a signup request",responses:{200:{description:"Signup request approved",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}}},"/api/identity/users/request/deny":{post:{"x-internal":["cloud"],operationId:"denySignupRequest",tags:["Invitation"],summary:"Deny a signup request",responses:{200:{description:"Signup request denied",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}}},"/api/identity/users/request/notification":{get:{"x-internal":["cloud"],operationId:"getSignupRequestNotification",tags:["Invitation"],summary:"Get signup request notification summary",responses:{200:{description:"Signup request notification payload",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},204:{description:"No pending signup request notifications"},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"}}}}}}}},components:{parameters:{organization_id:{name:"organizationId",in:"path",required:true,description:"The ID of the organization",schema:{type:"string"}},invitation_id:{name:"invitationId",in:"path",required:true,description:"The ID of the invitation",schema:{type:"string"}}},responses:{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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},schemas:{Uuid:{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"}},InvitationsPage:{type:"object",required:["data","total"],properties:{data:{type:"array",items:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}},"x-go-type":"Invitation"},description:"List of invitations","x-oapi-codegen-extra-tags":{json:"data"}},total:{type:"integer",description:"Total number of invitations available","x-oapi-codegen-extra-tags":{json:"total"}}}},SignupRequest:{type:"object",additionalProperties:true},SignupRequestsPage:{type:"object",properties:{page:{type:"integer"},page_size:{type:"integer"},total_count:{type:"integer"},data:{type:"array",items:{type:"object",additionalProperties:true}}}},InvitationPayload:{type:"object",description:"Payload for creating or updating an invitation.",required:["name","description","org_id","emails","roles","teams","status"],properties:{id:{"x-go-name":"ID",description:"Existing invitation ID for updates; omit on create.","x-oapi-codegen-extra-tags":{json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation.","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite).","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default,omitempty"}},name:{type:"string",description:"Name of the invitation."},description:{type:"string",description:"Description of the invitation."},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string"}},org_id:{type:"string",description:"ID of the organization to which the user is invited.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable.","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at,omitempty"}},quota:{type:"integer",description:"Quota for the invitation."},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."}}},InvitationStatus:{type:"string",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},Invitation:{type:"object",required:["id","owner_id","name","description","org_id","accepted_by","emails","roles","teams","status","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID",description:"Unique identifier for the invitation , is also used as the invitation code",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner_id:{description:"ID of the user who created the invitation, this is used to track who created the invitation and can be used for auditing purposes","x-oapi-codegen-extra-tags":{db:"owner_id",json:"owner_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},is_default:{type:"boolean",description:"Indicates whether the invitation is a default invitation (open invite), which can be used to assign users when signing up from fqdn or custom domain, a organization can only have one default invitation","x-oapi-codegen-extra-tags":{db:"is_default",json:"is_default"}},name:{type:"string",description:"Name of the invitation, which can be used to identify the invitation, required and cant be empty string,"},description:{type:"string",description:"Description of the invitation, which can be used to provide additional information about the invitation, null or empty string means the invitation does not have a description"},emails:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",pattern:"^([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-z]{2,}|@[a-zA-Z0-9.-]+\\.[a-z]{2,})$","x-go-type":"string",description:"Exact email address or the email address pattern for which the invitation is valid , null means the invitation is valid for all email addresses"}},org_id:{type:"string",description:"ID of the organization to which the user is invited","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"}},expires_at:{type:"string",format:"date-time",description:"Timestamp when the invitation expires, if applicable , null or empty string means the invitation does not expire","x-oapi-codegen-extra-tags":{db:"expires_at",json:"expires_at"}},quota:{type:"integer",description:"Quota for the invitation, which can be used to limit the number of users that can accept the invitation, null or empty string means the invitation does not have a quota"},accepted_by:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string"},description:"List of user ids that have already accepted the invitation, null or empty string means the invitation has not been used yet","x-oapi-codegen-extra-tags":{db:"accepted_by",json:"accepted_by"}},roles:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Roles that the user will have when accepting the invitation, null or empty string means the invitation does not specify any roles"}},teams:{type:"array","x-go-type":"pq.StringArray","x-go-type-import":{path:"github.com/lib/pq"},items:{type:"string",description:"Teams that the user will be added to when accepting the invitation, null or empty string means the invitation does not specify any teams"}},status:{type:"string","x-go-type":"InvitationStatus",enum:["enabled","disabled"],description:"Status of the invitation, where enabled means the invitation is active and can be used, disabled means the invitation is no longer valid and is temporarily inactive, disabled invitations can be re-enabled later."},created_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was created","x-oapi-codegen-extra-tags":{db:"created_at",json:"created_at"}},updated_at:{type:"string",format:"date-time",description:"Timestamp when the invitation was last updated","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updated_at"}},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the invitation was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},h=y;var u={openapi:"3.0.0",info:{title:"Badge",description:"OpenAPI schema for managing badges.",version:"v1beta1",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},security:[{jwt:[]}],tags:[{name:"Badge"}],paths:{"/api/organizations/badges/{id}":{delete:{"x-internal":["cloud"],operationId:"deleteBadgeById",tags:["Badge"],summary:"Delete a badge by its ID",parameters:[{name:"id",in:"path",description:"Unique identifier",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}],responses:{204:{description:"Badge deleted"},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}},get:{"x-internal":["cloud"],operationId:"getBadgeById",tags:["Badge"],summary:"Get a badge by its ID",parameters:[{name:"id",in:"path",description:"Unique identifier",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}],responses:{200:{content:{"application/json":{schema:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},401:{description:"Expired JWT token used or insufficient privilege",content:{"text/plain":{schema:{type:"string"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}}}},"/api/organizations/badges":{post:{"x-internal":["cloud"],operationId:"createOrUpdateBadge",tags:["Badge"],summary:"Create a new badge or update an existing badge",requestBody:{content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating a badge.",required:["label","name","org_id","description","image_url"],properties:{id:{"x-go-name":"ID",description:"Existing badge ID for updates; omit on create.","x-oapi-codegen-extra-tags":{db:"id",json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},org_id:{description:"The ID of the organization in which this badge is available.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}}}}}},required:true},responses:{201:{content:{"application/json":{schema:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}}}}},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"}}}}}}},"/api/identity/badges":{get:{"x-internal":["cloud"],operationId:"getAvailableBadges",tags:["Badge"],summary:"Get available badges",responses:{200:{description:"Available badges",content:{"application/json":{schema:{type:"object",properties:{badges:{type:"object",additionalProperties:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}},description:"The badges of the badgespage."}}}}}},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"}}}}}}},"/api/identity/users/badges":{put:{"x-internal":["cloud"],operationId:"assignBadges",tags:["Badge"],summary:"Assign badges to a user",requestBody:{required:true,content:{"application/json":{schema:{type:"object",properties:{badges:{type:"array",items:{type:"string"},description:"The badges of the badgeassignment."},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},notify:{type:"boolean",description:"The notify of the badgeassignment."}}}}}},responses:{200:{description:"Badge assignment result",content:{"application/json":{schema:{type:"object",additionalProperties:true}}}},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"}}}}}}}},components:{responses:{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"}}}},404:{description:"Result not found",content:{"text/plain":{schema:{type:"string"}}}},500:{description:"Internal server error",content:{"text/plain":{schema:{type:"string"}}}}},securitySchemes:{jwt:{type:"http",scheme:"bearer",bearerFormat:"JWT"}},schemas:{BadgePayload:{type:"object",description:"Payload for creating or updating a badge.",required:["label","name","org_id","description","image_url"],properties:{id:{"x-go-name":"ID",description:"Existing badge ID for updates; omit on create.","x-oapi-codegen-extra-tags":{db:"id",json:"id,omitempty"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},org_id:{description:"The ID of the organization in which this badge is available.","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}}}},Badge:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}},BadgesPage:{type:"object",properties:{badges:{type:"object",additionalProperties:{type:"object",required:["id","label","name","org_id","description","image_url","created_at","updated_at","deleted_at"],properties:{id:{"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"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"}},org_id:{description:"The ID of the organization in which this badge is available .","x-oapi-codegen-extra-tags":{db:"org_id",json:"org_id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},label:{type:"string",description:"unique identifier for the badge ( auto generated )",example:"Kubernetes-Expert","x-oapi-codegen-extra-tags":{db:"label",json:"label"},maxLength:500},name:{type:"string",description:"Concise descriptor for the badge or certificate.",example:"Kubernetes Expert","x-oapi-codegen-extra-tags":{db:"name",json:"name"},minLength:1,maxLength:255},description:{type:"string",description:"A description of the milestone achieved, often including criteria for receiving this recognition.",example:"Awarded for mastering Kubernetes concepts and practices.","x-oapi-codegen-extra-tags":{db:"description",json:"description"},maxLength:5e3},image_url:{type:"string",format:"uri",description:"URL to the badge image",example:"https://raw.githubusercontent.com/layer5io/layer5-academy/refs/heads/master/static/11111111-1111-1111-1111-111111111111/images/meshery-logo-light.webp","x-oapi-codegen-extra-tags":{db:"image_url",json:"image_url"}},created_at:{description:"Timestamp when the resource was created.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at"},"x-go-type-skip-optional-pointer":true},updated_at:{description:"Timestamp when the resource was updated.","x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at"},"x-go-type-skip-optional-pointer":true},deleted_at:{type:"string",format:"date-time","x-go-type":"core.NullTime",description:"Timestamp when the resource was deleted, if applicable","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deleted_at"}}}},description:"The badges of the badgespage."}}},BadgeAssignmentPayload:{type:"object",properties:{badges:{type:"array",items:{type:"string"},description:"The badges of the badgeassignment."},user_id:{type:"string",description:"ID of the user who owns or created this resource.",maxLength:500,format:"uuid"},notify:{type:"boolean",description:"The notify of the badgeassignment."}}}}}},f=u;var x={openapi:"3.0.0",info:{title:"Component",description:"OpenAPI schema for component definitions in Meshery.",version:"v1beta2",contact:{name:"Meshery Maintainers",email:"maintainers@meshery.io",url:"https://meshery.io"},license:{name:"Apache 2.0",url:"https://www.apache.org/licenses/LICENSE-2.0.html"}},paths:{},components:{schemas:{ComponentDefinition:{$id:"https://schemas.meshery.io/component.yaml",$schema:"http://json-schema.org/draft-07/schema#",description:"Components are reusable building blocks for depicting capabilities defined within models. Learn more at https://docs.meshery.io/concepts/components",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{"x-order":2,description:"Specifies the version of the schema to which the component definition conforms.","x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"components.meshery.io/v1beta2",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{"x-order":3,description:"Version of the component definition.",minLength:1,maxLength:50,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},type:"string",pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},displayName:{"x-order":4,description:"Name of the component in human-readable format.","x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},type:"string",pattern:"^[a-zA-Z_][a-zA-Z0-9_-]*[a-zA-Z0-9_]$"},description:{"x-order":5,type:"string",description:"A written representation of the purpose and characteristics of the component.","x-oapi-codegen-extra-tags":{yaml:"description",json:"description"},maxLength:5e3},format:{"x-order":6,type:"string",enum:["JSON","CUE"],default:"JSON",description:"Format specifies the format used in the `component.schema` field. JSON is the default.","x-oapi-codegen-extra-tags":{yaml:"format",json:"format"}},model:{"x-go-type":"*modelv1beta1.ModelDefinition","x-go-type-import":{path:"github.com/meshery/schemas/models/v1beta1/model",name:"modelv1beta1"},"x-order":7,description:"Reference to the specific registered model to which the component belongs and from which model version, category, and other properties may be referenced. Learn more at https://docs.meshery.io/concepts/models","x-oapi-codegen-extra-tags":{gorm:"foreignKey:ModelId;references:ID",json:"model",yaml:"model"},$id:"https://schemas.meshery.io/model.yaml",$schema:"http://json-schema.org/draft-07/schema#",additionalProperties:false,type:"object",properties:{id:{description:"Uniquely identifies the entity (i.e. component) as defined in a declaration (i.e. design).","x-order":1,"x-oapi-codegen-extra-tags":{yaml:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema used for the definition.","x-order":2,"x-oapi-codegen-extra-tags":{yaml:"schemaVersion",json:"schemaVersion"},default:"models.meshery.io/v1beta1",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},version:{description:"Version of the model definition.",type:"string","x-order":3,"x-oapi-codegen-extra-tags":{yaml:"version",json:"version"},minLength:5,maxLength:100,pattern:"^[a-z0-9]+.[0-9]+.[0-9]+(-[0-9A-Za-z-]+(.[0-9A-Za-z-]+)*)?(\\+[0-9A-Za-z-]+(\\.[0-9A-Za-z-]+)*)?$"},name:{type:"string",description:"The unique name for the model within the scope of a registrant.",helperText:"Model name should be in lowercase with hyphens, not whitespaces.",pattern:"^[a-z0-9-]+$",examples:["cert-manager"],"x-order":4,"x-oapi-codegen-extra-tags":{yaml:"name",json:"name"},default:"untitled-model"},displayName:{description:"Human-readable name for the model.",helperText:"Model display name may include letters, numbers, and spaces. Special characters are not allowed.",minLength:1,maxLength:100,type:"string",pattern:"^[a-zA-Z0-9 ]+$",examples:["Cert Manager"],"x-order":5,"x-oapi-codegen-extra-tags":{yaml:"displayName",json:"displayName"},default:"Untitled Model"},description:{type:"string",default:"A new Meshery model.",description:"Description of the model.",minLength:1,maxLength:1e3,"x-order":6,"x-oapi-codegen-extra-tags":{yaml:"description,omitempty",json:"description,omitempty"}},status:{type:"string",description:`Status of model, including:
638
638
  - 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.
639
639
  - maintenance: model is unavailable for a period of time.
640
640
  - enabled: model is available for use for all users of this Meshery Server.