// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.security.models;

import com.azure.core.util.ExpandableStringEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import java.util.Collection;

/** Techniques of the assessment. */
public final class Techniques extends ExpandableStringEnum<Techniques> {
    /** Static value Abuse Elevation Control Mechanism for Techniques. */
    public static final Techniques ABUSE_ELEVATION_CONTROL_MECHANISM = fromString("Abuse Elevation Control Mechanism");

    /** Static value Access Token Manipulation for Techniques. */
    public static final Techniques ACCESS_TOKEN_MANIPULATION = fromString("Access Token Manipulation");

    /** Static value Account Discovery for Techniques. */
    public static final Techniques ACCOUNT_DISCOVERY = fromString("Account Discovery");

    /** Static value Account Manipulation for Techniques. */
    public static final Techniques ACCOUNT_MANIPULATION = fromString("Account Manipulation");

    /** Static value Active Scanning for Techniques. */
    public static final Techniques ACTIVE_SCANNING = fromString("Active Scanning");

    /** Static value Application Layer Protocol for Techniques. */
    public static final Techniques APPLICATION_LAYER_PROTOCOL = fromString("Application Layer Protocol");

    /** Static value Audio Capture for Techniques. */
    public static final Techniques AUDIO_CAPTURE = fromString("Audio Capture");

    /** Static value Boot or Logon Autostart Execution for Techniques. */
    public static final Techniques BOOT_OR_LOGON_AUTOSTART_EXECUTION = fromString("Boot or Logon Autostart Execution");

    /** Static value Boot or Logon Initialization Scripts for Techniques. */
    public static final Techniques BOOT_OR_LOGON_INITIALIZATION_SCRIPTS =
        fromString("Boot or Logon Initialization Scripts");

    /** Static value Brute Force for Techniques. */
    public static final Techniques BRUTE_FORCE = fromString("Brute Force");

    /** Static value Cloud Infrastructure Discovery for Techniques. */
    public static final Techniques CLOUD_INFRASTRUCTURE_DISCOVERY = fromString("Cloud Infrastructure Discovery");

    /** Static value Cloud Service Dashboard for Techniques. */
    public static final Techniques CLOUD_SERVICE_DASHBOARD = fromString("Cloud Service Dashboard");

    /** Static value Cloud Service Discovery for Techniques. */
    public static final Techniques CLOUD_SERVICE_DISCOVERY = fromString("Cloud Service Discovery");

    /** Static value Command and Scripting Interpreter for Techniques. */
    public static final Techniques COMMAND_AND_SCRIPTING_INTERPRETER = fromString("Command and Scripting Interpreter");

    /** Static value Compromise Client Software Binary for Techniques. */
    public static final Techniques COMPROMISE_CLIENT_SOFTWARE_BINARY = fromString("Compromise Client Software Binary");

    /** Static value Compromise Infrastructure for Techniques. */
    public static final Techniques COMPROMISE_INFRASTRUCTURE = fromString("Compromise Infrastructure");

    /** Static value Container and Resource Discovery for Techniques. */
    public static final Techniques CONTAINER_AND_RESOURCE_DISCOVERY = fromString("Container and Resource Discovery");

    /** Static value Create Account for Techniques. */
    public static final Techniques CREATE_ACCOUNT = fromString("Create Account");

    /** Static value Create or Modify System Process for Techniques. */
    public static final Techniques CREATE_OR_MODIFY_SYSTEM_PROCESS = fromString("Create or Modify System Process");

    /** Static value Credentials from Password Stores for Techniques. */
    public static final Techniques CREDENTIALS_FROM_PASSWORD_STORES = fromString("Credentials from Password Stores");

    /** Static value Data Destruction for Techniques. */
    public static final Techniques DATA_DESTRUCTION = fromString("Data Destruction");

    /** Static value Data Encrypted for Impact for Techniques. */
    public static final Techniques DATA_ENCRYPTED_FOR_IMPACT = fromString("Data Encrypted for Impact");

    /** Static value Data from Cloud Storage Object for Techniques. */
    public static final Techniques DATA_FROM_CLOUD_STORAGE_OBJECT = fromString("Data from Cloud Storage Object");

    /** Static value Data from Configuration Repository for Techniques. */
    public static final Techniques DATA_FROM_CONFIGURATION_REPOSITORY =
        fromString("Data from Configuration Repository");

    /** Static value Data from Information Repositories for Techniques. */
    public static final Techniques DATA_FROM_INFORMATION_REPOSITORIES =
        fromString("Data from Information Repositories");

