{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$defs": { "documentationSpecification": { "type": "object", "properties": { "fileNameStem": { "type": "string" }, "title": { "type": "string" }, "markdownAddToc": { "type": "boolean" }, "markdownAdoWiki": { "type": "boolean" }, "markdownAdoWikiConfig": { "oneOf": [ { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "adoOrganization": { "type": "string" }, "adoProject": { "type": "string" }, "adoWiki": { "type": "string" } }, "required": [ "adoOrganization", "adoProject", "adoWiki" ] } }, { "type": "object", "properties": { "adoOrganization": { "type": "string" }, "adoProject": { "type": "string" }, "adoWiki": { "type": "string" } }, "required": [ "adoOrganization", "adoProject", "adoWiki" ] } ] }, "markdownNoEmbeddedHtml": { "type": "boolean" }, "markdownIncludeComplianceGroupNames": { "type": "boolean" }, "markdownSuppressParameterSection": { "type": "boolean" }, "markdownMaxParameterLength": { "type": "integer" } }, "required": [ "fileNameStem", "title" ] } }, "type": "object", "properties": { "globalDocumentationSpecifications": { "type": "object", "properties": { "fileNameStem": { "type": "string", "description": "Optional default file name stem used when documentAssignments omits documentationSpecifications." }, "title": { "type": "string", "description": "Optional default title used when documentAssignments omits documentationSpecifications." }, "markdownAddToc": { "type": "boolean" }, "markdownAdoWiki": { "type": "boolean" }, "markdownAdoWikiConfig": { "oneOf": [ { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "adoOrganization": { "type": "string" }, "adoProject": { "type": "string" }, "adoWiki": { "type": "string" } }, "required": [ "adoOrganization", "adoProject", "adoWiki" ] } }, { "type": "object", "properties": { "adoOrganization": { "type": "string" }, "adoProject": { "type": "string" }, "adoWiki": { "type": "string" } }, "required": [ "adoOrganization", "adoProject", "adoWiki" ] } ] }, "markdownNoEmbeddedHtml": { "type": "boolean" }, "markdownIncludeComplianceGroupNames": { "type": "boolean" }, "markdownSuppressParameterSection": { "type": "boolean" }, "markdownMaxParameterLength": { "type": "integer" } } }, "documentAssignments": { "type": "object", "properties": { "environmentCategories": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "pacEnvironment": { "type": "string" }, "environmentCategory": { "type": "string" }, "scopes": { "type": "array", "minItems": 0, "items": { "type": "string" } }, "representativeAssignments": { "type": "array", "minItems": 0, "items": { "type": "object", "properties": { "shortName": { "type": "string" }, "id": { "type": "string" } }, "required": [ "shortName", "id" ] } }, "documentationSpecifications": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/documentationSpecification" } } }, "required": [ "pacEnvironment", "environmentCategory" ] } }, "documentAllAssignments": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "enabled": { "type": "boolean" }, "pacEnvironment": { "type": "string" }, "fileNameStemPrefix": { "type": "string", "description": "Optional prefix added to generated documentation fileNameStem for documentAllAssignments outputs." }, "skipPolicyAssignments": { "type": "array", "minItems": 0, "items": { "type": "string" } }, "skipPolicyDefinitions": { "type": "array", "minItems": 0, "items": { "type": "string" } }, "overrideEnvironmentCategory": { "type": "object", "minItems": 0, "properties": { "*": { "type": "array", "maxItems": 0, "items": { "type": "string" } } } }, "documentationSpecifications": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/documentationSpecification" } } }, "required": [ "pacEnvironment" ] } }, "documentationSpecifications": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/documentationSpecification" } } }, "anyOf": [ { "required": [ "environmentCategories" ] }, { "required": [ "documentAllAssignments" ] } ] }, "documentPolicySets": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "pacEnvironment": { "type": "string" }, "fileNameStem": { "type": "string" }, "title": { "type": "string" }, "policySets": { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "shortName": { "type": "string" }, "id": { "type": "string", "description": "The name of the policy set. This is used for built-in policy sets." }, "name": { "type": "string", "description": "The name of the policy set. This is used for custom policy sets." } }, "oneOf": [ { "required": [ "shortName", "id" ] }, { "required": [ "shortName", "name" ] } ] } }, "environmentColumnsInCsv": { "type": "array", "minItems": 1, "items": { "type": "string" } }, "markdownAddToc": { "type": "boolean" }, "markdownAdoWiki": { "type": "boolean" }, "markdownAdoWikiConfig": { "oneOf": [ { "type": "array", "minItems": 1, "items": { "type": "object", "properties": { "adoOrganization": { "type": "string" }, "adoProject": { "type": "string" }, "adoWiki": { "type": "string" } }, "required": [ "adoOrganization", "adoProject", "adoWiki" ] } }, { "type": "object", "properties": { "adoOrganization": { "type": "string" }, "adoProject": { "type": "string" }, "adoWiki": { "type": "string" } }, "required": [ "adoOrganization", "adoProject", "adoWiki" ] } ] }, "markdownNoEmbeddedHtml": { "type": "boolean" }, "markdownIncludeComplianceGroupNames": { "type": "boolean" }, "markdownSuppressParameterSection": { "type": "boolean" }, "markdownMaxParameterLength": { "type": "integer" } }, "required": [ "pacEnvironment", "fileNameStem", "title", "policySets", "environmentColumnsInCsv" ] } } }, "anyOf": [ { "required": [ "documentAssignments" ] }, { "required": [ "documentPolicySets" ] } ], "allOf": [ { "if": { "required": ["documentAssignments"] }, "then": { "anyOf": [ { "required": ["globalDocumentationSpecifications"] }, { "properties": { "documentAssignments": { "anyOf": [ { "properties": { "environmentCategories": { "type": "array", "contains": { "type": "object", "required": ["documentationSpecifications"] } } } }, { "properties": { "documentAllAssignments": { "type": "array", "contains": { "type": "object", "required": ["documentationSpecifications"] } } } } ] } } } ] } } ] }