Classes/Configuration.ps1

class NutanixEnvironmentConfiguration {
    [string]$Name
    # Prism Central serves the v4 API for every registered cluster. Prism Element only exposes the
    # deprecated v1/v2 APIs and is not a supported target.
    [string]$PrismCentralFQDN
    [int]$PrismCentralPort = 9440
    [string]$WindowsCredentialEntry
    [bool]$SkipCertificateCheck
}

class NutanixNexthinkApiConfiguration {
    [string]$HostFQDN
    [string]$LoginFQDN
    [string]$WindowsCredentialEntry
    [int]$RequestBatchSize
    # ISO 8601 duration format (e.g., 'PT1H', 'P1D', 'PT30M')
    [string]$VmCacheExpiration
}

class NutanixLoggingConfiguration {
    [string]$LogLevel
    [int]$LogRetentionDays
}

class NutanixConnectorConfiguration {
    [string]$ScriptRootPath
    [NutanixEnvironmentConfiguration]$EnvironmentConfig
    [NutanixNexthinkApiConfiguration]$NexthinkAPI
    [NutanixLoggingConfiguration]$Logging
}