@meshery/schemas 1.3.60 → 1.3.62
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/README.md +9 -1
- package/dist/cloudApi.d.mts +19666 -6714
- package/dist/cloudApi.d.ts +19666 -6714
- package/dist/cloudApi.js +1 -1
- package/dist/cloudApi.mjs +1 -1
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtp.d.ts +2 -2
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtpSchema.js +1 -1
- package/dist/constructs/v1beta1/organization_smtp/OrganizationSmtpSchema.mjs +1 -1
- package/dist/constructs/v1beta1/registry/Registry.d.ts +6 -6
- package/dist/constructs/v1beta1/registry/RegistrySchema.js +3 -3
- package/dist/constructs/v1beta1/registry/RegistrySchema.mjs +3 -3
- package/dist/constructs/v1beta3/academy/Academy.d.ts +18 -0
- package/dist/constructs/v1beta3/academy/AcademySchema.js +2 -2
- package/dist/constructs/v1beta3/academy/AcademySchema.mjs +2 -2
- package/dist/constructs/v1beta3/blowhorn_binding/BlowhornBinding.d.ts +462 -0
- package/dist/constructs/v1beta3/blowhorn_binding/BlowhornBinding.js +1 -0
- package/dist/constructs/v1beta3/blowhorn_binding/BlowhornBinding.mjs +0 -0
- package/dist/constructs/v1beta3/blowhorn_binding/BlowhornBindingSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/blowhorn_binding/BlowhornBindingSchema.js +23 -0
- package/dist/constructs/v1beta3/blowhorn_binding/BlowhornBindingSchema.mjs +23 -0
- package/dist/constructs/v1beta3/blowhorn_content/BlowhornContent.d.ts +719 -0
- package/dist/constructs/v1beta3/blowhorn_content/BlowhornContent.js +1 -0
- package/dist/constructs/v1beta3/blowhorn_content/BlowhornContent.mjs +0 -0
- package/dist/constructs/v1beta3/blowhorn_content/BlowhornContentSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/blowhorn_content/BlowhornContentSchema.js +43 -0
- package/dist/constructs/v1beta3/blowhorn_content/BlowhornContentSchema.mjs +43 -0
- package/dist/constructs/v1beta3/blowhorn_destination/BlowhornDestination.d.ts +516 -0
- package/dist/constructs/v1beta3/blowhorn_destination/BlowhornDestination.js +1 -0
- package/dist/constructs/v1beta3/blowhorn_destination/BlowhornDestination.mjs +0 -0
- package/dist/constructs/v1beta3/blowhorn_destination/BlowhornDestinationSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/blowhorn_destination/BlowhornDestinationSchema.js +23 -0
- package/dist/constructs/v1beta3/blowhorn_destination/BlowhornDestinationSchema.mjs +23 -0
- package/dist/constructs/v1beta3/blowhorn_health/BlowhornHealth.d.ts +131 -0
- package/dist/constructs/v1beta3/blowhorn_health/BlowhornHealth.js +1 -0
- package/dist/constructs/v1beta3/blowhorn_health/BlowhornHealth.mjs +0 -0
- package/dist/constructs/v1beta3/blowhorn_health/BlowhornHealthSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/blowhorn_health/BlowhornHealthSchema.js +7 -0
- package/dist/constructs/v1beta3/blowhorn_health/BlowhornHealthSchema.mjs +7 -0
- package/dist/constructs/v1beta3/blowhorn_ledger/BlowhornLedger.d.ts +1546 -0
- package/dist/constructs/v1beta3/blowhorn_ledger/BlowhornLedger.js +1 -0
- package/dist/constructs/v1beta3/blowhorn_ledger/BlowhornLedger.mjs +0 -0
- package/dist/constructs/v1beta3/blowhorn_ledger/BlowhornLedgerSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/blowhorn_ledger/BlowhornLedgerSchema.js +69 -0
- package/dist/constructs/v1beta3/blowhorn_ledger/BlowhornLedgerSchema.mjs +69 -0
- package/dist/constructs/v1beta3/blowhorn_profile/BlowhornProfile.d.ts +776 -0
- package/dist/constructs/v1beta3/blowhorn_profile/BlowhornProfile.js +1 -0
- package/dist/constructs/v1beta3/blowhorn_profile/BlowhornProfile.mjs +0 -0
- package/dist/constructs/v1beta3/blowhorn_profile/BlowhornProfileSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/blowhorn_profile/BlowhornProfileSchema.js +45 -0
- package/dist/constructs/v1beta3/blowhorn_profile/BlowhornProfileSchema.mjs +45 -0
- package/dist/constructs/v1beta3/blowhorn_run/BlowhornRun.d.ts +784 -0
- package/dist/constructs/v1beta3/blowhorn_run/BlowhornRun.js +1 -0
- package/dist/constructs/v1beta3/blowhorn_run/BlowhornRun.mjs +0 -0
- package/dist/constructs/v1beta3/blowhorn_run/BlowhornRunSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/blowhorn_run/BlowhornRunSchema.js +51 -0
- package/dist/constructs/v1beta3/blowhorn_run/BlowhornRunSchema.mjs +51 -0
- package/dist/constructs/v1beta3/connection/Connection.d.ts +14 -14
- package/dist/constructs/v1beta3/connection/ConnectionSchema.js +1 -1
- package/dist/constructs/v1beta3/connection/ConnectionSchema.mjs +1 -1
- package/dist/constructs/v1beta3/environment/Environment.d.ts +12 -12
- package/dist/constructs/v1beta3/environment/EnvironmentSchema.js +1 -1
- package/dist/constructs/v1beta3/environment/EnvironmentSchema.mjs +1 -1
- package/dist/constructs/v1beta3/invitation/Invitation.d.ts +66 -0
- package/dist/constructs/v1beta3/invitation/InvitationSchema.js +1 -1
- package/dist/constructs/v1beta3/invitation/InvitationSchema.mjs +1 -1
- package/dist/constructs/v1beta3/job_lease/JobLease.d.ts +2570 -0
- package/dist/constructs/v1beta3/job_lease/JobLease.js +1 -0
- package/dist/constructs/v1beta3/job_lease/JobLease.mjs +0 -0
- package/dist/constructs/v1beta3/job_lease/JobLeaseSchema.d.ts +2 -0
- package/dist/constructs/v1beta3/job_lease/JobLeaseSchema.js +83 -0
- package/dist/constructs/v1beta3/job_lease/JobLeaseSchema.mjs +83 -0
- package/dist/constructs/v1beta3/token/Token.d.ts +4 -2
- package/dist/constructs/v1beta3/token/TokenSchema.js +1 -1
- package/dist/constructs/v1beta3/token/TokenSchema.mjs +1 -1
- package/dist/constructs/v1beta3/workspace/Workspace.d.ts +2 -2
- package/dist/constructs/v1beta3/workspace/WorkspaceSchema.js +1 -1
- package/dist/constructs/v1beta3/workspace/WorkspaceSchema.mjs +1 -1
- package/dist/mesheryApi.d.mts +24 -24
- package/dist/mesheryApi.d.ts +24 -24
- package/dist/mesheryApi.js +1 -1
- package/dist/mesheryApi.mjs +1 -1
- package/package.json +2 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={openapi:"3.0.0",info:{title:"Environment",description:"OpenAPI schema for environment management in Meshery Cloud.",version:"v1beta3",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:"integer",minimum:0}},pageSize:{name:"pageSize",in:"query",description:"Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`.",schema:{type:"integer",minimum:1}},pagesize:{name:"pagesize",in:"query",description:"Get responses by pagesize. Deprecated alias of pageSize.",deprecated:true,schema:{type:"integer"}},orgIdQuery:{name:"orgId",in:"query",description:"User's organization ID",schema:{type:"string",format:"uuid",maxLength:36},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},EnvironmentConnectionMapping:{type:"object",description:"Junction record linking an environment to a connection.",properties:{id:{"x-go-name":"ID",description:"Mapping record 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},environmentId:{"x-go-name":"EnvironmentID","x-oapi-codegen-extra-tags":{db:"environment_id",json:"environmentId"},"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"}},connectionId:{"x-go-name":"ConnectionID","x-oapi-codegen-extra-tags":{db:"connection_id",json:"connectionId"},"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"}},createdAt:{description:"Timestamp when the mapping was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the mapping was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the mapping was soft-deleted. Null while the mapping remains active.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"NullTime",type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},EnvironmentPayload:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}},EnvironmentPage:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},description:"Environments associated with this resource."}}},EnvironmentConnectionsPage:{type:"object",description:"Paginated list of connections associated with an environment.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items per page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"}},totalCount:{type:"integer",description:"Total number of items available.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"}},connections:{type:"array",items:{type:"object",additionalProperties:true},description:"The connections of the environmentconnectionspage."}}},EnvironmentConnectionMappingPage:{type:"object",description:"Paginated list of environment-to-connection mapping records, returned when a connection is assigned to or unassigned from an environment. Distinct from EnvironmentConnectionsPage, which lists the connections themselves rather than the junction records.",required:["page","pageSize","totalCount","environmentConnectionMapping"],properties:{page:{type:"integer",description:"Zero-based page index returned in this response.",minimum:0},pageSize:{type:"integer",description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"}},totalCount:{type:"integer",description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"}},environmentConnectionMapping:{type:"array",description:"Environment-to-connection mapping records in this page.","x-oapi-codegen-extra-tags":{json:"environmentConnectionMapping"},items:{type:"object",description:"Junction record linking an environment to a connection.",properties:{id:{"x-go-name":"ID",description:"Mapping record 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},environmentId:{"x-go-name":"EnvironmentID","x-oapi-codegen-extra-tags":{db:"environment_id",json:"environmentId"},"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"}},connectionId:{"x-go-name":"ConnectionID","x-oapi-codegen-extra-tags":{db:"connection_id",json:"connectionId"},"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"}},createdAt:{description:"Timestamp when the mapping was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the mapping was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the mapping was soft-deleted. Null while the mapping remains active.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"NullTime",type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}}}}}},requestBodies:{environmentPayload:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}}}}}}},paths:{"/api/environments":{post:{"x-internal":["cloud","meshery"],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:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}}}}},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}}}}},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","meshery"],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:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`.",schema:{type:"integer",minimum:1}},{name:"pagesize",in:"query",description:"Get responses by pagesize. Deprecated alias of pageSize.",deprecated:true,schema:{type:"integer"}},{name:"orgId",in:"query",description:"User's organization ID",schema:{type:"string",format:"uuid",maxLength:36},required:true}],responses:{200:{description:"Environments",content:{"application/json":{schema:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},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:{"x-internal":["cloud","meshery"],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",format:"uuid",maxLength:36},required:true}],responses:{200:{description:"Environment page",content:{"application/json":{schema:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},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:{"x-internal":["cloud","meshery"],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:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}}}}},responses:{200:{description:"Environment page",content:{"application/json":{schema:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},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:{"x-internal":["cloud","meshery"],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:{"x-internal":["cloud","meshery"],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:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`.",schema:{type:"integer",minimum:1}},{name:"pagesize",in:"query",description:"Get responses by pagesize. Deprecated alias of pageSize.",deprecated:true,schema:{type:"integer"}},{name:"filter",in:"query",required:false,description:"JSON-encoded filter string used to scope the connection listing.",schema:{type:"string",maxLength:4096}}],responses:{200:{description:"Environment connections",content:{"application/json":{schema:{type:"object",description:"Paginated list of connections associated with an environment.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items per page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"}},totalCount:{type:"integer",description:"Total number of items available.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"}},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"}}}}}}}}},t=e;
|
|
1
|
+
var e={openapi:"3.0.0",info:{title:"Environment",description:"OpenAPI schema for environment management in Meshery Cloud.",version:"v1beta3",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:"integer",minimum:0}},pageSize:{name:"pageSize",in:"query",description:"Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`.",schema:{type:"integer",minimum:1}},pagesize:{name:"pagesize",in:"query",description:"Get responses by pagesize. Deprecated alias of pageSize.",deprecated:true,schema:{type:"integer"}},orgIdQuery:{name:"orgId",in:"query",description:"User's organization ID",schema:{type:"string",format:"uuid",maxLength:36},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust. `blowhorn` designates an environment the platform itself provisions to hold an organization\'s Blowhorn configuration and secrets, resolved by the purpose-typed credential chain; it is privileged in the same sense as `administrative`.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative","blowhorn"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative","EnvironmentPurposeBlowhorn"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},EnvironmentConnectionMapping:{type:"object",description:"Junction record linking an environment to a connection.",properties:{id:{"x-go-name":"ID",description:"Mapping record 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},environmentId:{"x-go-name":"EnvironmentID","x-oapi-codegen-extra-tags":{db:"environment_id",json:"environmentId"},"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"}},connectionId:{"x-go-name":"ConnectionID","x-oapi-codegen-extra-tags":{db:"connection_id",json:"connectionId"},"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"}},createdAt:{description:"Timestamp when the mapping was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the mapping was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the mapping was soft-deleted. Null while the mapping remains active.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"NullTime",type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}},EnvironmentPayload:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}},EnvironmentPage:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust. `blowhorn` designates an environment the platform itself provisions to hold an organization\'s Blowhorn configuration and secrets, resolved by the purpose-typed credential chain; it is privileged in the same sense as `administrative`.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative","blowhorn"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative","EnvironmentPurposeBlowhorn"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},description:"Environments associated with this resource."}}},EnvironmentConnectionsPage:{type:"object",description:"Paginated list of connections associated with an environment.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items per page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"}},totalCount:{type:"integer",description:"Total number of items available.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"}},connections:{type:"array",items:{type:"object",additionalProperties:true},description:"The connections of the environmentconnectionspage."}}},EnvironmentConnectionMappingPage:{type:"object",description:"Paginated list of environment-to-connection mapping records, returned when a connection is assigned to or unassigned from an environment. Distinct from EnvironmentConnectionsPage, which lists the connections themselves rather than the junction records.",required:["page","pageSize","totalCount","environmentConnectionMapping"],properties:{page:{type:"integer",description:"Zero-based page index returned in this response.",minimum:0},pageSize:{type:"integer",description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"}},totalCount:{type:"integer",description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"}},environmentConnectionMapping:{type:"array",description:"Environment-to-connection mapping records in this page.","x-oapi-codegen-extra-tags":{json:"environmentConnectionMapping"},items:{type:"object",description:"Junction record linking an environment to a connection.",properties:{id:{"x-go-name":"ID",description:"Mapping record 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},environmentId:{"x-go-name":"EnvironmentID","x-oapi-codegen-extra-tags":{db:"environment_id",json:"environmentId"},"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"}},connectionId:{"x-go-name":"ConnectionID","x-oapi-codegen-extra-tags":{db:"connection_id",json:"connectionId"},"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"}},createdAt:{description:"Timestamp when the mapping was created.","x-oapi-codegen-extra-tags":{db:"created_at",json:"createdAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},updatedAt:{description:"Timestamp when the mapping was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",json:"updatedAt"},type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the mapping was soft-deleted. Null while the mapping remains active.","x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"NullTime",type:"string",format:"date-time","x-go-type-skip-optional-pointer":true}}}}}}},requestBodies:{environmentPayload:{description:"Body for creating environment",required:true,content:{"application/json":{schema:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}}}}}}},paths:{"/api/environments":{post:{"x-internal":["cloud","meshery"],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:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}}}}},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust. `blowhorn` designates an environment the platform itself provisions to hold an organization\'s Blowhorn configuration and secrets, resolved by the purpose-typed credential chain; it is privileged in the same sense as `administrative`.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative","blowhorn"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative","EnvironmentPurposeBlowhorn"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}}}}},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","meshery"],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:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`.",schema:{type:"integer",minimum:1}},{name:"pagesize",in:"query",description:"Get responses by pagesize. Deprecated alias of pageSize.",deprecated:true,schema:{type:"integer"}},{name:"orgId",in:"query",description:"User's organization ID",schema:{type:"string",format:"uuid",maxLength:36},required:true}],responses:{200:{description:"Environments",content:{"application/json":{schema:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust. `blowhorn` designates an environment the platform itself provisions to hold an organization\'s Blowhorn configuration and secrets, resolved by the purpose-typed credential chain; it is privileged in the same sense as `administrative`.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative","blowhorn"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative","EnvironmentPurposeBlowhorn"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},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:{"x-internal":["cloud","meshery"],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",format:"uuid",maxLength:36},required:true}],responses:{200:{description:"Environment page",content:{"application/json":{schema:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust. `blowhorn` designates an environment the platform itself provisions to hold an organization\'s Blowhorn configuration and secrets, resolved by the purpose-typed credential chain; it is privileged in the same sense as `administrative`.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative","blowhorn"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative","EnvironmentPurposeBlowhorn"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},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:{"x-internal":["cloud","meshery"],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:{type:"object",description:"Payload for creating or updating an environment. Carries only the client-settable fields. Server-owned fields are deliberately absent: `id`, `owner`, `createdAt`, `updatedAt` and `deletedAt` because the server assigns them, and `purpose` because permission to create an environment must not confer the ability to designate it administrative. Excluding it here is a codegen guarantee rather than access control: the registrant connection inlines the full environment entity, so `purpose` still reaches the `registerRegistryComponent` and `registerRegistryRelationship` request types, and every consumer must refuse it on input whatever surface it arrives on. Do not add `purpose` here - see https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.",required:["name","organizationId"],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 & credentials. 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},organizationId:{type:"string",description:"Select an organization in which you want to create this new environment. Keep in mind that the organization cannot be changed after creation.","x-go-type-skip-optional-pointer":true,"x-go-name":"OrgID","x-oapi-codegen-extra-tags":{json:"organizationId"},maxLength:500,format:"uuid"}}}}}},responses:{200:{description:"Environment page",content:{"application/json":{schema:{type:"object",description:"Paginated list of environments.",properties:{page:{description:"Zero-based page index returned in this response.",minimum:0,type:"integer","x-go-type-skip-optional-pointer":true},pageSize:{description:"Maximum number of items returned on each page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"},type:"integer","x-go-type-skip-optional-pointer":true},totalCount:{description:"Total number of items across all pages.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"},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/v1beta3",name:"Production Environment",description:"Connections and credentials for the production cluster.",purpose:"user",organizationId:"00000000-0000-0000-0000-000000000000",owner:"00000000-0000-0000-0000-000000000000",createdAt:"0001-01-01T00:00:00Z",metadata:{},updatedAt:"0001-01-01T00:00:00Z",deletedAt:null},required:["id","schemaVersion","name","description","organizationId"],properties:{id:{description:"ID","x-order":1,"x-go-name":"ID","x-oapi-codegen-extra-tags":{db:"id",json:"id"},type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},schemaVersion:{description:"Specifies the version of the schema to which the environment conforms.","x-order":2,"x-oapi-codegen-extra-tags":{json:"schemaVersion",db:"-",gorm:"-"},default:"environments.meshery.io/v1beta3",type:"string",minLength:2,maxLength:100,pattern:"^([a-z][a-z0-9.-]*\\/)?v(alpha|beta|[0-9]+(alpha[0-9]*|beta[0-9]*|rc[0-9]*)?)([.-][a-z0-9]+)*$",example:["v1","v1alpha1","v2beta3","v1.custom-suffix","models.meshery.io/v1beta1","capability.meshery.io/v1alpha1"]},name:{"x-oapi-codegen-extra-tags":{db:"name",json:"name"},"x-order":3,type:"string",maxLength:100,description:"Environment name"},description:{"x-oapi-codegen-extra-tags":{db:"description",json:"description"},"x-order":4,type:"string",maxLength:1e3,description:"Environment description"},organizationId:{"x-go-name":"OrganizationID","x-oapi-codegen-extra-tags":{db:"organization_id",json:"organizationId"},"x-order":5,description:"Environment organization ID",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},owner:{"x-oapi-codegen-extra-tags":{db:"owner",json:"owner"},"x-order":6,description:"Environment owner",type:"string",format:"uuid","x-go-type":"uuid.UUID","x-go-type-import":{path:"github.com/gofrs/uuid"}},createdAt:{description:"Timestamp when the environment was created.","x-oapi-codegen-extra-tags":{db:"created_at",yaml:"created_at",json:"createdAt"},"x-order":7,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"CreatedAt","x-go-type-skip-optional-pointer":true},metadata:{description:"Additional metadata associated with the environment.","x-oapi-codegen-extra-tags":{db:"metadata",json:"metadata"},"x-order":8,"x-go-type":"core.Map","x-go-type-skip-optional-pointer":true,type:"object"},updatedAt:{description:"Timestamp when the environment was last updated.","x-oapi-codegen-extra-tags":{db:"updated_at",yaml:"updated_at",json:"updatedAt"},"x-order":9,"x-go-type":"time.Time",type:"string",format:"date-time","x-go-name":"UpdatedAt","x-go-type-skip-optional-pointer":true},deletedAt:{description:"Timestamp when the environment was soft deleted. Null while the environment remains active.",nullable:true,"x-oapi-codegen-extra-tags":{db:"deleted_at",json:"deletedAt"},"x-go-type":"core.NullTime","x-go-import":"database/sql","x-order":10,type:"string",format:"date-time","x-go-type-skip-optional-pointer":true},purpose:{type:"string",description:'What the environment exists for. `user` is an ordinary environment that people create to logically group Connections and their Credentials. `administrative` designates an environment the platform itself provisions to hold organization-level configuration, and which resolvers of that configuration therefore trust. `blowhorn` designates an environment the platform itself provisions to hold an organization\'s Blowhorn configuration and secrets, resolved by the purpose-typed credential chain; it is privileged in the same sense as `administrative`.\n\nAbsent means `user`. Nothing may read an unset or unrecognised value as administrative: test for the administrative value explicitly rather than for "not user", so the property fails closed.\n\nAt most one live environment per organization may carry any single privileged purpose - `administrative`, and each privileged value a later version adds. Name those values explicitly wherever the rule is enforced, including the database index predicate: a "not `user`" test also matches the empty value that unmigrated rows and un-normalised writes read back as, which means ordinary. A resolver that selects an environment by purpose MUST fail closed when more than one live row matches: return an error rather than whichever row the database happened to return first.\n\nServer-owned and not client-settable. It is absent from `EnvironmentPayload`, which every environment POST and PUT requestBody references, and from the create-or-edit form, so the environment create and update endpoints have no field for it. That exclusion is a codegen guarantee, never access control: the registrant connection inlines the full environment entity, so `registerRegistryComponent` and `registerRegistryRelationship` do carry `purpose` in a request type and consumers MUST refuse it on input there too. Whatever surface a value arrives on, every consumer MUST assign this property only from server-side provisioning or a data migration. Permission to create an environment does not confer the ability to make one administrative.\n\nThe database index that enforces the uniqueness invariant, the migration path for environments that are administrative by naming convention today, and each consumer\'s obligations are specified in https://github.com/meshery/schemas/blob/master/docs/environment-purpose-contract.md.',enum:["user","administrative","blowhorn"],"x-enum-varnames":["EnvironmentPurposeUser","EnvironmentPurposeAdministrative","EnvironmentPurposeBlowhorn"],"x-go-type-skip-optional-pointer":true,"x-oapi-codegen-extra-tags":{db:"purpose",gorm:"not null;default:user",json:"purpose,omitempty"},"x-order":11}}},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:{"x-internal":["cloud","meshery"],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:{"x-internal":["cloud","meshery"],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:"integer",minimum:0}},{name:"pageSize",in:"query",description:"Number of responses to return per page. Canonical camelCase pagination parameter; prefer this over the deprecated all-lowercase `pagesize`.",schema:{type:"integer",minimum:1}},{name:"pagesize",in:"query",description:"Get responses by pagesize. Deprecated alias of pageSize.",deprecated:true,schema:{type:"integer"}},{name:"filter",in:"query",required:false,description:"JSON-encoded filter string used to scope the connection listing.",schema:{type:"string",maxLength:4096}}],responses:{200:{description:"Environment connections",content:{"application/json":{schema:{type:"object",description:"Paginated list of connections associated with an environment.",properties:{page:{type:"integer",description:"Current page number of the result set.",minimum:0},pageSize:{type:"integer",description:"Number of items per page.",minimum:1,"x-oapi-codegen-extra-tags":{json:"pageSize"}},totalCount:{type:"integer",description:"Total number of items available.",minimum:0,"x-oapi-codegen-extra-tags":{json:"totalCount"}},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"}}}}}}}}},t=e;
|
|
2
2
|
export{t as default};
|
|
@@ -199,6 +199,12 @@ export interface components {
|
|
|
199
199
|
roles: string[];
|
|
200
200
|
/** @description Teams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams. */
|
|
201
201
|
teams: string[];
|
|
202
|
+
/**
|
|
203
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
204
|
+
* @default direct_membership
|
|
205
|
+
* @enum {string}
|
|
206
|
+
*/
|
|
207
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
202
208
|
/**
|
|
203
209
|
* @description Activation status of the invitation.
|
|
204
210
|
* @enum {string}
|
|
@@ -416,6 +422,12 @@ export interface components {
|
|
|
416
422
|
roles: string[];
|
|
417
423
|
/** @description Teams that the user will be added to when accepting the invitation. */
|
|
418
424
|
teams: string[];
|
|
425
|
+
/**
|
|
426
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
427
|
+
* @default direct_membership
|
|
428
|
+
* @enum {string}
|
|
429
|
+
*/
|
|
430
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
419
431
|
/**
|
|
420
432
|
* @description Activation status of the invitation.
|
|
421
433
|
* @enum {string}
|
|
@@ -427,6 +439,12 @@ export interface components {
|
|
|
427
439
|
* @enum {string}
|
|
428
440
|
*/
|
|
429
441
|
InvitationStatus: "enabled" | "disabled";
|
|
442
|
+
/**
|
|
443
|
+
* @description Outcome of accepting an invitation. direct_membership adds the accepting user to the inviting organization; child_organization creates a new child organization of the inviting organization for the accepting user.
|
|
444
|
+
* @default direct_membership
|
|
445
|
+
* @enum {string}
|
|
446
|
+
*/
|
|
447
|
+
InvitationAcceptanceOutcome: "direct_membership" | "child_organization";
|
|
430
448
|
/** @description Invitation entity schema. */
|
|
431
449
|
Invitation: {
|
|
432
450
|
/**
|
|
@@ -465,6 +483,12 @@ export interface components {
|
|
|
465
483
|
roles: string[];
|
|
466
484
|
/** @description Teams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams. */
|
|
467
485
|
teams: string[];
|
|
486
|
+
/**
|
|
487
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
488
|
+
* @default direct_membership
|
|
489
|
+
* @enum {string}
|
|
490
|
+
*/
|
|
491
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
468
492
|
/**
|
|
469
493
|
* @description Activation status of the invitation.
|
|
470
494
|
* @enum {string}
|
|
@@ -623,6 +647,12 @@ export interface operations {
|
|
|
623
647
|
roles: string[];
|
|
624
648
|
/** @description Teams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams. */
|
|
625
649
|
teams: string[];
|
|
650
|
+
/**
|
|
651
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
652
|
+
* @default direct_membership
|
|
653
|
+
* @enum {string}
|
|
654
|
+
*/
|
|
655
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
626
656
|
/**
|
|
627
657
|
* @description Activation status of the invitation.
|
|
628
658
|
* @enum {string}
|
|
@@ -731,6 +761,12 @@ export interface operations {
|
|
|
731
761
|
roles: string[];
|
|
732
762
|
/** @description Teams that the user will be added to when accepting the invitation. */
|
|
733
763
|
teams: string[];
|
|
764
|
+
/**
|
|
765
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
766
|
+
* @default direct_membership
|
|
767
|
+
* @enum {string}
|
|
768
|
+
*/
|
|
769
|
+
acceptanceOutcome?: "direct_membership" | "child_organization";
|
|
734
770
|
/**
|
|
735
771
|
* @description Activation status of the invitation.
|
|
736
772
|
* @enum {string}
|
|
@@ -783,6 +819,12 @@ export interface operations {
|
|
|
783
819
|
roles: string[];
|
|
784
820
|
/** @description Teams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams. */
|
|
785
821
|
teams: string[];
|
|
822
|
+
/**
|
|
823
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
824
|
+
* @default direct_membership
|
|
825
|
+
* @enum {string}
|
|
826
|
+
*/
|
|
827
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
786
828
|
/**
|
|
787
829
|
* @description Activation status of the invitation.
|
|
788
830
|
* @enum {string}
|
|
@@ -981,6 +1023,12 @@ export interface operations {
|
|
|
981
1023
|
roles: string[];
|
|
982
1024
|
/** @description Teams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams. */
|
|
983
1025
|
teams: string[];
|
|
1026
|
+
/**
|
|
1027
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
1028
|
+
* @default direct_membership
|
|
1029
|
+
* @enum {string}
|
|
1030
|
+
*/
|
|
1031
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
984
1032
|
/**
|
|
985
1033
|
* @description Activation status of the invitation.
|
|
986
1034
|
* @enum {string}
|
|
@@ -1078,6 +1126,12 @@ export interface operations {
|
|
|
1078
1126
|
roles: string[];
|
|
1079
1127
|
/** @description Teams that the user will be added to when accepting the invitation. */
|
|
1080
1128
|
teams: string[];
|
|
1129
|
+
/**
|
|
1130
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
1131
|
+
* @default direct_membership
|
|
1132
|
+
* @enum {string}
|
|
1133
|
+
*/
|
|
1134
|
+
acceptanceOutcome?: "direct_membership" | "child_organization";
|
|
1081
1135
|
/**
|
|
1082
1136
|
* @description Activation status of the invitation.
|
|
1083
1137
|
* @enum {string}
|
|
@@ -1130,6 +1184,12 @@ export interface operations {
|
|
|
1130
1184
|
roles: string[];
|
|
1131
1185
|
/** @description Teams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams. */
|
|
1132
1186
|
teams: string[];
|
|
1187
|
+
/**
|
|
1188
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
1189
|
+
* @default direct_membership
|
|
1190
|
+
* @enum {string}
|
|
1191
|
+
*/
|
|
1192
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
1133
1193
|
/**
|
|
1134
1194
|
* @description Activation status of the invitation.
|
|
1135
1195
|
* @enum {string}
|
|
@@ -1246,6 +1306,12 @@ export interface operations {
|
|
|
1246
1306
|
roles: string[];
|
|
1247
1307
|
/** @description Teams that the user will be added to when accepting the invitation. Empty means the invitation does not specify any teams. */
|
|
1248
1308
|
teams: string[];
|
|
1309
|
+
/**
|
|
1310
|
+
* @description Determines what accepting this invitation does for the accepting user, for new and existing accounts alike. direct_membership (the default, and the behavior of every invitation that omits this property) adds the user to the inviting organization. child_organization creates a new child organization for the user whose parent is always the inviting organization; the child is named "My Organization" and follows the standard organization-creation procedure (a My Team team, a My Workspace workspace, and the accepting user as its owner with organization administrator privileges). With child_organization the invitation's roles and teams apply in the child organization, not in the inviting organization.
|
|
1311
|
+
* @default direct_membership
|
|
1312
|
+
* @enum {string}
|
|
1313
|
+
*/
|
|
1314
|
+
acceptanceOutcome: "direct_membership" | "child_organization";
|
|
1249
1315
|
/**
|
|
1250
1316
|
* @description Activation status of the invitation.
|
|
1251
1317
|
* @enum {string}
|