<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/talent/v4/common.proto

namespace Google\Cloud\Talent\V4;

use UnexpectedValueException;

/**
 * An enum that represents the categorization or primary focus of specific
 * role. This value is different than the "industry" associated with a role,
 * which is related to the categorization of the company listing the job.
 *
 * Protobuf type <code>google.cloud.talent.v4.JobCategory</code>
 */
class JobCategory
{
    /**
     * The default value if the category isn't specified.
     *
     * Generated from protobuf enum <code>JOB_CATEGORY_UNSPECIFIED = 0;</code>
     */
    const JOB_CATEGORY_UNSPECIFIED = 0;
    /**
     * An accounting and finance job, such as an Accountant.
     *
     * Generated from protobuf enum <code>ACCOUNTING_AND_FINANCE = 1;</code>
     */
    const ACCOUNTING_AND_FINANCE = 1;
    /**
     * An administrative and office job, such as an Administrative Assistant.
     *
     * Generated from protobuf enum <code>ADMINISTRATIVE_AND_OFFICE = 2;</code>
     */
    const ADMINISTRATIVE_AND_OFFICE = 2;
    /**
     * An advertising and marketing job, such as Marketing Manager.
     *
     * Generated from protobuf enum <code>ADVERTISING_AND_MARKETING = 3;</code>
     */
    const ADVERTISING_AND_MARKETING = 3;
    /**
     * An animal care job, such as Veterinarian.
     *
     * Generated from protobuf enum <code>ANIMAL_CARE = 4;</code>
     */
    const ANIMAL_CARE = 4;
    /**
     * An art, fashion, or design job, such as Designer.
     *
     * Generated from protobuf enum <code>ART_FASHION_AND_DESIGN = 5;</code>
     */
    const ART_FASHION_AND_DESIGN = 5;
    /**
     * A business operations job, such as Business Operations Manager.
     *
     * Generated from protobuf enum <code>BUSINESS_OPERATIONS = 6;</code>
     */
    const BUSINESS_OPERATIONS = 6;
    /**
     * A cleaning and facilities job, such as Custodial Staff.
     *
     * Generated from protobuf enum <code>CLEANING_AND_FACILITIES = 7;</code>
     */
    const CLEANING_AND_FACILITIES = 7;
    /**
     * A computer and IT job, such as Systems Administrator.
     *
     * Generated from protobuf enum <code>COMPUTER_AND_IT = 8;</code>
     */
    const COMPUTER_AND_IT = 8;
    /**
     * A construction job, such as General Laborer.
     *
     * Generated from protobuf enum <code>CONSTRUCTION = 9;</code>
     */
    const CONSTRUCTION = 9;
    /**
     * A customer service job, such s Cashier.
     *
     * Generated from protobuf enum <code>CUSTOMER_SERVICE = 10;</code>
     */
    const CUSTOMER_SERVICE = 10;
    /**
     * An education job, such as School Teacher.
     *
     * Generated from protobuf enum <code>EDUCATION = 11;</code>
     */
    const EDUCATION = 11;
    /**
     * An entertainment and travel job, such as Flight Attendant.
     *
     * Generated from protobuf enum <code>ENTERTAINMENT_AND_TRAVEL = 12;</code>
     */
    const ENTERTAINMENT_AND_TRAVEL = 12;
    /**
     * A farming or outdoor job, such as Park Ranger.
     *
     * Generated from protobuf enum <code>FARMING_AND_OUTDOORS = 13;</code>
     */
    const FARMING_AND_OUTDOORS = 13;
    /**
     * A healthcare job, such as Registered Nurse.
     *
     * Generated from protobuf enum <code>HEALTHCARE = 14;</code>
     */
    const HEALTHCARE = 14;
    /**
     * A human resources job, such as Human Resources Director.
     *
     * Generated from protobuf enum <code>HUMAN_RESOURCES = 15;</code>
     */
    const HUMAN_RESOURCES = 15;
    /**
     * An installation, maintenance, or repair job, such as Electrician.
     *
     * Generated from protobuf enum <code>INSTALLATION_MAINTENANCE_AND_REPAIR = 16;</code>
     */
    const INSTALLATION_MAINTENANCE_AND_REPAIR = 16;
    /**
     * A legal job, such as Law Clerk.
     *
     * Generated from protobuf enum <code>LEGAL = 17;</code>
     */
    const LEGAL = 17;
    /**
     * A management job, often used in conjunction with another category,
     * such as Store Manager.
     *
     * Generated from protobuf enum <code>MANAGEMENT = 18;</code>
     */
    const MANAGEMENT = 18;
    /**
     * A manufacturing or warehouse job, such as Assembly Technician.
     *
     * Generated from protobuf enum <code>MANUFACTURING_AND_WAREHOUSE = 19;</code>
     */
    const MANUFACTURING_AND_WAREHOUSE = 19;
    /**
     * A media, communications, or writing job, such as Media Relations.
     *
     * Generated from protobuf enum <code>MEDIA_COMMUNICATIONS_AND_WRITING = 20;</code>
     */
    const MEDIA_COMMUNICATIONS_AND_WRITING = 20;
    /**
     * An oil, gas or mining job, such as Offshore Driller.
     *
     * Generated from protobuf enum <code>OIL_GAS_AND_MINING = 21;</code>
     */
    const OIL_GAS_AND_MINING = 21;
    /**
     * A personal care and services job, such as Hair Stylist.
     *
     * Generated from protobuf enum <code>PERSONAL_CARE_AND_SERVICES = 22;</code>
     */
    const PERSONAL_CARE_AND_SERVICES = 22;
    /**
     * A protective services job, such as Security Guard.
     *
     * Generated from protobuf enum <code>PROTECTIVE_SERVICES = 23;</code>
     */
    const PROTECTIVE_SERVICES = 23;
    /**
     * A real estate job, such as Buyer's Agent.
     *
     * Generated from protobuf enum <code>REAL_ESTATE = 24;</code>
     */
    const REAL_ESTATE = 24;
    /**
     * A restaurant and hospitality job, such as Restaurant Server.
     *
     * Generated from protobuf enum <code>RESTAURANT_AND_HOSPITALITY = 25;</code>
     */
    const RESTAURANT_AND_HOSPITALITY = 25;
    /**
     * A sales and/or retail job, such Sales Associate.
     *
     * Generated from protobuf enum <code>SALES_AND_RETAIL = 26;</code>
     */
    const SALES_AND_RETAIL = 26;
    /**
     * A science and engineering job, such as Lab Technician.
     *
     * Generated from protobuf enum <code>SCIENCE_AND_ENGINEERING = 27;</code>
     */
    const SCIENCE_AND_ENGINEERING = 27;
    /**
     * A social services or non-profit job, such as Case Worker.
     *
     * Generated from protobuf enum <code>SOCIAL_SERVICES_AND_NON_PROFIT = 28;</code>
     */
    const SOCIAL_SERVICES_AND_NON_PROFIT = 28;
    /**
     * A sports, fitness, or recreation job, such as Personal Trainer.
     *
     * Generated from protobuf enum <code>SPORTS_FITNESS_AND_RECREATION = 29;</code>
     */
    const SPORTS_FITNESS_AND_RECREATION = 29;
    /**
     * A transportation or logistics job, such as Truck Driver.
     *
     * Generated from protobuf enum <code>TRANSPORTATION_AND_LOGISTICS = 30;</code>
     */
    const TRANSPORTATION_AND_LOGISTICS = 30;

