resources/Schema-Build.json

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "description": "Project Schema for Build only",
    "properties": {
        "ProjectName": {
            "type": "string"
        },
        "Description": {
            "type": "string"
        },
        "Version": {
            "type": "string"
        },
      "CopyResourcesToModuleRoot": {
            "type": "boolean"
        },
        "BuildRecursiveFolders": {
            "type": "boolean",
            "description": "Default enabled recursive discovery for src/classes, src/private and tests. src/public stays top-level only unless explicitly set to false for top-level-only discovery."
        },
        "SetSourcePath": {
            "type": "boolean",
            "description": "Default enabled source markers: emit '# Source: <relative path>' before each concatenated source file in the generated dist/<Project>/<Project>.psm1."
        },
        "FailOnDuplicateFunctionNames": {
            "type": "boolean",
            "description": "Default enabled validation: fail build when duplicate top-level function names exist in the generated dist/<Project>/<Project>.psm1."
        },
      "Preamble": {
        "type": "array",
        "description": "Optional module-level lines written at the very top of the generated dist/<Project>/<Project>.psm1 before any source markers or other generated content.",
        "items": {
          "type": "string"
        }
      },
        "Manifest": {
            "type": "object",
            "properties": {
                "Author": {
                    "type": "string"
                },
                "PowerShellHostVersion": {
                    "type": "string"
                },
                "GUID": {
                    "type": "string"
                },
                "Tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "ProjectUri": {
                    "type": "string"
                }
            },
            "required": [
                "Author",
                "PowerShellHostVersion",
                "GUID"
            ]
        },
      "Package": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string"
          },
          "Types": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^(?:[Nn][Uu][Gg][Ee][Tt]|[Zz][Ii][Pp]|\\.[Nn][Uu][Pp][Kk][Gg]|\\.[Zz][Ii][Pp])$"
            }
          },
          "Latest": {
            "type": "boolean"
          },
          "OutputDirectory": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "object",
                "properties": {
                  "Path": {
                    "type": "string"
                  },
                  "Clean": {
                    "type": "boolean"
                  }
                }
              }
            ]
          },
          "PackageFileName": {
            "type": "string"
          },
          "AddVersionToFileName": {
            "type": "boolean"
          },
          "FileNamePattern": {
            "type": "string"
          },
          "Authors": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "Description": {
            "type": "string"
          },
          "RepositoryUrl": {
            "type": "string"
          },
          "RawRepositoryUrl": {
            "type": "string"
          },
          "UploadPath": {
            "type": "string"
          },
          "Headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "Auth": {
            "type": "object",
            "properties": {
              "HeaderName": {
                "type": "string"
              },
              "Scheme": {
                "type": "string"
              },
              "Token": {
                "type": "string"
              },
              "TokenEnvironmentVariable": {
                "type": "string"
              }
            }
          },
          "Repositories": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "Name": {
                  "type": "string"
                },
                "Url": {
                  "type": "string"
                },
                "UploadPath": {
                  "type": "string"
                },
                "Headers": {
                  "type": "object",
                  "additionalProperties": {
                    "type": "string"
                  }
                },
                "Auth": {
                  "type": "object",
                  "properties": {
                    "HeaderName": {
                      "type": "string"
                    },
                    "Scheme": {
                      "type": "string"
                    },
                    "Token": {
                      "type": "string"
                    },
                    "TokenEnvironmentVariable": {
                      "type": "string"
                    }
                  }
                }
              },
              "required": [
                "Name",
                "Url"
              ]
            }
          }
        }
        }
    },
    "required": [
        "ProjectName",
        "Description",
        "Version",
        "Manifest"
    ]
}