    /** Static value Data from Local System for Techniques. */
    public static final Techniques DATA_FROM_LOCAL_SYSTEM = fromString("Data from Local System");

    /** Static value Data Manipulation for Techniques. */
    public static final Techniques DATA_MANIPULATION = fromString("Data Manipulation");

    /** Static value Data Staged for Techniques. */
    public static final Techniques DATA_STAGED = fromString("Data Staged");

    /** Static value Defacement for Techniques. */
    public static final Techniques DEFACEMENT = fromString("Defacement");

    /** Static value Deobfuscate/Decode Files or Information for Techniques. */
    public static final Techniques DEOBFUSCATE_DECODE_FILES_OR_INFORMATION =
        fromString("Deobfuscate/Decode Files or Information");

    /** Static value Disk Wipe for Techniques. */
    public static final Techniques DISK_WIPE = fromString("Disk Wipe");

    /** Static value Domain Trust Discovery for Techniques. */
    public static final Techniques DOMAIN_TRUST_DISCOVERY = fromString("Domain Trust Discovery");

    /** Static value Drive-by Compromise for Techniques. */
    public static final Techniques DRIVE_BY_COMPROMISE = fromString("Drive-by Compromise");

    /** Static value Dynamic Resolution for Techniques. */
    public static final Techniques DYNAMIC_RESOLUTION = fromString("Dynamic Resolution");

    /** Static value Endpoint Denial of Service for Techniques. */
    public static final Techniques ENDPOINT_DENIAL_OF_SERVICE = fromString("Endpoint Denial of Service");

    /** Static value Event Triggered Execution for Techniques. */
    public static final Techniques EVENT_TRIGGERED_EXECUTION = fromString("Event Triggered Execution");

    /** Static value Exfiltration Over Alternative Protocol for Techniques. */
    public static final Techniques EXFILTRATION_OVER_ALTERNATIVE_PROTOCOL =
        fromString("Exfiltration Over Alternative Protocol");

    /** Static value Exploit Public-Facing Application for Techniques. */
    public static final Techniques EXPLOIT_PUBLIC_FACING_APPLICATION = fromString("Exploit Public-Facing Application");

    /** Static value Exploitation for Client Execution for Techniques. */
    public static final Techniques EXPLOITATION_FOR_CLIENT_EXECUTION = fromString("Exploitation for Client Execution");

    /** Static value Exploitation for Credential Access for Techniques. */
    public static final Techniques EXPLOITATION_FOR_CREDENTIAL_ACCESS =
        fromString("Exploitation for Credential Access");

    /** Static value Exploitation for Defense Evasion for Techniques. */
    public static final Techniques EXPLOITATION_FOR_DEFENSE_EVASION = fromString("Exploitation for Defense Evasion");

    /** Static value Exploitation for Privilege Escalation for Techniques. */
    public static final Techniques EXPLOITATION_FOR_PRIVILEGE_ESCALATION =
        fromString("Exploitation for Privilege Escalation");

    /** Static value Exploitation of Remote Services for Techniques. */
    public static final Techniques EXPLOITATION_OF_REMOTE_SERVICES = fromString("Exploitation of Remote Services");

    /** Static value External Remote Services for Techniques. */
    public static final Techniques EXTERNAL_REMOTE_SERVICES = fromString("External Remote Services");

    /** Static value Fallback Channels for Techniques. */
    public static final Techniques FALLBACK_CHANNELS = fromString("Fallback Channels");

    /** Static value File and Directory Discovery for Techniques. */
    public static final Techniques FILE_AND_DIRECTORY_DISCOVERY = fromString("File and Directory Discovery");

    /** Static value Gather Victim Network Information for Techniques. */
    public static final Techniques GATHER_VICTIM_NETWORK_INFORMATION = fromString("Gather Victim Network Information");

    /** Static value Hide Artifacts for Techniques. */
    public static final Techniques HIDE_ARTIFACTS = fromString("Hide Artifacts");

    /** Static value Hijack Execution Flow for Techniques. */
    public static final Techniques HIJACK_EXECUTION_FLOW = fromString("Hijack Execution Flow");

    /** Static value Impair Defenses for Techniques. */
    public static final Techniques IMPAIR_DEFENSES = fromString("Impair Defenses");

    /** Static value Implant Container Image for Techniques. */
    public static final Techniques IMPLANT_CONTAINER_IMAGE = fromString("Implant Container Image");

