/**
 * 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.
 */

package com.microsoft.azure.applicationinsights.query.models;

import java.util.Collection;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.microsoft.rest.ExpandableStringEnum;

/**
 * Defines values for MetricId.
 */
public final class MetricId extends ExpandableStringEnum<MetricId> {
    /** Static value requests/count for MetricId. */
    public static final MetricId REQUESTSCOUNT = fromString("requests/count");

    /** Static value requests/duration for MetricId. */
    public static final MetricId REQUESTSDURATION = fromString("requests/duration");

    /** Static value requests/failed for MetricId. */
    public static final MetricId REQUESTSFAILED = fromString("requests/failed");

    /** Static value users/count for MetricId. */
    public static final MetricId USERSCOUNT = fromString("users/count");

    /** Static value users/authenticated for MetricId. */
    public static final MetricId USERSAUTHENTICATED = fromString("users/authenticated");

    /** Static value pageViews/count for MetricId. */
    public static final MetricId PAGE_VIEWSCOUNT = fromString("pageViews/count");

    /** Static value pageViews/duration for MetricId. */
    public static final MetricId PAGE_VIEWSDURATION = fromString("pageViews/duration");

    /** Static value client/processingDuration for MetricId. */
    public static final MetricId CLIENTPROCESSING_DURATION = fromString("client/processingDuration");

    /** Static value client/receiveDuration for MetricId. */
    public static final MetricId CLIENTRECEIVE_DURATION = fromString("client/receiveDuration");

    /** Static value client/networkDuration for MetricId. */
    public static final MetricId CLIENTNETWORK_DURATION = fromString("client/networkDuration");

    /** Static value client/sendDuration for MetricId. */
    public static final MetricId CLIENTSEND_DURATION = fromString("client/sendDuration");

    /** Static value client/totalDuration for MetricId. */
    public static final MetricId CLIENTTOTAL_DURATION = fromString("client/totalDuration");

    /** Static value dependencies/count for MetricId. */
    public static final MetricId DEPENDENCIESCOUNT = fromString("dependencies/count");

    /** Static value dependencies/failed for MetricId. */
    public static final MetricId DEPENDENCIESFAILED = fromString("dependencies/failed");

    /** Static value dependencies/duration for MetricId. */
    public static final MetricId DEPENDENCIESDURATION = fromString("dependencies/duration");

    /** Static value exceptions/count for MetricId. */
    public static final MetricId EXCEPTIONSCOUNT = fromString("exceptions/count");

    /** Static value exceptions/browser for MetricId. */
    public static final MetricId EXCEPTIONSBROWSER = fromString("exceptions/browser");

    /** Static value exceptions/server for MetricId. */
    public static final MetricId EXCEPTIONSSERVER = fromString("exceptions/server");

    /** Static value sessions/count for MetricId. */
    public static final MetricId SESSIONSCOUNT = fromString("sessions/count");

    /** Static value performanceCounters/requestExecutionTime for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSREQUEST_EXECUTION_TIME = fromString("performanceCounters/requestExecutionTime");

    /** Static value performanceCounters/requestsPerSecond for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSREQUESTS_PER_SECOND = fromString("performanceCounters/requestsPerSecond");

    /** Static value performanceCounters/requestsInQueue for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSREQUESTS_IN_QUEUE = fromString("performanceCounters/requestsInQueue");

    /** Static value performanceCounters/memoryAvailableBytes for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSMEMORY_AVAILABLE_BYTES = fromString("performanceCounters/memoryAvailableBytes");

    /** Static value performanceCounters/exceptionsPerSecond for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSEXCEPTIONS_PER_SECOND = fromString("performanceCounters/exceptionsPerSecond");

    /** Static value performanceCounters/processCpuPercentage for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSPROCESS_CPU_PERCENTAGE = fromString("performanceCounters/processCpuPercentage");

    /** Static value performanceCounters/processIOBytesPerSecond for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSPROCESS_IOBYTES_PER_SECOND = fromString("performanceCounters/processIOBytesPerSecond");

    /** Static value performanceCounters/processPrivateBytes for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSPROCESS_PRIVATE_BYTES = fromString("performanceCounters/processPrivateBytes");

    /** Static value performanceCounters/processorCpuPercentage for MetricId. */
    public static final MetricId PERFORMANCE_COUNTERSPROCESSOR_CPU_PERCENTAGE = fromString("performanceCounters/processorCpuPercentage");

    /** Static value availabilityResults/availabilityPercentage for MetricId. */
    public static final MetricId AVAILABILITY_RESULTSAVAILABILITY_PERCENTAGE = fromString("availabilityResults/availabilityPercentage");

    /** Static value availabilityResults/duration for MetricId. */
    public static final MetricId AVAILABILITY_RESULTSDURATION = fromString("availabilityResults/duration");

    /** Static value billing/telemetryCount for MetricId. */
    public static final MetricId BILLINGTELEMETRY_COUNT = fromString("billing/telemetryCount");

    /** Static value customEvents/count for MetricId. */
    public static final MetricId CUSTOM_EVENTSCOUNT = fromString("customEvents/count");

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

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