// 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;

/** Holds the alert intent stage(s) mapping for this alert. */
public final class KillChainIntent extends ExpandableStringEnum<KillChainIntent> {
    /** Static value Unknown for KillChainIntent. */
    public static final KillChainIntent UNKNOWN = fromString("Unknown");

    /** Static value Probing for KillChainIntent. */
    public static final KillChainIntent PROBING = fromString("Probing");

    /** Static value Exploitation for KillChainIntent. */
    public static final KillChainIntent EXPLOITATION = fromString("Exploitation");

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

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

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

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

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

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

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

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

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

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

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

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

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