/**
 * Jellyfin API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 10.8.9
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import { RequestFile } from './models';
/**
* Defines the Jellyfin.Networking.Configuration.NetworkConfiguration.
*/
export class NetworkConfiguration {
    /**
    * Gets or sets a value indicating whether the server should force connections over HTTPS.
    */
    'requireHttps'?: boolean;
    /**
    * Gets or sets the filesystem path of an X.509 certificate to use for SSL.
    */
    'certificatePath'?: string;
    /**
    * Gets or sets the password required to access the X.509 certificate data in the file specified by Jellyfin.Networking.Configuration.NetworkConfiguration.CertificatePath.
    */
    'certificatePassword'?: string;
    /**
    * Gets or sets a value used to specify the URL prefix that your Jellyfin instance can be accessed at.
    */
    'baseUrl'?: string;
    /**
    * Gets or sets the public HTTPS port.
    */
    'publicHttpsPort'?: number;
    /**
    * Gets or sets the HTTP server port number.
    */
    'httpServerPortNumber'?: number;
    /**
    * Gets or sets the HTTPS server port number.
    */
    'httpsPortNumber'?: number;
    /**
    * Gets or sets a value indicating whether to use HTTPS.
    */
    'enableHttps'?: boolean;
    /**
    * Gets or sets the public mapped port.
    */
    'publicPort'?: number;
    /**
    * Gets or sets a value indicating whether the http port should be mapped as part of UPnP automatic port forwarding.
    */
    'uPnPCreateHttpPortMap'?: boolean;
    /**
    * Gets or sets the UDPPortRange.
    */
    'uDPPortRange'?: string;
    /**
    * Gets or sets a value indicating whether gets or sets IPV6 capability.
    */
    'enableIPV6'?: boolean;
    /**
    * Gets or sets a value indicating whether gets or sets IPV4 capability.
    */
    'enableIPV4'?: boolean;
    /**
    * Gets or sets a value indicating whether detailed SSDP logs are sent to the console/log.  \"Emby.Dlna\": \"Debug\" must be set in logging.default.json for this property to have any effect.
    */
    'enableSSDPTracing'?: boolean;
    /**
    * Gets or sets the SSDPTracingFilter  Gets or sets a value indicating whether an IP address is to be used to filter the detailed ssdp logs that are being sent to the console/log.  If the setting \"Emby.Dlna\": \"Debug\" msut be set in logging.default.json for this property to work.
    */
    'sSDPTracingFilter'?: string;
    /**
    * Gets or sets the number of times SSDP UDP messages are sent.
    */
    'uDPSendCount'?: number;
    /**
    * Gets or sets the delay between each groups of SSDP messages (in ms).
    */
    'uDPSendDelay'?: number;
    /**
    * Gets or sets a value indicating whether address names that match Jellyfin.Networking.Configuration.NetworkConfiguration.VirtualInterfaceNames should be Ignore for the purposes of binding.
    */
    'ignoreVirtualInterfaces'?: boolean;
    /**
    * Gets or sets a value indicating the interfaces that should be ignored. The list can be comma separated. .
    */
    'virtualInterfaceNames'?: string;
    /**
    * Gets or sets the time (in seconds) between the pings of SSDP gateway monitor.
    */
    'gatewayMonitorPeriod'?: number;
    /**
    * Gets a value indicating whether multi-socket binding is available.
    */
    'enableMultiSocketBinding'?: boolean;
    /**
    * Gets or sets a value indicating whether all IPv6 interfaces should be treated as on the internal network.  Depending on the address range implemented ULA ranges might not be used.
    */
    'trustAllIP6Interfaces'?: boolean;
    /**
    * Gets or sets the ports that HDHomerun uses.
    */
    'hDHomerunPortRange'?: string;
    /**
    * Gets or sets the PublishedServerUriBySubnet  Gets or sets PublishedServerUri to advertise for specific subnets.
    */
    'publishedServerUriBySubnet'?: Array;
    /**
    * Gets or sets a value indicating whether Autodiscovery tracing is enabled.
    */
    'autoDiscoveryTracing'?: boolean;
    /**
    * Gets or sets a value indicating whether Autodiscovery is enabled.
    */
    'autoDiscovery'?: boolean;
    /**
    * Gets or sets the filter for remote IP connectivity. Used in conjuntion with .
    */
    'remoteIPFilter'?: Array;
    /**
    * Gets or sets a value indicating whether  contains a blacklist or a whitelist. Default is a whitelist.
    */
    'isRemoteIPFilterBlacklist'?: boolean;
    /**
    * Gets or sets a value indicating whether to enable automatic port forwarding.
    */
    'enableUPnP'?: boolean;
    /**
    * Gets or sets a value indicating whether access outside of the LAN is permitted.
    */
    'enableRemoteAccess'?: boolean;
    /**
    * Gets or sets the subnets that are deemed to make up the LAN.
    */
    'localNetworkSubnets'?: Array;
    /**
    * Gets or sets the interface addresses which Jellyfin will bind to. If empty, all interfaces will be used.
    */
    'localNetworkAddresses'?: Array;
    /**
    * Gets or sets the known proxies. If the proxy is a network, it\'s added to the KnownNetworks.
    */
    'knownProxies'?: Array;
    /**
    * Gets or sets a value indicating whether the published server uri is based on information in HTTP requests.
    */
    'enablePublishedServerUriByRequest'?: boolean;
    static discriminator: string | undefined = undefined;
    static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
        {
            "name": "requireHttps",
            "baseName": "RequireHttps",
            "type": "boolean"
        },
        {
            "name": "certificatePath",
            "baseName": "CertificatePath",
            "type": "string"
        },
        {
            "name": "certificatePassword",
            "baseName": "CertificatePassword",
            "type": "string"
        },
        {
            "name": "baseUrl",
            "baseName": "BaseUrl",
            "type": "string"
        },
        {
            "name": "publicHttpsPort",
            "baseName": "PublicHttpsPort",
            "type": "number"
        },
        {
            "name": "httpServerPortNumber",
            "baseName": "HttpServerPortNumber",
            "type": "number"
        },
        {
            "name": "httpsPortNumber",
            "baseName": "HttpsPortNumber",
            "type": "number"
        },
        {
            "name": "enableHttps",
            "baseName": "EnableHttps",
            "type": "boolean"
        },
        {
            "name": "publicPort",
            "baseName": "PublicPort",
            "type": "number"
        },
        {
            "name": "uPnPCreateHttpPortMap",
            "baseName": "UPnPCreateHttpPortMap",
            "type": "boolean"
        },
        {
            "name": "uDPPortRange",
            "baseName": "UDPPortRange",
            "type": "string"
        },
        {
            "name": "enableIPV6",
            "baseName": "EnableIPV6",
            "type": "boolean"
        },
        {
            "name": "enableIPV4",
            "baseName": "EnableIPV4",
            "type": "boolean"
        },
        {
            "name": "enableSSDPTracing",
            "baseName": "EnableSSDPTracing",
            "type": "boolean"
        },
        {
            "name": "sSDPTracingFilter",
            "baseName": "SSDPTracingFilter",
            "type": "string"
        },
        {
            "name": "uDPSendCount",
            "baseName": "UDPSendCount",
            "type": "number"
        },
        {
            "name": "uDPSendDelay",
            "baseName": "UDPSendDelay",
            "type": "number"
        },
        {
            "name": "ignoreVirtualInterfaces",
            "baseName": "IgnoreVirtualInterfaces",
            "type": "boolean"
        },
        {
            "name": "virtualInterfaceNames",
            "baseName": "VirtualInterfaceNames",
            "type": "string"
        },
        {
            "name": "gatewayMonitorPeriod",
            "baseName": "GatewayMonitorPeriod",
            "type": "number"
        },
        {
            "name": "enableMultiSocketBinding",
            "baseName": "EnableMultiSocketBinding",
            "type": "boolean"
        },
        {
            "name": "trustAllIP6Interfaces",
            "baseName": "TrustAllIP6Interfaces",
            "type": "boolean"
        },
        {
            "name": "hDHomerunPortRange",
            "baseName": "HDHomerunPortRange",
            "type": "string"
        },
        {
            "name": "publishedServerUriBySubnet",
            "baseName": "PublishedServerUriBySubnet",
            "type": "Array"
        },
        {
            "name": "autoDiscoveryTracing",
            "baseName": "AutoDiscoveryTracing",
            "type": "boolean"
        },
        {
            "name": "autoDiscovery",
            "baseName": "AutoDiscovery",
            "type": "boolean"
        },
        {
            "name": "remoteIPFilter",
            "baseName": "RemoteIPFilter",
            "type": "Array"
        },
        {
            "name": "isRemoteIPFilterBlacklist",
            "baseName": "IsRemoteIPFilterBlacklist",
            "type": "boolean"
        },
        {
            "name": "enableUPnP",
            "baseName": "EnableUPnP",
            "type": "boolean"
        },
        {
            "name": "enableRemoteAccess",
            "baseName": "EnableRemoteAccess",
            "type": "boolean"
        },
        {
            "name": "localNetworkSubnets",
            "baseName": "LocalNetworkSubnets",
            "type": "Array"
        },
        {
            "name": "localNetworkAddresses",
            "baseName": "LocalNetworkAddresses",
            "type": "Array"
        },
        {
            "name": "knownProxies",
            "baseName": "KnownProxies",
            "type": "Array"
        },
        {
            "name": "enablePublishedServerUriByRequest",
            "baseName": "EnablePublishedServerUriByRequest",
            "type": "boolean"
        }    ];
    static getAttributeTypeMap() {
        return NetworkConfiguration.attributeTypeMap;
    }
}