# WARNING: Please don't edit this file. It was generated by Python/WinRT v1.0.0-beta.10

import enum

import winsdk.system

_ns_module = winsdk.system._import_ns_module("Windows.Networking.Sockets")

try:
    import winsdk.windows.applicationmodel.background
except ImportError:
    pass

try:
    import winsdk.windows.foundation
except ImportError:
    pass

try:
    import winsdk.windows.foundation.collections
except ImportError:
    pass

try:
    import winsdk.windows.networking
except ImportError:
    pass

try:
    import winsdk.windows.networking.connectivity
except ImportError:
    pass

try:
    import winsdk.windows.security.credentials
except ImportError:
    pass

try:
    import winsdk.windows.security.cryptography.certificates
except ImportError:
    pass

try:
    import winsdk.windows.storage.streams
except ImportError:
    pass

try:
    import winsdk.windows.web
except ImportError:
    pass

class ControlChannelTriggerResetReason(enum.IntEnum):
    FAST_USER_SWITCHED = 0
    LOW_POWER_EXIT = 1
    QUIET_HOURS_EXIT = 2
    APPLICATION_RESTART = 3

class ControlChannelTriggerResourceType(enum.IntEnum):
    REQUEST_SOFTWARE_SLOT = 0
    REQUEST_HARDWARE_SLOT = 1

class ControlChannelTriggerStatus(enum.IntEnum):
    HARDWARE_SLOT_REQUESTED = 0
    SOFTWARE_SLOT_ALLOCATED = 1
    HARDWARE_SLOT_ALLOCATED = 2
    POLICY_ERROR = 3
    SYSTEM_ERROR = 4
    TRANSPORT_DISCONNECTED = 5
    SERVICE_UNAVAILABLE = 6

class MessageWebSocketReceiveMode(enum.IntEnum):
    FULL_MESSAGE = 0
    PARTIAL_MESSAGE = 1

class SocketActivityConnectedStandbyAction(enum.IntEnum):
    DO_NOT_WAKE = 0
    WAKE = 1

class SocketActivityKind(enum.IntEnum):
    NONE = 0
    STREAM_SOCKET_LISTENER = 1
    DATAGRAM_SOCKET = 2
    STREAM_SOCKET = 3

class SocketActivityTriggerReason(enum.IntEnum):
    NONE = 0
    SOCKET_ACTIVITY = 1
    CONNECTION_ACCEPTED = 2
    KEEP_ALIVE_TIMER_EXPIRED = 3
    SOCKET_CLOSED = 4

class SocketErrorStatus(enum.IntEnum):
    UNKNOWN = 0
    OPERATION_ABORTED = 1
    HTTP_INVALID_SERVER_RESPONSE = 2
    CONNECTION_TIMED_OUT = 3
    ADDRESS_FAMILY_NOT_SUPPORTED = 4
    SOCKET_TYPE_NOT_SUPPORTED = 5
    HOST_NOT_FOUND = 6
    NO_DATA_RECORD_OF_REQUESTED_TYPE = 7
    NON_AUTHORITATIVE_HOST_NOT_FOUND = 8
    CLASS_TYPE_NOT_FOUND = 9
    ADDRESS_ALREADY_IN_USE = 10
    CANNOT_ASSIGN_REQUESTED_ADDRESS = 11
    CONNECTION_REFUSED = 12
    NETWORK_IS_UNREACHABLE = 13
    UNREACHABLE_HOST = 14
    NETWORK_IS_DOWN = 15
    NETWORK_DROPPED_CONNECTION_ON_RESET = 16
    SOFTWARE_CAUSED_CONNECTION_ABORT = 17
    CONNECTION_RESET_BY_PEER = 18
    HOST_IS_DOWN = 19
    NO_ADDRESSES_FOUND = 20
    TOO_MANY_OPEN_FILES = 21
    MESSAGE_TOO_LONG = 22
    CERTIFICATE_EXPIRED = 23
    CERTIFICATE_UNTRUSTED_ROOT = 24
    CERTIFICATE_COMMON_NAME_IS_INCORRECT = 25
    CERTIFICATE_WRONG_USAGE = 26
    CERTIFICATE_REVOKED = 27
    CERTIFICATE_NO_REVOCATION_CHECK = 28
    CERTIFICATE_REVOCATION_SERVER_OFFLINE = 29
    CERTIFICATE_IS_INVALID = 30

class SocketMessageType(enum.IntEnum):
    BINARY = 0
    UTF8 = 1

