{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/podman-desktop-extension/latest.json",
  "title": "Podman Desktop Extension Manifest",
  "description": "Schema for Podman Desktop extension package.json files",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/podman-desktop/podman-desktop/main/schemas/extension-schema.json",
    "sourceSha256": "6c3e0a9c60263f4275751ab4878a0fc8f8715870594d9b114b76b432a5970768"
  },
  "allOf": [
    {
      "$ref": "https://catalog.lintel.tools/schemas/schemastore/podman-desktop-extension/_shared/latest--package.json"
    },
    {
      "$schema": "http://json-schema.org/draft-07/schema",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "displayName": {
          "type": "string"
        },
        "version": {
          "type": "string"
        },
        "publisher": {
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "main": {
          "type": "string"
        },
        "icon": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {
                "light": {
                  "type": "string"
                },
                "dark": {
                  "type": "string"
                }
              },
              "required": [
                "light",
                "dark"
              ],
              "additionalProperties": false
            }
          ]
        },
        "extensionDependencies": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "extensionPack": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "engines": {
          "type": "object",
          "properties": {
            "podman-desktop": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "contributes": {
          "type": "object",
          "properties": {
            "configuration": {
              "type": "object",
              "properties": {
                "type": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  ]
                },
                "title": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "properties": {
                  "type": "object",
                  "propertyNames": {
                    "type": "string"
                  },
                  "additionalProperties": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "type": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "markdown",
                              "string",
                              "number",
                              "integer",
                              "boolean",
                              "null",
                              "array",
                              "object"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "markdown",
                                "string",
                                "number",
                                "integer",
                                "boolean",
                                "null",
                                "array",
                                "object"
                              ]
                            }
                          }
                        ]
                      },
                      "default": {},
                      "group": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "placeholder": {
                        "type": "string"
                      },
                      "markdownDescription": {
                        "type": "string"
                      },
                      "minimum": {
                        "type": "number"
                      },
                      "maximum": {
                        "anyOf": [
                          {
                            "type": "number"
                          },
                          {
                            "type": "string"
                          }
                        ]
                      },
                      "format": {
                        "type": "string"
                      },
                      "step": {
                        "type": "number"
                      },
                      "scope": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "DEFAULT",
                              "ContainerConnection",
                              "KubernetesConnection",
                              "VmConnection",
                              "ContainerProviderConnectionFactory",
                              "KubernetesProviderConnectionFactory",
                              "VmProviderConnectionFactory",
                              "DockerCompatibility",
                              "Onboarding"
                            ]
                          },
                          {
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "DEFAULT",
                                "ContainerConnection",
                                "KubernetesConnection",
                                "VmConnection",
                                "ContainerProviderConnectionFactory",
                                "KubernetesProviderConnectionFactory",
                                "VmProviderConnectionFactory",
                                "DockerCompatibility",
                                "Onboarding"
                              ]
                            }
                          }
                        ]
                      },
                      "readonly": {
                        "type": "boolean"
                      },
                      "hidden": {
                        "type": "boolean"
                      },
                      "enum": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "when": {
                        "type": "string"
                      },
                      "experimental": {
                        "type": "object",
                        "properties": {
                          "githubDiscussionLink": {
                            "type": "string"
                          },
                          "image": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "scope": {
                  "type": "string",
                  "enum": [
                    "DEFAULT",
                    "ContainerConnection",
                    "KubernetesConnection",
                    "VmConnection",
                    "ContainerProviderConnectionFactory",
                    "KubernetesProviderConnectionFactory",
                    "VmProviderConnectionFactory",
                    "DockerCompatibility",
                    "Onboarding"
                  ]
                },
                "extension": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "title"
              ],
              "additionalProperties": false
            },
            "commands": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "command": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "category": {
                    "type": "string"
                  },
                  "description": {
                    "type": "string"
                  },
                  "icon": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "object",
                        "properties": {
                          "light": {
                            "type": "string"
                          },
                          "dark": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "light",
                          "dark"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "keybinding": {
                    "type": "string"
                  },
                  "enablement": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "menus": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "command": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "when": {
                      "type": "string"
                    },
                    "disabled": {
                      "type": "string"
                    },
                    "icon": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "command",
                    "title"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "icons": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "object",
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "default": {
                    "type": "object",
                    "properties": {
                      "fontPath": {
                        "type": "string"
                      },
                      "fontCharacter": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "fontCharacter"
                    ],
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            },
            "themes": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "parent": {
                    "type": "string"
                  },
                  "colors": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "id",
                  "name",
                  "parent",
                  "colors"
                ],
                "additionalProperties": false
              }
            },
            "views": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "when": {
                          "type": "string"
                        },
                        "icon": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "icon"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "when": {
                          "type": "string"
                        },
                        "badge": {
                          "type": "object",
                          "properties": {
                            "label": {
                              "type": "string"
                            },
                            "color": {
                              "anyOf": [
                                {
                                  "type": "string"
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "light": {
                                      "type": "string"
                                    },
                                    "dark": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "light",
                                    "dark"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            }
                          },
                          "required": [
                            "label"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "badge"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              }
            },
            "onboarding": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string"
                },
                "priority": {
                  "type": "number"
                },
                "description": {
                  "type": "string"
                },
                "media": {
                  "type": "object",
                  "properties": {
                    "path": {
                      "type": "string"
                    },
                    "altText": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "path",
                    "altText"
                  ],
                  "additionalProperties": false
                },
                "steps": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "media": {
                        "type": "object",
                        "properties": {
                          "path": {
                            "type": "string"
                          },
                          "altText": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "path",
                          "altText"
                        ],
                        "additionalProperties": false
                      },
                      "command": {
                        "type": "string"
                      },
                      "completionEvents": {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      "content": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "value": {
                                "type": "string"
                              },
                              "highlight": {
                                "type": "boolean"
                              },
                              "when": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "value"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "component": {
                        "type": "string",
                        "enum": [
                          "createContainerProviderConnection",
                          "createKubernetesProviderConnection"
                        ]
                      },
                      "when": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "completed",
                          "failed",
                          "skipped"
                        ]
                      },
                      "state": {
                        "type": "string",
                        "enum": [
                          "completed",
                          "failed"
                        ]
                      }
                    },
                    "required": [
                      "id",
                      "title"
                    ],
                    "additionalProperties": false
                  }
                },
                "enablement": {
                  "type": "string"
                }
              },
              "required": [
                "title",
                "steps",
                "enablement"
              ],
              "additionalProperties": false
            },
            "features": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        }
      },
      "required": [
        "name",
        "displayName",
        "version",
        "publisher",
        "description"
      ],
      "additionalProperties": {}
    }
  ]
}