    /** Static value Indicator Removal on Host for Techniques. */
    public static final Techniques INDICATOR_REMOVAL_ON_HOST = fromString("Indicator Removal on Host");

    /** Static value Indirect Command Execution for Techniques. */
    public static final Techniques INDIRECT_COMMAND_EXECUTION = fromString("Indirect Command Execution");

    /** Static value Ingress Tool Transfer for Techniques. */
    public static final Techniques INGRESS_TOOL_TRANSFER = fromString("Ingress Tool Transfer");

    /** Static value Input Capture for Techniques. */
    public static final Techniques INPUT_CAPTURE = fromString("Input Capture");

    /** Static value Inter-Process Communication for Techniques. */
    public static final Techniques INTER_PROCESS_COMMUNICATION = fromString("Inter-Process Communication");

    /** Static value Lateral Tool Transfer for Techniques. */
    public static final Techniques LATERAL_TOOL_TRANSFER = fromString("Lateral Tool Transfer");

    /** Static value Man-in-the-Middle for Techniques. */
    public static final Techniques MAN_IN_THE_MIDDLE = fromString("Man-in-the-Middle");

    /** Static value Masquerading for Techniques. */
    public static final Techniques MASQUERADING = fromString("Masquerading");

    /** Static value Modify Authentication Process for Techniques. */
    public static final Techniques MODIFY_AUTHENTICATION_PROCESS = fromString("Modify Authentication Process");

    /** Static value Modify Registry for Techniques. */
    public static final Techniques MODIFY_REGISTRY = fromString("Modify Registry");

    /** Static value Network Denial of Service for Techniques. */
    public static final Techniques NETWORK_DENIAL_OF_SERVICE = fromString("Network Denial of Service");

    /** Static value Network Service Scanning for Techniques. */
    public static final Techniques NETWORK_SERVICE_SCANNING = fromString("Network Service Scanning");

    /** Static value Network Sniffing for Techniques. */
    public static final Techniques NETWORK_SNIFFING = fromString("Network Sniffing");

    /** Static value Non-Application Layer Protocol for Techniques. */
    public static final Techniques NON_APPLICATION_LAYER_PROTOCOL = fromString("Non-Application Layer Protocol");

    /** Static value Non-Standard Port for Techniques. */
    public static final Techniques NON_STANDARD_PORT = fromString("Non-Standard Port");

    /** Static value Obtain Capabilities for Techniques. */
    public static final Techniques OBTAIN_CAPABILITIES = fromString("Obtain Capabilities");

    /** Static value Obfuscated Files or Information for Techniques. */
    public static final Techniques OBFUSCATED_FILES_OR_INFORMATION = fromString("Obfuscated Files or Information");

    /** Static value Office Application Startup for Techniques. */
    public static final Techniques OFFICE_APPLICATION_STARTUP = fromString("Office Application Startup");

    /** Static value OS Credential Dumping for Techniques. */
    public static final Techniques OS_CREDENTIAL_DUMPING = fromString("OS Credential Dumping");

    /** Static value Permission Groups Discovery for Techniques. */
    public static final Techniques PERMISSION_GROUPS_DISCOVERY = fromString("Permission Groups Discovery");

    /** Static value Phishing for Techniques. */
    public static final Techniques PHISHING = fromString("Phishing");

    /** Static value Pre-OS Boot for Techniques. */
    public static final Techniques PRE_OS_BOOT = fromString("Pre-OS Boot");

    /** Static value Process Discovery for Techniques. */
    public static final Techniques PROCESS_DISCOVERY = fromString("Process Discovery");

    /** Static value Process Injection for Techniques. */
    public static final Techniques PROCESS_INJECTION = fromString("Process Injection");

    /** Static value Protocol Tunneling for Techniques. */
    public static final Techniques PROTOCOL_TUNNELING = fromString("Protocol Tunneling");

    /** Static value Proxy for Techniques. */
    public static final Techniques PROXY = fromString("Proxy");

    /** Static value Query Registry for Techniques. */
    public static final Techniques QUERY_REGISTRY = fromString("Query Registry");

    /** Static value Remote Access Software for Techniques. */
    public static final Techniques REMOTE_ACCESS_SOFTWARE = fromString("Remote Access Software");

    /** Static value Remote Service Session Hijacking for Techniques. */
    public static final Techniques REMOTE_SERVICE_SESSION_HIJACKING = fromString("Remote Service Session Hijacking");

    /** Static value Remote Services for Techniques. */
    public static final Techniques REMOTE_SERVICES = fromString("Remote Services");

