using System.Text.Json.Serialization;

namespace ServerMonitorManager.Core;

[JsonSourceGenerationOptions(PropertyNameCaseInsensitive = true)]
[JsonSerializable(typeof(EnrollmentRequest))]
[JsonSerializable(typeof(EnrollmentResponse))]
[JsonSerializable(typeof(AgentHeartbeat))]
[JsonSerializable(typeof(AgentHeartbeat[]))]
[JsonSerializable(typeof(AgentHeartbeatResponse))]
[JsonSerializable(typeof(AgentSummary[]))]
[JsonSerializable(typeof(CertificateReenrollmentRequest))]
[JsonSerializable(typeof(CertificateReenrollmentTicket))]
[JsonSerializable(typeof(CertificateStatusEvent))]
[JsonSerializable(typeof(CertificateRenewalRequest))]
[JsonSerializable(typeof(CertificateRenewalResponse))]
[JsonSerializable(typeof(DeviceEnrollmentRequest))]
[JsonSerializable(typeof(DeviceEnrollmentResponse))]
[JsonSerializable(typeof(AutomationTokenCreateRequest))]
[JsonSerializable(typeof(AutomationTokenResponse))]
[JsonSerializable(typeof(AutomationEnrollmentRequest))]
[JsonSerializable(typeof(AutomationEnrollmentResponse))]
[JsonSerializable(typeof(AutomationScope))]
[JsonSerializable(typeof(AutomationLinkGrant[]))]
[JsonSerializable(typeof(LinkPolicyCreateRequest))]
[JsonSerializable(typeof(LinkPolicyDisableRequest))]
[JsonSerializable(typeof(LinkPolicy))]
[JsonSerializable(typeof(LinkPolicy[]))]
[JsonSerializable(typeof(ControlEvent))]
[JsonSerializable(typeof(ControlError))]
[JsonSerializable(typeof(ProvisioningJobCreateRequest))]
[JsonSerializable(typeof(ProvisioningJobCommandRequest))]
[JsonSerializable(typeof(ProvisioningJobProgressRequest))]
[JsonSerializable(typeof(ProvisioningHelperRequest))]
[JsonSerializable(typeof(ProvisioningHelperResponse))]
[JsonSerializable(typeof(ProvisioningPreflightResult))]
[JsonSerializable(typeof(ProvisioningPreflightReportRequest))]
[JsonSerializable(typeof(NodePreflightFacts))]
[JsonSerializable(typeof(PreflightDesiredRequirements))]
[JsonSerializable(typeof(PreflightDesiredStateUpdateRequest))]
[JsonSerializable(typeof(NodePreflightDesiredState))]
[JsonSerializable(typeof(PreflightDriftAssessment))]
[JsonSerializable(typeof(SystemBaseInstallParameters))]
[JsonSerializable(typeof(SystemPackageGroup))]
[JsonSerializable(typeof(SystemPackageGroup[]))]
[JsonSerializable(typeof(SystemBaseInstallCatalog))]
[JsonSerializable(typeof(SystemBaseInstallPlan))]
[JsonSerializable(typeof(SystemBaseInstallPlanReportRequest))]
[JsonSerializable(typeof(ProvisioningBaseInstallPlanRecord))]
[JsonSerializable(typeof(ProvisioningExecutionGrant))]
[JsonSerializable(typeof(ProvisioningExecutionGrantRequest))]
[JsonSerializable(typeof(ProvisioningBaseInstallExecutionAuthorization))]
[JsonSerializable(typeof(ProvisioningBaseInstallExecutionResult))]
[JsonSerializable(typeof(ProvisioningTimezoneRollbackRecord))]
[JsonSerializable(typeof(ProvisioningExecutionConsumptionRecord))]
[JsonSerializable(typeof(ProvisioningJob))]
[JsonSerializable(typeof(ProvisioningJob[]))]
[JsonSerializable(typeof(ProvisioningEvent))]
[JsonSerializable(typeof(ProvisioningEvent[]))]
[JsonSerializable(typeof(NodeEnrollmentCodeResponse))]
[JsonSerializable(typeof(NodeEnrollmentCodeIssuedDetails))]
[JsonSerializable(typeof(PasswordLoginRequest))]
[JsonSerializable(typeof(PasswordLoginResponse))]
[JsonSerializable(typeof(PasswordLoginStatusResponse))]
public sealed partial class SmmJsonContext : JsonSerializerContext;
