settings.schema.json

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Intune Hydration Kit Settings",
    "description": "Configuration schema for Intune Hydration Kit settings file",
    "type": "object",
    "required": ["tenant", "authentication", "options", "imports"],
    "properties": {
        "tenant": {
            "type": "object",
            "description": "Target tenant configuration",
            "required": ["tenantId"],
            "properties": {
                "tenantId": {
                    "type": "string",
                    "pattern": "^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$",
                    "description": "Azure AD tenant ID (GUID format)"
                },
                "tenantName": {
                    "type": ["string", "null"],
                    "description": "Tenant name for display purposes (e.g., contoso.onmicrosoft.com)"
                }
            }
        },
        "authentication": {
            "type": "object",
            "description": "Authentication configuration",
            "required": ["mode"],
            "properties": {
                "mode": {
                    "type": "string",
                    "enum": ["interactive", "clientSecret"],
                    "description": "Authentication mode: interactive (browser) or clientSecret (service principal)"
                },
                "clientId": {
                    "type": ["string", "null"],
                    "description": "Application (client) ID for service principal authentication"
                },
                "clientSecret": {
                    "type": ["string", "null"],
                    "description": "Client secret for service principal authentication"
                },
                "environment": {
                    "type": "string",
                    "enum": ["Global", "USGov", "USGovDoD", "Germany", "China"],
                    "default": "Global",
                    "description": "Azure cloud environment"
                }
            }
        },
        "options": {
            "type": "object",
            "description": "Execution options",
            "properties": {
                "dryRun": {
                    "type": "boolean",
                    "default": false,
                    "description": "Run in dry-run mode (no changes made)"
                },
                "create": {
                    "type": "boolean",
                    "default": true,
                    "description": "Enable creation of configurations"
                },
                "delete": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable deletion of kit-created configurations"
                },
                "force": {
                    "type": "boolean",
                    "default": false,
                    "description": "Skip confirmation prompts"
                },
                "verbose": {
                    "type": "boolean",
                    "default": false,
                    "description": "Enable verbose logging output"
                }
            }
        },
        "imports": {
            "type": "object",
            "description": "Resource types to import",
            "properties": {
                "openIntuneBaseline": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import OpenIntuneBaseline policies"
                },
                "complianceTemplates": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import compliance policy templates"
                },
                "appProtection": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import app protection (MAM) policies"
                },
                "notificationTemplates": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import notification templates"
                },
                "enrollmentProfiles": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import enrollment profiles (Autopilot, ESP)"
                },
                "dynamicGroups": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import dynamic Azure AD groups"
                },
                "staticGroups": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import static (assigned) groups and the Autopilot device preparation group"
                },
                "deviceFilters": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import device filters"
                },
                "conditionalAccess": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import Conditional Access starter pack policies"
                },
                "mobileApps": {
                    "type": "boolean",
                    "default": true,
                    "description": "Import mobile apps. Windows apps use bundled WinGet-backed Win32 apps plus selected legacy fallback templates; macOS apps use bundled mobile app templates."
                },
                "cisBaselines": {
                    "type": "boolean",
                    "default": false,
                    "description": "Import CIS Benchmark baseline policies (728+ policies)"
                }
            }
        },
        "platforms": {
            "type": "array",
            "description": "Filter platform-scoped imports by platform. Platform-neutral imports are unaffected during create runs and skipped during platform-scoped delete runs.",
            "items": {
                "type": "string",
                "enum": ["Windows", "macOS", "iOS", "Android", "Linux", "All"]
            },
            "default": ["All"],
            "examples": [
                ["All"],
                ["Windows"],
                ["Windows", "macOS"],
                ["iOS", "Android"]
            ]
        },
        "mobileApps": {
            "type": "object",
            "description": "Windows mobile app import configuration for bundled WinGet-backed Win32 apps.",
            "properties": {
                "presetId": {
                    "type": ["string", "null"],
                    "default": null,
                    "description": "Optional preset ID from Templates/MobileApps/Windows/WinGet/Presets. Leave null to import the full bundled WinGet catalog."
                },
                "templateIds": {
                    "type": "array",
                    "default": [],
                    "description": "Optional bundled WinGet template IDs to import in addition to the selected preset.",
                    "items": {
                        "type": "string"
                    }
                },
                "remediation": {
                    "type": "object",
                    "description": "Proactive remediation generation for the selected WinGet app set.",
                    "properties": {
                        "enabled": {
                            "type": "boolean",
                            "default": true,
                            "description": "Create or update WinGet proactive remediation scripts when mobile apps are included."
                        }
                    }
                }
            }
        },
        "reporting": {
            "type": "object",
            "description": "Reporting configuration",
            "properties": {
                "outputPath": {
                    "type": ["string", "null"],
                    "description": "Output directory for reports"
                },
                "formats": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "enum": ["markdown", "json"]
                    },
                    "default": ["markdown"],
                    "description": "Report formats to generate"
                }
            }
        }
    }
}