    /** Static value Remote System Discovery for Techniques. */
    public static final Techniques REMOTE_SYSTEM_DISCOVERY = fromString("Remote System Discovery");

    /** Static value Resource Hijacking for Techniques. */
    public static final Techniques RESOURCE_HIJACKING = fromString("Resource Hijacking");

    /** Static value Scheduled Task/Job for Techniques. */
    public static final Techniques SCHEDULED_TASK_JOB = fromString("Scheduled Task/Job");

    /** Static value Screen Capture for Techniques. */
    public static final Techniques SCREEN_CAPTURE = fromString("Screen Capture");

    /** Static value Search Victim-Owned Websites for Techniques. */
    public static final Techniques SEARCH_VICTIM_OWNED_WEBSITES = fromString("Search Victim-Owned Websites");

    /** Static value Server Software Component for Techniques. */
    public static final Techniques SERVER_SOFTWARE_COMPONENT = fromString("Server Software Component");

    /** Static value Service Stop for Techniques. */
    public static final Techniques SERVICE_STOP = fromString("Service Stop");

    /** Static value Signed Binary Proxy Execution for Techniques. */
    public static final Techniques SIGNED_BINARY_PROXY_EXECUTION = fromString("Signed Binary Proxy Execution");

    /** Static value Software Deployment Tools for Techniques. */
    public static final Techniques SOFTWARE_DEPLOYMENT_TOOLS = fromString("Software Deployment Tools");

    /** Static value SQL Stored Procedures for Techniques. */
    public static final Techniques SQL_STORED_PROCEDURES = fromString("SQL Stored Procedures");

    /** Static value Steal or Forge Kerberos Tickets for Techniques. */
    public static final Techniques STEAL_OR_FORGE_KERBEROS_TICKETS = fromString("Steal or Forge Kerberos Tickets");

    /** Static value Subvert Trust Controls for Techniques. */
    public static final Techniques SUBVERT_TRUST_CONTROLS = fromString("Subvert Trust Controls");

    /** Static value Supply Chain Compromise for Techniques. */
    public static final Techniques SUPPLY_CHAIN_COMPROMISE = fromString("Supply Chain Compromise");

    /** Static value System Information Discovery for Techniques. */
    public static final Techniques SYSTEM_INFORMATION_DISCOVERY = fromString("System Information Discovery");

    /** Static value Taint Shared Content for Techniques. */
    public static final Techniques TAINT_SHARED_CONTENT = fromString("Taint Shared Content");

    /** Static value Traffic Signaling for Techniques. */
    public static final Techniques TRAFFIC_SIGNALING = fromString("Traffic Signaling");

    /** Static value Transfer Data to Cloud Account for Techniques. */
    public static final Techniques TRANSFER_DATA_TO_CLOUD_ACCOUNT = fromString("Transfer Data to Cloud Account");

    /** Static value Trusted Relationship for Techniques. */
    public static final Techniques TRUSTED_RELATIONSHIP = fromString("Trusted Relationship");

    /** Static value Unsecured Credentials for Techniques. */
    public static final Techniques UNSECURED_CREDENTIALS = fromString("Unsecured Credentials");

    /** Static value User Execution for Techniques. */
    public static final Techniques USER_EXECUTION = fromString("User Execution");

    /** Static value Valid Accounts for Techniques. */
    public static final Techniques VALID_ACCOUNTS = fromString("Valid Accounts");

    /** Static value Windows Management Instrumentation for Techniques. */
    public static final Techniques WINDOWS_MANAGEMENT_INSTRUMENTATION =
        fromString("Windows Management Instrumentation");

    /** Static value File and Directory Permissions Modification for Techniques. */
    public static final Techniques FILE_AND_DIRECTORY_PERMISSIONS_MODIFICATION =
        fromString("File and Directory Permissions Modification");

    /**
     * Creates a new instance of Techniques value.
     *
     * @deprecated Use the {@link #fromString(String)} factory method.
     */
    @Deprecated
    public Techniques() {
    }

    /**
     * Creates or finds a Techniques from its string representation.
     *
     * @param name a name to look for.
     * @return the corresponding Techniques.
     */
    @JsonCreator
    public static Techniques fromString(String name) {
        return fromString(name, Techniques.class);
    }

    /**
     * Gets known Techniques values.
     *
     * @return known Techniques values.
     */
    public static Collection<Techniques> values() {
        return values(Techniques.class);
    }
}