    private static $valueToName = [
        self::JOB_CATEGORY_UNSPECIFIED => 'JOB_CATEGORY_UNSPECIFIED',
        self::ACCOUNTING_AND_FINANCE => 'ACCOUNTING_AND_FINANCE',
        self::ADMINISTRATIVE_AND_OFFICE => 'ADMINISTRATIVE_AND_OFFICE',
        self::ADVERTISING_AND_MARKETING => 'ADVERTISING_AND_MARKETING',
        self::ANIMAL_CARE => 'ANIMAL_CARE',
        self::ART_FASHION_AND_DESIGN => 'ART_FASHION_AND_DESIGN',
        self::BUSINESS_OPERATIONS => 'BUSINESS_OPERATIONS',
        self::CLEANING_AND_FACILITIES => 'CLEANING_AND_FACILITIES',
        self::COMPUTER_AND_IT => 'COMPUTER_AND_IT',
        self::CONSTRUCTION => 'CONSTRUCTION',
        self::CUSTOMER_SERVICE => 'CUSTOMER_SERVICE',
        self::EDUCATION => 'EDUCATION',
        self::ENTERTAINMENT_AND_TRAVEL => 'ENTERTAINMENT_AND_TRAVEL',
        self::FARMING_AND_OUTDOORS => 'FARMING_AND_OUTDOORS',
        self::HEALTHCARE => 'HEALTHCARE',
        self::HUMAN_RESOURCES => 'HUMAN_RESOURCES',
        self::INSTALLATION_MAINTENANCE_AND_REPAIR => 'INSTALLATION_MAINTENANCE_AND_REPAIR',
        self::LEGAL => 'LEGAL',
        self::MANAGEMENT => 'MANAGEMENT',
        self::MANUFACTURING_AND_WAREHOUSE => 'MANUFACTURING_AND_WAREHOUSE',
        self::MEDIA_COMMUNICATIONS_AND_WRITING => 'MEDIA_COMMUNICATIONS_AND_WRITING',
        self::OIL_GAS_AND_MINING => 'OIL_GAS_AND_MINING',
        self::PERSONAL_CARE_AND_SERVICES => 'PERSONAL_CARE_AND_SERVICES',
        self::PROTECTIVE_SERVICES => 'PROTECTIVE_SERVICES',
        self::REAL_ESTATE => 'REAL_ESTATE',
        self::RESTAURANT_AND_HOSPITALITY => 'RESTAURANT_AND_HOSPITALITY',
        self::SALES_AND_RETAIL => 'SALES_AND_RETAIL',
        self::SCIENCE_AND_ENGINEERING => 'SCIENCE_AND_ENGINEERING',
        self::SOCIAL_SERVICES_AND_NON_PROFIT => 'SOCIAL_SERVICES_AND_NON_PROFIT',
        self::SPORTS_FITNESS_AND_RECREATION => 'SPORTS_FITNESS_AND_RECREATION',
        self::TRANSPORTATION_AND_LOGISTICS => 'TRANSPORTATION_AND_LOGISTICS',
    ];

    public static function name($value)
    {
        if (!isset(self::$valueToName[$value])) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no name defined for value %s', __CLASS__, $value));
        }
        return self::$valueToName[$value];
    }


    public static function value($name)
    {
        $const = __CLASS__ . '::' . strtoupper($name);
        if (!defined($const)) {
            throw new UnexpectedValueException(sprintf(
                    'Enum %s has no value defined for name %s', __CLASS__, $name));
        }
        return constant($const);
    }
}

