# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------

from enum import Enum
from azure.core import CaseInsensitiveEnumMeta


class AdditionalWorkspaceDataType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Data types sent to workspace."""

    ALERTS = "Alerts"
    RAW_EVENTS = "RawEvents"


class AdditionalWorkspaceType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Workspace type."""

    SENTINEL = "Sentinel"


class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of identity that created the resource."""

    USER = "User"
    APPLICATION = "Application"
    MANAGED_IDENTITY = "ManagedIdentity"
    KEY = "Key"


class DataSource(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """DataSource."""

    TWIN_DATA = "TwinData"
    """Devices twin data"""


class ExportData(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """ExportData."""

    RAW_EVENTS = "RawEvents"
    """Agent raw events"""


class RecommendationConfigStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Recommendation status. When the recommendation status is disabled recommendations are not
    generated.
    """

    DISABLED = "Disabled"
    ENABLED = "Enabled"


class RecommendationType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The type of IoT Security recommendation."""

    IO_T_ACRAUTHENTICATION = "IoT_ACRAuthentication"
    """Authentication schema used for pull an edge module from an ACR repository does not use Service
    #: Principal Authentication."""
    IO_T_AGENT_SENDS_UNUTILIZED_MESSAGES = "IoT_AgentSendsUnutilizedMessages"
    """IoT agent message size capacity is currently underutilized, causing an increase in the number
    #: of sent messages. Adjust message intervals for better utilization."""
    IO_T_BASELINE = "IoT_Baseline"
    """Identified security related system configuration issues."""
    IO_T_EDGE_HUB_MEM_OPTIMIZE = "IoT_EdgeHubMemOptimize"
    """You can optimize Edge Hub memory usage by turning off protocol heads for any protocols not used
    #: by Edge modules in your solution."""
    IO_T_EDGE_LOGGING_OPTIONS = "IoT_EdgeLoggingOptions"
    """Logging is disabled for this edge module."""
    IO_T_INCONSISTENT_MODULE_SETTINGS = "IoT_InconsistentModuleSettings"
    """A minority within a device security group has inconsistent Edge Module settings with the rest
    #: of their group."""
    IO_T_INSTALL_AGENT = "IoT_InstallAgent"
    """Install the Azure Security of Things Agent."""
    IO_T_IPFILTER_DENY_ALL = "IoT_IPFilter_DenyAll"
    """IP Filter Configuration should have rules defined for allowed traffic and should deny all other
    #: traffic by default."""
    IO_T_IPFILTER_PERMISSIVE_RULE = "IoT_IPFilter_PermissiveRule"
    """An Allow IP Filter rules source IP range is too large. Overly permissive rules might expose
    #: your IoT hub to malicious intenders."""
    IO_T_OPEN_PORTS = "IoT_OpenPorts"
    """A listening endpoint was found on the device."""
    IO_T_PERMISSIVE_FIREWALL_POLICY = "IoT_PermissiveFirewallPolicy"
    """An Allowed firewall policy was found (INPUT/OUTPUT). The policy should Deny all traffic by
    #: default and define rules to allow necessary communication to/from the device."""
    IO_T_PERMISSIVE_INPUT_FIREWALL_RULES = "IoT_PermissiveInputFirewallRules"
    """A rule in the firewall has been found that contains a permissive pattern for a wide range of IP
    #: addresses or Ports."""
    IO_T_PERMISSIVE_OUTPUT_FIREWALL_RULES = "IoT_PermissiveOutputFirewallRules"
    """A rule in the firewall has been found that contains a permissive pattern for a wide range of IP
    #: addresses or Ports."""
    IO_T_PRIVILEGED_DOCKER_OPTIONS = "IoT_PrivilegedDockerOptions"
    """Edge module is configured to run in privileged mode, with extensive Linux capabilities or with
    #: host-level network access (send/receive data to host machine)."""
    IO_T_SHARED_CREDENTIALS = "IoT_SharedCredentials"
    """Same authentication credentials to the IoT Hub used by multiple devices. This could indicate an
    #: illegitimate device impersonating a legitimate device. It also exposes the risk of device
    #: impersonation by an attacker."""
    IO_T_VULNERABLE_TLS_CIPHER_SUITE = "IoT_VulnerableTLSCipherSuite"
    """Insecure TLS configurations detected. Immediate upgrade recommended."""


class ReportedSeverity(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Assessed alert severity."""

    INFORMATIONAL = "Informational"
    LOW = "Low"
    MEDIUM = "Medium"
    HIGH = "High"


class SecuritySolutionStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Status of the IoT Security solution."""

    ENABLED = "Enabled"
    DISABLED = "Disabled"


class UnmaskedIpLoggingStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """Unmasked IP address logging status."""

    DISABLED = "Disabled"
    """Unmasked IP logging is disabled"""
    ENABLED = "Enabled"
    """Unmasked IP logging is enabled"""


class ValueType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
    """The value type of the items in the list."""

    IP_CIDR = "IpCidr"
    """An IP range in CIDR format (e.g. '192.168.0.1/8')."""
    STRING = "String"
    """Any string value."""
