{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/dofigen/latest.json",
  "title": "Dofigen",
  "description": "Dofigen is a Dockerfile generator using a simplified description in YAML or JSON format",
  "x-lintel": {
    "source": "https://www.schemastore.org/dofigen.json",
    "sourceSha256": "ca44f208ad4fdcf956f76c3f3b0e5abb27e9c29438facf08d90c062746e592c0",
    "fileMatch": [
      "dofigen.yaml",
      "dofigen.json",
      "dofigen.yml",
      "*.dofigen.yaml",
      "*.dofigen.json",
      "*.dofigen.yml"
    ],
    "parsers": [
      "json",
      "yaml"
    ]
  },
  "type": "object",
  "properties": {
    "arg": {
      "anyOf": [
        {
          "$ref": "#/$defs/HashMapPatch_string_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "bind": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecDeepPatch_ParsableStruct_Bind"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "builders": {
      "anyOf": [
        {
          "$ref": "#/$defs/HashMapDeepPatch_string_Stage"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "cache": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecDeepPatch_ParsableStruct_Cache"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "cmd": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecPatch_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "context": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecPatch_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "copy": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecDeepPatch_ParsableStruct_CopyResourcePatch"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "entrypoint": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecPatch_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "env": {
      "anyOf": [
        {
          "$ref": "#/$defs/HashMapPatch_string_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "expose": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecDeepPatch_ParsableStruct_Port"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "extend": {
      "$ref": "#/$defs/OneOrMany_Resource"
    },
    "globalArg": {
      "anyOf": [
        {
          "$ref": "#/$defs/HashMapPatch_string_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "healthcheck": {
      "anyOf": [
        {
          "$ref": "#/$defs/Healthcheck"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "ignore": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecPatch_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "label": {
      "anyOf": [
        {
          "$ref": "#/$defs/NestedMap"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "network": {
      "anyOf": [
        {
          "$ref": "#/$defs/Network"
        },
        {
          "type": "null",
          "nullable": true
        }
      ],
      "default": null
    },
    "root": {
      "anyOf": [
        {
          "$ref": "#/$defs/Run"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "run": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecPatch_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "secret": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecDeepPatch_Secret"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "security": {
      "anyOf": [
        {
          "$ref": "#/$defs/Security"
        },
        {
          "type": "null",
          "nullable": true
        }
      ],
      "default": null
    },
    "shell": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecPatch_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "ssh": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecDeepPatch_Ssh"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "tmpfs": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecDeepPatch_ParsableStruct_TmpFs"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "user": {
      "anyOf": [
        {
          "$ref": "#/$defs/ParsableStruct_User"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "volume": {
      "anyOf": [
        {
          "$ref": "#/$defs/VecPatch_string"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "workdir": {
      "type": [
        "string",
        "null"
      ],
      "default": null,
      "nullable": true
    }
  },
  "anyOf": [
    {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "fromImage": {
              "$ref": "#/$defs/ParsableStruct_ImageName"
            }
          },
          "required": [
            "fromImage"
          ]
        },
        {
          "type": "object",
          "properties": {
            "fromBuilder": {
              "type": "string"
            }
          },
          "required": [
            "fromBuilder"
          ]
        },
        {
          "type": "object",
          "properties": {
            "fromContext": {
              "type": [
                "string",
                "null"
              ],
              "nullable": true
            }
          },
          "required": [
            "fromContext"
          ]
        }
      ]
    },
    {}
  ],
  "$defs": {
    "Add": {
      "title": "Add",
      "type": "object",
      "properties": {
        "checksum": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chmod": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chown": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "files": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_Resource"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "link": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "unpack": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "AddGitRepo": {
      "title": "AddGitRepo",
      "type": "object",
      "properties": {
        "checksum": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chmod": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chown": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "exclude": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "keepGitDir": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "link": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "repo": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "Bind": {
      "title": "Bind",
      "type": "object",
      "properties": {
        "readwrite": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "source": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "fromImage": {
                  "$ref": "#/$defs/ParsableStruct_ImageName"
                }
              },
              "required": [
                "fromImage"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromBuilder": {
                  "type": "string"
                }
              },
              "required": [
                "fromBuilder"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromContext": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "nullable": true
                }
              },
              "required": [
                "fromContext"
              ]
            }
          ]
        },
        {}
      ]
    },
    "Cache": {
      "title": "Cache",
      "type": "object",
      "properties": {
        "chmod": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chown": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "readonly": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "sharing": {
          "anyOf": [
            {
              "$ref": "#/$defs/CacheSharing"
            },
            {
              "type": "null",
              "nullable": true
            }
          ],
          "default": null
        },
        "source": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "fromImage": {
                  "$ref": "#/$defs/ParsableStruct_ImageName"
                }
              },
              "required": [
                "fromImage"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromBuilder": {
                  "type": "string"
                }
              },
              "required": [
                "fromBuilder"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromContext": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "nullable": true
                }
              },
              "required": [
                "fromContext"
              ]
            }
          ]
        },
        {}
      ]
    },
    "CacheSharing": {
      "description": "Represents a cache sharing strategy",
      "type": "string",
      "enum": [
        "shared",
        "private",
        "locked"
      ]
    },
    "Copy": {
      "title": "Copy",
      "type": "object",
      "properties": {
        "chmod": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chown": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "exclude": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "fromBuilder": true,
        "fromContext": true,
        "fromImage": true,
        "link": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "parents": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "paths": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "fromImage": {
                  "$ref": "#/$defs/ParsableStruct_ImageName"
                }
              },
              "required": [
                "fromImage"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromBuilder": {
                  "type": "string"
                }
              },
              "required": [
                "fromBuilder"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromContext": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "nullable": true
                }
              },
              "required": [
                "fromContext"
              ]
            }
          ]
        },
        {}
      ],
      "additionalProperties": false
    },
    "CopyContent": {
      "title": "CopyContent",
      "type": "object",
      "properties": {
        "chmod": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chown": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "content": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "link": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "substitute": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "CopyResourcePatch": {
      "anyOf": [
        {
          "$ref": "#/$defs/Copy"
        },
        {
          "$ref": "#/$defs/CopyContent"
        },
        {
          "$ref": "#/$defs/AddGitRepo"
        },
        {
          "$ref": "#/$defs/Add"
        },
        {
          "$ref": "#/$defs/UnknownPatch"
        }
      ]
    },
    "HashMapDeepPatch_string_Stage": {
      "title": "HashMapDeepPatch<string, Stage>",
      "type": "object",
      "patternProperties": {
        "^.+$": {
          "anyOf": [
            {
              "$ref": "#/$defs/Stage"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        }
      }
    },
    "HashMapPatch_string_string": {
      "title": "HashMapPatch<string, string>",
      "type": "object",
      "patternProperties": {
        "^.+$": {
          "type": [
            "string",
            "null"
          ],
          "nullable": true
        }
      }
    },
    "Healthcheck": {
      "title": "Healthcheck",
      "type": "object",
      "properties": {
        "cmd": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "interval": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "retries": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "maximum": 65535,
          "minimum": 0,
          "nullable": true
        },
        "start": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "timeout": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "ImageName": {
      "title": "ImageName",
      "description": "Represents a Docker image version",
      "type": "object",
      "properties": {
        "digest": true,
        "host": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "path": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "platform": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "port": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "maximum": 65535,
          "minimum": 0,
          "nullable": true
        },
        "tag": true
      },
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "tag": {
                  "type": "string"
                }
              },
              "required": [
                "tag"
              ]
            },
            {
              "type": "object",
              "properties": {
                "digest": {
                  "type": "string"
                }
              },
              "required": [
                "digest"
              ]
            }
          ]
        },
        {}
      ],
      "additionalProperties": false
    },
    "NestedMap": {
      "description": "A multilevel key map",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/NestedMapValue"
      }
    },
    "NestedMapValue": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "$ref": "#/$defs/NestedMap"
        },
        {
          "type": "null",
          "nullable": true
        }
      ]
    },
    "Network": {
      "description": "Represents a network configuration",
      "oneOf": [
        {
          "description": "Run in the default network.",
          "type": "string",
          "const": "default"
        },
        {
          "description": "Run with no network access.",
          "type": "string",
          "const": "none"
        },
        {
          "description": "Run in the host's network environment.",
          "type": "string",
          "const": "host"
        }
      ]
    },
    "OneOrMany_Resource": {
      "title": "OneOrMany<Resource>",
      "oneOf": [
        {
          "$ref": "#/$defs/Resource"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Resource"
          }
        }
      ]
    },
    "ParsableStruct_Bind": {
      "title": "ParsableStruct<Bind>",
      "oneOf": [
        {
          "$ref": "#/$defs/Bind"
        },
        {
          "type": "string"
        }
      ]
    },
    "ParsableStruct_Cache": {
      "title": "ParsableStruct<Cache>",
      "oneOf": [
        {
          "$ref": "#/$defs/Cache"
        },
        {
          "type": "string"
        }
      ]
    },
    "ParsableStruct_CopyResourcePatch": {
      "title": "ParsableStruct<CopyResourcePatch>",
      "oneOf": [
        {
          "$ref": "#/$defs/CopyResourcePatch"
        },
        {
          "type": "string"
        }
      ]
    },
    "ParsableStruct_ImageName": {
      "title": "ParsableStruct<ImageName>",
      "oneOf": [
        {
          "$ref": "#/$defs/ImageName"
        },
        {
          "type": "string"
        }
      ]
    },
    "ParsableStruct_Port": {
      "title": "ParsableStruct<Port>",
      "oneOf": [
        {
          "$ref": "#/$defs/Port"
        },
        {
          "type": "string"
        }
      ]
    },
    "ParsableStruct_TmpFs": {
      "title": "ParsableStruct<TmpFs>",
      "oneOf": [
        {
          "$ref": "#/$defs/TmpFs"
        },
        {
          "type": "string"
        }
      ]
    },
    "ParsableStruct_User": {
      "title": "ParsableStruct<User>",
      "oneOf": [
        {
          "$ref": "#/$defs/User"
        },
        {
          "type": "string"
        }
      ]
    },
    "Port": {
      "title": "Port",
      "type": "object",
      "properties": {
        "port": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "maximum": 65535,
          "minimum": 0,
          "nullable": true
        },
        "protocol": {
          "anyOf": [
            {
              "$ref": "#/$defs/PortProtocol"
            },
            {
              "type": "null",
              "nullable": true
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    },
    "PortProtocol": {
      "description": "Represents a port protocol",
      "type": "string",
      "enum": [
        "tcp",
        "udp"
      ]
    },
    "Resource": {
      "description": "Represents a resource",
      "anyOf": [
        {
          "type": "string",
          "format": "uri"
        },
        {
          "type": "string"
        }
      ]
    },
    "Run": {
      "title": "Run",
      "type": "object",
      "properties": {
        "bind": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_ParsableStruct_Bind"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "cache": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_ParsableStruct_Cache"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "network": {
          "anyOf": [
            {
              "$ref": "#/$defs/Network"
            },
            {
              "type": "null",
              "nullable": true
            }
          ],
          "default": null
        },
        "run": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "secret": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_Secret"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "security": {
          "anyOf": [
            {
              "$ref": "#/$defs/Security"
            },
            {
              "type": "null",
              "nullable": true
            }
          ],
          "default": null
        },
        "shell": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "ssh": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_Ssh"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "tmpfs": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_ParsableStruct_TmpFs"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        }
      }
    },
    "Secret": {
      "title": "Secret",
      "type": "object",
      "properties": {
        "env": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "gid": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "maximum": 65535,
          "minimum": 0,
          "nullable": true
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "mode": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "required": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "uid": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "maximum": 65535,
          "minimum": 0,
          "nullable": true
        }
      }
    },
    "Security": {
      "description": "Represents a security mode",
      "type": "string",
      "enum": [
        "sandbox",
        "insecure"
      ]
    },
    "Ssh": {
      "title": "Ssh",
      "type": "object",
      "properties": {
        "gid": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "maximum": 65535,
          "minimum": 0,
          "nullable": true
        },
        "id": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "mode": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "required": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "uid": {
          "type": [
            "integer",
            "null"
          ],
          "default": null,
          "maximum": 65535,
          "minimum": 0,
          "nullable": true
        }
      }
    },
    "Stage": {
      "title": "Stage",
      "type": "object",
      "properties": {
        "arg": {
          "anyOf": [
            {
              "$ref": "#/$defs/HashMapPatch_string_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "bind": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_ParsableStruct_Bind"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "cache": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_ParsableStruct_Cache"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "copy": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_ParsableStruct_CopyResourcePatch"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "env": {
          "anyOf": [
            {
              "$ref": "#/$defs/HashMapPatch_string_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "label": {
          "anyOf": [
            {
              "$ref": "#/$defs/NestedMap"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "network": {
          "anyOf": [
            {
              "$ref": "#/$defs/Network"
            },
            {
              "type": "null",
              "nullable": true
            }
          ],
          "default": null
        },
        "root": {
          "anyOf": [
            {
              "$ref": "#/$defs/Run"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "run": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "secret": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_Secret"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "security": {
          "anyOf": [
            {
              "$ref": "#/$defs/Security"
            },
            {
              "type": "null",
              "nullable": true
            }
          ],
          "default": null
        },
        "shell": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "ssh": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_Ssh"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "tmpfs": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecDeepPatch_ParsableStruct_TmpFs"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "user": {
          "anyOf": [
            {
              "$ref": "#/$defs/ParsableStruct_User"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "workdir": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "anyOf": [
        {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "fromImage": {
                  "$ref": "#/$defs/ParsableStruct_ImageName"
                }
              },
              "required": [
                "fromImage"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromBuilder": {
                  "type": "string"
                }
              },
              "required": [
                "fromBuilder"
              ]
            },
            {
              "type": "object",
              "properties": {
                "fromContext": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "nullable": true
                }
              },
              "required": [
                "fromContext"
              ]
            }
          ]
        },
        {}
      ]
    },
    "TmpFs": {
      "title": "TmpFs",
      "type": "object",
      "properties": {
        "size": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      }
    },
    "UnknownPatch": {
      "title": "CopyOptions",
      "type": "object",
      "properties": {
        "chmod": {
          "type": [
            "string",
            "number",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "chown": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "exclude": {
          "anyOf": [
            {
              "$ref": "#/$defs/VecPatch_string"
            },
            {
              "type": "null",
              "nullable": true
            }
          ]
        },
        "link": {
          "type": [
            "boolean",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "target": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      }
    },
    "User": {
      "title": "User",
      "type": "object",
      "properties": {
        "group": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        },
        "user": {
          "type": [
            "string",
            "null"
          ],
          "default": null,
          "nullable": true
        }
      },
      "additionalProperties": false
    },
    "VecDeepPatch_ParsableStruct_Bind": {
      "title": "VecDeepPatch<ParsableStruct_Bind>",
      "oneOf": [
        {
          "$ref": "#/$defs/ParsableStruct_Bind"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ParsableStruct_Bind"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Bind"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Bind"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/ParsableStruct_Bind"
            },
            "^\\d+<$": {
              "$ref": "#/$defs/ParsableStruct_Bind"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Bind"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Bind"
              }
            }
          }
        }
      ]
    },
    "VecDeepPatch_ParsableStruct_Cache": {
      "title": "VecDeepPatch<ParsableStruct_Cache>",
      "oneOf": [
        {
          "$ref": "#/$defs/ParsableStruct_Cache"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ParsableStruct_Cache"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Cache"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Cache"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/ParsableStruct_Cache"
            },
            "^\\d+<$": {
              "$ref": "#/$defs/ParsableStruct_Cache"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Cache"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Cache"
              }
            }
          }
        }
      ]
    },
    "VecDeepPatch_ParsableStruct_CopyResourcePatch": {
      "title": "VecDeepPatch<ParsableStruct_CopyResourcePatch>",
      "oneOf": [
        {
          "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
            },
            "^\\d+<$": {
              "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_CopyResourcePatch"
              }
            }
          }
        }
      ]
    },
    "VecDeepPatch_ParsableStruct_Port": {
      "title": "VecDeepPatch<ParsableStruct_Port>",
      "oneOf": [
        {
          "$ref": "#/$defs/ParsableStruct_Port"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ParsableStruct_Port"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Port"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Port"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/ParsableStruct_Port"
            },
            "^\\d+<$": {
              "$ref": "#/$defs/ParsableStruct_Port"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Port"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_Port"
              }
            }
          }
        }
      ]
    },
    "VecDeepPatch_ParsableStruct_TmpFs": {
      "title": "VecDeepPatch<ParsableStruct_TmpFs>",
      "oneOf": [
        {
          "$ref": "#/$defs/ParsableStruct_TmpFs"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ParsableStruct_TmpFs"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_TmpFs"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_TmpFs"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/ParsableStruct_TmpFs"
            },
            "^\\d+<$": {
              "$ref": "#/$defs/ParsableStruct_TmpFs"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_TmpFs"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/ParsableStruct_TmpFs"
              }
            }
          }
        }
      ]
    },
    "VecDeepPatch_Secret": {
      "title": "VecDeepPatch<Secret>",
      "oneOf": [
        {
          "$ref": "#/$defs/Secret"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Secret"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Secret"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Secret"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/Secret"
            },
            "^\\d+<$": {
              "$ref": "#/$defs/Secret"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Secret"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Secret"
              }
            }
          }
        }
      ]
    },
    "VecDeepPatch_Ssh": {
      "title": "VecDeepPatch<Ssh>",
      "oneOf": [
        {
          "$ref": "#/$defs/Ssh"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Ssh"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Ssh"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Ssh"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/Ssh"
            },
            "^\\d+<$": {
              "$ref": "#/$defs/Ssh"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Ssh"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Ssh"
              }
            }
          }
        }
      ]
    },
    "VecPatch_Resource": {
      "title": "VecPatch<Resource>",
      "oneOf": [
        {
          "$ref": "#/$defs/Resource"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Resource"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Resource"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Resource"
              }
            },
            "^\\d+$": {
              "$ref": "#/$defs/Resource"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Resource"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "$ref": "#/$defs/Resource"
              }
            }
          }
        }
      ]
    },
    "VecPatch_string": {
      "title": "VecPatch<string>",
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "object",
          "patternProperties": {
            "^\\+$": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "^\\+\\d+$": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "^\\d+$": {
              "type": "string"
            },
            "^\\d+\\+$": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "_": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      ]
    }
  }
}