class SocketProtectionLevel(enum.IntEnum):
    PLAIN_SOCKET = 0
    SSL = 1
    SSL_ALLOW_NULL_ENCRYPTION = 2
    BLUETOOTH_ENCRYPTION_ALLOW_NULL_AUTHENTICATION = 3
    BLUETOOTH_ENCRYPTION_WITH_AUTHENTICATION = 4
    SSL3_ALLOW_WEAK_ENCRYPTION = 5
    TLS10 = 6
    TLS11 = 7
    TLS12 = 8
    UNSPECIFIED = 9

class SocketQualityOfService(enum.IntEnum):
    NORMAL = 0
    LOW_LATENCY = 1

class SocketSslErrorSeverity(enum.IntEnum):
    NONE = 0
    IGNORABLE = 1
    FATAL = 2

_ns_module._register_ControlChannelTriggerResetReason(ControlChannelTriggerResetReason)
_ns_module._register_ControlChannelTriggerResourceType(ControlChannelTriggerResourceType)
_ns_module._register_ControlChannelTriggerStatus(ControlChannelTriggerStatus)
_ns_module._register_MessageWebSocketReceiveMode(MessageWebSocketReceiveMode)
_ns_module._register_SocketActivityConnectedStandbyAction(SocketActivityConnectedStandbyAction)
_ns_module._register_SocketActivityKind(SocketActivityKind)
_ns_module._register_SocketActivityTriggerReason(SocketActivityTriggerReason)
_ns_module._register_SocketErrorStatus(SocketErrorStatus)
_ns_module._register_SocketMessageType(SocketMessageType)
_ns_module._register_SocketProtectionLevel(SocketProtectionLevel)
_ns_module._register_SocketQualityOfService(SocketQualityOfService)
_ns_module._register_SocketSslErrorSeverity(SocketSslErrorSeverity)

BandwidthStatistics = _ns_module.BandwidthStatistics
RoundTripTimeStatistics = _ns_module.RoundTripTimeStatistics
ControlChannelTrigger = _ns_module.ControlChannelTrigger
DatagramSocket = _ns_module.DatagramSocket
DatagramSocketControl = _ns_module.DatagramSocketControl
DatagramSocketInformation = _ns_module.DatagramSocketInformation
DatagramSocketMessageReceivedEventArgs = _ns_module.DatagramSocketMessageReceivedEventArgs
MessageWebSocket = _ns_module.MessageWebSocket
MessageWebSocketControl = _ns_module.MessageWebSocketControl
MessageWebSocketInformation = _ns_module.MessageWebSocketInformation
MessageWebSocketMessageReceivedEventArgs = _ns_module.MessageWebSocketMessageReceivedEventArgs
ServerMessageWebSocket = _ns_module.ServerMessageWebSocket
ServerMessageWebSocketControl = _ns_module.ServerMessageWebSocketControl
ServerMessageWebSocketInformation = _ns_module.ServerMessageWebSocketInformation
ServerStreamWebSocket = _ns_module.ServerStreamWebSocket
ServerStreamWebSocketInformation = _ns_module.ServerStreamWebSocketInformation
SocketActivityContext = _ns_module.SocketActivityContext
SocketActivityInformation = _ns_module.SocketActivityInformation
SocketActivityTriggerDetails = _ns_module.SocketActivityTriggerDetails
SocketError = _ns_module.SocketError
StreamSocket = _ns_module.StreamSocket
StreamSocketControl = _ns_module.StreamSocketControl
StreamSocketInformation = _ns_module.StreamSocketInformation
StreamSocketListener = _ns_module.StreamSocketListener
StreamSocketListenerConnectionReceivedEventArgs = _ns_module.StreamSocketListenerConnectionReceivedEventArgs
StreamSocketListenerControl = _ns_module.StreamSocketListenerControl
StreamSocketListenerInformation = _ns_module.StreamSocketListenerInformation
StreamWebSocket = _ns_module.StreamWebSocket
StreamWebSocketControl = _ns_module.StreamWebSocketControl
StreamWebSocketInformation = _ns_module.StreamWebSocketInformation
WebSocketClosedEventArgs = _ns_module.WebSocketClosedEventArgs
WebSocketError = _ns_module.WebSocketError
WebSocketKeepAlive = _ns_module.WebSocketKeepAlive
WebSocketServerCustomValidationRequestedEventArgs = _ns_module.WebSocketServerCustomValidationRequestedEventArgs
IControlChannelTriggerEventDetails = _ns_module.IControlChannelTriggerEventDetails
IControlChannelTriggerResetEventDetails = _ns_module.IControlChannelTriggerResetEventDetails
IWebSocket = _ns_module.IWebSocket
IWebSocketControl = _ns_module.IWebSocketControl
IWebSocketControl2 = _ns_module.IWebSocketControl2
IWebSocketInformation = _ns_module.IWebSocketInformation
IWebSocketInformation2 = _ns_module.IWebSocketInformation2
