From 346861bca35d73a63e70f8df6f9ef38014a750c7 Mon Sep 17 00:00:00 2001 From: MUzairS15 Date: Mon, 1 Jul 2024 13:55:44 +0000 Subject: [PATCH] Update schema Signed-off-by: l5io --- schemas/openapi.yml | 17662 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 16797 insertions(+), 865 deletions(-) diff --git a/schemas/openapi.yml b/schemas/openapi.yml index 538b9811c7..d3d0c45cea 100644 --- a/schemas/openapi.yml +++ b/schemas/openapi.yml @@ -72,7 +72,86 @@ paths: It will insert the application if not present else it will update the matching entry requestBody: - $ref: '#/components/requestBodies/mesheryApplicationRequestBody' + required: true + content: + application/json: + schema: + type: object + properties: + url: + type: string + x-go-type-skip-optional-pointer: true + path: + type: string + x-go-type-skip-optional-pointer: true + save: + type: boolean + application_data: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + application_file: + description: Application file + type: string + x-go-type-skip-optional-pointer: true + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: Source type (K8s manifest, Helm chart, Docker compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + source_type: + type: string + x-go-type-skip-optional-pointer: true responses: '200': description: Upserted application @@ -81,13 +160,86 @@ paths: schema: type: array items: - $ref: '#/components/schemas/mesheryApplication' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + application_file: + description: Application file + type: string + x-go-type-skip-optional-pointer: true + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: Source type (K8s manifest, Helm chart, Docker compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] get: @@ -97,21 +249,130 @@ paths: summary: Get Applications description: Get paginated applications parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Applications content: application/json: schema: - $ref: '#/components/schemas/mesheryApplicationPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + applications: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + application_file: + description: Application file + type: string + x-go-type-skip-optional-pointer: true + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: >- + Source type (K8s manifest, Helm chart, Docker + compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/applications/upload/{id}: @@ -122,24 +383,46 @@ paths: summary: Upsert application source content description: Upserts only application source content parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true requestBody: description: Body for upserting meshery application source content required: true content: text/plain: schema: - $ref: >- - #/components/schemas/mesheryApplication/properties/source_content + type: string + format: byte + description: Source content responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/applications/download/{id}: @@ -150,21 +433,39 @@ paths: summary: Get application source content description: Get application source content parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: application source content associated with ID content: text/plain: schema: - $ref: >- - #/components/schemas/mesheryApplication/properties/source_content + type: string + format: byte + description: Source content '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/applications/{id}: @@ -175,22 +476,104 @@ paths: summary: Get application by ID description: Get application by ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: application associated with ID content: application/json: schema: - $ref: '#/components/schemas/mesheryApplication' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + application_file: + description: Application file + type: string + x-go-type-skip-optional-pointer: true + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: Source type (K8s manifest, Helm chart, Docker compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] delete: @@ -200,22 +583,104 @@ paths: summary: Delete application by ID description: Delete application associated with ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Deleted application content: application/json: schema: - $ref: '#/components/schemas/mesheryApplication' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + application_file: + description: Application file + type: string + x-go-type-skip-optional-pointer: true + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: Source type (K8s manifest, Helm chart, Docker compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /capabilities: @@ -227,17 +692,171 @@ paths: summary: Capabilities description: Get available capabilities for logged in user parameters: - - $ref: '#/components/parameters/os' - - $ref: '#/components/parameters/playground' + - name: os + in: query + description: user's os + schema: + type: string + - name: playground + in: query + description: Is playground mode + schema: + type: string responses: '200': description: capabilities content: application/json: schema: - $ref: '#/components/schemas/capability' + properties: + provider_type: + description: Provider type + type: string + x-go-type-skip-optional-pointer: true + package_version: + description: Package version + type: string + x-go-type-skip-optional-pointer: true + package_url: + description: Package url + type: string + x-go-type-skip-optional-pointer: true + provider_name: + description: Provider name + type: string + x-go-type-skip-optional-pointer: true + provider_description: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + extensions: + properties: + navigator: + type: array + items: + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + icon: + description: Icon link + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + allowedTo: + type: object + user_prefs: + type: array + items: + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + graphql: + type: array + items: + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + path: + description: Path + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + account: + type: array + items: + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + capabilities: + properties: + feature: + description: Feature name + type: string + x-go-type-skip-optional-pointer: true + endpoint: + type: string + x-go-type-skip-optional-pointer: true + restrictedAccess: + properties: + isMesheryUIRestricted: + type: boolean + allowedComponents: + properties: + navigator: + type: object + header: + type: object '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: [] /{meshery-version}/capabilities: get: @@ -247,18 +866,177 @@ paths: summary: Capabilities By server version description: Get available capabilities for logged in user parameters: - - $ref: '#/components/parameters/mesheryVersion' - - $ref: '#/components/parameters/os' - - $ref: '#/components/parameters/playground' + - name: meshery-version + in: path + description: meshery version + schema: + type: string + required: true + - name: os + in: query + description: user's os + schema: + type: string + - name: playground + in: query + description: Is playground mode + schema: + type: string responses: '200': description: capabilities content: application/json: schema: - $ref: '#/components/schemas/capability' + properties: + provider_type: + description: Provider type + type: string + x-go-type-skip-optional-pointer: true + package_version: + description: Package version + type: string + x-go-type-skip-optional-pointer: true + package_url: + description: Package url + type: string + x-go-type-skip-optional-pointer: true + provider_name: + description: Provider name + type: string + x-go-type-skip-optional-pointer: true + provider_description: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + extensions: + properties: + navigator: + type: array + items: + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + icon: + description: Icon link + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + allowedTo: + type: object + user_prefs: + type: array + items: + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + graphql: + type: array + items: + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + path: + description: Path + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + account: + type: array + items: + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + capabilities: + properties: + feature: + description: Feature name + type: string + x-go-type-skip-optional-pointer: true + endpoint: + type: string + x-go-type-skip-optional-pointer: true + restrictedAccess: + properties: + isMesheryUIRestricted: + type: boolean + allowedComponents: + properties: + navigator: + type: object + header: + type: object '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: [] /api/catalog/requests/approve: post: @@ -268,16 +1046,146 @@ paths: summary: Approve Catalog Request description: Approve Catalog Request requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' + description: Body for publishing catalog + required: true + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + catalog_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It is + important to note that the level of support may vary + within each class, and you should exercise discretion + when using community-contributed content. Content + produced and fully supported by Meshery maintainers. + This represents the highest level of support and is + considered the most reliable. Content produced by + partners and verified by Meshery maintainers. While not + directly maintained by Meshery, it has undergone a + verification process to ensure quality and + compatibility. Content produced and supported by the + respective project or organization responsible for the + specific technology. This class offers a level of + support from the project maintainers themselves. Content + produced and shared by Meshery users. This includes a + wide range of content, such as performance profiles, + test results, filters, patterns, and applications. + Community content may have varying levels of support and + reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated by + components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to + be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow + depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots + of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type responses: '201': - $ref: '#/components/responses/201' + description: created + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '409': - $ref: '#/components/responses/409' + description: Publish request already exists + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/catalog/requests/deny: @@ -288,16 +1196,146 @@ paths: summary: Deny Catalog Request description: Deny Catalog Request requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' + description: Body for publishing catalog + required: true + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + catalog_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It is + important to note that the level of support may vary + within each class, and you should exercise discretion + when using community-contributed content. Content + produced and fully supported by Meshery maintainers. + This represents the highest level of support and is + considered the most reliable. Content produced by + partners and verified by Meshery maintainers. While not + directly maintained by Meshery, it has undergone a + verification process to ensure quality and + compatibility. Content produced and supported by the + respective project or organization responsible for the + specific technology. This class offers a level of + support from the project maintainers themselves. Content + produced and shared by Meshery users. This includes a + wide range of content, such as performance profiles, + test results, filters, patterns, and applications. + Community content may have varying levels of support and + reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated by + components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to + be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow + depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots + of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type responses: '201': - $ref: '#/components/responses/201' + description: created + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '409': - $ref: '#/components/responses/409' + description: Publish request already exists + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/catalog/requests: @@ -310,24 +1348,248 @@ paths: Get all catalog requests (approved, denied or pending) in a paginated manner parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/requestFilter' - responses: - '200': - description: Catalog requests - content: - application/json: - schema: - $ref: '#/components/schemas/catalogRequestsPage' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string + - name: filter + in: query + description: Filter for catalog requests + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + status: + type: array + items: + type: string + responses: + '200': + description: Catalog requests + content: + application/json: + schema: + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + signup_data: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + content_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-name: ID + x-go-type-skip-optional-pointer: true + content_name: + type: string + x-go-type-skip-optional-pointer: true + content_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + status: + enum: + - pending + - approved + - denied + description: >- + Catalog request status (pending / approved / + denied) + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has + been made available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its + support level. Content classes help you + understand the origin and expected support + level for each piece of content. It is + important to note that the level of support + may vary within each class, and you should + exercise discretion when using + community-contributed content. Content + produced and fully supported by Meshery + maintainers. This represents the highest + level of support and is considered the most + reliable. Content produced by partners and + verified by Meshery maintainers. While not + directly maintained by Meshery, it has + undergone a verification process to ensure + quality and compatibility. Content produced + and supported by the respective project or + organization responsible for the specific + technology. This class offers a level of + support from the project maintainers + themselves. Content produced and shared by + Meshery users. This includes a wide range of + content, such as performance profiles, test + results, filters, patterns, and + applications. Community content may have + varying levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this + catalog item. For designs, a list of one or + more models implicated by components within + the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known + behaviors to be aware of when using this + design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its + intended and unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or + operational flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light + mode snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + '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 + security: + - jwt: [] /api/catalog/content/{type}: get: tags: @@ -336,11 +1598,35 @@ paths: summary: Get Catalog Content description: Get catalog content by type parameters: - - $ref: '#/components/parameters/catalogContentType' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - in: path + required: true + name: type + description: Catalog content type + schema: + type: string + enum: + - pattern + - filter + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: catalog content @@ -359,7 +1645,210 @@ paths: patterns: type: array items: - $ref: '#/components/schemas/mesheryPattern' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which + the design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their + corresponding component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has + been made available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its + support level. Content classes help you + understand the origin and expected support + level for each piece of content. It is + important to note that the level of support + may vary within each class, and you should + exercise discretion when using + community-contributed content. Content + produced and fully supported by Meshery + maintainers. This represents the highest + level of support and is considered the most + reliable. Content produced by partners and + verified by Meshery maintainers. While not + directly maintained by Meshery, it has + undergone a verification process to ensure + quality and compatibility. Content produced + and supported by the respective project or + organization responsible for the specific + technology. This class offers a level of + support from the project maintainers + themselves. Content produced and shared by + Meshery users. This includes a wide range of + content, such as performance profiles, test + results, filters, patterns, and + applications. Community content may have + varying levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this + catalog item. For designs, a list of one or + more models implicated by components within + the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known + behaviors to be aware of when using this + design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its + intended and unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or + operational flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light + mode snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true - type: object properties: page: @@ -371,9 +1860,65 @@ paths: filters: type: array items: - $ref: '#/components/schemas/mesheryFilter' + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] post: @@ -386,18 +1931,156 @@ paths: (if called by ADMIN or CURATOR), otherwise it pushes the request to CatalogRequests Table parameters: - - $ref: '#/components/parameters/catalogContentType' + - in: path + required: true + name: type + description: Catalog content type + schema: + type: string + enum: + - pattern + - filter requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' + description: Body for publishing catalog + required: true + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + catalog_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It is + important to note that the level of support may vary + within each class, and you should exercise discretion + when using community-contributed content. Content + produced and fully supported by Meshery maintainers. + This represents the highest level of support and is + considered the most reliable. Content produced by + partners and verified by Meshery maintainers. While not + directly maintained by Meshery, it has undergone a + verification process to ensure quality and + compatibility. Content produced and supported by the + respective project or organization responsible for the + specific technology. This class offers a level of + support from the project maintainers themselves. Content + produced and shared by Meshery users. This includes a + wide range of content, such as performance profiles, + test results, filters, patterns, and applications. + Community content may have varying levels of support and + reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated by + components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to + be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow + depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots + of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '409': - $ref: '#/components/responses/409' + description: Publish request already exists + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] delete: @@ -410,18 +2093,156 @@ paths: content from website (if called by ADMIN or CURATOR), otherwise rejects the request parameters: - - $ref: '#/components/parameters/catalogContentType' + - in: path + required: true + name: type + description: Catalog content type + schema: + type: string + enum: + - pattern + - filter requestBody: - $ref: '#/components/requestBodies/mesheryCatalogRequest' + description: Body for publishing catalog + required: true + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + catalog_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It is + important to note that the level of support may vary + within each class, and you should exercise discretion + when using community-contributed content. Content + produced and fully supported by Meshery maintainers. + This represents the highest level of support and is + considered the most reliable. Content produced by + partners and verified by Meshery maintainers. While not + directly maintained by Meshery, it has undergone a + verification process to ensure quality and + compatibility. Content produced and supported by the + respective project or organization responsible for the + specific technology. This class offers a level of + support from the project maintainers themselves. Content + produced and shared by Meshery users. This includes a + wide range of content, such as performance profiles, + test results, filters, patterns, and applications. + Community content may have varying levels of support and + reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated by + components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to + be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow + depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots + of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '409': - $ref: '#/components/responses/409' + description: Publish request already exists + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /collaboration: @@ -443,18 +2264,133 @@ paths: summary: Register Connection description: Register with Meshery Cloud requestBody: - $ref: '#/components/requestBodies/connectionPayload' + content: + application/json: + schema: + type: object + properties: + kind: + description: Kind + type: string + x-go-type-skip-optional-pointer: true + type: + description: Connection type + type: string + x-go-type-skip-optional-pointer: true + sub_type: + description: Connection subtype + type: string + x-go-type-skip-optional-pointer: true + credential_secret: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true responses: '200': description: Inserted connection content: application/json: schema: - $ref: '#/components/schemas/connection' + properties: + id: + description: ID + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Connection Name + type: string + x-go-type-skip-optional-pointer: true + credential_id: + description: Credential 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-name: ID + x-go-type-skip-optional-pointer: true + type: + description: Connection Type + type: string + x-go-type-skip-optional-pointer: true + sub_type: + description: Connection Subtype + type: string + x-go-type-skip-optional-pointer: true + kind: + description: Connection Kind + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + status: + description: Connection Status + type: string + enum: + - discovered + - registered + - connected + - ignored + - maintenance + - disconnected + - deleted + - not found + x-go-type-skip-optional-pointer: true + user_id: + x-go-name: UserID + 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-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] get: @@ -464,21 +2400,148 @@ paths: summary: Get connections description: Get connections parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Paginated list of connections content: application/json: schema: - $ref: '#/components/schemas/connectionPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + connections: + type: array + items: + properties: + id: + description: ID + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Connection Name + type: string + x-go-type-skip-optional-pointer: true + credential_id: + description: Credential 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-name: ID + x-go-type-skip-optional-pointer: true + type: + description: Connection Type + type: string + x-go-type-skip-optional-pointer: true + sub_type: + description: Connection Subtype + type: string + x-go-type-skip-optional-pointer: true + kind: + description: Connection Kind + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + status: + description: Connection Status + type: string + enum: + - discovered + - registered + - connected + - ignored + - maintenance + - disconnected + - deleted + - not found + x-go-type-skip-optional-pointer: true + user_id: + x-go-name: UserID + 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-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/integrations/connections/{connectionId}: @@ -489,20 +2552,149 @@ paths: summary: Edit Connection by ID description: Edit registered connection using the connection ID parameters: - - $ref: '#/components/parameters/connectionId' + - name: connectionId + in: path + description: Connection ID + schema: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + required: true requestBody: - $ref: '#/components/requestBodies/connectionPayload' + content: + application/json: + schema: + type: object + properties: + kind: + description: Kind + type: string + x-go-type-skip-optional-pointer: true + type: + description: Connection type + type: string + x-go-type-skip-optional-pointer: true + sub_type: + description: Connection subtype + type: string + x-go-type-skip-optional-pointer: true + credential_secret: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true responses: '200': description: Edited connection content: application/json: schema: - $ref: '#/components/schemas/connection' + properties: + id: + description: ID + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Connection Name + type: string + x-go-type-skip-optional-pointer: true + credential_id: + description: Credential 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-name: ID + x-go-type-skip-optional-pointer: true + type: + description: Connection Type + type: string + x-go-type-skip-optional-pointer: true + sub_type: + description: Connection Subtype + type: string + x-go-type-skip-optional-pointer: true + kind: + description: Connection Kind + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + status: + description: Connection Status + type: string + enum: + - discovered + - registered + - connected + - ignored + - maintenance + - disconnected + - deleted + - not found + x-go-type-skip-optional-pointer: true + user_id: + x-go-name: UserID + 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-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/integrations/connections/status: @@ -518,11 +2710,30 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/connectionsStatusPage' + properties: + connections_status: + type: array + items: + properties: + status: + description: Connection status + type: string + x-go-type-skip-optional-pointer: true + count: + type: integer + description: Number of connections having the status '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/integrations/connections/{connectionKind}: @@ -533,11 +2744,33 @@ paths: summary: Get connections by kind description: Get connections by kind parameters: - - $ref: '#/components/parameters/connectionKind' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: connectionKind + in: path + description: 'Connection kind (eg: Meshery)' + required: true + schema: + type: string + x-go-type-skip-optional-pointer: true + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Connections by kind @@ -546,9 +2779,17 @@ paths: schema: type: object '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: [] delete: tags: @@ -557,36 +2798,167 @@ paths: summary: Delete connection description: Delete registered connection parameters: - - $ref: '#/components/parameters/connectionKind' + - name: connectionKind + in: path + description: 'Connection kind (eg: Meshery)' + required: true + schema: + type: string + x-go-type-skip-optional-pointer: true responses: '200': description: Deleted connection content: application/json: schema: - $ref: '#/components/schemas/connection' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/integrations/connections/{connectionKind}/{connectionId}: - get: - tags: - - integrations - operationId: GetConnectionsByKindAndConnectionID - summary: Get connections by kind and connectionID. - description: >- - Get connections by kind (kind is required because this API returns the + properties: + id: + description: ID + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Connection Name + type: string + x-go-type-skip-optional-pointer: true + credential_id: + description: Credential 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-name: ID + x-go-type-skip-optional-pointer: true + type: + description: Connection Type + type: string + x-go-type-skip-optional-pointer: true + sub_type: + description: Connection Subtype + type: string + x-go-type-skip-optional-pointer: true + kind: + description: Connection Kind + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + status: + description: Connection Status + type: string + enum: + - discovered + - registered + - connected + - ignored + - maintenance + - disconnected + - deleted + - not found + x-go-type-skip-optional-pointer: true + user_id: + x-go-name: UserID + 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-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + '401': + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string + '500': + description: Internal server error + content: + text/plain: + schema: + type: string + security: + - jwt: [] + /api/integrations/connections/{connectionKind}/{connectionId}: + get: + tags: + - integrations + operationId: GetConnectionsByKindAndConnectionID + summary: Get connections by kind and connectionID. + description: >- + Get connections by kind (kind is required because this API returns the results in non std format of a connection) parameters: - - $ref: '#/components/parameters/connectionKind' - - $ref: '#/components/parameters/connectionId' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: connectionKind + in: path + description: 'Connection kind (eg: Meshery)' + required: true + schema: + type: string + x-go-type-skip-optional-pointer: true + - name: connectionId + in: path + description: Connection ID + schema: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + required: true + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Connections by kind @@ -595,11 +2967,103 @@ paths: schema: type: object oneOf: - - $ref: '#/components/schemas/k8sContextPersistResponse' + - properties: + k8sContext: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + auth: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + cluster: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + server: + type: string + owner: + 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-name: ID + x-go-type-skip-optional-pointer: true + created_by: + 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-name: ID + x-go-type-skip-optional-pointer: true + meshery_instance_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-name: ID + x-go-type-skip-optional-pointer: true + kubernetes_server_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-name: ID + x-go-type-skip-optional-pointer: true + deployment_type: + type: string + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + inserted: + type: boolean '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/integrations/connections/meshery/{mesheryServerID}: @@ -613,14 +3077,40 @@ paths: connections from Meshery Server UI where UI is not aware of connection IDs. parameters: - - $ref: '#/components/parameters/serverId' + - name: mesheryServerID + in: path + description: Meshery server ID + schema: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + required: true responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/system/user/credentials: @@ -631,21 +3121,123 @@ paths: summary: Get user's credentials description: Get all user's credentials for logged in user parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: credentials content: application/json: schema: - $ref: '#/components/schemas/credentialsPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + credential: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + type: + type: string + secret: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] delete: @@ -655,14 +3247,31 @@ paths: summary: Delete user's credentials description: Delete user's credentials (tombstoned records) for logged in user parameters: - - $ref: '#/components/parameters/credentialId' + - name: credential_id + in: query + description: credential Id + schema: + type: string + required: true responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] post: @@ -672,14 +3281,87 @@ paths: summary: Create Credential description: Create new credentials for logged in user requestBody: - $ref: '#/components/requestBodies/credentialBody' + description: Body for user credential + required: true + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + type: + type: string + secret: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true responses: '201': - $ref: '#/components/responses/201' + description: created + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] put: @@ -689,14 +3371,87 @@ paths: summary: Update credential description: Update credentials for logged in user requestBody: - $ref: '#/components/requestBodies/credentialBody' + description: Body for user credential + required: true + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + type: + type: string + secret: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/events: @@ -707,20 +3462,42 @@ paths: summary: Get Events Aggregate description: Get Events Aggreate Count parameters: - - $ref: '#/components/parameters/cumulative' + - name: cumulative + in: query + description: Cumulative events + schema: + type: string responses: '200': description: Events Aggregate Count content: application/json: schema: - $ref: '#/components/schemas/eventsAggregate' + properties: + audit: + type: integer + description: Number of audit events + summary: + type: integer + description: Number of summary events '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/events/date: @@ -731,20 +3508,56 @@ paths: summary: Events by Date description: Get Events by date parameters: - - $ref: '#/components/parameters/cumulative' + - name: cumulative + in: query + description: Cumulative events + schema: + type: string responses: '200': description: Events by date content: application/json: schema: - $ref: '#/components/schemas/eventTrackerGroupedArray' + type: array + items: + properties: + count: + type: integer + event_type: + type: string + x-go-type-skip-optional-pointer: true + dt: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + week: + type: string + x-go-type-skip-optional-pointer: true + month: + type: string + x-go-type-skip-optional-pointer: true + year: + type: string + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/events/week: @@ -755,20 +3568,56 @@ paths: summary: Events by Week description: Get Events by week parameters: - - $ref: '#/components/parameters/cumulative' + - name: cumulative + in: query + description: Cumulative events + schema: + type: string responses: '200': description: Events by week content: application/json: schema: - $ref: '#/components/schemas/eventTrackerGroupedArray' + type: array + items: + properties: + count: + type: integer + event_type: + type: string + x-go-type-skip-optional-pointer: true + dt: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + week: + type: string + x-go-type-skip-optional-pointer: true + month: + type: string + x-go-type-skip-optional-pointer: true + year: + type: string + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/events/month: @@ -779,20 +3628,56 @@ paths: summary: Events by Month description: Get Events by month parameters: - - $ref: '#/components/parameters/cumulative' + - name: cumulative + in: query + description: Cumulative events + schema: + type: string responses: '200': description: Events by month content: application/json: schema: - $ref: '#/components/schemas/eventTrackerGroupedArray' + type: array + items: + properties: + count: + type: integer + event_type: + type: string + x-go-type-skip-optional-pointer: true + dt: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + week: + type: string + x-go-type-skip-optional-pointer: true + month: + type: string + x-go-type-skip-optional-pointer: true + year: + type: string + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/events/list: @@ -803,27 +3688,270 @@ paths: summary: All Events description: Get All events parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/eventsFilter' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string + - name: filter + in: query + description: Filter for retrieving events + schema: + type: object + properties: + provider: + type: array + items: + type: string + event_type: + type: array + items: + type: string responses: '200': description: Events list content: application/json: schema: - $ref: '#/components/schemas/eventsPage' - '401': - $ref: '#/components/responses/401' - '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - /api/events/summary: + allOf: + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + data: + type: array + items: + properties: + event: + description: Defines model for event_trackers + properties: + id: + description: | + UUID of the event. + 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-name: ID + x-go-type-skip-optional-pointer: true + user_id: + description: > + UUID of the user that initiated the event. + In most cases this would be present, but not + always. + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: user_id + json: user_id + x-go-name: UserID + x-go-type-skip-optional-pointer: true + system_id: + description: > + The system from which the request is + sourced. In the case of Meshery Server, + + the ID is meshery_instance_id of Meshery + Server (which can be found in the metadata + of`Connections` table). + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: system_id + x-go-name: SystemID + x-go-type-skip-optional-pointer: true + operation_id: + description: > + Each Event will have a OperationID. This + field is never NULL, which is to say an + operation can result in series of events, + for eg: Different stages of Pattern Engine / + activities of Workflow engine. Each + operation (and sub-operation) will have a + different operation 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: operation_id + x-go-name: OperationID + x-go-type-skip-optional-pointer: true + category: + description: > + Resource name on which the operation is + invoked. + type: string + example: pattern + x-oapi-codegen-extra-tags: + db: category + action: + description: | + Action taken on the resource. + type: string + example: deployed + x-oapi-codegen-extra-tags: + db: action + status: + description: | + Status for the event. + type: string + enum: + - read + - unread + x-oapi-codegen-extra-tags: + db: status + acted_upon: + type: string + format: uuid + description: > + UUID of the entity on which the event was + performed. + example: 110020-123230-434231-000213 + x-go-type: uuid.UUID + x-oapi-codegen-extra-tags: + db: acted_upon + description: + description: | + A summary/receipt of event that occured. + type: string + example: >- + “Prometheus” pattern deployed in K8s ctx + “Meshery Cloud”. + x-oapi-codegen-extra-tags: + db: description + severity: + description: | + A set of seven standard event levels. + type: string + enum: + - emergency + - critical + - alert + - error + - warning + - debug + - informational + - success + example: info + x-oapi-codegen-extra-tags: + db: severity + metadata: + description: > + Contains meaningful information, specific to + the type of event. + + Structure of metadata can be different for + different events. + type: object + x-go-type: '[]byte' + x-oapi-codegen-extra-tags: + db: metadata + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + required: + - id + - system_id + - operation_id + - category + - action + - status + - acted_upon + - description + - severity + - metadata + - created_at + - updated_at + events_count: + type: integer + x-oapi-codegen-extra-tags: + db: events_count + required: + - event + - events_count + '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 + security: + - jwt: [] + /api/events/summary: get: tags: - events @@ -831,23 +3959,121 @@ paths: summary: Events Summary description: Get Events summary for a user parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Events Summary content: application/json: schema: - $ref: '#/components/schemas/eventSummaryPage' + allOf: + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + data: + type: array + items: + properties: + user_id: + type: string + description: user's email or username + provider: + type: string + email: + type: string + first_name: + type: string + description: First Name + last_name: + type: string + description: Last Name + activity_count: + type: integer + login_count: + type: integer + signup_count: + type: integer + perf_results_count: + type: integer + smi_results_count: + type: integer + meshery_apps_count: + type: integer + meshery_patterns_count: + type: integer + meshery_filters_count: + type: integer + last_login_time: + type: string + format: data-time + x-go-type: time.Time + required: + - user_id + - provider + - email + - first_name + - last_name + - activity_count + - login_count + - signup_count + - perf_results_count + - smi_results_count + - meshery_apps_count + - meshery_patterns_count + - meshery_filters_count + - last_login_time '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/filters: @@ -860,7 +4086,74 @@ paths: It will insert the filter if not present else it will update the matching entry requestBody: - $ref: '#/components/requestBodies/mesheryFilterRequestBody' + required: true + content: + application/json: + schema: + type: object + properties: + url: + type: string + x-go-type-skip-optional-pointer: true + path: + type: string + x-go-type-skip-optional-pointer: true + save: + type: boolean + filter_data: + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true responses: '200': description: Upserted filter @@ -869,13 +4162,77 @@ paths: schema: type: array items: - $ref: '#/components/schemas/mesheryFilter' + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] get: @@ -885,21 +4242,119 @@ paths: summary: Get Filters description: Get paginated filters parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Filters content: application/json: schema: - $ref: '#/components/schemas/mesheryFilterPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + filters: + type: array + items: + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/filters/file/{id}: @@ -910,22 +4365,45 @@ paths: summary: Filter file description: Get the filter associated with the given filter id without any metadata parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Filter file content: application/json: schema: - $ref: '#/components/schemas/mesheryFilter/properties/filter_file' + type: string + format: byte + description: Filter file '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/filters/{id}: @@ -936,22 +4414,95 @@ paths: summary: Get filter by ID description: Get filter by ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Filter associated with ID content: application/json: schema: - $ref: '#/components/schemas/mesheryFilter' + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] delete: @@ -961,22 +4512,95 @@ paths: summary: Delete filter by ID description: Delete filter associated with ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Deleted filter content: application/json: schema: - $ref: '#/components/schemas/mesheryFilter' + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/filters/clone/{id}: @@ -987,7 +4611,12 @@ paths: summary: Clone filter description: Clone filter associated with ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true requestBody: description: Body for cloning design required: true @@ -1001,13 +4630,29 @@ paths: - name responses: '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/integrations/meshmodels/models: @@ -1018,20 +4663,129 @@ paths: summary: Get all models description: Get models by name parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/status' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string + - name: status + in: query + description: Get models based on status, e.g 'ignored', 'registered' + schema: + type: string responses: '200': description: Models content: application/json: schema: - $ref: '#/components/schemas/meshmodelModelsPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + models: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + version: + type: string + x-go-type-skip-optional-pointer: true + display_name: + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + category_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-name: ID + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: [] /api/integrations/meshmodels/categories: get: @@ -1041,20 +4795,105 @@ paths: summary: Get all categories description: Get models by technology category parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Categories content: application/json: schema: - $ref: '#/components/schemas/meshmodelCategoriesPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + categories: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true '500': - $ref: '#/components/responses/500' - security: [] + description: Internal server error + content: + text/plain: + schema: + type: string + security: [] /api/content/patterns/resource: post: tags: @@ -1065,18 +4904,127 @@ paths: It will insert the pattern resource if not present else it will update the matching entry requestBody: - $ref: '#/components/requestBodies/mesheryPatternResource' + description: Body for upserting meshery pattern resource + required: true + content: + application/json: + schema: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Name + type: string + x-go-type-skip-optional-pointer: true + namepace: + description: Namespace + type: string + x-go-type-skip-optional-pointer: true + type: + description: Type + type: string + x-go-type-skip-optional-pointer: true + oam_type: + description: OAM type + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true responses: '200': description: Meshery pattern resource content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResource' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Name + type: string + x-go-type-skip-optional-pointer: true + namepace: + description: Namespace + type: string + x-go-type-skip-optional-pointer: true + type: + description: Type + type: string + x-go-type-skip-optional-pointer: true + oam_type: + description: OAM type + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] get: @@ -1086,26 +5034,135 @@ paths: summary: Get Pattern resources description: Get paginated pattern resources parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/namespace' - - $ref: '#/components/parameters/type' - - $ref: '#/components/parameters/oamType' - - $ref: '#/components/parameters/name' - description: Name + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string + - name: namespace + in: query + description: Namespace + schema: + type: string + - name: type + in: query + description: Type + schema: + type: string + - name: oamType + in: query + description: OAM type + schema: + type: string + - description: Name + name: name + in: query + schema: + type: string responses: '200': description: Meshery pattern resources content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResourcePage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + resources: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Name + type: string + x-go-type-skip-optional-pointer: true + namepace: + description: Namespace + type: string + x-go-type-skip-optional-pointer: true + type: + description: Type + type: string + x-go-type-skip-optional-pointer: true + oam_type: + description: OAM type + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/patterns/resource/{id}: @@ -1116,22 +5173,91 @@ paths: summary: Pattern Resource by ID description: Get Pattern Resource By ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Meshery pattern resource associated with id content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResource' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Name + type: string + x-go-type-skip-optional-pointer: true + namepace: + description: Namespace + type: string + x-go-type-skip-optional-pointer: true + type: + description: Type + type: string + x-go-type-skip-optional-pointer: true + oam_type: + description: OAM type + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] delete: @@ -1141,22 +5267,91 @@ paths: summary: Delete pattern resource description: Delete pattern resource associated with id parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Deleted meshery pattern resource associated with id content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResource' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Name + type: string + x-go-type-skip-optional-pointer: true + namepace: + description: Namespace + type: string + x-go-type-skip-optional-pointer: true + type: + description: Type + type: string + x-go-type-skip-optional-pointer: true + oam_type: + description: OAM type + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/patterns: @@ -1169,7 +5364,220 @@ paths: It will insert the pattern if not present else it will update the matching entry requestBody: - $ref: '#/components/requestBodies/mesheryPatternRequestBody' + description: Body for upserting meshery pattern + required: true + content: + application/json: + schema: + type: object + properties: + url: + type: string + x-go-type-skip-optional-pointer: true + path: + type: string + x-go-type-skip-optional-pointer: true + save: + type: boolean + pattern_data: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the + design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding + component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been + made available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by + Meshery, it has undergone a verification process to + ensure quality and compatibility. Content produced + and supported by the respective project or + organization responsible for the specific + technology. This class offers a level of support + from the project maintainers themselves. Content + produced and shared by Meshery users. This includes + a wide range of content, such as performance + profiles, test results, filters, patterns, and + applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog + item. For designs, a list of one or more models + implicated by components within the design. For + models, this is self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known + behaviors to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true responses: '200': description: Upserted pattern @@ -1178,13 +5586,222 @@ paths: schema: type: array items: - $ref: '#/components/schemas/mesheryPattern' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the + design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding + component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been + made available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by + Meshery, it has undergone a verification process to + ensure quality and compatibility. Content produced + and supported by the respective project or + organization responsible for the specific + technology. This class offers a level of support + from the project maintainers themselves. Content + produced and shared by Meshery users. This includes + a wide range of content, such as performance + profiles, test results, filters, patterns, and + applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog + item. For designs, a list of one or more models + implicated by components within the design. For + models, this is self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known + behaviors to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] get: @@ -1194,21 +5811,270 @@ paths: summary: Get Patterns description: Get paginated patterns parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Patterns content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + patterns: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which + the design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their + corresponding component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has + been made available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its + support level. Content classes help you + understand the origin and expected support + level for each piece of content. It is + important to note that the level of support + may vary within each class, and you should + exercise discretion when using + community-contributed content. Content + produced and fully supported by Meshery + maintainers. This represents the highest + level of support and is considered the most + reliable. Content produced by partners and + verified by Meshery maintainers. While not + directly maintained by Meshery, it has + undergone a verification process to ensure + quality and compatibility. Content produced + and supported by the respective project or + organization responsible for the specific + technology. This class offers a level of + support from the project maintainers + themselves. Content produced and shared by + Meshery users. This includes a wide range of + content, such as performance profiles, test + results, filters, patterns, and + applications. Community content may have + varying levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this + catalog item. For designs, a list of one or + more models implicated by components within + the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known + behaviors to be aware of when using this + design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its + intended and unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or + operational flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light + mode snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] delete: @@ -1218,20 +6084,253 @@ paths: summary: Delete patterns description: Delete patterns with the provided ids requestBody: - $ref: '#/components/requestBodies/mesheryPatternDeleteRequestBody' + description: Body for deleting meshery pattern + required: true + content: + application/json: + schema: + type: object + properties: + patterns: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Pattern name + type: string + x-go-type-skip-optional-pointer: true responses: '200': description: Deleted pattern content: application/json: schema: - $ref: '#/components/schemas/mesheryPattern' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the + design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding + component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure + quality and compatibility. Content produced and + supported by the respective project or organization + responsible for the specific technology. This class + offers a level of support from the project maintainers + themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, + and applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated + by components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors + to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/patterns/{id}: @@ -1242,24 +6341,241 @@ paths: summary: Get pattern by ID description: Get pattern by ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Pattern associated with ID content: application/json: schema: - $ref: '#/components/schemas/mesheryPattern' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the + design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding + component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure + quality and compatibility. Content produced and + supported by the respective project or organization + responsible for the specific technology. This class + offers a level of support from the project maintainers + themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, + and applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated + by components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors + to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] + description: Result not found + content: + text/plain: + schema: + type: string + '500': + description: Internal server error + content: + text/plain: + schema: + type: string + security: + - jwt: [] delete: tags: - patterns @@ -1267,22 +6583,239 @@ paths: summary: Delete pattern by ID description: Delete pattern associated with ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Deleted pattern content: application/json: schema: - $ref: '#/components/schemas/mesheryPattern' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the + design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding + component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure + quality and compatibility. Content produced and + supported by the respective project or organization + responsible for the specific technology. This class + offers a level of support from the project maintainers + themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, + and applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated + by components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors + to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/patterns/clone/{id}: @@ -1293,7 +6826,12 @@ paths: summary: Clone pattern description: Clone pattern associated with ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true requestBody: description: Body for cloning design required: true @@ -1307,13 +6845,29 @@ paths: - name responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/content/design/share: @@ -1324,12 +6878,53 @@ paths: summary: Design Share description: Share design with others requestBody: - $ref: '#/components/requestBodies/designShare' + description: Body for sharing design + required: true + content: + application/json: + schema: + properties: + emails: + type: array + items: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + content_type: + type: string + share: + type: boolean + required: + - emails + - id + - content_type + - share responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '403': description: Only owner have access to changing sharing mode content: @@ -1337,7 +6932,11 @@ paths: schema: type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /system/roles: @@ -1357,9 +6956,17 @@ paths: items: type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] post: @@ -1374,14 +6981,41 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/roleHolderRequest' + type: object + properties: + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + required: + - role_names + - email responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /system/roles/edit: @@ -1397,16 +7031,112 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/role' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /system/roles/edit/bulk: @@ -1424,16 +7154,112 @@ paths: schema: type: array items: - $ref: '#/components/schemas/role' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at responses: '201': - $ref: '#/components/responses/201' + description: created + content: + text/plain: + schema: + type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /system/roles/{id}: @@ -1444,8 +7270,12 @@ paths: summary: Delete Role description: Edit roles of user in bulk parameters: - - $ref: '#/components/parameters/id' - required: true + - required: true + name: id + in: path + description: Unique identifier + schema: + type: string responses: '201': description: Deleted roles @@ -1454,11 +7284,99 @@ paths: schema: type: array items: - $ref: '#/components/schemas/role' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/performance/smp/profiles: @@ -1469,19 +7387,129 @@ paths: summary: Performance Profiles description: Get Performance Profiles for SMP Dashboard parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Get Performance Profiles with pagination content: application/json: schema: - $ref: '#/components/schemas/performanceProfilePage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + profiles: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + schedule: + 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-name: ID + x-go-type-skip-optional-pointer: true + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: [] /api/performance/smp/profiles/{id}/results: get: @@ -1491,20 +7519,123 @@ paths: summary: Performance Profiles Results by ID description: Get Performance Profiles results by ID for SMP Dashboard parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Get Performance Profiles Results with pagination content: application/json: schema: - $ref: '#/components/schemas/mesheryResultPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + results: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + test_start_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + mesh: + type: string + runner_results: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + server_metrics: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + server_board_config: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + performance_profile: + 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-name: ID + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string '502': description: Invalid path parameter "id" content: @@ -1527,18 +7658,162 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/performanceProfile' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + schedule: + 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-name: ID + x-go-type-skip-optional-pointer: true + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true responses: '201': description: updated performance profile content: application/json: schema: - $ref: '#/components/schemas/performanceProfile' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + schedule: + 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-name: ID + x-go-type-skip-optional-pointer: true + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + '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 security: - jwt: [] get: @@ -1548,21 +7823,135 @@ paths: summary: Get Performance Profiles description: Get performance profiles parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Performance Profiles content: application/json: schema: - $ref: '#/components/schemas/performanceProfilePage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + profiles: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + schedule: + 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-name: ID + x-go-type-skip-optional-pointer: true + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/performance/profiles/{id}: @@ -1573,20 +7962,105 @@ paths: summary: Performance Profile by Id description: Get Performance Profile by ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Performance Profile for provided performance profile id content: application/json: schema: - $ref: '#/components/schemas/performanceProfile' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + schedule: + 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-name: ID + x-go-type-skip-optional-pointer: true + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] delete: @@ -1596,20 +8070,105 @@ paths: summary: Delete Performance Profiles description: Delete performance profiles by ID parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Deleted Performance Profile content: application/json: schema: - $ref: '#/components/schemas/performanceProfile' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + schedule: + 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-name: ID + x-go-type-skip-optional-pointer: true + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '404': - $ref: '#/components/responses/404' + description: Result not found + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/performance/profiles/{id}/results: @@ -1620,22 +8179,129 @@ paths: summary: Performance Profiles result description: Get paginated Performance Profiles result parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: Performance Profile results content: application/json: schema: - $ref: '#/components/schemas/mesheryResultPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + results: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + test_start_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + mesh: + type: string + runner_results: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + server_metrics: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + server_board_config: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + performance_profile: + 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-name: ID + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] post: @@ -1645,13 +8311,74 @@ paths: summary: Add performance profiles result description: Add performance profile result in given performance profile id parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true requestBody: description: Body for adding perfor mance profile result content: application/json: schema: - $ref: '#/components/schemas/performanceResult' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + test_start_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + mesh: + type: string + runner_results: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + server_metrics: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + server_board_config: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + performance_profile: + 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-name: ID + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true responses: '201': description: Performance Profile results @@ -1663,9 +8390,17 @@ paths: type: string format: uuid '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/performance/profiles/{id}/results/{resultID}: @@ -1678,21 +8413,99 @@ paths: Get the performance test result associated with the given profile id and with the given test id parameters: - - $ref: '#/components/parameters/id' - - $ref: '#/components/parameters/resultID' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true + - name: resultID + in: path + description: Performance Result Id + schema: + type: string + required: true responses: '200': description: Performance Profile results content: application/json: schema: - $ref: '#/components/schemas/performanceResult' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + test_start_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + mesh: + type: string + runner_results: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + server_metrics: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + server_board_config: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + performance_profile: + 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-name: ID + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /system/user/tokens: @@ -1703,22 +8516,120 @@ paths: summary: Get Tokens description: Get tokens associated with logged in user parameters: - - $ref: '#/components/parameters/isOAuth' - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' + - name: isOAuth + in: query + description: To get OAuth tokens as well + schema: + type: string + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string responses: '200': description: user tokens content: application/json: schema: - $ref: '#/components/schemas/tokenPage' + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + tokens: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + access_token: + type: string + x-go-type-skip-optional-pointer: true + refresh_token: + type: string + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + purpose: + type: string + x-go-type-skip-optional-pointer: true + is_oauth: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] post: @@ -1730,8 +8641,16 @@ paths: Generates infinite token (i.e. tokens that do not expire) for the logged in user. parameters: - - $ref: '#/components/parameters/name' - - $ref: '#/components/parameters/purpose' + - name: name + in: query + description: Name of the resource + schema: + type: string + - name: purpose + in: query + description: Purpose for which token is generated + schema: + type: string responses: '200': description: generated token @@ -1740,14 +8659,26 @@ paths: schema: type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - delete: + description: Internal server error + content: + text/plain: + schema: + type: string + security: + - jwt: [] + delete: tags: - user tokens operationId: DeleteUserTokens @@ -1758,16 +8689,35 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true responses: '200': - $ref: '#/components/responses/200' + description: ok + content: + text/plain: + schema: + type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /system/token: @@ -1778,8 +8728,18 @@ paths: summary: Infinite token description: Get Infinite Token parameters: - - $ref: '#/components/parameters/userId' - - $ref: '#/components/parameters/provider' + - name: user_id + in: path + description: User's user_id + schema: + type: string + required: true + - name: provider + in: query + description: Remote provider + schema: + type: string + required: true responses: '200': description: generated token @@ -1788,11 +8748,23 @@ paths: schema: type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users/invite: @@ -1803,15 +8775,48 @@ paths: summary: User Invite description: Send invitation request to users requestBody: - $ref: '#/components/requestBodies/userInvite' + description: Body for user invite request + required: true + content: + application/json: + schema: + properties: + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + required: + - first_name + - last_name + - email responses: '200': - $ref: '#/components/responses/200' description: Invitation sent + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users/preferences: @@ -1827,15 +8832,29 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true responses: '201': - $ref: '#/components/responses/201' description: Preferences updated + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users/keys: @@ -1851,11 +8870,72 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/userKeys' + properties: + keys: + type: array + items: + properties: + ID: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + subcategory: + type: string + x-go-type-skip-optional-pointer: true + function: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + description: SQL null Timestamp to handle null values of time. + x-go-type: sql.NullTime + type: string + x-go-type-skip-optional-pointer: true + category: + type: string + x-go-type-skip-optional-pointer: true + description: + type: string + x-go-type-skip-optional-pointer: true + owner: + 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-name: ID + x-go-type-skip-optional-pointer: true + total_count: + type: integer '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/user/{user_id}: @@ -1866,18 +8946,102 @@ paths: summary: Get User by ID description: Get specific user by user id parameters: - - $ref: '#/components/parameters/userId' + - name: user_id + in: path + description: User's user_id + schema: + type: string + required: true responses: '200': description: Returns user with given user_id content: application/json: schema: - $ref: '#/components/schemas/user' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + bio: + type: string + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + accepted_terms_at: + type: string + x-go-type-skip-optional-pointer: true + first_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - provider + - email + - first_name + - last_name + - status + - created_at + - updated_at + - last_login_time + - deleted_at '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users/{delete_on}: @@ -1888,18 +9052,75 @@ paths: summary: Delete users description: Delete users based on delete_for parameter parameters: - - $ref: '#/components/parameters/deleteOn' + - in: path + required: true + name: delete_on + description: Defines on whom the delete operation is to be performed + schema: + type: string + enum: + - self + - bulk requestBody: - $ref: '#/components/requestBodies/deleteUsers' + description: Body for delete of user accounts + required: true + content: + application/json: + schema: + oneOf: + - type: object + properties: + user_ids: + 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-name: ID + x-go-type-skip-optional-pointer: true + user_emails: + type: array + items: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + required: + - user_ids + - user_emails + - description: Body for empty request + type: object + properties: {} + x-go-type-skip-optional-pointer: true responses: '201': - $ref: '#/components/responses/201' + description: created + content: + text/plain: + schema: + type: string '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/system/delete/user/{user_id}: @@ -1910,14 +9131,31 @@ paths: summary: Delete account by ID description: Delete account by ID parameters: - - $ref: '#/components/parameters/userId' + - name: user_id + in: path + description: User's user_id + schema: + type: string + required: true responses: '201': - $ref: '#/components/responses/201' + description: created + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users: @@ -1928,11 +9166,31 @@ paths: summary: Get All users description: Get All users parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/filter' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string + - name: filter + in: query + description: Get filtered reponses + schema: + type: string responses: '200': description: Get all user with pagination @@ -1940,14 +9198,243 @@ paths: application/json: schema: anyOf: - - $ref: '#/components/schemas/usersPageForAdmin' - - $ref: '#/components/schemas/teamMembersPage' + - allOf: + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + data: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at + - allOf: + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + data: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + joined_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - joined_at + - updated_at + - last_login_time + - deleted_at '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/users: @@ -1958,24 +9445,136 @@ paths: summary: Get All users description: Get All users parameters: - - $ref: '#/components/parameters/page' - - $ref: '#/components/parameters/page_size' - - $ref: '#/components/parameters/search' - - $ref: '#/components/parameters/order' - - $ref: '#/components/parameters/filter' + - name: page + in: query + description: Get reponses by page + schema: + type: string + - name: page_size + in: query + description: Get reponses by pageSize + schema: + type: string + - name: search + in: query + description: Get responses that match search param value + schema: + type: string + - name: order + in: query + description: Get ordered responses + schema: + type: string + - name: filter + in: query + description: Get filtered reponses + schema: + type: string responses: '200': description: Get all user with pagination content: application/json: schema: - $ref: '#/components/schemas/usersPageForNonAdmin' + allOf: + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + data: + type: array + items: + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users/profile/{id}: @@ -1986,18 +9585,102 @@ paths: summary: Get user profile by Id description: Get user profile of given user Id parameters: - - $ref: '#/components/parameters/id' + - name: id + in: path + description: Unique identifier + schema: + type: string + required: true responses: '200': description: Returns user with given id content: application/json: schema: - $ref: '#/components/schemas/user' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + bio: + type: string + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + accepted_terms_at: + type: string + x-go-type-skip-optional-pointer: true + first_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - provider + - email + - first_name + - last_name + - status + - created_at + - updated_at + - last_login_time + - deleted_at '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users/profile: @@ -2013,28 +9696,195 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/user' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' - security: - - jwt: [] - put: - tags: - - users - operationId: UpdateProfile - summary: Update Profile - description: Update user profile data (also updates kratos identity) - requestBody: - $ref: '#/components/requestBodies/user' - responses: - '201': - $ref: '#/components/responses/201' - '401': - $ref: '#/components/responses/401' - '500': - $ref: '#/components/responses/500' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + bio: + type: string + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + accepted_terms_at: + type: string + x-go-type-skip-optional-pointer: true + first_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - provider + - email + - first_name + - last_name + - status + - created_at + - updated_at + - last_login_time + - deleted_at + '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 + security: + - jwt: [] + put: + tags: + - users + operationId: UpdateProfile + summary: Update Profile + description: Update user profile data (also updates kratos identity) + requestBody: + description: Body for upserting user + required: true + content: + application/json: + schema: + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + bio: + type: string + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + accepted_terms_at: + type: string + x-go-type-skip-optional-pointer: true + first_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - provider + - email + - first_name + - last_name + - status + - created_at + - updated_at + - last_login_time + - deleted_at + responses: + '201': + description: created + 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 security: - jwt: [] /api/identity/users/profile/details: @@ -2050,11 +9900,25 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/accountOverview' + properties: + k8s_count: + type: integer + app_count: + type: integer + pattern_count: + type: integer '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/users/{user_id}/profile/activity: @@ -2077,9 +9941,184 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/recentActivityPage' + properties: + recent_activity: + type: array + items: + description: Defines model for event_trackers + properties: + id: + description: | + UUID of the event. + 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-name: ID + x-go-type-skip-optional-pointer: true + user_id: + description: > + UUID of the user that initiated the event. In most + cases this would be present, but not always. + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: user_id + json: user_id + x-go-name: UserID + x-go-type-skip-optional-pointer: true + system_id: + description: > + The system from which the request is sourced. In the + case of Meshery Server, + + the ID is meshery_instance_id of Meshery Server + (which can be found in the metadata of`Connections` + table). + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: system_id + x-go-name: SystemID + x-go-type-skip-optional-pointer: true + operation_id: + description: > + Each Event will have a OperationID. This field is + never NULL, which is to say an operation can result + in series of events, for eg: Different stages of + Pattern Engine / activities of Workflow engine. Each + operation (and sub-operation) will have a different + operation 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: operation_id + x-go-name: OperationID + x-go-type-skip-optional-pointer: true + category: + description: | + Resource name on which the operation is invoked. + type: string + example: pattern + x-oapi-codegen-extra-tags: + db: category + action: + description: | + Action taken on the resource. + type: string + example: deployed + x-oapi-codegen-extra-tags: + db: action + status: + description: | + Status for the event. + type: string + enum: + - read + - unread + x-oapi-codegen-extra-tags: + db: status + acted_upon: + type: string + format: uuid + description: | + UUID of the entity on which the event was performed. + example: 110020-123230-434231-000213 + x-go-type: uuid.UUID + x-oapi-codegen-extra-tags: + db: acted_upon + description: + description: | + A summary/receipt of event that occured. + type: string + example: >- + “Prometheus” pattern deployed in K8s ctx “Meshery + Cloud”. + x-oapi-codegen-extra-tags: + db: description + severity: + description: | + A set of seven standard event levels. + type: string + enum: + - emergency + - critical + - alert + - error + - warning + - debug + - informational + - success + example: info + x-oapi-codegen-extra-tags: + db: severity + metadata: + description: > + Contains meaningful information, specific to the + type of event. + + Structure of metadata can be different for different + events. + type: object + x-go-type: '[]byte' + x-oapi-codegen-extra-tags: + db: metadata + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + required: + - id + - system_id + - operation_id + - category + - action + - status + - acted_upon + - description + - severity + - metadata + - created_at + - updated_at '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: [] /api/identity/users/online: get: @@ -2096,11 +10135,43 @@ paths: schema: type: array items: - $ref: '#/components/schemas/recentUsers' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] /api/identity/badges: @@ -2116,13 +10187,68 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/badges' + properties: + badges: + type: object + additionalProperties: + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + description: + type: string + x-go-type-skip-optional-pointer: true + label: + type: string + x-go-type-skip-optional-pointer: true + svg_location: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + description: SQL null Timestamp to handle null values of time. + x-go-type: sql.NullTime + type: string + x-go-type-skip-optional-pointer: true + total_count: + type: integer '400': - $ref: '#/components/responses/400' + description: Invalid request body or request param + content: + text/plain: + schema: + type: string '401': - $ref: '#/components/responses/401' + description: Expired JWT token used or insufficient privilege + content: + text/plain: + schema: + type: string '500': - $ref: '#/components/responses/500' + description: Internal server error + content: + text/plain: + schema: + type: string security: - jwt: [] components: @@ -2135,19 +10261,43 @@ components: mesheryApplication: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true application_file: - $ref: '#/components/schemas/text' description: Application file + type: string + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true location: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true visibility: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true source_type: enum: - k8s_manifest @@ -2159,20 +10309,103 @@ components: format: byte description: Source content catalog_data: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryApplicationPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: applications: type: array items: - $ref: '#/components/schemas/mesheryApplication' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + application_file: + description: Application file + type: string + x-go-type-skip-optional-pointer: true + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: Source type (K8s manifest, Helm chart, Docker compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true resultsPage: discriminator: propertyName: resultType @@ -2213,35 +10446,160 @@ components: type: string format: date-time x-go-type-skip-optional-pointer: true + source_content: + type: string + format: byte + description: Source content capability: properties: provider_type: - $ref: '#/components/schemas/provider' description: Provider type + type: string + x-go-type-skip-optional-pointer: true package_version: - $ref: '#/components/schemas/text' description: Package version + type: string + x-go-type-skip-optional-pointer: true package_url: - $ref: '#/components/schemas/text' description: Package url + type: string + x-go-type-skip-optional-pointer: true provider_name: - $ref: '#/components/schemas/text' description: Provider name + type: string + x-go-type-skip-optional-pointer: true provider_description: type: array items: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true extensions: - $ref: '#/components/schemas/capabilityExtension' + properties: + navigator: + type: array + items: + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + icon: + description: Icon link + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + allowedTo: + type: object + user_prefs: + type: array + items: + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + graphql: + type: array + items: + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + path: + description: Path + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + account: + type: array + items: + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true capabilities: - $ref: '#/components/schemas/capabilityGeneralCapability' + properties: + feature: + description: Feature name + type: string + x-go-type-skip-optional-pointer: true + endpoint: + type: string + x-go-type-skip-optional-pointer: true restrictedAccess: - $ref: '#/components/schemas/restrictedAccess' + properties: + isMesheryUIRestricted: + type: boolean + allowedComponents: + properties: + navigator: + type: object + header: + type: object capabilityNavigatorExtension: properties: title: - $ref: '#/components/schemas/text' description: Title + type: string + x-go-type-skip-optional-pointer: true on_click_callback: type: integer href: @@ -2252,47 +10610,57 @@ components: external: type: boolean component: - $ref: '#/components/schemas/text' description: Component + type: string + x-go-type-skip-optional-pointer: true icon: - $ref: '#/components/schemas/text' description: Icon link + type: string + x-go-type-skip-optional-pointer: true link: - $ref: '#/components/schemas/text' description: link format: uri + type: string + x-go-type-skip-optional-pointer: true show: type: boolean description: Controls whether to show the extension or not type: - $ref: '#/components/schemas/text' description: Extension type + type: string + x-go-type-skip-optional-pointer: true allowedTo: type: object capabilityUserPrefExtension: properties: component: - $ref: '#/components/schemas/text' description: Component + type: string + x-go-type-skip-optional-pointer: true type: - $ref: '#/components/schemas/text' description: Extension type + type: string + x-go-type-skip-optional-pointer: true capabilityGraphQLExtension: properties: component: - $ref: '#/components/schemas/text' description: Component + type: string + x-go-type-skip-optional-pointer: true path: - $ref: '#/components/schemas/text' description: Path + type: string + x-go-type-skip-optional-pointer: true type: - $ref: '#/components/schemas/text' description: Extension type + type: string + x-go-type-skip-optional-pointer: true capabilitiesAccountExtension: properties: title: - $ref: '#/components/schemas/text' description: Title + type: string + x-go-type-skip-optional-pointer: true on_click_callback: type: integer href: @@ -2303,18 +10671,21 @@ components: external: type: boolean component: - $ref: '#/components/schemas/text' description: Component + type: string + x-go-type-skip-optional-pointer: true link: - $ref: '#/components/schemas/text' description: link format: uri + type: string + x-go-type-skip-optional-pointer: true show: type: boolean description: Controls whether to show the extension or not type: - $ref: '#/components/schemas/text' description: Extension type + type: string + x-go-type-skip-optional-pointer: true restrictedAccess: properties: isMesheryUIRestricted: @@ -2328,53 +10699,163 @@ components: capabilityGeneralCapability: properties: feature: - $ref: '#/components/schemas/text' description: Feature name + type: string + x-go-type-skip-optional-pointer: true endpoint: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true capabilityExtension: properties: navigator: type: array items: - $ref: '#/components/schemas/capabilityNavigatorExtension' + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + icon: + description: Icon link + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + allowedTo: + type: object user_prefs: type: array items: - $ref: '#/components/schemas/capabilityUserPrefExtension' + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true graphql: type: array items: - $ref: '#/components/schemas/capabilityGraphQLExtension' + properties: + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + path: + description: Path + type: string + x-go-type-skip-optional-pointer: true + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true account: type: array items: - $ref: '#/components/schemas/capabilitiesAccountExtension' - provider: - type: string - description: One of (meshery-cloud, github, google) - x-go-type-skip-optional-pointer: true - catalogRequest: - properties: + properties: + title: + description: Title + type: string + x-go-type-skip-optional-pointer: true + on_click_callback: + type: integer + href: + properties: + uri: + type: string + format: uri + external: + type: boolean + component: + description: Component + type: string + x-go-type-skip-optional-pointer: true + link: + description: link + format: uri + type: string + x-go-type-skip-optional-pointer: true + show: + type: boolean + description: Controls whether to show the extension or not + type: + description: Extension type + type: string + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + catalogRequest: + properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true content_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true content_name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true content_type: enum: - pattern - filter description: Catalog type (pattern / filter) first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true status: enum: - pending @@ -2382,20 +10863,276 @@ components: - denied description: Catalog request status (pending / approved / denied) created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true catalog_data: - $ref: '#/components/schemas/catalog_data' + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made available + in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. Content + classes help you understand the origin and expected support + level for each piece of content. It is important to note that + the level of support may vary within each class, and you should + exercise discretion when using community-contributed content. + Content produced and fully supported by Meshery maintainers. + This represents the highest level of support and is considered + the most reliable. Content produced by partners and verified by + Meshery maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure quality and + compatibility. Content produced and supported by the respective + project or organization responsible for the specific technology. + This class offers a level of support from the project + maintainers themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, and + applications. Community content may have varying levels of + support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. For + designs, a list of one or more models implicated by components + within the design. For models, this is self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to be + aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and unintended + uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow + depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots of the + design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type catalogRequestsPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: signup_data: type: array items: - $ref: '#/components/schemas/catalogRequest' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + content_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-name: ID + x-go-type-skip-optional-pointer: true + content_name: + type: string + x-go-type-skip-optional-pointer: true + content_type: + enum: + - pattern + - filter + description: Catalog type (pattern / filter) + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + status: + enum: + - pending + - approved + - denied + description: Catalog request status (pending / approved / denied) + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure + quality and compatibility. Content produced and + supported by the respective project or organization + responsible for the specific technology. This class + offers a level of support from the project maintainers + themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, + and applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated + by components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors + to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type catalog_data: type: object properties: @@ -2549,101 +11286,348 @@ components: mesheryPattern: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true pattern_file: - $ref: '#/components/schemas/design' description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the design + conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding component + declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services name: - $ref: '#/components/schemas/text' description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true location: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true visibility: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true catalog_data: - $ref: '#/components/schemas/catalog_data' + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made available + in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. Content + classes help you understand the origin and expected support + level for each piece of content. It is important to note that + the level of support may vary within each class, and you should + exercise discretion when using community-contributed content. + Content produced and fully supported by Meshery maintainers. + This represents the highest level of support and is considered + the most reliable. Content produced by partners and verified by + Meshery maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure quality and + compatibility. Content produced and supported by the respective + project or organization responsible for the specific technology. + This class offers a level of support from the project + maintainers themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, and + applications. Community content may have varying levels of + support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. For + designs, a list of one or more models implicated by components + within the design. For models, this is self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to be + aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and unintended + uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow + depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots of the + design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryFilter: properties: id: - $ref: '#/components/schemas/id' description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true filter_file: type: string format: byte description: Filter file name: - $ref: '#/components/schemas/text' description: Filter Name + type: string + x-go-type-skip-optional-pointer: true location: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true visibility: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true catalog_data: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryInstance: properties: id: - $ref: '#/components/schemas/id' description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' description: Connection name + type: string + x-go-type-skip-optional-pointer: true server_id: - $ref: '#/components/schemas/text' description: Connected server id + type: string + x-go-type-skip-optional-pointer: true server_version: - $ref: '#/components/schemas/text' description: Running server version + type: string + x-go-type-skip-optional-pointer: true server_location: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true server_build_sha: - $ref: '#/components/schemas/text' description: Server build SHA + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true status: - $ref: '#/components/schemas/text' description: Status + type: string + x-go-type-skip-optional-pointer: true connection: properties: id: - $ref: '#/components/schemas/id' description: ID + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' description: Connection Name + type: string + x-go-type-skip-optional-pointer: true credential_id: - $ref: '#/components/schemas/id' description: Credential 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-name: ID + x-go-type-skip-optional-pointer: true type: - $ref: '#/components/schemas/text' description: Connection Type + type: string + x-go-type-skip-optional-pointer: true sub_type: - $ref: '#/components/schemas/text' description: Connection Subtype + type: string + x-go-type-skip-optional-pointer: true kind: - $ref: '#/components/schemas/text' description: Connection Kind + type: string + x-go-type-skip-optional-pointer: true metadata: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true status: - $ref: '#/components/schemas/text' description: Connection Status type: string enum: @@ -2655,29 +11639,141 @@ components: - disconnected - deleted - not found + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/id' x-go-name: UserID + 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-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true connectionPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: connections: type: array items: - $ref: '#/components/schemas/connection' + properties: + id: + description: ID + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Connection Name + type: string + x-go-type-skip-optional-pointer: true + credential_id: + description: Credential 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-name: ID + x-go-type-skip-optional-pointer: true + type: + description: Connection Type + type: string + x-go-type-skip-optional-pointer: true + sub_type: + description: Connection Subtype + type: string + x-go-type-skip-optional-pointer: true + kind: + description: Connection Kind + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + status: + description: Connection Status + type: string + enum: + - discovered + - registered + - connected + - ignored + - maintenance + - disconnected + - deleted + - not found + x-go-type-skip-optional-pointer: true + user_id: + x-go-name: UserID + 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-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true connectionStatusInfo: properties: status: - $ref: '#/components/schemas/text' description: Connection status + type: string + x-go-type-skip-optional-pointer: true count: type: integer description: Number of connections having the status @@ -2686,66 +11782,320 @@ components: connections_status: type: array items: - $ref: '#/components/schemas/connectionStatusInfo' + properties: + status: + description: Connection status + type: string + x-go-type-skip-optional-pointer: true + count: + type: integer + description: Number of connections having the status k8sContext: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true auth: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true cluster: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true server: type: string owner: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true created_by: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true meshery_instance_id: - $ref: '#/components/schemas/id' - kubernetes_server_id: - $ref: '#/components/schemas/id' - deployment_type: + 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-name: ID + x-go-type-skip-optional-pointer: true + kubernetes_server_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-name: ID + x-go-type-skip-optional-pointer: true + deployment_type: type: string updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true k8sContextPersistResponse: properties: k8sContext: - $ref: '#/components/schemas/k8sContext' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + auth: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + cluster: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + server: + type: string + owner: + 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-name: ID + x-go-type-skip-optional-pointer: true + created_by: + 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-name: ID + x-go-type-skip-optional-pointer: true + meshery_instance_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-name: ID + x-go-type-skip-optional-pointer: true + kubernetes_server_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-name: ID + x-go-type-skip-optional-pointer: true + deployment_type: + type: string + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true inserted: type: boolean credential: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true type: type: string secret: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/created_at' + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/updated_at' + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/deleted_at' + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true credentialsPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: credential: type: array items: - $ref: '#/components/schemas/credential' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + type: + type: string + secret: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true created_at: description: Timestamp when the resource was created. x-go-type: time.Time @@ -2780,12 +12130,30 @@ components: id: description: | UUID of the event. - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/user_uuid' description: > UUID of the user that initiated the event. In most cases this would be present, but not always. + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: user_id + json: user_id + x-go-name: UserID + x-go-type-skip-optional-pointer: true system_id: description: > The system from which the request is sourced. In the case of Meshery @@ -2793,7 +12161,15 @@ components: the ID is meshery_instance_id of Meshery Server (which can be found in the metadata of`Connections` table). - $ref: '#/components/schemas/system_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: system_id + x-go-name: SystemID + x-go-type-skip-optional-pointer: true operation_id: description: > Each Event will have a OperationID. This field is never NULL, which @@ -2801,7 +12177,15 @@ components: Different stages of Pattern Engine / activities of Workflow engine. Each operation (and sub-operation) will have a different operation ID. - $ref: '#/components/schemas/operation_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: operation_id + x-go-name: OperationID + x-go-type-skip-optional-pointer: true category: description: | Resource name on which the operation is invoked. @@ -2866,11 +12250,29 @@ components: x-oapi-codegen-extra-tags: db: metadata created_at: - $ref: '#/components/schemas/created_at' + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/updated_at' + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/deleted_at' + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true required: - id - system_id @@ -2927,23 +12329,207 @@ components: count: type: integer event_type: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true dt: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true week: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true month: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true year: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true eventTrackerGroupedArray: type: array items: - $ref: '#/components/schemas/eventTrackerGrouped' + properties: + count: + type: integer + event_type: + type: string + x-go-type-skip-optional-pointer: true + dt: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + week: + type: string + x-go-type-skip-optional-pointer: true + month: + type: string + x-go-type-skip-optional-pointer: true + year: + type: string + x-go-type-skip-optional-pointer: true eventResult: properties: event: - $ref: '#/components/schemas/event' + description: Defines model for event_trackers + properties: + id: + description: | + UUID of the event. + 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-name: ID + x-go-type-skip-optional-pointer: true + user_id: + description: > + UUID of the user that initiated the event. In most cases this + would be present, but not always. + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: user_id + json: user_id + x-go-name: UserID + x-go-type-skip-optional-pointer: true + system_id: + description: > + The system from which the request is sourced. In the case of + Meshery Server, + + the ID is meshery_instance_id of Meshery Server (which can be + found in the metadata of`Connections` table). + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: system_id + x-go-name: SystemID + x-go-type-skip-optional-pointer: true + operation_id: + description: > + Each Event will have a OperationID. This field is never NULL, + which is to say an operation can result in series of events, for + eg: Different stages of Pattern Engine / activities of Workflow + engine. Each operation (and sub-operation) will have a different + operation 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: operation_id + x-go-name: OperationID + x-go-type-skip-optional-pointer: true + category: + description: | + Resource name on which the operation is invoked. + type: string + example: pattern + x-oapi-codegen-extra-tags: + db: category + action: + description: | + Action taken on the resource. + type: string + example: deployed + x-oapi-codegen-extra-tags: + db: action + status: + description: | + Status for the event. + type: string + enum: + - read + - unread + x-oapi-codegen-extra-tags: + db: status + acted_upon: + type: string + format: uuid + description: | + UUID of the entity on which the event was performed. + example: 110020-123230-434231-000213 + x-go-type: uuid.UUID + x-oapi-codegen-extra-tags: + db: acted_upon + description: + description: | + A summary/receipt of event that occured. + type: string + example: “Prometheus” pattern deployed in K8s ctx “Meshery Cloud”. + x-oapi-codegen-extra-tags: + db: description + severity: + description: | + A set of seven standard event levels. + type: string + enum: + - emergency + - critical + - alert + - error + - warning + - debug + - informational + - success + example: info + x-oapi-codegen-extra-tags: + db: severity + metadata: + description: | + Contains meaningful information, specific to the type of event. + Structure of metadata can be different for different events. + type: object + x-go-type: '[]byte' + x-oapi-codegen-extra-tags: + db: metadata + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + required: + - id + - system_id + - operation_id + - category + - action + - status + - acted_upon + - description + - severity + - metadata + - created_at + - updated_at events_count: type: integer x-oapi-codegen-extra-tags: @@ -2953,13 +12539,203 @@ components: - events_count eventsPage: allOf: - - $ref: '#/components/schemas/recordsPage' + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: data: type: array items: - $ref: '#/components/schemas/eventResult' + properties: + event: + description: Defines model for event_trackers + properties: + id: + description: | + UUID of the event. + 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-name: ID + x-go-type-skip-optional-pointer: true + user_id: + description: > + UUID of the user that initiated the event. In most + cases this would be present, but not always. + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: user_id + json: user_id + x-go-name: UserID + x-go-type-skip-optional-pointer: true + system_id: + description: > + The system from which the request is sourced. In the + case of Meshery Server, + + the ID is meshery_instance_id of Meshery Server (which + can be found in the metadata of`Connections` table). + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: system_id + x-go-name: SystemID + x-go-type-skip-optional-pointer: true + operation_id: + description: > + Each Event will have a OperationID. This field is + never NULL, which is to say an operation can result in + series of events, for eg: Different stages of Pattern + Engine / activities of Workflow engine. Each operation + (and sub-operation) will have a different operation + 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: operation_id + x-go-name: OperationID + x-go-type-skip-optional-pointer: true + category: + description: | + Resource name on which the operation is invoked. + type: string + example: pattern + x-oapi-codegen-extra-tags: + db: category + action: + description: | + Action taken on the resource. + type: string + example: deployed + x-oapi-codegen-extra-tags: + db: action + status: + description: | + Status for the event. + type: string + enum: + - read + - unread + x-oapi-codegen-extra-tags: + db: status + acted_upon: + type: string + format: uuid + description: | + UUID of the entity on which the event was performed. + example: 110020-123230-434231-000213 + x-go-type: uuid.UUID + x-oapi-codegen-extra-tags: + db: acted_upon + description: + description: | + A summary/receipt of event that occured. + type: string + example: >- + “Prometheus” pattern deployed in K8s ctx “Meshery + Cloud”. + x-oapi-codegen-extra-tags: + db: description + severity: + description: | + A set of seven standard event levels. + type: string + enum: + - emergency + - critical + - alert + - error + - warning + - debug + - informational + - success + example: info + x-oapi-codegen-extra-tags: + db: severity + metadata: + description: > + Contains meaningful information, specific to the type + of event. + + Structure of metadata can be different for different + events. + type: object + x-go-type: '[]byte' + x-oapi-codegen-extra-tags: + db: metadata + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + required: + - id + - system_id + - operation_id + - category + - action + - status + - acted_upon + - description + - severity + - metadata + - created_at + - updated_at + events_count: + type: integer + x-oapi-codegen-extra-tags: + db: events_count + required: + - event + - events_count eventSummary: properties: user_id: @@ -3012,13 +12788,76 @@ components: - last_login_time eventSummaryPage: allOf: - - $ref: '#/components/schemas/recordsPage' + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: data: type: array items: - $ref: '#/components/schemas/eventSummary' + properties: + user_id: + type: string + description: user's email or username + provider: + type: string + email: + type: string + first_name: + type: string + description: First Name + last_name: + type: string + description: Last Name + activity_count: + type: integer + login_count: + type: integer + signup_count: + type: integer + perf_results_count: + type: integer + smi_results_count: + type: integer + meshery_apps_count: + type: integer + meshery_patterns_count: + type: integer + meshery_filters_count: + type: integer + last_login_time: + type: string + format: data-time + x-go-type: time.Time + required: + - user_id + - provider + - email + - first_name + - last_name + - activity_count + - login_count + - signup_count + - perf_results_count + - smi_results_count + - meshery_apps_count + - meshery_patterns_count + - meshery_filters_count + - last_login_time eventsAggregate: properties: audit: @@ -3077,128 +12916,4328 @@ components: x-go-type-skip-optional-pointer: true mesheryFilterPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: filters: type: array items: - $ref: '#/components/schemas/mesheryFilter' + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file meshmodelModel: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true version: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true display_name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true status: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true category_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true metadata: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/created_at' + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/updated_at' + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/deleted_at' + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true meshmodelCategory: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true metadata: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/created_at' + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/updated_at' + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/deleted_at' + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true meshmodelCategoriesPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + - type: object + properties: + categories: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + meshmodelModelsPage: + allOf: + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: - categories: - type: array - items: - $ref: '#/components/schemas/meshmodelCategory' - meshmodelModelsPage: - allOf: - - $ref: '#/components/schemas/resultsPage' - - type: object + models: + type: array + items: + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + version: + type: string + x-go-type-skip-optional-pointer: true + display_name: + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + category_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-name: ID + x-go-type-skip-optional-pointer: true + metadata: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + models: + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + description: >- + Meshery Models serve as a portable unit of packaging to define managed + entities, their relationships, and capabilities. + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: The unique name for the model within the scope of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The component + that is to be the canonical reference and that is duplicated by + other components should not be assigned the 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this Meshery + Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be treated + as deployable entities or as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + components: + $id: https://schemas.meshery.io/component.json + $schema: http://json-schema.org/draft-07/schema# + description: >- + Components are reusable building blocks for depicting capabilities + defined within models. Learn more at + https://docs.meshery.io/concepts/components + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema to which the component + definition conforms. + type: string + minLength: 2 + maxLength: 100 + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the component definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + displayName: + description: Name of the component in human-readible format. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: >- + A written representation of the purpose and characteristics of the + component. + format: + type: string + enum: + - JSON + - CUE + default: JSON + description: >- + Format specifies the format used in the `component.schema` field. + JSON is the default. + model: + description: >- + Reference to the specific registered model to which the component + belongs and from which model version, category, and other properties + may be referenced. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: The unique name for the model within the scope of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The + component that is to be the canonical reference and that is + duplicated by other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this + Meshery Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be + treated as deployable entities or as logical + representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + metadata: + type: object + description: >- + Metadata contains additional information associated with the + component. + required: + - shape + - primaryColor + - svgColor + - svgWhite + properties: + capabilities: + type: object + description: >- + Meshery manages components in accordance with their specific + capabilities. This field explicitly identifies those + capabilities largely by what actions a given component supports; + e.g. metric-scrape, sub-interface, and so on. This field is + extensible. ComponentDefinitions may define a broad array of + capabilities, which are in-turn dynamically interpretted by + Meshery for full lifecycle management. + genealogy: + type: string + description: >- + Genealogy represents the various representational states of the + component. + isAnnotation: + type: boolean + description: >- + Identifies whether the component is semantically meaningful or + not; identifies whether the component should be treated as + deployable entity or is for purposes of logical representation. + shape: + type: string + description: Shape of the component used for UI representation. + enum: + - ellipse + - triangle + - round-triangle + - rectangle + - round-rectangle + - bottom-round-rectangle + - cut-rectangle + - barrel + - rhomboid + - diamond + - round-diamond + - pentagon + - round-pentagon + - hexagon + - round-hexagon + - concave-hexagon + - heptagon + - round-heptagon + - octagon + - round-octagon + - star + - tag + - round-tag + - vee + primaryColor: + type: string + description: Primary color of the component used for UI representation. + secondaryColor: + type: string + description: Secondary color of the component used for UI representation. + svgWhite: + type: string + description: >- + White SVG of the component used for UI representation on dark + background. + svgColor: + type: string + description: >- + Colored SVG of the component used for UI representation on light + background. + svgComplete: + type: string + description: >- + Complete SVG of the component used for UI representation, often + inclusive of background. + published: + type: boolean + description: >- + 'published' controls whether the component should be registered + in Meshery Registry. When the same 'published' property in + Models, is set to 'false', the Model property takes precedence + with all Entities in the Model not being registered. + additionalProperties: true + component: + type: object + description: Component and it's properties. + properties: + version: + type: string + description: >- + Version of the component produced by the registrant. Example: + APIVersion of a Kubernetes Pod. + kind: + type: string + description: >- + The unique identifier (name) assigned by the registrant to this + component. Example: A Kubernetes Pod is of kind 'Pod'. + schema: + type: string + description: JSON schema of the object as defined by the registrant. + required: + - version + - kind + - schema + required: + - schemaVersion + - version + - model + - component + relationships: + $id: https://schemas.meshery.io/relationship.json + $schema: http://json-schema.org/draft-07/schema# + description: >- + Relationships define the nature of interaction between interconnected + components in Meshery. The combination of relationship properties kind, + type, and subtype characterize various genealogical relations among and + between components. Relationships have selectors, selector sets, + metadata, and optional parameters. Learn more at + https://docs.meshery.io/concepts/logical/relationships. + required: + - schemaVersion + - version + - kind + - type + - subType + - model + - evaluationQuery + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + type: string + minLength: 2 + maxLength: 100 + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Specifies the version of the definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + kind: + description: Kind of the Relationship. + enum: + - hierarchical + - edge + - sibling + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + type: + description: >- + Classification of relationships. Used to group relationships similar + in nature. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + subType: + description: >- + Used for further classification of Relationships. Type and SubType + together identifies a Relationship. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + evaluationQuery: + description: >- + Determines the policy rule to be used for the evaluation of the + relationship. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + metadata: + type: object + description: >- + Metadata contains additional information associated with the + Relationship. + properties: + description: + description: Description of the Relationship. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + model: + description: Model of the Relationship. + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: The unique name for the model within the scope of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The + component that is to be the canonical reference and that is + duplicated by other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this + Meshery Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be + treated as deployable entities or as logical + representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + selectors: + type: array + description: >- + Selectors are organized as an array, with each item containing a + distinct set of selectors that share a common functionality. This + structure allows for flexibility in defining relationships, even + when different components are involved. + $comment: >- + Sets of selectors are interpreted as a locical OR, while sets of + allow/deny are interpreted a logical AND. + items: + type: object + description: >- + Optional selectors used to match Components. Absence of a selector + means that it is applied to all Components. + additionalProperties: false + required: + - alllow + properties: + deny: + type: object + description: >- + Optional selectors used to define relationships which should + not be created / is restricted. + required: + - to + - from + properties: + from: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatorRef: + type: array + items: + type: array + items: + type: string + description: >- + The sequence of mutatorRef and mutatedRef must + match. eg: mutatorRef: [[config, url], + [config, name]], mutatedRef: [[configPatch, + value], [name]]. The value [config, url] will + be patched at [configPatch, value]. Similarly + [config,name] will be patched at [name]. + description: >- + JSON ref to value from where patch should be + applied. + description: >- + Optional fields that are a part of the `from` selector. + Absence of a field has an implied * meaning. + to: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatedRef: + type: string + description: JSON ref to value that should be patched. + description: >- + Optional fields that are a part of the `to` selector. + Absence of a field has an implied * meaning. + allow: + type: object + description: Selectors used to define relationships which are allowed. + required: + - to + - from + properties: + from: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatorRef: + type: array + items: + type: array + items: + type: string + description: >- + The sequence of mutatorRef and mutatedRef must + match. eg: mutatorRef: [[config, url], + [config, name]], mutatedRef: [[configPatch, + value], [name]]. The value [config, url] will + be patched at [configPatch, value]. Similarly + [config,name] will be patched at [name]. + description: >- + JSON ref to value from where patch should be + applied. + description: >- + Optional fields that are a part of the `from` selector. + Absence of a field has an implied * meaning. + to: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatedRef: + type: string + description: JSON ref to value that should be patched. + description: >- + Optional fields that are a part of the `to` selector. + Absence of a field has an implied * meaning. + versionString: + type: string + minLength: 2 + maxLength: 100 + description: API version of the object + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + semverString: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 characters. The + pattern allows for a major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an optional build + metadata tag like '+build.1. + inputString: + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + model: + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + description: >- + Meshery Models serve as a portable unit of packaging to define managed + entities, their relationships, and capabilities. + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: The unique name for the model within the scope of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The component + that is to be the canonical reference and that is duplicated by + other components should not be assigned the 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this Meshery + Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be treated + as deployable entities or as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + component: + $id: https://schemas.meshery.io/component.json + $schema: http://json-schema.org/draft-07/schema# + description: >- + Components are reusable building blocks for depicting capabilities + defined within models. Learn more at + https://docs.meshery.io/concepts/components + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema to which the component + definition conforms. + type: string + minLength: 2 + maxLength: 100 + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the component definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + displayName: + description: Name of the component in human-readible format. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: >- + A written representation of the purpose and characteristics of the + component. + format: + type: string + enum: + - JSON + - CUE + default: JSON + description: >- + Format specifies the format used in the `component.schema` field. + JSON is the default. + model: + description: >- + Reference to the specific registered model to which the component + belongs and from which model version, category, and other properties + may be referenced. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: The unique name for the model within the scope of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The + component that is to be the canonical reference and that is + duplicated by other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this + Meshery Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be + treated as deployable entities or as logical + representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + metadata: + type: object + description: >- + Metadata contains additional information associated with the + component. + required: + - shape + - primaryColor + - svgColor + - svgWhite + properties: + capabilities: + type: object + description: >- + Meshery manages components in accordance with their specific + capabilities. This field explicitly identifies those + capabilities largely by what actions a given component supports; + e.g. metric-scrape, sub-interface, and so on. This field is + extensible. ComponentDefinitions may define a broad array of + capabilities, which are in-turn dynamically interpretted by + Meshery for full lifecycle management. + genealogy: + type: string + description: >- + Genealogy represents the various representational states of the + component. + isAnnotation: + type: boolean + description: >- + Identifies whether the component is semantically meaningful or + not; identifies whether the component should be treated as + deployable entity or is for purposes of logical representation. + shape: + type: string + description: Shape of the component used for UI representation. + enum: + - ellipse + - triangle + - round-triangle + - rectangle + - round-rectangle + - bottom-round-rectangle + - cut-rectangle + - barrel + - rhomboid + - diamond + - round-diamond + - pentagon + - round-pentagon + - hexagon + - round-hexagon + - concave-hexagon + - heptagon + - round-heptagon + - octagon + - round-octagon + - star + - tag + - round-tag + - vee + primaryColor: + type: string + description: Primary color of the component used for UI representation. + secondaryColor: + type: string + description: Secondary color of the component used for UI representation. + svgWhite: + type: string + description: >- + White SVG of the component used for UI representation on dark + background. + svgColor: + type: string + description: >- + Colored SVG of the component used for UI representation on light + background. + svgComplete: + type: string + description: >- + Complete SVG of the component used for UI representation, often + inclusive of background. + published: + type: boolean + description: >- + 'published' controls whether the component should be registered + in Meshery Registry. When the same 'published' property in + Models, is set to 'false', the Model property takes precedence + with all Entities in the Model not being registered. + additionalProperties: true + component: + type: object + description: Component and it's properties. + properties: + version: + type: string + description: >- + Version of the component produced by the registrant. Example: + APIVersion of a Kubernetes Pod. + kind: + type: string + description: >- + The unique identifier (name) assigned by the registrant to this + component. Example: A Kubernetes Pod is of kind 'Pod'. + schema: + type: string + description: JSON schema of the object as defined by the registrant. + required: + - version + - kind + - schema + required: + - schemaVersion + - version + - model + - component + from: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope of a + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The + component that is to be the canonical reference and that is + duplicated by other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this + Meshery Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be + treated as deployable entities or as logical + representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 characters. The + pattern allows for a major.minor.patch version followed by an + optional pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: Defines paths which should be matched with 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which should be matched + with 'self'. Here 'kind' is valid Component 'kind' belonging + to the above specifed model. eg: If model is Kubernetes, valid + 'kind' are 'Pod', 'Secret'. If the value for all paths of + 'self' & 'kind' along with the value of all paths inside + 'to.match.self' & 'to.match.kind are equal then the component + with 'kind' act as an binded component. eg: ClusterRole, + ClusterRoleBinding and ServiceAccount. If the paths for + ClusterRole & ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then ClusterRoleBinding acts as + an binding. Make sure the 'kind' value in 'from' and 'to' + should be equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatorRef: + type: array + items: + type: array + items: + type: string + description: >- + The sequence of mutatorRef and mutatedRef must match. eg: + mutatorRef: [[config, url], [config, name]], mutatedRef: + [[configPatch, value], [name]]. The value [config, url] will + be patched at [configPatch, value]. Similarly [config,name] + will be patched at [name]. + description: JSON ref to value from where patch should be applied. + description: >- + Optional fields that are a part of the `from` selector. Absence of a + field has an implied * meaning. + to: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope of a + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The + component that is to be the canonical reference and that is + duplicated by other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this + Meshery Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be + treated as deployable entities or as logical + representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 characters. The + pattern allows for a major.minor.patch version followed by an + optional pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: Defines paths which should be matched with 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which should be matched + with 'self'. Here 'kind' is valid Component 'kind' belonging + to the above specifed model. eg: If model is Kubernetes, valid + 'kind' are 'Pod', 'Secret'. If the value for all paths of + 'self' & 'kind' along with the value of all paths inside + 'to.match.self' & 'to.match.kind are equal then the component + with 'kind' act as an binded component. eg: ClusterRole, + ClusterRoleBinding and ServiceAccount. If the paths for + ClusterRole & ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then ClusterRoleBinding acts as + an binding. Make sure the 'kind' value in 'from' and 'to' + should be equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatedRef: + type: string + description: JSON ref to value that should be patched. + description: >- + Optional fields that are a part of the `to` selector. Absence of a + field has an implied * meaning. + relationship: + $id: https://schemas.meshery.io/relationship.json + $schema: http://json-schema.org/draft-07/schema# + description: >- + Relationships define the nature of interaction between interconnected + components in Meshery. The combination of relationship properties kind, + type, and subtype characterize various genealogical relations among and + between components. Relationships have selectors, selector sets, + metadata, and optional parameters. Learn more at + https://docs.meshery.io/concepts/logical/relationships. + required: + - schemaVersion + - version + - kind + - type + - subType + - model + - evaluationQuery + additionalProperties: false + type: object + properties: + schemaVersion: + description: Specifies the version of the schema used for the definition. + type: string + minLength: 2 + maxLength: 100 + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Specifies the version of the definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + kind: + description: Kind of the Relationship. + enum: + - hierarchical + - edge + - sibling + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + type: + description: >- + Classification of relationships. Used to group relationships similar + in nature. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + subType: + description: >- + Used for further classification of Relationships. Type and SubType + together identifies a Relationship. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + evaluationQuery: + description: >- + Determines the policy rule to be used for the evaluation of the + relationship. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + metadata: + type: object + description: >- + Metadata contains additional information associated with the + Relationship. + properties: + description: + description: Description of the Relationship. + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + model: + description: Model of the Relationship. + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object properties: - models: - type: array - items: - $ref: '#/components/schemas/meshmodelModel' + schemaVersion: + description: Specifies the version of the schema used for the definition. + minLength: 1 + maxLength: 50 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: The unique name for the model within the scope of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of another. The + component that is to be the canonical reference and that is + duplicated by other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period of time. + + - enabled: model is available for use for all users of this + Meshery Server. + + - ignored: model is unavailable for use for all users of this + Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information associated with the + model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities should be + treated as deployable entities or as logical + representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: SVG representation of the model in white color. + minLength: 1 + svgColor: + type: string + description: SVG representation of the model in colored format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: Registrant-defined data associated with the model. + required: + - version + properties: + version: + description: Version of the model as defined by the registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + selectors: + type: array + description: >- + Selectors are organized as an array, with each item containing a + distinct set of selectors that share a common functionality. This + structure allows for flexibility in defining relationships, even + when different components are involved. + $comment: >- + Sets of selectors are interpreted as a locical OR, while sets of + allow/deny are interpreted a logical AND. + items: + type: object + description: >- + Optional selectors used to match Components. Absence of a selector + means that it is applied to all Components. + additionalProperties: false + required: + - alllow + properties: + deny: + type: object + description: >- + Optional selectors used to define relationships which should + not be created / is restricted. + required: + - to + - from + properties: + from: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatorRef: + type: array + items: + type: array + items: + type: string + description: >- + The sequence of mutatorRef and mutatedRef must + match. eg: mutatorRef: [[config, url], + [config, name]], mutatedRef: [[configPatch, + value], [name]]. The value [config, url] will + be patched at [configPatch, value]. Similarly + [config,name] will be patched at [name]. + description: >- + JSON ref to value from where patch should be + applied. + description: >- + Optional fields that are a part of the `from` selector. + Absence of a field has an implied * meaning. + to: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatedRef: + type: string + description: JSON ref to value that should be patched. + description: >- + Optional fields that are a part of the `to` selector. + Absence of a field has an implied * meaning. + allow: + type: object + description: Selectors used to define relationships which are allowed. + required: + - to + - from + properties: + from: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatorRef: + type: array + items: + type: array + items: + type: string + description: >- + The sequence of mutatorRef and mutatedRef must + match. eg: mutatorRef: [[config, url], + [config, name]], mutatedRef: [[configPatch, + value], [name]]. The value [config, url] will + be patched at [configPatch, value]. Similarly + [config,name] will be patched at [name]. + description: >- + JSON ref to value from where patch should be + applied. + description: >- + Optional fields that are a part of the `from` selector. + Absence of a field has an implied * meaning. + to: + type: array + items: + type: object + additionalProperties: false + properties: + kind: + type: string + model: + description: >- + Model of the component. Learn more at + https://docs.meshery.io/concepts/models + $id: https://schemas.meshery.io/model.json + $schema: http://json-schema.org/draft-07/schema# + additionalProperties: false + type: object + properties: + schemaVersion: + description: >- + Specifies the version of the schema used for the + definition. + minLength: 1 + maxLength: 50 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + version: + description: Version of the model definition. + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + name: + description: >- + The unique name for the model within the scope + of a registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + displayName: + description: Human-readable name for the model. + minLength: 1 + maxLength: 100 + type: string + pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$ + description: + type: string + description: Description of the model. + minLength: 1 + maxLength: 1000 + status: + type: string + description: >- + Status of model, including: + + - duplicate: this component is a duplicate of + another. The component that is to be the + canonical reference and that is duplicated by + other components should not be assigned the + 'duplicate' status. + + - maintenance: model is unavailable for a period + of time. + + - enabled: model is available for use for all + users of this Meshery Server. + + - ignored: model is unavailable for use for all + users of this Meshery Server. + enum: + - ignored + - enabled + - duplicate + registrant: + type: object + category: + type: string + description: Category of the model. + minLength: 1 + maxLength: 100 + subCategory: + type: string + description: Sub-category of the model. + minLength: 1 + maxLength: 100 + metadata: + type: object + description: >- + Metadata containing additional information + associated with the model. + required: + - name + - version + properties: + isAnnotation: + type: boolean + description: >- + Indicates whether the model and its entities + should be treated as deployable entities or + as logical representations. + primaryColor: + type: string + description: Primary color associated with the model. + minLength: 1 + maxLength: 50 + secondaryColor: + type: string + description: Secondary color associated with the model. + minLength: 1 + maxLength: 50 + svgWhite: + type: string + description: >- + SVG representation of the model in white + color. + minLength: 1 + svgColor: + type: string + description: >- + SVG representation of the model in colored + format. + minLength: 1 + svgComplete: + type: string + description: SVG representation of the complete model. + minLength: 1 + additionalProperties: true + model: + type: object + description: >- + Registrant-defined data associated with the + model. + required: + - version + properties: + version: + description: >- + Version of the model as defined by the + registrant. + minLength: 1 + maxLength: 100 + type: string + pattern: >- + ([a-z.])*(?!^/)v(alpha|beta|[0-9]+)([.-]*[a-z0-9]+)*$ + example: + - v1 + - v1alpha1 + - v2beta3 + - v1.custom-suffix + required: + - name + - version + - registrant + - category + version: + type: string + minLength: 5 + maxLength: 100 + pattern: >- + ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$ + description: >- + A valid semantic version string between 5 and 256 + characters. The pattern allows for a + major.minor.patch version followed by an optional + pre-release tag like '-alpha' or '-beta.2' and an + optional build metadata tag like '+build.1. + match: + type: object + additionalProperties: false + properties: + self: + description: >- + Defines paths which should be matched with + 'kind'. + type: array + items: + type: string + kind: + description: >- + Optional property which defines paths which + should be matched with 'self'. Here 'kind' is + valid Component 'kind' belonging to the above + specifed model. eg: If model is Kubernetes, + valid 'kind' are 'Pod', 'Secret'. If the value + for all paths of 'self' & 'kind' along with the + value of all paths inside 'to.match.self' & + 'to.match.kind are equal then the component with + 'kind' act as an binded component. eg: + ClusterRole, ClusterRoleBinding and + ServiceAccount. If the paths for ClusterRole & + ClusterRoleBinding and ServiceAccount & + ClusterRoleBinding are equal then + ClusterRoleBinding acts as an binding. Make sure + the 'kind' value in 'from' and 'to' should be + equal. + type: array + items: + type: string + patch: + type: object + additionalProperties: false + properties: + patchStrategy: + type: string + enum: + - replace + mutatedRef: + type: string + description: JSON ref to value that should be patched. + description: >- + Optional fields that are a part of the `to` selector. + Absence of a field has an implied * meaning. mesheryPatternResource: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' description: Name + type: string + x-go-type-skip-optional-pointer: true namepace: - $ref: '#/components/schemas/text' description: Namespace + type: string + x-go-type-skip-optional-pointer: true type: - $ref: '#/components/schemas/text' description: Type + type: string + x-go-type-skip-optional-pointer: true oam_type: - $ref: '#/components/schemas/text' description: OAM type + type: string + x-go-type-skip-optional-pointer: true deleted: type: boolean created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryPatternResourcePage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: resources: type: array items: - $ref: '#/components/schemas/mesheryPatternResource' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Name + type: string + x-go-type-skip-optional-pointer: true + namepace: + description: Namespace + type: string + x-go-type-skip-optional-pointer: true + type: + description: Type + type: string + x-go-type-skip-optional-pointer: true + oam_type: + description: OAM type + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryPatternPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: patterns: type: array items: - $ref: '#/components/schemas/mesheryPattern' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the + design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding + component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure + quality and compatibility. Content produced and + supported by the respective project or organization + responsible for the specific technology. This class + offers a level of support from the project maintainers + themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, + and applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated + by components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors + to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true deletePatternModel: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: description: Pattern name - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true emails: type: array items: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true x-go-type-skip-optional-pointer: true roleHolderRequest: type: object properties: role_names: - $ref: '#/components/schemas/roleNames' + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true required: - role_names - email @@ -3206,33 +17245,71 @@ components: type: object properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/user_id' + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true username: - $ref: '#/components/schemas/username' + type: string + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true status: - $ref: '#/components/schemas/status' + type: string + x-go-type-skip-optional-pointer: true role_names: - $ref: '#/components/schemas/roleNames' + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true last_login_time: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true prefs: - $ref: '#/components/schemas/email_preference' + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true required: - id - user_id @@ -3275,13 +17352,41 @@ components: performanceProfile: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true schedule: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true load_generators: type: string endpoints: @@ -3295,7 +17400,9 @@ components: duration: type: string last_run: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true total_results: type: integer request_headers: @@ -3305,93 +17412,381 @@ components: request_body: type: string created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true performanceProfilePage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: profiles: type: array items: - $ref: '#/components/schemas/performanceProfile' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + schedule: + 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-name: ID + x-go-type-skip-optional-pointer: true + load_generators: + type: string + endpoints: + type: string + service_mesh: + type: string + concurrent_request: + type: integer + qps: + type: integer + duration: + type: string + last_run: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + total_results: + type: integer + request_headers: + type: string + request_cookies: + type: string + request_body: + type: string + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true performanceResult: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true test_start_time: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesh: type: string runner_results: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true deleted: type: boolean server_metrics: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true server_board_config: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true performance_profile: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryResultPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: results: type: array items: - $ref: '#/components/schemas/performanceResult' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + test_start_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + mesh: + type: string + runner_results: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + server_metrics: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + server_board_config: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + performance_profile: + 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-name: ID + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true tokenPage: allOf: - - $ref: '#/components/schemas/resultsPage' + - discriminator: + propertyName: resultType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + total_count: + type: integer + x-go-type-skip-optional-pointer: true + resultType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: tokens: type: array items: - $ref: '#/components/schemas/userToken' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + access_token: + type: string + x-go-type-skip-optional-pointer: true + refresh_token: + type: string + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + purpose: + type: string + x-go-type-skip-optional-pointer: true + is_oauth: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true userToken: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true provider: - $ref: '#/components/schemas/provider' + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true access_token: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true refresh_token: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true purpose: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true is_oauth: type: boolean created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true userInvite: type: object properties: first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true required: - first_name - last_name @@ -3400,9 +17795,24 @@ components: type: object properties: user_ids: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_emails: - $ref: '#/components/schemas/emails' + type: array + items: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true required: - user_ids - user_emails @@ -3410,33 +17820,63 @@ components: type: object properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/user_id' + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true provider: - $ref: '#/components/schemas/provider' + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true avatar_url: - $ref: '#/components/schemas/avatar_url' + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true status: - $ref: '#/components/schemas/status' + type: string + x-go-type-skip-optional-pointer: true bio: - $ref: '#/components/schemas/bio' + type: string + x-go-type-skip-optional-pointer: true preferences: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true accepted_terms_at: - $ref: '#/components/schemas/accepted_terms_at' + type: string + x-go-type-skip-optional-pointer: true first_login_time: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true last_login_time: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true required: - id - user_id @@ -3453,50 +17893,234 @@ components: type: object properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true avatar_url: - $ref: '#/components/schemas/avatar_url' + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true rolesPage: allOf: - - $ref: '#/components/schemas/recordsPage' + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: data: type: array items: - $ref: '#/components/schemas/role' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at key: properties: ID: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true subcategory: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true function: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/nullTime' + description: SQL null Timestamp to handle null values of time. + x-go-type: sql.NullTime + type: string + x-go-type-skip-optional-pointer: true category: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true description: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true owner: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true userKeys: properties: keys: type: array items: - $ref: '#/components/schemas/key' + properties: + ID: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + subcategory: + type: string + x-go-type-skip-optional-pointer: true + function: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + description: SQL null Timestamp to handle null values of time. + x-go-type: sql.NullTime + type: string + x-go-type-skip-optional-pointer: true + category: + type: string + x-go-type-skip-optional-pointer: true + description: + type: string + x-go-type-skip-optional-pointer: true + owner: + 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-name: ID + x-go-type-skip-optional-pointer: true total_count: type: integer deleteOn: @@ -3506,48 +18130,195 @@ components: - bulk usersPageForAdmin: allOf: - - $ref: '#/components/schemas/recordsPage' + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: data: type: array items: - $ref: '#/components/schemas/usersWithRolesForAdmin' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - created_at + - updated_at + - last_login_time + - deleted_at usersWithRolesForAdmin: type: object properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/user_id' + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true username: - $ref: '#/components/schemas/username' + type: string + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true status: - $ref: '#/components/schemas/status' + type: string + x-go-type-skip-optional-pointer: true role_names: - $ref: '#/components/schemas/roleNames' + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true last_login_time: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true prefs: - $ref: '#/components/schemas/email_preference' + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true avatar_url: - $ref: '#/components/schemas/avatar_url' + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true preferences: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true required: - id - user_id @@ -3565,35 +18336,75 @@ components: type: object properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/user_id' + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true username: - $ref: '#/components/schemas/username' + type: string + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true status: - $ref: '#/components/schemas/status' + type: string + x-go-type-skip-optional-pointer: true role_names: - $ref: '#/components/schemas/roleNames' + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true joined_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true last_login_time: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true prefs: - $ref: '#/components/schemas/email_preference' + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true avatar_url: - $ref: '#/components/schemas/avatar_url' + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true required: - id - user_id @@ -3609,36 +18420,165 @@ components: - deleted_at teamMembersPage: allOf: - - $ref: '#/components/schemas/recordsPage' + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: data: type: array items: - $ref: '#/components/schemas/teamMembers' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + role_names: + type: array + items: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + joined_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name + - status + - role_names + - joined_at + - updated_at + - last_login_time + - deleted_at usersForNonAdmin: type: object properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true user_id: - $ref: '#/components/schemas/user_id' + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true username: - $ref: '#/components/schemas/username' + type: string + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true prefs: - $ref: '#/components/schemas/email_preference' + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true avatar_url: - $ref: '#/components/schemas/avatar_url' + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true preferences: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true required: - id - user_id @@ -3648,19 +18588,254 @@ components: - last_name usersPageForNonAdmin: allOf: - - $ref: '#/components/schemas/recordsPage' + - discriminator: + propertyName: recordType + properties: + page: + type: integer + x-go-type-skip-optional-pointer: true + page_size: + type: integer + x-go-type-skip-optional-pointer: true + records_total: + type: integer + x-go-type-skip-optional-pointer: true + recordType: + type: string + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true - type: object properties: data: type: array items: - $ref: '#/components/schemas/usersForNonAdmin' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + username: + type: string + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + prefs: + type: object + properties: + welcome_email: + type: boolean + x-go-type-skip-optional-pointer: true + notify_role_change: + type: boolean + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - username + - email + - first_name + - last_name recentActivityPage: properties: recent_activity: type: array items: - $ref: '#/components/schemas/event' + description: Defines model for event_trackers + properties: + id: + description: | + UUID of the event. + 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-name: ID + x-go-type-skip-optional-pointer: true + user_id: + description: > + UUID of the user that initiated the event. In most cases this + would be present, but not always. + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: user_id + json: user_id + x-go-name: UserID + x-go-type-skip-optional-pointer: true + system_id: + description: > + The system from which the request is sourced. In the case of + Meshery Server, + + the ID is meshery_instance_id of Meshery Server (which can be + found in the metadata of`Connections` table). + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: system_id + x-go-name: SystemID + x-go-type-skip-optional-pointer: true + operation_id: + description: > + Each Event will have a OperationID. This field is never NULL, + which is to say an operation can result in series of events, + for eg: Different stages of Pattern Engine / activities of + Workflow engine. Each operation (and sub-operation) will have + a different operation 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: operation_id + x-go-name: OperationID + x-go-type-skip-optional-pointer: true + category: + description: | + Resource name on which the operation is invoked. + type: string + example: pattern + x-oapi-codegen-extra-tags: + db: category + action: + description: | + Action taken on the resource. + type: string + example: deployed + x-oapi-codegen-extra-tags: + db: action + status: + description: | + Status for the event. + type: string + enum: + - read + - unread + x-oapi-codegen-extra-tags: + db: status + acted_upon: + type: string + format: uuid + description: | + UUID of the entity on which the event was performed. + example: 110020-123230-434231-000213 + x-go-type: uuid.UUID + x-oapi-codegen-extra-tags: + db: acted_upon + description: + description: | + A summary/receipt of event that occured. + type: string + example: “Prometheus” pattern deployed in K8s ctx “Meshery Cloud”. + x-oapi-codegen-extra-tags: + db: description + severity: + description: | + A set of seven standard event levels. + type: string + enum: + - emergency + - critical + - alert + - error + - warning + - debug + - informational + - success + example: info + x-oapi-codegen-extra-tags: + db: severity + metadata: + description: > + Contains meaningful information, specific to the type of + event. + + Structure of metadata can be different for different events. + type: object + x-go-type: '[]byte' + x-oapi-codegen-extra-tags: + db: metadata + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true + required: + - id + - system_id + - operation_id + - category + - action + - status + - acted_upon + - description + - severity + - metadata + - created_at + - updated_at accountOverview: properties: k8s_count: @@ -3673,27 +18848,84 @@ components: type: object properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true name: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true description: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true label: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true svg_location: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true created_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true updated_at: - $ref: '#/components/schemas/time' + type: string + format: date-time + x-go-type-skip-optional-pointer: true deleted_at: - $ref: '#/components/schemas/nullTime' + description: SQL null Timestamp to handle null values of time. + x-go-type: sql.NullTime + type: string + x-go-type-skip-optional-pointer: true badges: properties: badges: type: object additionalProperties: - $ref: '#/components/schemas/badge' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + description: + type: string + x-go-type-skip-optional-pointer: true + label: + type: string + x-go-type-skip-optional-pointer: true + svg_location: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + deleted_at: + description: SQL null Timestamp to handle null values of time. + x-go-type: sql.NullTime + type: string + x-go-type-skip-optional-pointer: true total_count: type: integer nullTime: @@ -3725,15 +18957,79 @@ components: type: object properties: url: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true path: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true save: type: boolean application_data: - $ref: '#/components/schemas/mesheryApplication' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + application_file: + description: Application file + type: string + x-go-type-skip-optional-pointer: true + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + source_type: + enum: + - k8s_manifest + - docker_compose + - helm_chart + description: Source type (K8s manifest, Helm chart, Docker compose) + source_content: + type: string + format: byte + description: Source content + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true source_type: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true mesheryCatalogRequest: description: Body for publishing catalog required: true @@ -3742,14 +19038,113 @@ components: schema: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true catalog_type: enum: - pattern - filter description: Catalog type (pattern / filter) catalog_data: - $ref: '#/components/schemas/catalog_data' + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It is + important to note that the level of support may vary + within each class, and you should exercise discretion when + using community-contributed content. Content produced and + fully supported by Meshery maintainers. This represents + the highest level of support and is considered the most + reliable. Content produced by partners and verified by + Meshery maintainers. While not directly maintained by + Meshery, it has undergone a verification process to ensure + quality and compatibility. Content produced and supported + by the respective project or organization responsible for + the specific technology. This class offers a level of + support from the project maintainers themselves. Content + produced and shared by Meshery users. This includes a wide + range of content, such as performance profiles, test + results, filters, patterns, and applications. Community + content may have varying levels of support and + reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. For + designs, a list of one or more models implicated by + components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors to + be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational flow + depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode snapshots of + the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type connectionPayload: content: application/json: @@ -3757,25 +19152,90 @@ components: type: object properties: kind: - $ref: '#/components/schemas/text' description: Kind + type: string + x-go-type-skip-optional-pointer: true type: - $ref: '#/components/schemas/text' description: Connection type + type: string + x-go-type-skip-optional-pointer: true sub_type: - $ref: '#/components/schemas/text' description: Connection subtype + type: string + x-go-type-skip-optional-pointer: true credential_secret: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true metadata: - $ref: '#/components/schemas/map_object' + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true credentialBody: description: Body for user credential required: true content: application/json: schema: - $ref: '#/components/schemas/credential' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + type: string + x-go-type-skip-optional-pointer: true + type: + type: string + secret: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + description: Timestamp when the resource was created. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: created_at + x-go-type-skip-optional-pointer: true + updated_at: + description: Timestamp when the resource was updated. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: updated_at + x-go-type-skip-optional-pointer: true + deleted_at: + description: Timestamp when the resource was deleted. + x-go-type: time.Time + type: string + format: date-time + x-oapi-codegen-extra-tags: + db: deleted_at + x-go-type-skip-optional-pointer: true mesheryFilterRequestBody: required: true content: @@ -3784,20 +19244,122 @@ components: type: object properties: url: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true path: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true save: type: boolean filter_data: - $ref: '#/components/schemas/mesheryFilter' + properties: + id: + description: Connection id + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + filter_file: + type: string + format: byte + description: Filter file + name: + description: Filter Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryPatternResource: description: Body for upserting meshery pattern resource required: true content: application/json: schema: - $ref: '#/components/schemas/mesheryPatternResource' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Name + type: string + x-go-type-skip-optional-pointer: true + namepace: + description: Namespace + type: string + x-go-type-skip-optional-pointer: true + type: + description: Type + type: string + x-go-type-skip-optional-pointer: true + oam_type: + description: OAM type + type: string + x-go-type-skip-optional-pointer: true + deleted: + type: boolean + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryPatternRequestBody: description: Body for upserting meshery pattern required: true @@ -3807,13 +19369,211 @@ components: type: object properties: url: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true path: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true save: type: boolean pattern_data: - $ref: '#/components/schemas/mesheryPattern' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + pattern_file: + description: Pattern file + title: Design Schema + type: object + properties: + name: + type: string + description: Name of the design + schemaVersion: + type: string + description: >- + Specifies the version of the schema to which the + design conforms. + version: + type: string + description: Version of the design + minLength: 1 + maxLength: 50 + services: + description: >- + Map of component IDs/names to their corresponding + component declarations + type: object + additionalProperties: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + apiVersion: + type: string + namespace: + type: string + version: + type: string + model: + type: string + isAnnotation: + type: boolean + labels: + additionalProperties: + type: string + type: object + annotations: + additionalProperties: + type: string + type: object + dependsOn: + items: + type: string + type: array + settings: + type: object + traits: + type: object + required: + - name + - services + name: + description: Pattern Name + type: string + x-go-type-skip-optional-pointer: true + location: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + visibility: + type: string + x-go-type-skip-optional-pointer: true + catalog_data: + type: object + properties: + publishedVersion: + description: >- + Tracks the specific content version that has been made + available in the Catalog. + type: string + content_class: + description: >- + Published content is classifed by its support level. + Content classes help you understand the origin and + expected support level for each piece of content. It + is important to note that the level of support may + vary within each class, and you should exercise + discretion when using community-contributed content. + Content produced and fully supported by Meshery + maintainers. This represents the highest level of + support and is considered the most reliable. Content + produced by partners and verified by Meshery + maintainers. While not directly maintained by Meshery, + it has undergone a verification process to ensure + quality and compatibility. Content produced and + supported by the respective project or organization + responsible for the specific technology. This class + offers a level of support from the project maintainers + themselves. Content produced and shared by Meshery + users. This includes a wide range of content, such as + performance profiles, test results, filters, patterns, + and applications. Community content may have varying + levels of support and reliability. + type: string + enum: + - official + - verified + - community + compatibility: + type: array + title: Model + items: + enum: + - kubernetes + type: string + uniqueItems: true + minItems: 1 + description: >- + One or more models associated with this catalog item. + For designs, a list of one or more models implicated + by components within the design. For models, this is + self-referential. + pattern_caveats: + type: string + title: Caveats and Considerations + description: >- + Specific stipulations to consider and known behaviors + to be aware of when using this design. + pattern_info: + type: string + title: Description + minLength: 1 + description: >- + Purpose of the design along with its intended and + unintended uses. + type: + type: string + title: Type + enum: + - Deployment + - Observability + - Resiliency + - Scaling + - Security + - Traffic-management + - Troubleshooting + - Workloads + default: Deployment + description: >- + Categorization of the type of design or operational + flow depicted in this design. + snapshotURL: + type: array + items: + type: string + format: uri + pattern: ^(https?|http?|oci):// + description: >- + Contains reference to the dark and light mode + snapshots of the design. + required: + - compatibility + - pattern_caveats + - pattern_info + - type + created_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + updated_at: + type: string + format: date-time + x-go-type-skip-optional-pointer: true mesheryPatternDeleteRequestBody: description: Body for deleting meshery pattern required: true @@ -3825,7 +19585,22 @@ components: patterns: type: array items: - $ref: '#/components/schemas/deletePatternModel' + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + name: + description: Pattern name + type: string + x-go-type-skip-optional-pointer: true designShare: description: Body for sharing design required: true @@ -3834,9 +19609,24 @@ components: schema: properties: emails: - $ref: '#/components/schemas/emails' + type: array + items: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true content_type: type: string share: @@ -3854,13 +19644,18 @@ components: schema: properties: first_name: - $ref: '#/components/schemas/text' description: First Name + type: string + x-go-type-skip-optional-pointer: true last_name: - $ref: '#/components/schemas/text' description: Last Name + type: string + x-go-type-skip-optional-pointer: true email: - $ref: '#/components/schemas/email' + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true required: - first_name - last_name @@ -3872,15 +19667,112 @@ components: application/json: schema: oneOf: - - $ref: '#/components/schemas/bulkDelete' - - $ref: '#/components/schemas/empty' + - type: object + properties: + user_ids: + 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-name: ID + x-go-type-skip-optional-pointer: true + user_emails: + type: array + items: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + x-go-type-skip-optional-pointer: true + required: + - user_ids + - user_emails + - description: Body for empty request + type: object + properties: {} + x-go-type-skip-optional-pointer: true user: description: Body for upserting user required: true content: application/json: schema: - $ref: '#/components/schemas/user' + type: object + properties: + id: + type: string + format: uuid + x-go-type: uuid.UUID + x-go-type-import: + path: github.com/gofrs/uuid + x-oapi-codegen-extra-tags: + db: id + json: id + x-go-name: ID + x-go-type-skip-optional-pointer: true + user_id: + type: string + description: user's email or username + x-go-type-skip-optional-pointer: true + provider: + type: string + description: One of (meshery-cloud, github, google) + x-go-type-skip-optional-pointer: true + email: + type: string + format: email + description: email + x-go-type-skip-optional-pointer: true + first_name: + description: First Name + type: string + x-go-type-skip-optional-pointer: true + last_name: + description: Last Name + type: string + x-go-type-skip-optional-pointer: true + avatar_url: + type: string + description: Link for profile picture + x-go-type-skip-optional-pointer: true + status: + type: string + x-go-type-skip-optional-pointer: true + bio: + type: string + x-go-type-skip-optional-pointer: true + preferences: + type: object + additionalProperties: + type: string + x-go-type-skip-optional-pointer: true + accepted_terms_at: + type: string + x-go-type-skip-optional-pointer: true + first_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + last_login_time: + type: string + format: date-time + x-go-type-skip-optional-pointer: true + required: + - id + - user_id + - provider + - email + - first_name + - last_name + - status + - created_at + - updated_at + - last_login_time + - deleted_at parameters: page: name: page @@ -3949,7 +19841,16 @@ components: schema: properties: id: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true status: type: array items: @@ -3960,20 +19861,39 @@ components: description: 'Connection kind (eg: Meshery)' required: true schema: - $ref: '#/components/schemas/text' + type: string + x-go-type-skip-optional-pointer: true connectionId: name: connectionId in: path description: Connection ID schema: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true required: true serverId: name: mesheryServerID in: path description: Meshery server ID schema: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true required: true credentialId: name: credential_id @@ -4038,7 +19958,16 @@ components: in: path description: Result id schema: - $ref: '#/components/schemas/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-name: ID + x-go-type-skip-optional-pointer: true required: true resultID: name: resultID @@ -4079,7 +20008,10 @@ components: name: delete_on description: Defines on whom the delete operation is to be performed schema: - $ref: '#/components/schemas/deleteOn' + type: string + enum: + - self + - bulk filter: name: filter in: query