// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/talent/v4beta1/common.proto

package com.google.cloud.talent.v4beta1;

/**
 *
 *
 * <pre>
 * Enum that represents the skill proficiency level.
 * </pre>
 *
 * Protobuf enum {@code google.cloud.talent.v4beta1.SkillProficiencyLevel}
 */
public enum SkillProficiencyLevel implements com.google.protobuf.ProtocolMessageEnum {
  /**
   *
   *
   * <pre>
   * Default value.
   * </pre>
   *
   * <code>SKILL_PROFICIENCY_LEVEL_UNSPECIFIED = 0;</code>
   */
  SKILL_PROFICIENCY_LEVEL_UNSPECIFIED(0),
  /**
   *
   *
   * <pre>
   * Have a common knowledge or an understanding of basic techniques and
   * concepts.
   * </pre>
   *
   * <code>FUNDAMENTAL_AWARENESS = 1;</code>
   */
  FUNDAMENTAL_AWARENESS(1),
  /**
   *
   *
   * <pre>
   * Have the level of experience gained in a classroom and/or experimental
   * scenarios or as a trainee on-the-job.
   * </pre>
   *
   * <code>NOVICE = 2;</code>
   */
  NOVICE(2),
  /**
   *
   *
   * <pre>
   * Be able to successfully complete tasks in this skill as requested. Help
   * from an expert may be required from time to time, but can usually perform
   * skill independently.
   * </pre>
   *
   * <code>INTERMEDIATE = 3;</code>
   */
  INTERMEDIATE(3),
  /**
   *
   *
   * <pre>
   * Can perform the actions associated with this skill without assistance.
   * </pre>
   *
   * <code>ADVANCED = 4;</code>
   */
  ADVANCED(4),
  /**
   *
   *
   * <pre>
   * Known as an expert in this area.
   * </pre>
   *
   * <code>EXPERT = 5;</code>
   */
  EXPERT(5),
  UNRECOGNIZED(-1),
  ;

  /**
   *
   *
   * <pre>
   * Default value.
   * </pre>
   *
   * <code>SKILL_PROFICIENCY_LEVEL_UNSPECIFIED = 0;</code>
   */
  public static final int SKILL_PROFICIENCY_LEVEL_UNSPECIFIED_VALUE = 0;
  /**
   *
   *
   * <pre>
   * Have a common knowledge or an understanding of basic techniques and
   * concepts.
   * </pre>
   *
   * <code>FUNDAMENTAL_AWARENESS = 1;</code>
   */
  public static final int FUNDAMENTAL_AWARENESS_VALUE = 1;
  /**
   *
   *
   * <pre>
   * Have the level of experience gained in a classroom and/or experimental
   * scenarios or as a trainee on-the-job.
   * </pre>
   *
   * <code>NOVICE = 2;</code>
   */
  public static final int NOVICE_VALUE = 2;
  /**
   *
   *
   * <pre>
   * Be able to successfully complete tasks in this skill as requested. Help
   * from an expert may be required from time to time, but can usually perform
   * skill independently.
   * </pre>
   *
   * <code>INTERMEDIATE = 3;</code>
   */
  public static final int INTERMEDIATE_VALUE = 3;
  /**
   *
   *
   * <pre>
   * Can perform the actions associated with this skill without assistance.
   * </pre>
   *
   * <code>ADVANCED = 4;</code>
   */
  public static final int ADVANCED_VALUE = 4;
  /**
   *
   *
   * <pre>
   * Known as an expert in this area.
   * </pre>
   *
   * <code>EXPERT = 5;</code>
   */
  public static final int EXPERT_VALUE = 5;

  public final int getNumber() {
    if (this == UNRECOGNIZED) {
      throw new java.lang.IllegalArgumentException(
          "Can't get the number of an unknown enum value.");
    }
    return value;
  }

  /** @deprecated Use {@link #forNumber(int)} instead. */
  @java.lang.Deprecated
  public static SkillProficiencyLevel valueOf(int value) {
    return forNumber(value);
  }

  public static SkillProficiencyLevel forNumber(int value) {
    switch (value) {
      case 0:
        return SKILL_PROFICIENCY_LEVEL_UNSPECIFIED;
      case 1:
        return FUNDAMENTAL_AWARENESS;
      case 2:
        return NOVICE;
      case 3:
        return INTERMEDIATE;
      case 4:
        return ADVANCED;
      case 5:
        return EXPERT;
      default:
        return null;
    }
  }

  public static com.google.protobuf.Internal.EnumLiteMap<SkillProficiencyLevel>
      internalGetValueMap() {
    return internalValueMap;
  }

  private static final com.google.protobuf.Internal.EnumLiteMap<SkillProficiencyLevel>
      internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap<SkillProficiencyLevel>() {
            public SkillProficiencyLevel findValueByNumber(int number) {
              return SkillProficiencyLevel.forNumber(number);
            }
          };

  public final com.google.protobuf.Descriptors.EnumValueDescriptor getValueDescriptor() {
    return getDescriptor().getValues().get(ordinal());
  }

  public final com.google.protobuf.Descriptors.EnumDescriptor getDescriptorForType() {
    return getDescriptor();
  }

  public static final com.google.protobuf.Descriptors.EnumDescriptor getDescriptor() {
    return com.google.cloud.talent.v4beta1.CommonProto.getDescriptor().getEnumTypes().get(11);
  }

  private static final SkillProficiencyLevel[] VALUES = values();

  public static SkillProficiencyLevel valueOf(
      com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
    if (desc.getType() != getDescriptor()) {
      throw new java.lang.IllegalArgumentException("EnumValueDescriptor is not for this type.");
    }
    if (desc.getIndex() == -1) {
      return UNRECOGNIZED;
    }
    return VALUES[desc.getIndex()];
  }

  private final int value;

  private SkillProficiencyLevel(int value) {
    this.value = value;
  }

  // @@protoc_insertion_point(enum_scope:google.cloud.talent.v4beta1.SkillProficiencyLevel)
}
