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

package com.azure.resourcemanager.securityinsights.models;

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

/** The severity for alerts created by this alert rule. */
public final class AttackTactic extends ExpandableStringEnum<AttackTactic> {
    /** Static value Reconnaissance for AttackTactic. */
    public static final AttackTactic RECONNAISSANCE = fromString("Reconnaissance");

    /** Static value ResourceDevelopment for AttackTactic. */
    public static final AttackTactic RESOURCE_DEVELOPMENT = fromString("ResourceDevelopment");

    /** Static value InitialAccess for AttackTactic. */
    public static final AttackTactic INITIAL_ACCESS = fromString("InitialAccess");

    /** Static value Execution for AttackTactic. */
    public static final AttackTactic EXECUTION = fromString("Execution");

    /** Static value Persistence for AttackTactic. */
    public static final AttackTactic PERSISTENCE = fromString("Persistence");

    /** Static value PrivilegeEscalation for AttackTactic. */
    public static final AttackTactic PRIVILEGE_ESCALATION = fromString("PrivilegeEscalation");

    /** Static value DefenseEvasion for AttackTactic. */
    public static final AttackTactic DEFENSE_EVASION = fromString("DefenseEvasion");

    /** Static value CredentialAccess for AttackTactic. */
    public static final AttackTactic CREDENTIAL_ACCESS = fromString("CredentialAccess");

    /** Static value Discovery for AttackTactic. */
    public static final AttackTactic DISCOVERY = fromString("Discovery");

    /** Static value LateralMovement for AttackTactic. */
    public static final AttackTactic LATERAL_MOVEMENT = fromString("LateralMovement");

    /** Static value Collection for AttackTactic. */
    public static final AttackTactic COLLECTION = fromString("Collection");

    /** Static value Exfiltration for AttackTactic. */
    public static final AttackTactic EXFILTRATION = fromString("Exfiltration");

    /** Static value CommandAndControl for AttackTactic. */
    public static final AttackTactic COMMAND_AND_CONTROL = fromString("CommandAndControl");

    /** Static value Impact for AttackTactic. */
    public static final AttackTactic IMPACT = fromString("Impact");

    /** Static value PreAttack for AttackTactic. */
    public static final AttackTactic PRE_ATTACK = fromString("PreAttack");

    /** Static value ImpairProcessControl for AttackTactic. */
    public static final AttackTactic IMPAIR_PROCESS_CONTROL = fromString("ImpairProcessControl");

    /** Static value InhibitResponseFunction for AttackTactic. */
    public static final AttackTactic INHIBIT_RESPONSE_FUNCTION = fromString("InhibitResponseFunction");

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

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