text: // NOTE: This file was generated by the ServiceGenerator.
  
  // ----------------------------------------------------------------------------
  // API:
  //   Cloud Talent Solution API (jobs/v3)
  // Description:
  //   Cloud Talent Solution provides the capability to create, read, update, and
  //   delete job postings, as well as search jobs based on keywords and filters.
  // Documentation:
  //   https://cloud.google.com/talent-solution/job-search/docs/
  
  #if SWIFT_PACKAGE || GTLR_USE_MODULAR_IMPORT
    @import GoogleAPIClientForRESTCore;
  #elif GTLR_BUILT_AS_FRAMEWORK
    #import "GTLR/GTLRObject.h"
  #else
    #import "GTLRObject.h"
  #endif
  
  #if GTLR_RUNTIME_VERSION != 3000
  #error This file was generated by a different version of ServiceGenerator which is incompatible with this GTLR library source.
  #endif
  
  @class GTLRCloudTalentSolution_ApplicationInfo;
  @class GTLRCloudTalentSolution_BucketizedCount;
  @class GTLRCloudTalentSolution_BucketRange;
  @class GTLRCloudTalentSolution_ClientEvent;
  @class GTLRCloudTalentSolution_ClientEvent_ExtraInfo;
  @class GTLRCloudTalentSolution_CommuteFilter;
  @class GTLRCloudTalentSolution_CommuteInfo;
  @class GTLRCloudTalentSolution_Company;
  @class GTLRCloudTalentSolution_CompanyDerivedInfo;
  @class GTLRCloudTalentSolution_CompensationEntry;
  @class GTLRCloudTalentSolution_CompensationFilter;
  @class GTLRCloudTalentSolution_CompensationHistogramRequest;
  @class GTLRCloudTalentSolution_CompensationHistogramResult;
  @class GTLRCloudTalentSolution_CompensationInfo;
  @class GTLRCloudTalentSolution_CompensationRange;
  @class GTLRCloudTalentSolution_CompletionResult;
  @class GTLRCloudTalentSolution_CustomAttribute;
  @class GTLRCloudTalentSolution_CustomAttributeHistogramRequest;
  @class GTLRCloudTalentSolution_CustomAttributeHistogramResult;
  @class GTLRCloudTalentSolution_CustomAttributeHistogramResult_StringValueHistogramResult;
  @class GTLRCloudTalentSolution_DeviceInfo;
  @class GTLRCloudTalentSolution_HistogramFacets;
  @class GTLRCloudTalentSolution_HistogramResult;
  @class GTLRCloudTalentSolution_HistogramResult_Values;
  @class GTLRCloudTalentSolution_HistogramResults;
  @class GTLRCloudTalentSolution_Job;
  @class GTLRCloudTalentSolution_Job_CustomAttributes;
  @class GTLRCloudTalentSolution_JobDerivedInfo;
  @class GTLRCloudTalentSolution_JobEvent;
  @class GTLRCloudTalentSolution_JobQuery;
  @class GTLRCloudTalentSolution_LatLng;
  @class GTLRCloudTalentSolution_Location;
  @class GTLRCloudTalentSolution_LocationFilter;
  @class GTLRCloudTalentSolution_MatchingJob;
  @class GTLRCloudTalentSolution_MendelDebugInput_NamespacedDebugInput;
  @class GTLRCloudTalentSolution_Money;
  @class GTLRCloudTalentSolution_NamespacedDebugInput;
  @class GTLRCloudTalentSolution_NamespacedDebugInput_ForcedFlags;
  @class GTLRCloudTalentSolution_NamespacedDebugInput_ForcedRollouts;
  @class GTLRCloudTalentSolution_NumericBucketingOption;
  @class GTLRCloudTalentSolution_NumericBucketingResult;
  @class GTLRCloudTalentSolution_PostalAddress;
  @class GTLRCloudTalentSolution_ProcessingOptions;
  @class GTLRCloudTalentSolution_RequestMetadata;
  @class GTLRCloudTalentSolution_ResponseMetadata;
  @class GTLRCloudTalentSolution_SpellingCorrection;
  @class GTLRCloudTalentSolution_TimeOfDay;
  @class GTLRCloudTalentSolution_TimestampRange;
  
  // Generated comments include content from the discovery document; avoid them
  // causing warnings since clang's checks are some what arbitrary.
  #pragma clang diagnostic push
  #pragma clang diagnostic ignored "-Wdocumentation"
  
  NS_ASSUME_NONNULL_BEGIN
  
  // ----------------------------------------------------------------------------
  // Constants - For some of the classes' properties below.
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CommuteFilter.commuteMethod
  
  /**
   *  Commute method is not specified.
   *
   *  Value: "COMMUTE_METHOD_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CommuteFilter_CommuteMethod_CommuteMethodUnspecified;
  /**
   *  Commute time is calculated based on driving time.
   *
   *  Value: "DRIVING"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CommuteFilter_CommuteMethod_Driving;
  /**
   *  Commute time is calculated based on public transit including bus, metro,
   *  subway, etc.
   *
   *  Value: "TRANSIT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CommuteFilter_CommuteMethod_Transit;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CommuteFilter.roadTraffic
  
  /**
   *  Commute time calculation takes in account the peak traffic impact.
   *
   *  Value: "BUSY_HOUR"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CommuteFilter_RoadTraffic_BusyHour;
  /**
   *  Road traffic situation is not specified.
   *
   *  Value: "ROAD_TRAFFIC_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CommuteFilter_RoadTraffic_RoadTrafficUnspecified;
  /**
   *  Optimal commute time without considering any traffic impact.
   *
   *  Value: "TRAFFIC_FREE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CommuteFilter_RoadTraffic_TrafficFree;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Company.size
  
  /**
   *  The company has between 1,000 and 4,999 employees.
   *
   *  Value: "BIG"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_Big;
  /**
   *  The company has between 5,000 and 9,999 employees.
   *
   *  Value: "BIGGER"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_Bigger;
  /**
   *  Default value if the size is not specified.
   *
   *  Value: "COMPANY_SIZE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_CompanySizeUnspecified;
  /**
   *  The company has 10,000 or more employees.
   *
   *  Value: "GIANT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_Giant;
  /**
   *  The company has between 500 and 999 employees.
   *
   *  Value: "MEDIUM"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_Medium;
  /**
   *  The company has less than 50 employees.
   *
   *  Value: "MINI"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_Mini;
  /**
   *  The company has between 50 and 99 employees.
   *
   *  Value: "SMALL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_Small;
  /**
   *  The company has between 100 and 499 employees.
   *
   *  Value: "SMEDIUM"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Company_Size_Smedium;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CompensationEntry.type
  
  /**
   *  Base compensation: Refers to the fixed amount of money paid to an
   *  employee by an employer in return for work performed. Base compensation
   *  does not include benefits, bonuses or any other potential compensation
   *  from an employer.
   *
   *  Value: "BASE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_Base;
  /**
   *  Bonus.
   *
   *  Value: "BONUS"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_Bonus;
  /**
   *  Commission.
   *
   *  Value: "COMMISSIONS"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_Commissions;
  /**
   *  Default value.
   *
   *  Value: "COMPENSATION_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_CompensationTypeUnspecified;
  /**
   *  Equity.
   *
   *  Value: "EQUITY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_Equity;
  /**
   *  Other compensation type.
   *
   *  Value: "OTHER_COMPENSATION_TYPE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_OtherCompensationType;
  /**
   *  Profit sharing.
   *
   *  Value: "PROFIT_SHARING"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_ProfitSharing;
  /**
   *  Signing bonus.
   *
   *  Value: "SIGNING_BONUS"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_SigningBonus;
  /**
   *  Tips.
   *
   *  Value: "TIPS"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Type_Tips;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CompensationEntry.unit
  
  /**
   *  Default value.
   *
   *  Value: "COMPENSATION_UNIT_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_CompensationUnitUnspecified;
  /**
   *  Daily.
   *
   *  Value: "DAILY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_Daily;
  /**
   *  Hourly.
   *
   *  Value: "HOURLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_Hourly;
  /**
   *  Monthly.
   *
   *  Value: "MONTHLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_Monthly;
  /**
   *  One time.
   *
   *  Value: "ONE_TIME"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_OneTime;
  /**
   *  Other compensation units.
   *
   *  Value: "OTHER_COMPENSATION_UNIT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_OtherCompensationUnit;
  /**
   *  Weekly
   *
   *  Value: "WEEKLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_Weekly;
  /**
   *  Yearly.
   *
   *  Value: "YEARLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationEntry_Unit_Yearly;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CompensationFilter.type
  
  /**
   *  Filter by annualized base compensation amount and `base compensation
   *  entry's` unit. Populate range and zero or more units.
   *
   *  Value: "ANNUALIZED_BASE_AMOUNT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Type_AnnualizedBaseAmount;
  /**
   *  Filter by annualized total compensation amount and `base compensation
   *  entry's` unit . Populate range and zero or more units.
   *
   *  Value: "ANNUALIZED_TOTAL_AMOUNT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Type_AnnualizedTotalAmount;
  /**
   *  Filter type unspecified. Position holder, INVALID, should never be used.
   *
   *  Value: "FILTER_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Type_FilterTypeUnspecified;
  /**
   *  Filter by `base compensation entry's` unit and amount / range. A job
   *  is a match if and only if the job contains a base CompensationEntry, and
   *  the base entry's unit matches provided compensation_units and amount
   *  or range overlaps with provided compensation_range.
   *  See CompensationInfo.CompensationEntry for definition of
   *  base compensation entry.
   *  Set exactly one units and populate range.
   *
   *  Value: "UNIT_AND_AMOUNT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Type_UnitAndAmount;
  /**
   *  Filter by `base compensation entry's` unit. A job is a match if and
   *  only if the job contains a base CompensationEntry and the base
   *  CompensationEntry's unit matches provided units.
   *  Populate one or more units.
   *  See CompensationInfo.CompensationEntry for definition of
   *  base compensation entry.
   *
   *  Value: "UNIT_ONLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Type_UnitOnly;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CompensationFilter.units
  
  /** Value: "COMPENSATION_UNIT_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_CompensationUnitUnspecified;
  /** Value: "DAILY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_Daily;
  /** Value: "HOURLY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_Hourly;
  /** Value: "MONTHLY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_Monthly;
  /** Value: "ONE_TIME" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_OneTime;
  /** Value: "OTHER_COMPENSATION_UNIT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_OtherCompensationUnit;
  /** Value: "WEEKLY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_Weekly;
  /** Value: "YEARLY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationFilter_Units_Yearly;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CompensationHistogramRequest.type
  
  /**
   *  Histogram by job's annualized base compensation. See CompensationEntry
   *  for definition of annualized base compensation.
   *
   *  Value: "ANNUALIZED_BASE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_AnnualizedBase;
  /**
   *  Histogram by job's annualized total compensation. See CompensationEntry
   *  for definition of annualized total compensation.
   *
   *  Value: "ANNUALIZED_TOTAL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_AnnualizedTotal;
  /**
   *  Histogram by job's base compensation. See CompensationEntry for
   *  definition of base compensation.
   *
   *  Value: "BASE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_Base;
  /**
   *  Default value. Invalid.
   *
   *  Value: "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_CompensationHistogramRequestTypeUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CompensationHistogramResult.type
  
  /**
   *  Histogram by job's annualized base compensation. See CompensationEntry
   *  for definition of annualized base compensation.
   *
   *  Value: "ANNUALIZED_BASE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramResult_Type_AnnualizedBase;
  /**
   *  Histogram by job's annualized total compensation. See CompensationEntry
   *  for definition of annualized total compensation.
   *
   *  Value: "ANNUALIZED_TOTAL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramResult_Type_AnnualizedTotal;
  /**
   *  Histogram by job's base compensation. See CompensationEntry for
   *  definition of base compensation.
   *
   *  Value: "BASE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramResult_Type_Base;
  /**
   *  Default value. Invalid.
   *
   *  Value: "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompensationHistogramResult_Type_CompensationHistogramRequestTypeUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_CompletionResult.type
  
  /**
   *  Suggest both job titles and company names.
   *
   *  Value: "COMBINED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompletionResult_Type_Combined;
  /**
   *  Only suggest company names.
   *
   *  Value: "COMPANY_NAME"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompletionResult_Type_CompanyName;
  /**
   *  Default value.
   *
   *  Value: "COMPLETION_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompletionResult_Type_CompletionTypeUnspecified;
  /**
   *  Only suggest job titles.
   *
   *  Value: "JOB_TITLE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_CompletionResult_Type_JobTitle;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_DeviceInfo.deviceType
  
  /**
   *  An Android device native application.
   *
   *  Value: "ANDROID"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Android;
  /**
   *  A bot, as opposed to a device operated by human beings, such as a web
   *  crawler.
   *
   *  Value: "BOT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Bot;
  /**
   *  The device type isn't specified.
   *
   *  Value: "DEVICE_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_DeviceInfo_DeviceType_DeviceTypeUnspecified;
  /**
   *  An iOS device native application.
   *
   *  Value: "IOS"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Ios;
  /**
   *  A mobile device web browser, such as a phone or tablet with a Chrome
   *  browser.
   *
   *  Value: "MOBILE_WEB"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_DeviceInfo_DeviceType_MobileWeb;
  /**
   *  Other devices types.
   *
   *  Value: "OTHER"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Other;
  /**
   *  A desktop web browser, such as, Chrome, Firefox, Safari, or Internet
   *  Explorer)
   *
   *  Value: "WEB"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Web;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_HistogramFacets.simpleHistogramFacets
  
  /** Value: "ADMIN_1" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_Admin1;
  /** Value: "ADMIN_1_COUNTRY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_Admin1Country;
  /** Value: "BASE_COMPENSATION_UNIT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_BaseCompensationUnit;
  /** Value: "CATEGORY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_Category;
  /** Value: "CITY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_City;
  /** Value: "CITY_COORDINATE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_CityCoordinate;
  /** Value: "COMPANY_DISPLAY_NAME" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_CompanyDisplayName;
  /** Value: "COMPANY_ID" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_CompanyId;
  /** Value: "COMPANY_SIZE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_CompanySize;
  /** Value: "COUNTRY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_Country;
  /** Value: "DATE_PUBLISHED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_DatePublished;
  /** Value: "EDUCATION_LEVEL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_EducationLevel;
  /** Value: "EMPLOYMENT_TYPE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_EmploymentType;
  /** Value: "EXPERIENCE_LEVEL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_ExperienceLevel;
  /** Value: "LANGUAGE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_Language;
  /** Value: "LOCALE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_Locale;
  /** Value: "SEARCH_TYPE_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramFacets_SimpleHistogramFacets_SearchTypeUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_HistogramResult.searchType
  
  /**
   *  Filter by Admin1, which is a global placeholder for
   *  referring to state, province, or the particular term a country uses to
   *  define the geographic structure below the country level.
   *  Examples include states codes such as "CA", "IL", "NY", and
   *  provinces, such as "BC".
   *
   *  Value: "ADMIN_1"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_Admin1;
  /**
   *  A combination of state or province code with a country code. This field
   *  differs from `JOB_ADMIN1`, which can be used in multiple countries.
   *
   *  Value: "ADMIN_1_COUNTRY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_Admin1Country;
  /**
   *  Base compensation unit.
   *
   *  Value: "BASE_COMPENSATION_UNIT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_BaseCompensationUnit;
  /**
   *  Filter by the Category.
   *
   *  Value: "CATEGORY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_Category;
  /**
   *  Filter by the "city name", "Admin1 code", for example,
   *  "Mountain View, CA" or "New York, NY".
   *
   *  Value: "CITY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_City;
  /**
   *  Filter by the city center GPS coordinate (latitude and longitude), for
   *  example, 37.4038522,-122.0987765. Since the coordinates of a city center
   *  can change, clients may need to refresh them periodically.
   *
   *  Value: "CITY_COORDINATE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_CityCoordinate;
  /**
   *  Company display name.
   *
   *  Value: "COMPANY_DISPLAY_NAME"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_CompanyDisplayName;
  /**
   *  Filter by the company id field.
   *
   *  Value: "COMPANY_ID"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_CompanyId;
  /**
   *  Filter by the company size type field, such as `BIG`, `SMALL` or `BIGGER`.
   *
   *  Value: "COMPANY_SIZE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_CompanySize;
  /**
   *  Filter by the country code of job, such as US, JP, FR.
   *
   *  Value: "COUNTRY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_Country;
  /**
   *  Filter by the date published field. Possible return values are:
   *  * PAST_24_HOURS (The past 24 hours)
   *  * PAST_3_DAYS (The past 3 days)
   *  * PAST_WEEK (The past 7 days)
   *  * PAST_MONTH (The past 30 days)
   *  * PAST_YEAR (The past 365 days)
   *
   *  Value: "DATE_PUBLISHED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_DatePublished;
  /**
   *  Filter by the required education level of the job.
   *
   *  Value: "EDUCATION_LEVEL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_EducationLevel;
  /**
   *  Filter by the employment type field, such as `FULL_TIME` or `PART_TIME`.
   *
   *  Value: "EMPLOYMENT_TYPE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_EmploymentType;
  /**
   *  Filter by the required experience level of the job.
   *
   *  Value: "EXPERIENCE_LEVEL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_ExperienceLevel;
  /**
   *  Filter by the language code portion of the locale field, such as "en" or
   *  "fr".
   *
   *  Value: "LANGUAGE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_Language;
  /**
   *  Filter by the locale field of a job, such as "en-US", "fr-FR".
   *  This is the BCP-47 language code, such as "en-US" or "sr-Latn".
   *  For more information, see
   *  [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
   *
   *  Value: "LOCALE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_Locale;
  /**
   *  The default value if search type is not specified.
   *
   *  Value: "SEARCH_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_HistogramResult_SearchType_SearchTypeUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Job.degreeTypes
  
  /** Value: "ADULT_REMEDIAL_EDUCATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_AdultRemedialEducation;
  /** Value: "ASSOCIATES_OR_EQUIVALENT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_AssociatesOrEquivalent;
  /** Value: "BACHELORS_OR_EQUIVALENT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_BachelorsOrEquivalent;
  /** Value: "DEGREE_TYPE_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_DegreeTypeUnspecified;
  /** Value: "DOCTORAL_OR_EQUIVALENT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_DoctoralOrEquivalent;
  /** Value: "LOWER_SECONDARY_EDUCATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_LowerSecondaryEducation;
  /** Value: "MASTERS_OR_EQUIVALENT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_MastersOrEquivalent;
  /** Value: "PRIMARY_EDUCATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_PrimaryEducation;
  /** Value: "UPPER_SECONDARY_EDUCATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_DegreeTypes_UpperSecondaryEducation;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Job.employmentTypes
  
  /** Value: "CONTRACTOR" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_Contractor;
  /** Value: "CONTRACT_TO_HIRE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_ContractToHire;
  /** Value: "EMPLOYMENT_TYPE_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_EmploymentTypeUnspecified;
  /** Value: "FLY_IN_FLY_OUT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_FlyInFlyOut;
  /** Value: "FULL_TIME" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_FullTime;
  /** Value: "INTERN" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_Intern;
  /** Value: "OTHER_EMPLOYMENT_TYPE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_OtherEmploymentType;
  /** Value: "PART_TIME" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_PartTime;
  /** Value: "PER_DIEM" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_PerDiem;
  /** Value: "TEMPORARY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_Temporary;
  /** Value: "VOLUNTEER" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_EmploymentTypes_Volunteer;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Job.jobBenefits
  
  /** Value: "CHILD_CARE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_ChildCare;
  /** Value: "DENTAL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_Dental;
  /** Value: "DOMESTIC_PARTNER" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_DomesticPartner;
  /** Value: "FLEXIBLE_HOURS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_FlexibleHours;
  /** Value: "JOB_BENEFIT_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_JobBenefitUnspecified;
  /** Value: "LIFE_INSURANCE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_LifeInsurance;
  /** Value: "MEDICAL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_Medical;
  /** Value: "PARENTAL_LEAVE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_ParentalLeave;
  /** Value: "RETIREMENT_PLAN" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_RetirementPlan;
  /** Value: "SICK_DAYS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_SickDays;
  /** Value: "VACATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_Vacation;
  /** Value: "VISION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobBenefits_Vision;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Job.jobLevel
  
  /**
   *  Senior-level managers responsible for managing teams of managers.
   *
   *  Value: "DIRECTOR"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobLevel_Director;
  /**
   *  Entry-level individual contributors, typically with less than 2 years of
   *  experience in a similar role. Includes interns.
   *
   *  Value: "ENTRY_LEVEL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobLevel_EntryLevel;
  /**
   *  Executive-level managers and above, including C-level positions.
   *
   *  Value: "EXECUTIVE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobLevel_Executive;
  /**
   *  Experienced individual contributors, typically with 2+ years of
   *  experience in a similar role.
   *
   *  Value: "EXPERIENCED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobLevel_Experienced;
  /**
   *  The default value if the level is not specified.
   *
   *  Value: "JOB_LEVEL_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobLevel_JobLevelUnspecified;
  /**
   *  Entry- to mid-level managers responsible for managing a team of people.
   *
   *  Value: "MANAGER"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_JobLevel_Manager;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Job.postingRegion
  
  /**
   *  In addition to exact location matching, job posting is returned when the
   *  LocationFilter in the search query is in the same administrative area
   *  as the returned job posting. For example, if a `ADMINISTRATIVE_AREA` job
   *  is posted in "CA, USA", it's returned if LocationFilter has
   *  "Mountain View".
   *  Administrative area refers to top-level administrative subdivision of this
   *  country. For example, US state, IT region, UK constituent nation and
   *  JP prefecture.
   *
   *  Value: "ADMINISTRATIVE_AREA"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_PostingRegion_AdministrativeArea;
  /**
   *  In addition to exact location matching, job is returned when
   *  LocationFilter in search query is in the same country as this job.
   *  For example, if a `NATION_WIDE` job is posted in "USA", it's
   *  returned if LocationFilter has 'Mountain View'.
   *
   *  Value: "NATION"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_PostingRegion_Nation;
  /**
   *  If the region is unspecified, the job is only returned if it
   *  matches the LocationFilter.
   *
   *  Value: "POSTING_REGION_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_PostingRegion_PostingRegionUnspecified;
  /**
   *  Job allows employees to work remotely (telecommute).
   *  If locations are provided with this value, the job is
   *  considered as having a location, but telecommuting is allowed.
   *
   *  Value: "TELECOMMUTE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_PostingRegion_Telecommute;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Job.visibility
  
  /**
   *  The resource is only visible to the GCP account who owns it.
   *
   *  Value: "ACCOUNT_ONLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_Visibility_AccountOnly;
  /**
   *  The resource is visible to the owner and may be visible to other
   *  applications and processes at Google.
   *
   *  Value: "SHARED_WITH_GOOGLE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_Visibility_SharedWithGoogle;
  /**
   *  The resource is visible to the owner and may be visible to all other API
   *  clients.
   *
   *  Value: "SHARED_WITH_PUBLIC"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_Visibility_SharedWithPublic;
  /**
   *  Default value.
   *
   *  Value: "VISIBILITY_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Job_Visibility_VisibilityUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_JobDerivedInfo.jobCategories
  
  /** Value: "ACCOUNTING_AND_FINANCE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_AccountingAndFinance;
  /** Value: "ADMINISTRATIVE_AND_OFFICE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_AdministrativeAndOffice;
  /** Value: "ADVERTISING_AND_MARKETING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_AdvertisingAndMarketing;
  /** Value: "ANIMAL_CARE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_AnimalCare;
  /** Value: "ART_FASHION_AND_DESIGN" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_ArtFashionAndDesign;
  /** Value: "BUSINESS_OPERATIONS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_BusinessOperations;
  /** Value: "CLEANING_AND_FACILITIES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_CleaningAndFacilities;
  /** Value: "COMPUTER_AND_IT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_ComputerAndIt;
  /** Value: "CONSTRUCTION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_Construction;
  /** Value: "CUSTOMER_SERVICE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_CustomerService;
  /** Value: "EDUCATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_Education;
  /** Value: "ENTERTAINMENT_AND_TRAVEL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_EntertainmentAndTravel;
  /** Value: "FARMING_AND_OUTDOORS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_FarmingAndOutdoors;
  /** Value: "HEALTHCARE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_Healthcare;
  /** Value: "HUMAN_RESOURCES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_HumanResources;
  /** Value: "INSTALLATION_MAINTENANCE_AND_REPAIR" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_InstallationMaintenanceAndRepair;
  /** Value: "JOB_CATEGORY_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_JobCategoryUnspecified;
  /** Value: "LEGAL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_Legal;
  /** Value: "MANAGEMENT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_Management;
  /** Value: "MANUFACTURING_AND_WAREHOUSE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_ManufacturingAndWarehouse;
  /** Value: "MEDIA_COMMUNICATIONS_AND_WRITING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_MediaCommunicationsAndWriting;
  /** Value: "OIL_GAS_AND_MINING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_OilGasAndMining;
  /** Value: "PERSONAL_CARE_AND_SERVICES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_PersonalCareAndServices;
  /** Value: "PROTECTIVE_SERVICES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_ProtectiveServices;
  /** Value: "REAL_ESTATE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_RealEstate;
  /** Value: "RESTAURANT_AND_HOSPITALITY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_RestaurantAndHospitality;
  /** Value: "SALES_AND_RETAIL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_SalesAndRetail;
  /** Value: "SCIENCE_AND_ENGINEERING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_ScienceAndEngineering;
  /** Value: "SOCIAL_SERVICES_AND_NON_PROFIT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_SocialServicesAndNonProfit;
  /** Value: "SPORTS_FITNESS_AND_RECREATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_SportsFitnessAndRecreation;
  /** Value: "TRANSPORTATION_AND_LOGISTICS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobDerivedInfo_JobCategories_TransportationAndLogistics;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_JobEvent.type
  
  /**
   *  This event should be used when a company submits an application
   *  on behalf of a job seeker. This event is intended for use by staffing
   *  agencies attempting to place candidates.
   *
   *  Value: "APPLICATION_COMPANY_SUBMIT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ApplicationCompanySubmit;
  /**
   *  The job seeker or other entity interacting with the service
   *  submitted an application for a job.
   *
   *  Value: "APPLICATION_FINISH"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ApplicationFinish;
  /**
   *  The job seeker or other entity interacting with the service
   *  submitted an application for a job with a single click without
   *  entering information. If a job seeker performs this action, send only
   *  this event to the service. Do not also send
   *  JobEventType.APPLICATION_START or JobEventType.APPLICATION_FINISH
   *  events.
   *
   *  Value: "APPLICATION_QUICK_SUBMISSION"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ApplicationQuickSubmission;
  /**
   *  The job seeker or other entity interacting with the service
   *  performed an action to apply to a job and was redirected to a different
   *  website to complete the application.
   *
   *  Value: "APPLICATION_REDIRECT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ApplicationRedirect;
  /**
   *  The job seeker, or other entity interacting with the service, performs an
   *  action with a single click from the search results page to apply to a job
   *  (without viewing the details of the job posting), and is redirected
   *  to a different website to complete the application. If a candidate
   *  performs this action, send only this event to the service. Do not also
   *  send JobEventType.APPLICATION_START,
   *  JobEventType.APPLICATION_FINISH or JobEventType.VIEW events.
   *
   *  Value: "APPLICATION_REDIRECT_FROM_SEARCH"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ApplicationRedirectFromSearch;
  /**
   *  The job seeker or other entity interacting with the service
   *  began the process or demonstrated the intention of applying for a job.
   *
   *  Value: "APPLICATION_START"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ApplicationStart;
  /**
   *  The job seeker or other entity interacting with the service began the
   *  process or demonstrated the intention of applying for a job from the
   *  search results page without viewing the details of the job posting.
   *  If sending this event, JobEventType.VIEW event shouldn't be sent.
   *
   *  Value: "APPLICATION_START_FROM_SEARCH"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ApplicationStartFromSearch;
  /**
   *  The job seeker or other entity interacting with the service demonstrated
   *  an interest in a job by bookmarking or saving it.
   *
   *  Value: "BOOKMARK"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_Bookmark;
  /**
   *  The job seeker or other entity interacting with the service was
   *  employed by the hiring entity (employer). Send this event
   *  only if the job seeker was hired through an application that was
   *  initiated by a search conducted through the Cloud Talent Solution
   *  service.
   *
   *  Value: "HIRED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_Hired;
  /**
   *  The job seeker or other entity interacting with the service has
   *  had a job rendered in their view, such as in a list of search results in
   *  a compressed or clipped format. This event is typically associated with
   *  the viewing of a jobs list on a single page by a job seeker.
   *
   *  Value: "IMPRESSION"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_Impression;
  /**
   *  The entity interacting with the service (for example, the job seeker),
   *  was granted an initial interview by the hiring entity (employer). This
   *  event should only be sent if the job seeker was granted an interview as
   *  part of an application that was initiated by a search conducted through /
   *  recommendation provided by the Cloud Talent Solution service.
   *
   *  Value: "INTERVIEW_GRANTED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_InterviewGranted;
  /**
   *  The event is unspecified by other provided values.
   *
   *  Value: "JOB_EVENT_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_JobEventTypeUnspecified;
  /**
   *  The job seeker or other entity interacting with the service was
   *  sent a notification, such as an email alert or device notification,
   *  containing one or more jobs listings generated by the service.
   *
   *  Value: "NOTIFICATION"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_Notification;
  /**
   *  The job seeker or other entity interacting with the service showed
   *  no interest in the job.
   *
   *  Value: "NOT_INTERESTED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_NotInterested;
  /**
   *  A recruiter or staffing agency submitted an application on behalf of the
   *  candidate after interacting with the service to identify a suitable job
   *  posting.
   *
   *  Value: "SENT_CV"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_SentCv;
  /**
   *  The job seeker, or other entity interacting with the service, has
   *  viewed the details of a job, including the full description. This
   *  event doesn't apply to the viewing a snippet of a job appearing as a
   *  part of the job search results. Viewing a snippet is associated with an
   *  impression).
   *
   *  Value: "VIEW"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_View;
  /**
   *  The job seeker or other entity interacting with the service
   *  performed an action to view a job and was redirected to a different
   *  website for job.
   *
   *  Value: "VIEW_REDIRECT"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobEvent_Type_ViewRedirect;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_JobQuery.employmentTypes
  
  /** Value: "CONTRACTOR" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_Contractor;
  /** Value: "CONTRACT_TO_HIRE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_ContractToHire;
  /** Value: "EMPLOYMENT_TYPE_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_EmploymentTypeUnspecified;
  /** Value: "FLY_IN_FLY_OUT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_FlyInFlyOut;
  /** Value: "FULL_TIME" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_FullTime;
  /** Value: "INTERN" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_Intern;
  /** Value: "OTHER_EMPLOYMENT_TYPE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_OtherEmploymentType;
  /** Value: "PART_TIME" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_PartTime;
  /** Value: "PER_DIEM" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_PerDiem;
  /** Value: "TEMPORARY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_Temporary;
  /** Value: "VOLUNTEER" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_EmploymentTypes_Volunteer;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_JobQuery.jobCategories
  
  /** Value: "ACCOUNTING_AND_FINANCE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_AccountingAndFinance;
  /** Value: "ADMINISTRATIVE_AND_OFFICE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_AdministrativeAndOffice;
  /** Value: "ADVERTISING_AND_MARKETING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_AdvertisingAndMarketing;
  /** Value: "ANIMAL_CARE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_AnimalCare;
  /** Value: "ART_FASHION_AND_DESIGN" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_ArtFashionAndDesign;
  /** Value: "BUSINESS_OPERATIONS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_BusinessOperations;
  /** Value: "CLEANING_AND_FACILITIES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_CleaningAndFacilities;
  /** Value: "COMPUTER_AND_IT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_ComputerAndIt;
  /** Value: "CONSTRUCTION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_Construction;
  /** Value: "CUSTOMER_SERVICE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_CustomerService;
  /** Value: "EDUCATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_Education;
  /** Value: "ENTERTAINMENT_AND_TRAVEL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_EntertainmentAndTravel;
  /** Value: "FARMING_AND_OUTDOORS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_FarmingAndOutdoors;
  /** Value: "HEALTHCARE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_Healthcare;
  /** Value: "HUMAN_RESOURCES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_HumanResources;
  /** Value: "INSTALLATION_MAINTENANCE_AND_REPAIR" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_InstallationMaintenanceAndRepair;
  /** Value: "JOB_CATEGORY_UNSPECIFIED" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_JobCategoryUnspecified;
  /** Value: "LEGAL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_Legal;
  /** Value: "MANAGEMENT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_Management;
  /** Value: "MANUFACTURING_AND_WAREHOUSE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_ManufacturingAndWarehouse;
  /** Value: "MEDIA_COMMUNICATIONS_AND_WRITING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_MediaCommunicationsAndWriting;
  /** Value: "OIL_GAS_AND_MINING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_OilGasAndMining;
  /** Value: "PERSONAL_CARE_AND_SERVICES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_PersonalCareAndServices;
  /** Value: "PROTECTIVE_SERVICES" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_ProtectiveServices;
  /** Value: "REAL_ESTATE" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_RealEstate;
  /** Value: "RESTAURANT_AND_HOSPITALITY" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_RestaurantAndHospitality;
  /** Value: "SALES_AND_RETAIL" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_SalesAndRetail;
  /** Value: "SCIENCE_AND_ENGINEERING" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_ScienceAndEngineering;
  /** Value: "SOCIAL_SERVICES_AND_NON_PROFIT" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_SocialServicesAndNonProfit;
  /** Value: "SPORTS_FITNESS_AND_RECREATION" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_SportsFitnessAndRecreation;
  /** Value: "TRANSPORTATION_AND_LOGISTICS" */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_JobQuery_JobCategories_TransportationAndLogistics;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_Location.locationType
  
  /**
   *  A state or equivalent level location.
   *
   *  Value: "ADMINISTRATIVE_AREA"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_AdministrativeArea;
  /**
   *  A country level location.
   *
   *  Value: "COUNTRY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_Country;
  /**
   *  A city or equivalent level location.
   *
   *  Value: "LOCALITY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_Locality;
  /**
   *  Default value if the type is not specified.
   *
   *  Value: "LOCATION_TYPE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_LocationTypeUnspecified;
  /**
   *  A neighborhood level location.
   *
   *  Value: "NEIGHBORHOOD"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_Neighborhood;
  /**
   *  A postal code level location.
   *
   *  Value: "POSTAL_CODE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_PostalCode;
  /**
   *  A street address level location.
   *
   *  Value: "STREET_ADDRESS"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_StreetAddress;
  /**
   *  A county or equivalent level location.
   *
   *  Value: "SUB_ADMINISTRATIVE_AREA"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_SubAdministrativeArea;
  /**
   *  A sublocality is a subdivision of a locality, for example a city borough,
   *  ward, or arrondissement. Sublocalities are usually recognized by a local
   *  political authority. For example, Manhattan and Brooklyn are recognized
   *  as boroughs by the City of New York, and are therefore modeled as
   *  sublocalities.
   *
   *  Value: "SUB_LOCALITY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_SubLocality;
  /**
   *  A district or equivalent level location.
   *
   *  Value: "SUB_LOCALITY_1"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_SubLocality1;
  /**
   *  A smaller district or equivalent level display.
   *
   *  Value: "SUB_LOCALITY_2"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_Location_LocationType_SubLocality2;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_LocationFilter.telecommutePreference
  
  /**
   *  Allow telecommute jobs.
   *
   *  Value: "TELECOMMUTE_ALLOWED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_LocationFilter_TelecommutePreference_TelecommuteAllowed;
  /**
   *  Exclude telecommute jobs.
   *
   *  Value: "TELECOMMUTE_EXCLUDED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_LocationFilter_TelecommutePreference_TelecommuteExcluded;
  /**
   *  Default value if the telecommute preference is not specified.
   *
   *  Value: "TELECOMMUTE_PREFERENCE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_LocationFilter_TelecommutePreference_TelecommutePreferenceUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_ProcessingOptions.htmlSanitization
  
  /**
   *  Disables sanitization on HTML input.
   *
   *  Value: "HTML_SANITIZATION_DISABLED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_ProcessingOptions_HtmlSanitization_HtmlSanitizationDisabled;
  /**
   *  Default value.
   *
   *  Value: "HTML_SANITIZATION_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_ProcessingOptions_HtmlSanitization_HtmlSanitizationUnspecified;
  /**
   *  Sanitizes HTML input, only accepts bold, italic, ordered list, and
   *  unordered list markup tags.
   *
   *  Value: "SIMPLE_FORMATTING_ONLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_ProcessingOptions_HtmlSanitization_SimpleFormattingOnly;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_SearchJobsRequest.diversificationLevel
  
  /**
   *  Disables diversification. Jobs that would normally be pushed to the last
   *  page would not have their positions altered. This may result in highly
   *  similar jobs appearing in sequence in the search results.
   *
   *  Value: "DISABLED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_DiversificationLevel_Disabled;
  /**
   *  The diversification level isn't specified. By default, jobs with this
   *  enum are ordered according to SIMPLE diversifying behavior.
   *
   *  Value: "DIVERSIFICATION_LEVEL_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_DiversificationLevel_DiversificationLevelUnspecified;
  /**
   *  Default diversifying behavior. The result list is ordered so that
   *  highly similar results are pushed to the end of the last page of search
   *  results.
   *
   *  Value: "SIMPLE"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_DiversificationLevel_Simple;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_SearchJobsRequest.jobView
  
  /**
   *  All available attributes are included in the search results.
   *
   *  Value: "JOB_VIEW_FULL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewFull;
  /**
   *  A ID only view of job, with following attributes:
   *  Job.name, Job.requisition_id, Job.language_code.
   *
   *  Value: "JOB_VIEW_ID_ONLY"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewIdOnly;
  /**
   *  A minimal view of the job, with the following attributes:
   *  Job.name, Job.requisition_id, Job.title,
   *  Job.company_name, Job.DerivedInfo.locations, Job.language_code.
   *
   *  Value: "JOB_VIEW_MINIMAL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewMinimal;
  /**
   *  A small view of the job, with the following attributes in the search
   *  results: Job.name, Job.requisition_id, Job.title,
   *  Job.company_name, Job.DerivedInfo.locations, Job.visibility,
   *  Job.language_code, Job.description.
   *
   *  Value: "JOB_VIEW_SMALL"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewSmall;
  /**
   *  Default value.
   *
   *  Value: "JOB_VIEW_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewUnspecified;
  
  // ----------------------------------------------------------------------------
  // GTLRCloudTalentSolution_SearchJobsRequest.searchMode
  
  /**
   *  The job search matches only against featured jobs (jobs with a
   *  promotionValue > 0). This method doesn't return any jobs having a
   *  promotionValue <= 0. The search results order is determined by the
   *  promotionValue (jobs with a higher promotionValue are returned higher up
   *  in the search results), with relevance being used as a tiebreaker.
   *
   *  Value: "FEATURED_JOB_SEARCH"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_SearchMode_FeaturedJobSearch;
  /**
   *  The job search matches against all jobs, and featured jobs
   *  (jobs with promotionValue > 0) are not specially handled.
   *
   *  Value: "JOB_SEARCH"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_SearchMode_JobSearch;
  /**
   *  The mode of the search method isn't specified. The default search
   *  behavior is identical to JOB_SEARCH search behavior.
   *
   *  Value: "SEARCH_MODE_UNSPECIFIED"
   */
  FOUNDATION_EXTERN NSString * const kGTLRCloudTalentSolution_SearchJobsRequest_SearchMode_SearchModeUnspecified;
  
  /**
   *  Application related details of a job posting.
   */
  @interface GTLRCloudTalentSolution_ApplicationInfo : GTLRObject
  
  /**
   *  Optional but at least one of uris,
   *  emails or instruction must be
   *  specified.
   *  Use this field to specify email address(es) to which resumes or
   *  applications can be sent.
   *  The maximum number of allowed characters for each entry is 255.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *emails;
  
  /**
   *  Optional but at least one of uris,
   *  emails or instruction must be
   *  specified.
   *  Use this field to provide instructions, such as "Mail your application
   *  to ...", that a candidate can follow to apply for the job.
   *  This field accepts and sanitizes HTML input, and also accepts
   *  bold, italic, ordered list, and unordered list markup tags.
   *  The maximum number of allowed characters is 3,000.
   */
  @property(nonatomic, copy, nullable) NSString *instruction;
  
  /**
   *  Optional but at least one of uris,
   *  emails or instruction must be
   *  specified.
   *  Use this URI field to direct an applicant to a website, for example to
   *  link to an online application form.
   *  The maximum number of allowed characters for each entry is 2,000.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *uris;
  
  @end
  
  
  /**
   *  Input only.
   *  Batch delete jobs request.
   */
  @interface GTLRCloudTalentSolution_BatchDeleteJobsRequest : GTLRObject
  
  /**
   *  Required. The filter string specifies the jobs to be deleted.
   *  Supported operator: =, AND
   *  The fields eligible for filtering are:
   *  * `companyName` (Required)
   *  * `requisitionId` (Required)
   *  Sample Query: companyName = "projects/api-test-project/companies/123" AND
   *  requisitionId = "req-1"
   */
  @property(nonatomic, copy, nullable) NSString *filter;
  
  @end
  
  
  /**
   *  Represents count of jobs within one bucket.
   */
  @interface GTLRCloudTalentSolution_BucketizedCount : GTLRObject
  
  /**
   *  Number of jobs whose numeric field value fall into `range`.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *count;
  
  /**
   *  Bucket range on which histogram was performed for the numeric field,
   *  that is, the count represents number of jobs in this range.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_BucketRange *range;
  
  @end
  
  
  /**
   *  Represents starting and ending value of a range in double.
   */
  @interface GTLRCloudTalentSolution_BucketRange : GTLRObject
  
  /**
   *  Starting value of the bucket range.
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *from;
  
  /**
   *  Ending value of the bucket range.
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *to;
  
  @end
  
  
  /**
   *  An event issued when an end user interacts with the application that
   *  implements Cloud Talent Solution. Providing this information improves the
   *  quality of search and recommendation for the API clients, enabling the
   *  service to perform optimally. The number of events sent must be consistent
   *  with other calls, such as job searches, issued to the service by the client.
   */
  @interface GTLRCloudTalentSolution_ClientEvent : GTLRObject
  
  /** Required. The timestamp of the event. */
  @property(nonatomic, strong, nullable) GTLRDateTime *createTime;
  
  /**
   *  Required. A unique identifier, generated by the client application. This
   *  `event_id`
   *  is used to establish the relationship between different events
   *  (see parent_event_id).
   */
  @property(nonatomic, copy, nullable) NSString *eventId;
  
  /**
   *  Optional. Extra information about this event. Used for storing information
   *  with no
   *  matching field in event payload, for example, user application specific
   *  context or details.
   *  At most 20 keys are supported. The maximum total size of all keys and
   *  values is 2 KB.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ClientEvent_ExtraInfo *extraInfo;
  
  /**
   *  A event issued when a job seeker interacts with the application that
   *  implements Cloud Talent Solution.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_JobEvent *jobEvent;
  
  /**
   *  Optional. The event_id of an event that resulted in the current event. For
   *  example, a
   *  Job view event usually follows a parent
   *  impression event: A job seeker first does a
   *  search where a list of jobs appears
   *  (impression). The job seeker then selects a
   *  result and views the description of a particular job (Job
   *  view).
   */
  @property(nonatomic, copy, nullable) NSString *parentEventId;
  
  /**
   *  Required. A unique ID generated in the API responses. It can be found in
   *  ResponseMetadata.request_id.
   */
  @property(nonatomic, copy, nullable) NSString *requestId;
  
  @end
  
  
  /**
   *  Optional. Extra information about this event. Used for storing information
   *  with no
   *  matching field in event payload, for example, user application specific
   *  context or details.
   *  At most 20 keys are supported. The maximum total size of all keys and
   *  values is 2 KB.
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudTalentSolution_ClientEvent_ExtraInfo : GTLRObject
  @end
  
  
  /**
   *  Input only.
   *  Parameters needed for commute search.
   */
  @interface GTLRCloudTalentSolution_CommuteFilter : GTLRObject
  
  /**
   *  Optional. If true, jobs without "precise" addresses (street level addresses
   *  or GPS
   *  coordinates) might also be returned. For city and coarser level addresses,
   *  text matching is used. If this field is set to false or is not specified,
   *  only jobs that include precise addresses are returned by Commute
   *  Search.
   *  Note: If `allow_imprecise_addresses` is set to true, Commute Search is not
   *  able to calculate accurate commute times to jobs with city level and
   *  coarser address information. Jobs with imprecise addresses will return a
   *  `travel_duration` time of 0 regardless of distance from the job seeker.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *allowImpreciseAddresses;
  
  /**
   *  Required. The method of transportation for which to calculate the commute
   *  time.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CommuteFilter_CommuteMethod_CommuteMethodUnspecified
   *        Commute method is not specified. (Value: "COMMUTE_METHOD_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_CommuteFilter_CommuteMethod_Driving
   *        Commute time is calculated based on driving time. (Value: "DRIVING")
   *    @arg @c kGTLRCloudTalentSolution_CommuteFilter_CommuteMethod_Transit
   *        Commute time is calculated based on public transit including bus,
   *        metro,
   *        subway, etc. (Value: "TRANSIT")
   */
  @property(nonatomic, copy, nullable) NSString *commuteMethod;
  
  /**
   *  Optional. The departure time used to calculate traffic impact, represented
   *  as
   *  google.type.TimeOfDay in local time zone.
   *  Currently traffic model is restricted to hour level resolution.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_TimeOfDay *departureTime;
  
  /**
   *  Optional. Specifies the traffic density to use when calculating commute
   *  time.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CommuteFilter_RoadTraffic_BusyHour
   *        Commute time calculation takes in account the peak traffic impact.
   *        (Value: "BUSY_HOUR")
   *    @arg @c kGTLRCloudTalentSolution_CommuteFilter_RoadTraffic_RoadTrafficUnspecified
   *        Road traffic situation is not specified. (Value:
   *        "ROAD_TRAFFIC_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_CommuteFilter_RoadTraffic_TrafficFree
   *        Optimal commute time without considering any traffic impact. (Value:
   *        "TRAFFIC_FREE")
   */
  @property(nonatomic, copy, nullable) NSString *roadTraffic;
  
  /**
   *  Required. The latitude and longitude of the location from which to calculate
   *  the
   *  commute time.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_LatLng *startCoordinates;
  
  /**
   *  Required. The maximum travel time in seconds. The maximum allowed value is
   *  `3600s`
   *  (one hour). Format is `123s`.
   */
  @property(nonatomic, strong, nullable) GTLRDuration *travelDuration;
  
  @end
  
  
  /**
   *  Output only.
   *  Commute details related to this job.
   */
  @interface GTLRCloudTalentSolution_CommuteInfo : GTLRObject
  
  /** Location used as the destination in the commute calculation. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Location *jobLocation;
  
  /**
   *  The number of seconds required to travel to the job location from the
   *  query location. A duration of 0 seconds indicates that the job is not
   *  reachable within the requested duration, but was returned as part of an
   *  expanded query.
   */
  @property(nonatomic, strong, nullable) GTLRDuration *travelDuration;
  
  @end
  
  
  /**
   *  A Company resource represents a company in the service. A company is the
   *  entity that owns job postings, that is, the hiring entity responsible for
   *  employing applicants for the job position.
   */
  @interface GTLRCloudTalentSolution_Company : GTLRObject
  
  /**
   *  Optional. The URI to employer's career site or careers page on the
   *  employer's web
   *  site, for example, "https://careers.google.com".
   */
  @property(nonatomic, copy, nullable) NSString *careerSiteUri;
  
  /** Output only. Derived details about the company. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CompanyDerivedInfo *derivedInfo;
  
  /** Required. The display name of the company, for example, "Google LLC". */
  @property(nonatomic, copy, nullable) NSString *displayName;
  
  /**
   *  Optional. Equal Employment Opportunity legal disclaimer text to be
   *  associated with all jobs, and typically to be displayed in all
   *  roles.
   *  The maximum number of allowed characters is 500.
   */
  @property(nonatomic, copy, nullable) NSString *eeoText;
  
  /**
   *  Required. Client side company identifier, used to uniquely identify the
   *  company.
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *externalId;
  
  /**
   *  Optional. The street address of the company's main headquarters, which may
   *  be
   *  different from the job location. The service attempts
   *  to geolocate the provided address, and populates a more specific
   *  location wherever possible in DerivedInfo.headquarters_location.
   */
  @property(nonatomic, copy, nullable) NSString *headquartersAddress;
  
  /**
   *  Optional. Set to true if it is the hiring agency that post jobs for other
   *  employers.
   *  Defaults to false if not provided.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *hiringAgency;
  
  /** Optional. A URI that hosts the employer's company logo. */
  @property(nonatomic, copy, nullable) NSString *imageUri;
  
  /**
   *  Optional. A list of keys of filterable Job.custom_attributes, whose
   *  corresponding `string_values` are used in keyword search. Jobs with
   *  `string_values` under these specified field keys are returned if any
   *  of the values matches the search keyword. Custom field values with
   *  parenthesis, brackets and special symbols won't be properly searchable,
   *  and those keyword queries need to be surrounded by quotes.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *keywordSearchableJobCustomAttributes;
  
  /**
   *  Required during company update.
   *  The resource name for a company. This is generated by the service when a
   *  company is created.
   *  The format is "projects/{project_id}/companies/{company_id}", for example,
   *  "projects/api-test-project/companies/foo".
   */
  @property(nonatomic, copy, nullable) NSString *name;
  
  /**
   *  Optional. The employer's company size.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_Big The company has between
   *        1,000 and 4,999 employees. (Value: "BIG")
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_Bigger The company has
   *        between 5,000 and 9,999 employees. (Value: "BIGGER")
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_CompanySizeUnspecified
   *        Default value if the size is not specified. (Value:
   *        "COMPANY_SIZE_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_Giant The company has 10,000
   *        or more employees. (Value: "GIANT")
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_Medium The company has
   *        between 500 and 999 employees. (Value: "MEDIUM")
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_Mini The company has less
   *        than 50 employees. (Value: "MINI")
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_Small The company has
   *        between 50 and 99 employees. (Value: "SMALL")
   *    @arg @c kGTLRCloudTalentSolution_Company_Size_Smedium The company has
   *        between 100 and 499 employees. (Value: "SMEDIUM")
   */
  @property(nonatomic, copy, nullable) NSString *size;
  
  /**
   *  Output only. Indicates whether a company is flagged to be suspended from
   *  public availability by the service when job content appears suspicious,
   *  abusive, or spammy.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *suspended;
  
  /**
   *  Optional. The URI representing the company's primary web site or home page,
   *  for example, "https://www.google.com".
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *websiteUri;
  
  @end
  
  
  /**
   *  Derived details about the company.
   */
  @interface GTLRCloudTalentSolution_CompanyDerivedInfo : GTLRObject
  
  /**
   *  A structured headquarters location of the company, resolved from
   *  Company.hq_location if provided.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Location *headquartersLocation;
  
  @end
  
  
  /**
   *  A compensation entry that represents one component of compensation, such
   *  as base pay, bonus, or other compensation type.
   *  Annualization: One compensation entry can be annualized if
   *  - it contains valid amount or range.
   *  - and its expected_units_per_year is set or can be derived.
   *  Its annualized range is determined as (amount or range) times
   *  expected_units_per_year.
   */
  @interface GTLRCloudTalentSolution_CompensationEntry : GTLRObject
  
  /** Optional. Compensation amount. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Money *amount;
  
  /**
   *  Optional. Compensation description. For example, could
   *  indicate equity terms or provide additional context to an estimated
   *  bonus.
   *
   *  Remapped to 'descriptionProperty' to avoid NSObject's 'description'.
   */
  @property(nonatomic, copy, nullable) NSString *descriptionProperty;
  
  /**
   *  Optional. Expected number of units paid each year. If not specified, when
   *  Job.employment_types is FULLTIME, a default value is inferred
   *  based on unit. Default values:
   *  - HOURLY: 2080
   *  - DAILY: 260
   *  - WEEKLY: 52
   *  - MONTHLY: 12
   *  - ANNUAL: 1
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *expectedUnitsPerYear;
  
  /** Optional. Compensation range. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CompensationRange *range;
  
  /**
   *  Optional. Compensation type.
   *  Default is CompensationUnit.COMPENSATION_TYPE_UNSPECIFIED.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_Base Base
   *        compensation: Refers to the fixed amount of money paid to an
   *        employee by an employer in return for work performed. Base
   *        compensation
   *        does not include benefits, bonuses or any other potential compensation
   *        from an employer. (Value: "BASE")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_Bonus Bonus.
   *        (Value: "BONUS")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_Commissions
   *        Commission. (Value: "COMMISSIONS")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_CompensationTypeUnspecified
   *        Default value. (Value: "COMPENSATION_TYPE_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_Equity Equity.
   *        (Value: "EQUITY")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_OtherCompensationType
   *        Other compensation type. (Value: "OTHER_COMPENSATION_TYPE")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_ProfitSharing
   *        Profit sharing. (Value: "PROFIT_SHARING")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_SigningBonus
   *        Signing bonus. (Value: "SIGNING_BONUS")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Type_Tips Tips. (Value:
   *        "TIPS")
   */
  @property(nonatomic, copy, nullable) NSString *type;
  
  /**
   *  Optional. Frequency of the specified amount.
   *  Default is CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_CompensationUnitUnspecified
   *        Default value. (Value: "COMPENSATION_UNIT_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_Daily Daily.
   *        (Value: "DAILY")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_Hourly Hourly.
   *        (Value: "HOURLY")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_Monthly Monthly.
   *        (Value: "MONTHLY")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_OneTime One time.
   *        (Value: "ONE_TIME")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_OtherCompensationUnit
   *        Other compensation units. (Value: "OTHER_COMPENSATION_UNIT")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_Weekly Weekly
   *        (Value: "WEEKLY")
   *    @arg @c kGTLRCloudTalentSolution_CompensationEntry_Unit_Yearly Yearly.
   *        (Value: "YEARLY")
   */
  @property(nonatomic, copy, nullable) NSString *unit;
  
  @end
  
  
  /**
   *  Input only.
   *  Filter on job compensation type and amount.
   */
  @interface GTLRCloudTalentSolution_CompensationFilter : GTLRObject
  
  /**
   *  Optional. If set to true, jobs with unspecified compensation range fields
   *  are
   *  included.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *includeJobsWithUnspecifiedCompensationRange;
  
  /** Optional. Compensation range. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CompensationRange *range;
  
  /**
   *  Required. Type of filter.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CompensationFilter_Type_AnnualizedBaseAmount
   *        Filter by annualized base compensation amount and `base compensation
   *        entry's` unit. Populate range and zero or more units. (Value:
   *        "ANNUALIZED_BASE_AMOUNT")
   *    @arg @c kGTLRCloudTalentSolution_CompensationFilter_Type_AnnualizedTotalAmount
   *        Filter by annualized total compensation amount and `base compensation
   *        entry's` unit . Populate range and zero or more units. (Value:
   *        "ANNUALIZED_TOTAL_AMOUNT")
   *    @arg @c kGTLRCloudTalentSolution_CompensationFilter_Type_FilterTypeUnspecified
   *        Filter type unspecified. Position holder, INVALID, should never be
   *        used. (Value: "FILTER_TYPE_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_CompensationFilter_Type_UnitAndAmount
   *        Filter by `base compensation entry's` unit and amount / range. A job
   *        is a match if and only if the job contains a base CompensationEntry,
   *        and
   *        the base entry's unit matches provided compensation_units and amount
   *        or range overlaps with provided compensation_range.
   *        See CompensationInfo.CompensationEntry for definition of
   *        base compensation entry.
   *        Set exactly one units and populate range. (Value: "UNIT_AND_AMOUNT")
   *    @arg @c kGTLRCloudTalentSolution_CompensationFilter_Type_UnitOnly Filter
   *        by `base compensation entry's` unit. A job is a match if and
   *        only if the job contains a base CompensationEntry and the base
   *        CompensationEntry's unit matches provided units.
   *        Populate one or more units.
   *        See CompensationInfo.CompensationEntry for definition of
   *        base compensation entry. (Value: "UNIT_ONLY")
   */
  @property(nonatomic, copy, nullable) NSString *type;
  
  /**
   *  Required. Specify desired `base compensation entry's`
   *  CompensationInfo.CompensationUnit.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *units;
  
  @end
  
  
  /**
   *  Input only.
   *  Compensation based histogram request.
   */
  @interface GTLRCloudTalentSolution_CompensationHistogramRequest : GTLRObject
  
  /**
   *  Required. Numeric histogram options, like buckets, whether include min or
   *  max value.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_NumericBucketingOption *bucketingOption;
  
  /**
   *  Required. Type of the request, representing which field the histogramming
   *  should be
   *  performed over. A single request can only specify one histogram of each
   *  `CompensationHistogramRequestType`.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_AnnualizedBase
   *        Histogram by job's annualized base compensation. See CompensationEntry
   *        for definition of annualized base compensation. (Value:
   *        "ANNUALIZED_BASE")
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_AnnualizedTotal
   *        Histogram by job's annualized total compensation. See
   *        CompensationEntry
   *        for definition of annualized total compensation. (Value:
   *        "ANNUALIZED_TOTAL")
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_Base
   *        Histogram by job's base compensation. See CompensationEntry for
   *        definition of base compensation. (Value: "BASE")
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramRequest_Type_CompensationHistogramRequestTypeUnspecified
   *        Default value. Invalid. (Value:
   *        "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *type;
  
  @end
  
  
  /**
   *  Output only.
   *  Compensation based histogram result.
   */
  @interface GTLRCloudTalentSolution_CompensationHistogramResult : GTLRObject
  
  /** Histogram result. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_NumericBucketingResult *result;
  
  /**
   *  Type of the request, corresponding to
   *  CompensationHistogramRequest.type.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramResult_Type_AnnualizedBase
   *        Histogram by job's annualized base compensation. See CompensationEntry
   *        for definition of annualized base compensation. (Value:
   *        "ANNUALIZED_BASE")
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramResult_Type_AnnualizedTotal
   *        Histogram by job's annualized total compensation. See
   *        CompensationEntry
   *        for definition of annualized total compensation. (Value:
   *        "ANNUALIZED_TOTAL")
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramResult_Type_Base
   *        Histogram by job's base compensation. See CompensationEntry for
   *        definition of base compensation. (Value: "BASE")
   *    @arg @c kGTLRCloudTalentSolution_CompensationHistogramResult_Type_CompensationHistogramRequestTypeUnspecified
   *        Default value. Invalid. (Value:
   *        "COMPENSATION_HISTOGRAM_REQUEST_TYPE_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *type;
  
  @end
  
  
  /**
   *  Job compensation details.
   */
  @interface GTLRCloudTalentSolution_CompensationInfo : GTLRObject
  
  /**
   *  Output only. Annualized base compensation range. Computed as
   *  base compensation entry's CompensationEntry.compensation times
   *  CompensationEntry.expected_units_per_year.
   *  See CompensationEntry for explanation on compensation annualization.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CompensationRange *annualizedBaseCompensationRange;
  
  /**
   *  Output only. Annualized total compensation range. Computed as
   *  all compensation entries' CompensationEntry.compensation times
   *  CompensationEntry.expected_units_per_year.
   *  See CompensationEntry for explanation on compensation annualization.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CompensationRange *annualizedTotalCompensationRange;
  
  /**
   *  Optional. Job compensation information.
   *  At most one entry can be of type
   *  CompensationInfo.CompensationType.BASE, which is
   *  referred as ** base compensation entry ** for the job.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_CompensationEntry *> *entries;
  
  @end
  
  
  /**
   *  Compensation range.
   */
  @interface GTLRCloudTalentSolution_CompensationRange : GTLRObject
  
  /**
   *  Optional. The maximum amount of compensation. If left empty, the value is
   *  set
   *  to a maximal compensation value and the currency code is set to
   *  match the currency code of
   *  min_compensation.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Money *maxCompensation;
  
  /**
   *  Optional. The minimum amount of compensation. If left empty, the value is
   *  set
   *  to zero and the currency code is set to match the
   *  currency code of max_compensation.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Money *minCompensation;
  
  @end
  
  
  /**
   *  Output only.
   *  Response of auto-complete query.
   */
  @interface GTLRCloudTalentSolution_CompleteQueryResponse : GTLRObject
  
  /** Results of the matching job/company candidates. */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_CompletionResult *> *completionResults;
  
  /**
   *  Additional information for the API invocation, such as the request
   *  tracking id.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ResponseMetadata *metadata;
  
  @end
  
  
  /**
   *  Output only.
   *  Resource that represents completion results.
   */
  @interface GTLRCloudTalentSolution_CompletionResult : GTLRObject
  
  /** The URI of the company image for CompletionType.COMPANY_NAME. */
  @property(nonatomic, copy, nullable) NSString *imageUri;
  
  /** The suggestion for the query. */
  @property(nonatomic, copy, nullable) NSString *suggestion;
  
  /**
   *  The completion topic.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_CompletionResult_Type_Combined Suggest
   *        both job titles and company names. (Value: "COMBINED")
   *    @arg @c kGTLRCloudTalentSolution_CompletionResult_Type_CompanyName Only
   *        suggest company names. (Value: "COMPANY_NAME")
   *    @arg @c kGTLRCloudTalentSolution_CompletionResult_Type_CompletionTypeUnspecified
   *        Default value. (Value: "COMPLETION_TYPE_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_CompletionResult_Type_JobTitle Only
   *        suggest job titles. (Value: "JOB_TITLE")
   */
  @property(nonatomic, copy, nullable) NSString *type;
  
  @end
  
  
  /**
   *  The report event request.
   */
  @interface GTLRCloudTalentSolution_CreateClientEventRequest : GTLRObject
  
  /**
   *  Required. Events issued when end user interacts with customer's application
   *  that
   *  uses Cloud Talent Solution.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ClientEvent *clientEvent;
  
  @end
  
  
  /**
   *  Input only.
   *  The Request of the CreateCompany method.
   */
  @interface GTLRCloudTalentSolution_CreateCompanyRequest : GTLRObject
  
  /** Required. The company to be created. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Company *company;
  
  @end
  
  
  /**
   *  Input only.
   *  Create job request.
   */
  @interface GTLRCloudTalentSolution_CreateJobRequest : GTLRObject
  
  /** Required. The Job to be created. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Job *job;
  
  @end
  
  
  /**
   *  Custom attribute values that are either filterable or non-filterable.
   */
  @interface GTLRCloudTalentSolution_CustomAttribute : GTLRObject
  
  /**
   *  Optional. If the `filterable` flag is true, the custom field values may be
   *  used for
   *  custom attribute filters JobQuery.custom_attribute_filter.
   *  If false, these values may not be used for custom attribute filters.
   *  Default is false.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *filterable;
  
  /**
   *  Optional but exactly one of string_values or long_values must
   *  be specified.
   *  This field is used to perform number range search.
   *  (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`.
   *  Currently at most 1 long_values is supported.
   *
   *  Uses NSNumber of longLongValue.
   */
  @property(nonatomic, strong, nullable) NSArray<NSNumber *> *longValues;
  
  /**
   *  Optional but exactly one of string_values or long_values must
   *  be specified.
   *  This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or
   *  `CASE_INSENSITIVE_MATCH`) search.
   *  For filterable `string_value`s, a maximum total number of 200 values
   *  is allowed, with each `string_value` has a byte size of no more than
   *  500B. For unfilterable `string_values`, the maximum total byte size of
   *  unfilterable `string_values` is 50KB.
   *  Empty string is not allowed.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *stringValues;
  
  @end
  
  
  /**
   *  Custom attributes histogram request. An error is thrown if neither
   *  string_value_histogram or long_value_histogram_bucketing_option has
   *  been defined.
   */
  @interface GTLRCloudTalentSolution_CustomAttributeHistogramRequest : GTLRObject
  
  /**
   *  Required. Specifies the custom field key to perform a histogram on. If
   *  specified
   *  without `long_value_histogram_bucketing_option`, histogram on string values
   *  of the given `key` is triggered, otherwise histogram is performed on long
   *  values.
   */
  @property(nonatomic, copy, nullable) NSString *key;
  
  /**
   *  Optional. Specifies buckets used to perform a range histogram on Job's
   *  filterable long custom field values, or min/max value requirements.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_NumericBucketingOption *longValueHistogramBucketingOption;
  
  /**
   *  Optional. If set to true, the response includes the histogram value for
   *  each key as a string.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *stringValueHistogram;
  
  @end
  
  
  /**
   *  Output only.
   *  Custom attribute histogram result.
   */
  @interface GTLRCloudTalentSolution_CustomAttributeHistogramResult : GTLRObject
  
  /** Stores the key of custom attribute the histogram is performed on. */
  @property(nonatomic, copy, nullable) NSString *key;
  
  /**
   *  Stores bucketed histogram counting result or min/max values for
   *  custom attribute long values associated with `key`.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_NumericBucketingResult *longValueHistogramResult;
  
  /**
   *  Stores a map from the values of string custom field associated
   *  with `key` to the number of jobs with that value in this histogram result.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CustomAttributeHistogramResult_StringValueHistogramResult *stringValueHistogramResult;
  
  @end
  
  
  /**
   *  Stores a map from the values of string custom field associated
   *  with `key` to the number of jobs with that value in this histogram result.
   *
   *  @note This class is documented as having more properties of NSNumber (Uses
   *        NSNumber of intValue.). Use @c -additionalJSONKeys and @c
   *        -additionalPropertyForName: to get the list of properties and then
   *        fetch them; or @c -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudTalentSolution_CustomAttributeHistogramResult_StringValueHistogramResult : GTLRObject
  @end
  
  
  /**
   *  Device information collected from the job seeker, candidate, or
   *  other entity conducting the job search. Providing this information improves
   *  the quality of the search results across devices.
   */
  @interface GTLRCloudTalentSolution_DeviceInfo : GTLRObject
  
  /**
   *  Optional. Type of the device.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Android An Android
   *        device native application. (Value: "ANDROID")
   *    @arg @c kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Bot A bot, as
   *        opposed to a device operated by human beings, such as a web
   *        crawler. (Value: "BOT")
   *    @arg @c kGTLRCloudTalentSolution_DeviceInfo_DeviceType_DeviceTypeUnspecified
   *        The device type isn't specified. (Value: "DEVICE_TYPE_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Ios An iOS device
   *        native application. (Value: "IOS")
   *    @arg @c kGTLRCloudTalentSolution_DeviceInfo_DeviceType_MobileWeb A mobile
   *        device web browser, such as a phone or tablet with a Chrome
   *        browser. (Value: "MOBILE_WEB")
   *    @arg @c kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Other Other devices
   *        types. (Value: "OTHER")
   *    @arg @c kGTLRCloudTalentSolution_DeviceInfo_DeviceType_Web A desktop web
   *        browser, such as, Chrome, Firefox, Safari, or Internet
   *        Explorer) (Value: "WEB")
   */
  @property(nonatomic, copy, nullable) NSString *deviceType;
  
  /**
   *  Optional. A device-specific ID. The ID must be a unique identifier that
   *  distinguishes the device from other devices.
   *
   *  identifier property maps to 'id' in JSON (to avoid Objective C's 'id').
   */
  @property(nonatomic, copy, nullable) NSString *identifier;
  
  @end
  
  
  /**
   *  A generic empty message that you can re-use to avoid defining duplicated
   *  empty messages in your APIs. A typical example is to use it as the request
   *  or the response type of an API method. For instance:
   *  service Foo {
   *  rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
   *  }
   *  The JSON representation for `Empty` is empty JSON object `{}`.
   */
  @interface GTLRCloudTalentSolution_Empty : GTLRObject
  @end
  
  
  /**
   *  Input only.
   *  Histogram facets to be specified in SearchJobsRequest.
   */
  @interface GTLRCloudTalentSolution_HistogramFacets : GTLRObject
  
  /**
   *  Optional. Specifies compensation field-based histogram requests.
   *  Duplicate values of CompensationHistogramRequest.type are not allowed.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_CompensationHistogramRequest *> *compensationHistogramFacets;
  
  /**
   *  Optional. Specifies the custom attributes histogram requests.
   *  Duplicate values of CustomAttributeHistogramRequest.key are not
   *  allowed.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_CustomAttributeHistogramRequest *> *customAttributeHistogramFacets;
  
  /**
   *  Optional. Specifies the simple type of histogram facets, for example,
   *  `COMPANY_SIZE`, `EMPLOYMENT_TYPE` etc.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *simpleHistogramFacets;
  
  @end
  
  
  /**
   *  Output only.
   *  Result of a histogram call. The response contains the histogram map for the
   *  search type specified by HistogramResult.field.
   *  The response is a map of each filter value to the corresponding count of
   *  jobs for that filter.
   */
  @interface GTLRCloudTalentSolution_HistogramResult : GTLRObject
  
  /**
   *  The Histogram search filters.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_Admin1 Filter
   *        by Admin1, which is a global placeholder for
   *        referring to state, province, or the particular term a country uses to
   *        define the geographic structure below the country level.
   *        Examples include states codes such as "CA", "IL", "NY", and
   *        provinces, such as "BC". (Value: "ADMIN_1")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_Admin1Country
   *        A combination of state or province code with a country code. This
   *        field
   *        differs from `JOB_ADMIN1`, which can be used in multiple countries.
   *        (Value: "ADMIN_1_COUNTRY")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_BaseCompensationUnit
   *        Base compensation unit. (Value: "BASE_COMPENSATION_UNIT")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_Category
   *        Filter by the Category. (Value: "CATEGORY")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_City Filter by
   *        the "city name", "Admin1 code", for example,
   *        "Mountain View, CA" or "New York, NY". (Value: "CITY")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_CityCoordinate
   *        Filter by the city center GPS coordinate (latitude and longitude), for
   *        example, 37.4038522,-122.0987765. Since the coordinates of a city
   *        center
   *        can change, clients may need to refresh them periodically. (Value:
   *        "CITY_COORDINATE")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_CompanyDisplayName
   *        Company display name. (Value: "COMPANY_DISPLAY_NAME")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_CompanyId
   *        Filter by the company id field. (Value: "COMPANY_ID")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_CompanySize
   *        Filter by the company size type field, such as `BIG`, `SMALL` or
   *        `BIGGER`. (Value: "COMPANY_SIZE")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_Country Filter
   *        by the country code of job, such as US, JP, FR. (Value: "COUNTRY")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_DatePublished
   *        Filter by the date published field. Possible return values are:
   *        * PAST_24_HOURS (The past 24 hours)
   *        * PAST_3_DAYS (The past 3 days)
   *        * PAST_WEEK (The past 7 days)
   *        * PAST_MONTH (The past 30 days)
   *        * PAST_YEAR (The past 365 days) (Value: "DATE_PUBLISHED")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_EducationLevel
   *        Filter by the required education level of the job. (Value:
   *        "EDUCATION_LEVEL")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_EmploymentType
   *        Filter by the employment type field, such as `FULL_TIME` or
   *        `PART_TIME`. (Value: "EMPLOYMENT_TYPE")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_ExperienceLevel
   *        Filter by the required experience level of the job. (Value:
   *        "EXPERIENCE_LEVEL")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_Language
   *        Filter by the language code portion of the locale field, such as "en"
   *        or
   *        "fr". (Value: "LANGUAGE")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_Locale Filter
   *        by the locale field of a job, such as "en-US", "fr-FR".
   *        This is the BCP-47 language code, such as "en-US" or "sr-Latn".
   *        For more information, see
   *        [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
   *        (Value: "LOCALE")
   *    @arg @c kGTLRCloudTalentSolution_HistogramResult_SearchType_SearchTypeUnspecified
   *        The default value if search type is not specified. (Value:
   *        "SEARCH_TYPE_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *searchType;
  
  /**
   *  A map from the values of field to the number of jobs with that value
   *  in this search result.
   *  Key: search type (filter names, such as the companyName).
   *  Values: the count of jobs that match the filter for this search.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_HistogramResult_Values *values;
  
  @end
  
  
  /**
   *  A map from the values of field to the number of jobs with that value
   *  in this search result.
   *  Key: search type (filter names, such as the companyName).
   *  Values: the count of jobs that match the filter for this search.
   *
   *  @note This class is documented as having more properties of NSNumber (Uses
   *        NSNumber of intValue.). Use @c -additionalJSONKeys and @c
   *        -additionalPropertyForName: to get the list of properties and then
   *        fetch them; or @c -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudTalentSolution_HistogramResult_Values : GTLRObject
  @end
  
  
  /**
   *  Output only.
   *  Histogram results that match HistogramFacets specified in
   *  SearchJobsRequest.
   */
  @interface GTLRCloudTalentSolution_HistogramResults : GTLRObject
  
  /**
   *  Specifies compensation field-based histogram results that match
   *  HistogramFacets.compensation_histogram_requests.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_CompensationHistogramResult *> *compensationHistogramResults;
  
  /**
   *  Specifies histogram results for custom attributes that match
   *  HistogramFacets.custom_attribute_histogram_facets.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_CustomAttributeHistogramResult *> *customAttributeHistogramResults;
  
  /**
   *  Specifies histogram results that matches
   *  HistogramFacets.simple_histogram_facets.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_HistogramResult *> *simpleHistogramResults;
  
  @end
  
  
  /**
   *  A Job resource represents a job posting (also referred to as a "job listing"
   *  or "job requisition"). A job belongs to a Company, which is the hiring
   *  entity responsible for the job.
   */
  @interface GTLRCloudTalentSolution_Job : GTLRObject
  
  /**
   *  Optional but strongly recommended for the best service experience.
   *  Location(s) where the employer is looking to hire for this job posting.
   *  Specifying the full street address(es) of the hiring location enables
   *  better API results, especially job searches by commute time.
   *  At most 50 locations are allowed for best search performance. If a job has
   *  more locations, it is suggested to split it into multiple jobs with unique
   *  requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-2', etc.) as
   *  multiple jobs with the same company_name, language_code and
   *  requisition_id are not allowed. If the original requisition_id must
   *  be preserved, a custom field should be used for storage. It is also
   *  suggested to group the locations that close to each other in the same job
   *  for better search experience.
   *  The maximum number of allowed characters is 500.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *addresses;
  
  /**
   *  Required. At least one field within ApplicationInfo must be specified.
   *  Job application information.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ApplicationInfo *applicationInfo;
  
  /** Output only. Display name of the company listing the job. */
  @property(nonatomic, copy, nullable) NSString *companyDisplayName;
  
  /**
   *  Required. The resource name of the company listing the job, such as
   *  "projects/api-test-project/companies/foo".
   */
  @property(nonatomic, copy, nullable) NSString *companyName;
  
  /** Optional. Job compensation information. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CompensationInfo *compensationInfo;
  
  /**
   *  Optional. A map of fields to hold both filterable and non-filterable custom
   *  job
   *  attributes that are not covered by the provided structured fields.
   *  The keys of the map are strings up to 64 bytes and must match the
   *  pattern: a-zA-Z*. For example, key0LikeThis or
   *  KEY_1_LIKE_THIS.
   *  At most 100 filterable and at most 100 unfilterable keys are supported.
   *  For filterable `string_values`, across all keys at most 200 values are
   *  allowed, with each string no more than 255 characters. For unfilterable
   *  `string_values`, the maximum total size of `string_values` across all keys
   *  is 50KB.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Job_CustomAttributes *customAttributes;
  
  /**
   *  Optional. The desired education degrees for the job, such as Bachelors,
   *  Masters.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *degreeTypes;
  
  /**
   *  Optional. The department or functional area within the company with the open
   *  position.
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *department;
  
  /** Output only. Derived details about the job posting. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_JobDerivedInfo *derivedInfo;
  
  /**
   *  Required. The description of the job, which typically includes a
   *  multi-paragraph
   *  description of the company and related information. Separate fields are
   *  provided on the job object for responsibilities,
   *  qualifications, and other job characteristics. Use of
   *  these separate job fields is recommended.
   *  This field accepts and sanitizes HTML input, and also accepts
   *  bold, italic, ordered list, and unordered list markup tags.
   *  The maximum number of allowed characters is 100,000.
   *
   *  Remapped to 'descriptionProperty' to avoid NSObject's 'description'.
   */
  @property(nonatomic, copy, nullable) NSString *descriptionProperty;
  
  /**
   *  Optional. The employment type(s) of a job, for example,
   *  full time or
   *  part time.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *employmentTypes;
  
  /**
   *  Optional. A description of bonus, commission, and other compensation
   *  incentives associated with the job not including salary or pay.
   *  The maximum number of allowed characters is 10,000.
   */
  @property(nonatomic, copy, nullable) NSString *incentives;
  
  /** Optional. The benefits included with the job. */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *jobBenefits;
  
  /**
   *  Optional. The end timestamp of the job. Typically this field is used for
   *  contracting
   *  engagements. Invalid timestamps are ignored.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *jobEndTime;
  
  /**
   *  Optional. The experience level associated with the job, such as "Entry
   *  Level".
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_Job_JobLevel_Director Senior-level
   *        managers responsible for managing teams of managers. (Value:
   *        "DIRECTOR")
   *    @arg @c kGTLRCloudTalentSolution_Job_JobLevel_EntryLevel Entry-level
   *        individual contributors, typically with less than 2 years of
   *        experience in a similar role. Includes interns. (Value: "ENTRY_LEVEL")
   *    @arg @c kGTLRCloudTalentSolution_Job_JobLevel_Executive Executive-level
   *        managers and above, including C-level positions. (Value: "EXECUTIVE")
   *    @arg @c kGTLRCloudTalentSolution_Job_JobLevel_Experienced Experienced
   *        individual contributors, typically with 2+ years of
   *        experience in a similar role. (Value: "EXPERIENCED")
   *    @arg @c kGTLRCloudTalentSolution_Job_JobLevel_JobLevelUnspecified The
   *        default value if the level is not specified. (Value:
   *        "JOB_LEVEL_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_Job_JobLevel_Manager Entry- to mid-level
   *        managers responsible for managing a team of people. (Value: "MANAGER")
   */
  @property(nonatomic, copy, nullable) NSString *jobLevel;
  
  /**
   *  Optional. The start timestamp of the job in UTC time zone. Typically this
   *  field
   *  is used for contracting engagements. Invalid timestamps are ignored.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *jobStartTime;
  
  /**
   *  Optional. The language of the posting. This field is distinct from
   *  any requirements for fluency that are associated with the job.
   *  Language codes must be in BCP-47 format, such as "en-US" or "sr-Latn".
   *  For more information, see
   *  [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47){:
   *  class="external" target="_blank" }.
   *  If this field is unspecified and Job.description is present, detected
   *  language code based on Job.description is assigned, otherwise
   *  defaults to 'en_US'.
   */
  @property(nonatomic, copy, nullable) NSString *languageCode;
  
  /**
   *  Required during job update.
   *  The resource name for the job. This is generated by the service when a
   *  job is created.
   *  The format is "projects/{project_id}/jobs/{job_id}",
   *  for example, "projects/api-test-project/jobs/1234".
   *  Use of this field in job queries and API calls is preferred over the use of
   *  requisition_id since this value is unique.
   */
  @property(nonatomic, copy, nullable) NSString *name;
  
  /** Output only. The timestamp when this job posting was created. */
  @property(nonatomic, strong, nullable) GTLRDateTime *postingCreateTime;
  
  /**
   *  Optional but strongly recommended for the best service
   *  experience.
   *  The expiration timestamp of the job. After this timestamp, the
   *  job is marked as expired, and it no longer appears in search results. The
   *  expired job can't be deleted or listed by the DeleteJob and
   *  ListJobs APIs, but it can be retrieved with the GetJob API or
   *  updated with the UpdateJob API. An expired job can be updated and
   *  opened again by using a future expiration timestamp. Updating an expired
   *  job fails if there is another existing open job with same company_name,
   *  language_code and requisition_id.
   *  The expired jobs are retained in our system for 90 days. However, the
   *  overall expired job count cannot exceed 3 times the maximum of open jobs
   *  count over the past week, otherwise jobs with earlier expire time are
   *  cleaned first. Expired jobs are no longer accessible after they are cleaned
   *  out.
   *  Invalid timestamps are ignored, and treated as expire time not provided.
   *  Timestamp before the instant request is made is considered valid, the job
   *  will be treated as expired immediately.
   *  If this value is not provided at the time of job creation or is invalid,
   *  the job posting expires after 30 days from the job's creation time. For
   *  example, if the job was created on 2017/01/01 13:00AM UTC with an
   *  unspecified expiration date, the job expires after 2017/01/31 13:00AM UTC.
   *  If this value is not provided on job update, it depends on the field masks
   *  set by UpdateJobRequest.update_mask. If the field masks include
   *  expiry_time, or the masks are empty meaning that every field is
   *  updated, the job posting expires after 30 days from the job's last
   *  update time. Otherwise the expiration date isn't updated.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *postingExpireTime;
  
  /**
   *  Optional. The timestamp this job posting was most recently published. The
   *  default
   *  value is the time the request arrives at the server. Invalid timestamps are
   *  ignored.
   */
  @property(nonatomic, strong, nullable) GTLRDateTime *postingPublishTime;
  
  /**
   *  Optional. The job PostingRegion (for example, state, country) throughout
   *  which
   *  the job is available. If this field is set, a
   *  LocationFilter in a search query within the job region
   *  finds this job posting if an exact location match isn't specified.
   *  If this field is set to PostingRegion.NATION or
   *  PostingRegion.ADMINISTRATIVE_AREA, setting job Job.addresses
   *  to the same location level as this field is strongly recommended.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_Job_PostingRegion_AdministrativeArea In
   *        addition to exact location matching, job posting is returned when the
   *        LocationFilter in the search query is in the same administrative area
   *        as the returned job posting. For example, if a `ADMINISTRATIVE_AREA`
   *        job
   *        is posted in "CA, USA", it's returned if LocationFilter has
   *        "Mountain View".
   *        Administrative area refers to top-level administrative subdivision of
   *        this
   *        country. For example, US state, IT region, UK constituent nation and
   *        JP prefecture. (Value: "ADMINISTRATIVE_AREA")
   *    @arg @c kGTLRCloudTalentSolution_Job_PostingRegion_Nation In addition to
   *        exact location matching, job is returned when
   *        LocationFilter in search query is in the same country as this job.
   *        For example, if a `NATION_WIDE` job is posted in "USA", it's
   *        returned if LocationFilter has 'Mountain View'. (Value: "NATION")
   *    @arg @c kGTLRCloudTalentSolution_Job_PostingRegion_PostingRegionUnspecified
   *        If the region is unspecified, the job is only returned if it
   *        matches the LocationFilter. (Value: "POSTING_REGION_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_Job_PostingRegion_Telecommute Job allows
   *        employees to work remotely (telecommute).
   *        If locations are provided with this value, the job is
   *        considered as having a location, but telecommuting is allowed. (Value:
   *        "TELECOMMUTE")
   */
  @property(nonatomic, copy, nullable) NSString *postingRegion;
  
  /** Output only. The timestamp when this job posting was last updated. */
  @property(nonatomic, strong, nullable) GTLRDateTime *postingUpdateTime;
  
  /** Optional. Options for job processing. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ProcessingOptions *processingOptions;
  
  /**
   *  Optional. A promotion value of the job, as determined by the client.
   *  The value determines the sort order of the jobs returned when searching for
   *  jobs using the featured jobs search call, with higher promotional values
   *  being returned first and ties being resolved by relevance sort. Only the
   *  jobs with a promotionValue >0 are returned in a FEATURED_JOB_SEARCH.
   *  Default value is 0, and negative values are treated as 0.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *promotionValue;
  
  /**
   *  Optional. A description of the qualifications required to perform the
   *  job. The use of this field is recommended
   *  as an alternative to using the more general description field.
   *  This field accepts and sanitizes HTML input, and also accepts
   *  bold, italic, ordered list, and unordered list markup tags.
   *  The maximum number of allowed characters is 10,000.
   */
  @property(nonatomic, copy, nullable) NSString *qualifications;
  
  /**
   *  Required. The requisition ID, also referred to as the posting ID, assigned
   *  by the
   *  client to identify a job. This field is intended to be used by clients
   *  for client identification and tracking of postings. A job is not allowed
   *  to be created if there is another job with the same [company_name],
   *  language_code and requisition_id.
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *requisitionId;
  
  /**
   *  Optional. A description of job responsibilities. The use of this field is
   *  recommended as an alternative to using the more general description
   *  field.
   *  This field accepts and sanitizes HTML input, and also accepts
   *  bold, italic, ordered list, and unordered list markup tags.
   *  The maximum number of allowed characters is 10,000.
   */
  @property(nonatomic, copy, nullable) NSString *responsibilities;
  
  /**
   *  Required. The title of the job, such as "Software Engineer"
   *  The maximum number of allowed characters is 500.
   */
  @property(nonatomic, copy, nullable) NSString *title;
  
  /**
   *  Deprecated. The job is only visible to the owner.
   *  The visibility of the job.
   *  Defaults to Visibility.ACCOUNT_ONLY if not specified.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_Job_Visibility_AccountOnly The resource
   *        is only visible to the GCP account who owns it. (Value:
   *        "ACCOUNT_ONLY")
   *    @arg @c kGTLRCloudTalentSolution_Job_Visibility_SharedWithGoogle The
   *        resource is visible to the owner and may be visible to other
   *        applications and processes at Google. (Value: "SHARED_WITH_GOOGLE")
   *    @arg @c kGTLRCloudTalentSolution_Job_Visibility_SharedWithPublic The
   *        resource is visible to the owner and may be visible to all other API
   *        clients. (Value: "SHARED_WITH_PUBLIC")
   *    @arg @c kGTLRCloudTalentSolution_Job_Visibility_VisibilityUnspecified
   *        Default value. (Value: "VISIBILITY_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *visibility;
  
  @end
  
  
  /**
   *  Optional. A map of fields to hold both filterable and non-filterable custom
   *  job
   *  attributes that are not covered by the provided structured fields.
   *  The keys of the map are strings up to 64 bytes and must match the
   *  pattern: a-zA-Z*. For example, key0LikeThis or
   *  KEY_1_LIKE_THIS.
   *  At most 100 filterable and at most 100 unfilterable keys are supported.
   *  For filterable `string_values`, across all keys at most 200 values are
   *  allowed, with each string no more than 255 characters. For unfilterable
   *  `string_values`, the maximum total size of `string_values` across all keys
   *  is 50KB.
   *
   *  @note This class is documented as having more properties of
   *        GTLRCloudTalentSolution_CustomAttribute. Use @c -additionalJSONKeys
   *        and @c -additionalPropertyForName: to get the list of properties and
   *        then fetch them; or @c -additionalProperties to fetch them all at
   *        once.
   */
  @interface GTLRCloudTalentSolution_Job_CustomAttributes : GTLRObject
  @end
  
  
  /**
   *  Output only.
   *  Derived details about the job posting.
   */
  @interface GTLRCloudTalentSolution_JobDerivedInfo : GTLRObject
  
  /** Job categories derived from Job.title and Job.description. */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *jobCategories;
  
  /**
   *  Structured locations of the job, resolved from Job.addresses.
   *  locations are exactly matched to Job.addresses in the same
   *  order.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_Location *> *locations;
  
  @end
  
  
  /**
   *  An event issued when a job seeker interacts with the application that
   *  implements Cloud Talent Solution.
   */
  @interface GTLRCloudTalentSolution_JobEvent : GTLRObject
  
  /**
   *  Required. The job name(s) associated with this event.
   *  For example, if this is an impression event,
   *  this field contains the identifiers of all jobs shown to the job seeker.
   *  If this was a view event, this field contains the
   *  identifier of the viewed job.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *jobs;
  
  /**
   *  Required. The type of the event (see JobEventType).
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ApplicationCompanySubmit
   *        This event should be used when a company submits an application
   *        on behalf of a job seeker. This event is intended for use by staffing
   *        agencies attempting to place candidates. (Value:
   *        "APPLICATION_COMPANY_SUBMIT")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ApplicationFinish The job
   *        seeker or other entity interacting with the service
   *        submitted an application for a job. (Value: "APPLICATION_FINISH")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ApplicationQuickSubmission
   *        The job seeker or other entity interacting with the service
   *        submitted an application for a job with a single click without
   *        entering information. If a job seeker performs this action, send only
   *        this event to the service. Do not also send
   *        JobEventType.APPLICATION_START or JobEventType.APPLICATION_FINISH
   *        events. (Value: "APPLICATION_QUICK_SUBMISSION")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ApplicationRedirect The job
   *        seeker or other entity interacting with the service
   *        performed an action to apply to a job and was redirected to a
   *        different
   *        website to complete the application. (Value: "APPLICATION_REDIRECT")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ApplicationRedirectFromSearch
   *        The job seeker, or other entity interacting with the service, performs
   *        an
   *        action with a single click from the search results page to apply to a
   *        job
   *        (without viewing the details of the job posting), and is redirected
   *        to a different website to complete the application. If a candidate
   *        performs this action, send only this event to the service. Do not also
   *        send JobEventType.APPLICATION_START,
   *        JobEventType.APPLICATION_FINISH or JobEventType.VIEW events. (Value:
   *        "APPLICATION_REDIRECT_FROM_SEARCH")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ApplicationStart The job
   *        seeker or other entity interacting with the service
   *        began the process or demonstrated the intention of applying for a job.
   *        (Value: "APPLICATION_START")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ApplicationStartFromSearch
   *        The job seeker or other entity interacting with the service began the
   *        process or demonstrated the intention of applying for a job from the
   *        search results page without viewing the details of the job posting.
   *        If sending this event, JobEventType.VIEW event shouldn't be sent.
   *        (Value: "APPLICATION_START_FROM_SEARCH")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_Bookmark The job seeker or
   *        other entity interacting with the service demonstrated
   *        an interest in a job by bookmarking or saving it. (Value: "BOOKMARK")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_Hired The job seeker or
   *        other entity interacting with the service was
   *        employed by the hiring entity (employer). Send this event
   *        only if the job seeker was hired through an application that was
   *        initiated by a search conducted through the Cloud Talent Solution
   *        service. (Value: "HIRED")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_Impression The job seeker
   *        or other entity interacting with the service has
   *        had a job rendered in their view, such as in a list of search results
   *        in
   *        a compressed or clipped format. This event is typically associated
   *        with
   *        the viewing of a jobs list on a single page by a job seeker. (Value:
   *        "IMPRESSION")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_InterviewGranted The entity
   *        interacting with the service (for example, the job seeker),
   *        was granted an initial interview by the hiring entity (employer). This
   *        event should only be sent if the job seeker was granted an interview
   *        as
   *        part of an application that was initiated by a search conducted
   *        through /
   *        recommendation provided by the Cloud Talent Solution service. (Value:
   *        "INTERVIEW_GRANTED")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_JobEventTypeUnspecified The
   *        event is unspecified by other provided values. (Value:
   *        "JOB_EVENT_TYPE_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_Notification The job seeker
   *        or other entity interacting with the service was
   *        sent a notification, such as an email alert or device notification,
   *        containing one or more jobs listings generated by the service. (Value:
   *        "NOTIFICATION")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_NotInterested The job
   *        seeker or other entity interacting with the service showed
   *        no interest in the job. (Value: "NOT_INTERESTED")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_SentCv A recruiter or
   *        staffing agency submitted an application on behalf of the
   *        candidate after interacting with the service to identify a suitable
   *        job
   *        posting. (Value: "SENT_CV")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_View The job seeker, or
   *        other entity interacting with the service, has
   *        viewed the details of a job, including the full description. This
   *        event doesn't apply to the viewing a snippet of a job appearing as a
   *        part of the job search results. Viewing a snippet is associated with
   *        an
   *        impression). (Value: "VIEW")
   *    @arg @c kGTLRCloudTalentSolution_JobEvent_Type_ViewRedirect The job seeker
   *        or other entity interacting with the service
   *        performed an action to view a job and was redirected to a different
   *        website for job. (Value: "VIEW_REDIRECT")
   */
  @property(nonatomic, copy, nullable) NSString *type;
  
  @end
  
  
  /**
   *  Input only.
   *  The query required to perform a search query.
   */
  @interface GTLRCloudTalentSolution_JobQuery : GTLRObject
  
  /**
   *  Optional. Allows filtering jobs by commute time with different travel
   *  methods (for
   *  example, driving or public transit). Note: This only works with COMMUTE
   *  MODE. When specified, [JobQuery.location_filters] is
   *  ignored.
   *  Currently we don't support sorting by commute time.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CommuteFilter *commuteFilter;
  
  /**
   *  Optional. This filter specifies the exact company display
   *  name of the jobs to search against.
   *  If a value isn't specified, jobs within the search results are
   *  associated with any company.
   *  If multiple values are specified, jobs within the search results may be
   *  associated with any of the specified companies.
   *  At most 20 company display name filters are allowed.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *companyDisplayNames;
  
  /**
   *  Optional. This filter specifies the company entities to search against.
   *  If a value isn't specified, jobs are searched for against all
   *  companies.
   *  If multiple values are specified, jobs are searched against the
   *  companies specified.
   *  The format is "projects/{project_id}/companies/{company_id}", for example,
   *  "projects/api-test-project/companies/foo".
   *  At most 20 company filters are allowed.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *companyNames;
  
  /**
   *  Optional. This search filter is applied only to
   *  Job.compensation_info. For example, if the filter is specified
   *  as "Hourly job with per-hour compensation > $15", only jobs meeting
   *  these criteria are searched. If a filter isn't defined, all open jobs
   *  are searched.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CompensationFilter *compensationFilter;
  
  /**
   *  Optional. This filter specifies a structured syntax to match against the
   *  Job.custom_attributes marked as `filterable`.
   *  The syntax for this expression is a subset of SQL syntax.
   *  Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the
   *  left of the operator is a custom field key and the right of the operator
   *  is a number or a quoted string. You must escape backslash (\\\\) and
   *  quote (\\") characters.
   *  Supported functions are `LOWER([field_name])` to
   *  perform a case insensitive match and `EMPTY([field_name])` to filter on the
   *  existence of a key.
   *  Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
   *  nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
   *  comparisons or functions are allowed in the expression. The expression
   *  must be < 6000 bytes in length.
   *  Sample Query:
   *  `(LOWER(driving_license)="class \\"a\\"" OR EMPTY(driving_license)) AND
   *  driving_years > 10`
   */
  @property(nonatomic, copy, nullable) NSString *customAttributeFilter;
  
  /**
   *  Optional. This flag controls the spell-check feature. If false, the
   *  service attempts to correct a misspelled query,
   *  for example, "enginee" is corrected to "engineer".
   *  Defaults to false: a spell check is performed.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *disableSpellCheck;
  
  /**
   *  Optional. The employment type filter specifies the employment type of jobs
   *  to
   *  search against, such as EmploymentType.FULL_TIME.
   *  If a value is not specified, jobs in the search results includes any
   *  employment type.
   *  If multiple values are specified, jobs in the search results include
   *  any of the specified employment types.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *employmentTypes;
  
  /**
   *  Optional. The category filter specifies the categories of jobs to search
   *  against.
   *  See Category for more information.
   *  If a value is not specified, jobs from any category are searched against.
   *  If multiple values are specified, jobs from any of the specified
   *  categories are searched against.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *jobCategories;
  
  /**
   *  Optional. This filter specifies the locale of jobs to search against,
   *  for example, "en-US".
   *  If a value isn't specified, the search results can contain jobs in any
   *  locale.
   *  Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
   *  For more information, see
   *  [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
   *  At most 10 language code filters are allowed.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *languageCodes;
  
  /**
   *  Optional. The location filter specifies geo-regions containing the jobs to
   *  search against. See LocationFilter for more information.
   *  If a location value isn't specified, jobs fitting the other search
   *  criteria are retrieved regardless of where they're located.
   *  If multiple values are specified, jobs are retrieved from any of the
   *  specified locations. If different values are specified for the
   *  LocationFilter.distance_in_miles parameter, the maximum provided
   *  distance is used for all locations.
   *  At most 5 location filters are allowed.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_LocationFilter *> *locationFilters;
  
  /**
   *  Optional. Jobs published within a range specified by this filter are
   *  searched
   *  against.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_TimestampRange *publishTimeRange;
  
  /**
   *  Optional. The query string that matches against the job title, description,
   *  and
   *  location fields.
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *query;
  
  /**
   *  The language code of query. For example, "en-US". This field helps to
   *  better interpret the query.
   *  If a value isn't specified, the query language code is automatically
   *  detected, which may not be accurate.
   *  Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
   *  For more information, see
   *  [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
   */
  @property(nonatomic, copy, nullable) NSString *queryLanguageCode;
  
  @end
  
  
  /**
   *  An object representing a latitude/longitude pair. This is expressed as a
   *  pair
   *  of doubles representing degrees latitude and degrees longitude. Unless
   *  specified otherwise, this must conform to the
   *  <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
   *  standard</a>. Values must be within normalized ranges.
   */
  @interface GTLRCloudTalentSolution_LatLng : GTLRObject
  
  /**
   *  The latitude in degrees. It must be in the range [-90.0, +90.0].
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *latitude;
  
  /**
   *  The longitude in degrees. It must be in the range [-180.0, +180.0].
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *longitude;
  
  @end
  
  
  /**
   *  Output only.
   *  The List companies response object.
   *
   *  @note This class supports NSFastEnumeration and indexed subscripting over
   *        its "companies" property. If returned as the result of a query, it
   *        should support automatic pagination (when @c shouldFetchNextPages is
   *        enabled).
   */
  @interface GTLRCloudTalentSolution_ListCompaniesResponse : GTLRCollectionObject
  
  /**
   *  Companies for the current client.
   *
   *  @note This property is used to support NSFastEnumeration and indexed
   *        subscripting on this class.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_Company *> *companies;
  
  /**
   *  Additional information for the API invocation, such as the request
   *  tracking id.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ResponseMetadata *metadata;
  
  /** A token to retrieve the next page of results. */
  @property(nonatomic, copy, nullable) NSString *nextPageToken;
  
  @end
  
  
  /**
   *  Output only.
   *  List jobs response.
   *
   *  @note This class supports NSFastEnumeration and indexed subscripting over
   *        its "jobs" property. If returned as the result of a query, it should
   *        support automatic pagination (when @c shouldFetchNextPages is
   *        enabled).
   */
  @interface GTLRCloudTalentSolution_ListJobsResponse : GTLRCollectionObject
  
  /**
   *  The Jobs for a given company.
   *  The maximum number of items returned is based on the limit field
   *  provided in the request.
   *
   *  @note This property is used to support NSFastEnumeration and indexed
   *        subscripting on this class.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_Job *> *jobs;
  
  /**
   *  Additional information for the API invocation, such as the request
   *  tracking id.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ResponseMetadata *metadata;
  
  /** A token to retrieve the next page of results. */
  @property(nonatomic, copy, nullable) NSString *nextPageToken;
  
  @end
  
  
  /**
   *  Output only.
   *  A resource that represents a location with full geographic information.
   */
  @interface GTLRCloudTalentSolution_Location : GTLRObject
  
  /** An object representing a latitude/longitude pair. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_LatLng *latLng;
  
  /**
   *  The type of a location, which corresponds to the address lines field of
   *  PostalAddress. For example, "Downtown, Atlanta, GA, USA" has a type of
   *  LocationType#NEIGHBORHOOD, and "Kansas City, KS, USA" has a type of
   *  LocationType#LOCALITY.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_AdministrativeArea
   *        A state or equivalent level location. (Value: "ADMINISTRATIVE_AREA")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_Country A country
   *        level location. (Value: "COUNTRY")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_Locality A city or
   *        equivalent level location. (Value: "LOCALITY")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_LocationTypeUnspecified
   *        Default value if the type is not specified. (Value:
   *        "LOCATION_TYPE_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_Neighborhood A
   *        neighborhood level location. (Value: "NEIGHBORHOOD")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_PostalCode A postal
   *        code level location. (Value: "POSTAL_CODE")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_StreetAddress A
   *        street address level location. (Value: "STREET_ADDRESS")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_SubAdministrativeArea
   *        A county or equivalent level location. (Value:
   *        "SUB_ADMINISTRATIVE_AREA")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_SubLocality A
   *        sublocality is a subdivision of a locality, for example a city
   *        borough,
   *        ward, or arrondissement. Sublocalities are usually recognized by a
   *        local
   *        political authority. For example, Manhattan and Brooklyn are
   *        recognized
   *        as boroughs by the City of New York, and are therefore modeled as
   *        sublocalities. (Value: "SUB_LOCALITY")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_SubLocality1 A
   *        district or equivalent level location. (Value: "SUB_LOCALITY_1")
   *    @arg @c kGTLRCloudTalentSolution_Location_LocationType_SubLocality2 A
   *        smaller district or equivalent level display. (Value:
   *        "SUB_LOCALITY_2")
   */
  @property(nonatomic, copy, nullable) NSString *locationType;
  
  /**
   *  Postal address of the location that includes human readable information,
   *  such as postal delivery and payments addresses. Given a postal address,
   *  a postal service can deliver items to a premises, P.O. Box, or other
   *  delivery location.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_PostalAddress *postalAddress;
  
  /**
   *  Radius in miles of the job location. This value is derived from the
   *  location bounding box in which a circle with the specified radius
   *  centered from LatLng covers the area associated with the job location.
   *  For example, currently, "Mountain View, CA, USA" has a radius of
   *  6.17 miles.
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *radiusInMiles;
  
  @end
  
  
  /**
   *  Input only.
   *  Geographic region of the search.
   */
  @interface GTLRCloudTalentSolution_LocationFilter : GTLRObject
  
  /** Optional. The address name, such as "Mountain View" or "Bay Area". */
  @property(nonatomic, copy, nullable) NSString *address;
  
  /**
   *  Optional. The distance_in_miles is applied when the location being searched
   *  for is
   *  identified as a city or smaller. When the location being searched for is a
   *  state or larger, this field is ignored.
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *distanceInMiles;
  
  /**
   *  Optional. The latitude and longitude of the geographic center from which to
   *  search. This field's ignored if `address` is provided.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_LatLng *latLng;
  
  /**
   *  Optional. CLDR region code of the country/region of the address. This is
   *  used
   *  to address ambiguity of the user-input location, for example, "Liverpool"
   *  against "Liverpool, NY, US" or "Liverpool, UK".
   *  Set this field if all the jobs to search against are from a same region,
   *  or jobs are world-wide, but the job seeker is from a specific region.
   *  See http://cldr.unicode.org/ and
   *  http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
   *  for details. Example: "CH" for Switzerland.
   */
  @property(nonatomic, copy, nullable) NSString *regionCode;
  
  /**
   *  Optional. Allows the client to return jobs without a
   *  set location, specifically, telecommuting jobs (telecommuting is considered
   *  by the service as a special location.
   *  Job.posting_region indicates if a job permits telecommuting.
   *  If this field is set to TelecommutePreference.TELECOMMUTE_ALLOWED,
   *  telecommuting jobs are searched, and address and lat_lng are
   *  ignored. If not set or set to
   *  TelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not
   *  searched.
   *  This filter can be used by itself to search exclusively for telecommuting
   *  jobs, or it can be combined with another location
   *  filter to search for a combination of job locations,
   *  such as "Mountain View" or "telecommuting" jobs. However, when used in
   *  combination with other location filters, telecommuting jobs can be
   *  treated as less relevant than other jobs in the search response.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_LocationFilter_TelecommutePreference_TelecommuteAllowed
   *        Allow telecommute jobs. (Value: "TELECOMMUTE_ALLOWED")
   *    @arg @c kGTLRCloudTalentSolution_LocationFilter_TelecommutePreference_TelecommuteExcluded
   *        Exclude telecommute jobs. (Value: "TELECOMMUTE_EXCLUDED")
   *    @arg @c kGTLRCloudTalentSolution_LocationFilter_TelecommutePreference_TelecommutePreferenceUnspecified
   *        Default value if the telecommute preference is not specified. (Value:
   *        "TELECOMMUTE_PREFERENCE_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *telecommutePreference;
  
  @end
  
  
  /**
   *  Output only.
   *  Job entry with metadata inside SearchJobsResponse.
   */
  @interface GTLRCloudTalentSolution_MatchingJob : GTLRObject
  
  /**
   *  Commute information which is generated based on specified
   *  CommuteFilter.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_CommuteInfo *commuteInfo;
  
  /** Job resource that matches the specified SearchJobsRequest. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Job *job;
  
  /**
   *  A summary of the job with core information that's displayed on the search
   *  results listing page.
   */
  @property(nonatomic, copy, nullable) NSString *jobSummary;
  
  /**
   *  Contains snippets of text from the Job.job_title field most
   *  closely matching a search query's keywords, if available. The matching
   *  query keywords are enclosed in HTML bold tags.
   */
  @property(nonatomic, copy, nullable) NSString *jobTitleSnippet;
  
  /**
   *  Contains snippets of text from the Job.description and similar
   *  fields that most closely match a search query's keywords, if available.
   *  All HTML tags in the original fields are stripped when returned in this
   *  field, and matching query keywords are enclosed in HTML bold tags.
   */
  @property(nonatomic, copy, nullable) NSString *searchTextSnippet;
  
  @end
  
  
  /**
   *  Message representing input to a Mendel server for debug forcing.
   *  See go/mendel-debug-forcing for more details.
   *  Next ID: 2
   */
  @interface GTLRCloudTalentSolution_MendelDebugInput : GTLRObject
  
  /**
   *  When a request spans multiple servers, a MendelDebugInput may travel with
   *  the request and take effect in all the servers. This field is a map of
   *  namespaces to NamespacedMendelDebugInput protos. In a single server, up to
   *  two NamespacedMendelDebugInput protos are applied:
   *  1. NamespacedMendelDebugInput with the global namespace (key == "").
   *  2. NamespacedMendelDebugInput with the server's namespace.
   *  When both NamespacedMendelDebugInput protos are present, they are merged.
   *  See go/mendel-debug-forcing for more details.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_MendelDebugInput_NamespacedDebugInput *namespacedDebugInput;
  
  @end
  
  
  /**
   *  When a request spans multiple servers, a MendelDebugInput may travel with
   *  the request and take effect in all the servers. This field is a map of
   *  namespaces to NamespacedMendelDebugInput protos. In a single server, up to
   *  two NamespacedMendelDebugInput protos are applied:
   *  1. NamespacedMendelDebugInput with the global namespace (key == "").
   *  2. NamespacedMendelDebugInput with the server's namespace.
   *  When both NamespacedMendelDebugInput protos are present, they are merged.
   *  See go/mendel-debug-forcing for more details.
   *
   *  @note This class is documented as having more properties of
   *        GTLRCloudTalentSolution_NamespacedDebugInput. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudTalentSolution_MendelDebugInput_NamespacedDebugInput : GTLRObject
  @end
  
  
  /**
   *  Represents an amount of money with its currency type.
   */
  @interface GTLRCloudTalentSolution_Money : GTLRObject
  
  /** The 3-letter currency code defined in ISO 4217. */
  @property(nonatomic, copy, nullable) NSString *currencyCode;
  
  /**
   *  Number of nano (10^-9) units of the amount.
   *  The value must be between -999,999,999 and +999,999,999 inclusive.
   *  If `units` is positive, `nanos` must be positive or zero.
   *  If `units` is zero, `nanos` can be positive, zero, or negative.
   *  If `units` is negative, `nanos` must be negative or zero.
   *  For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *nanos;
  
  /**
   *  The whole units of the amount.
   *  For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
   *
   *  Uses NSNumber of longLongValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *units;
  
  @end
  
  
  /**
   *  Next ID: 15
   */
  @interface GTLRCloudTalentSolution_NamespacedDebugInput : GTLRObject
  
  /**
   *  Set of experiment names to be absolutely forced.
   *  These experiments will be forced without evaluating the conditions.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *absolutelyForcedExpNames;
  
  /**
   *  Set of experiment ids to be absolutely forced.
   *  These ids will be forced without evaluating the conditions.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSArray<NSNumber *> *absolutelyForcedExps;
  
  /**
   *  Set of experiment tags to be absolutely forced.
   *  The experiments with these tags will be forced without evaluating the
   *  conditions.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *absolutelyForcedExpTags;
  
  /**
   *  Set of experiment names to be conditionally forced.
   *  These experiments will be forced only if their conditions and their
   *  parent domain's conditions are true.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *conditionallyForcedExpNames;
  
  /**
   *  Set of experiment ids to be conditionally forced.
   *  These ids will be forced only if their conditions and their parent
   *  domain's conditions are true.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSArray<NSNumber *> *conditionallyForcedExps;
  
  /**
   *  Set of experiment tags to be conditionally forced.
   *  The experiments with these tags will be forced only if their conditions
   *  and their parent domain's conditions are true.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *conditionallyForcedExpTags;
  
  /**
   *  If true, disable automatic enrollment selection (at all diversion
   *  points). Automatic enrollment selection means experiment selection
   *  process based on the experiment's automatic enrollment condition. This
   *  does not disable selection of forced experiments.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *disableAutomaticEnrollmentSelection;
  
  /**
   *  Set of experiment names to be disabled.
   *  If an experiment is disabled, it is never selected nor forced.
   *  If an aggregate experiment is disabled, its partitions are disabled
   *  together. If an experiment with an enrollment is disabled, the enrollment
   *  is disabled together. If a name corresponds to a domain, the domain
   *  itself and all descendant experiments and domains are disabled together.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *disableExpNames;
  
  /**
   *  Set of experiment ids to be disabled.
   *  If an experiment is disabled, it is never selected nor forced.
   *  If an aggregate experiment is disabled, its partitions are disabled
   *  together. If an experiment with an enrollment is disabled, the enrollment
   *  is disabled together. If an ID corresponds to a domain, the domain itself
   *  and all descendant experiments and domains are disabled together.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSArray<NSNumber *> *disableExps;
  
  /**
   *  Set of experiment tags to be disabled. All experiments that are tagged
   *  with one or more of these tags are disabled.
   *  If an experiment is disabled, it is never selected nor forced.
   *  If an aggregate experiment is disabled, its partitions are disabled
   *  together. If an experiment with an enrollment is disabled, the enrollment
   *  is disabled together.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *disableExpTags;
  
  /**
   *  If true, disable manual enrollment selection (at all diversion points).
   *  Manual enrollment selection means experiment selection process based on
   *  the request's manual enrollment states (a.k.a. opt-in experiments).
   *  This does not disable selection of forced experiments.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *disableManualEnrollmentSelection;
  
  /**
   *  If true, disable organic experiment selection (at all diversion points).
   *  Organic selection means experiment selection process based on traffic
   *  allocation and diversion condition evaluation.
   *  This does not disable selection of forced experiments.
   *  This is useful in cases when it is not known whether experiment selection
   *  behavior is responsible for a error or breakage. Disabling organic
   *  selection may help to isolate the cause of a given problem.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *disableOrganicSelection;
  
  /**
   *  Flags to force in a particular experiment state.
   *  Map from flag name to flag value.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_NamespacedDebugInput_ForcedFlags *forcedFlags;
  
  /**
   *  Rollouts to force in a particular experiment state.
   *  Map from rollout name to rollout value.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_NamespacedDebugInput_ForcedRollouts *forcedRollouts;
  
  @end
  
  
  /**
   *  Flags to force in a particular experiment state.
   *  Map from flag name to flag value.
   *
   *  @note This class is documented as having more properties of NSString. Use @c
   *        -additionalJSONKeys and @c -additionalPropertyForName: to get the list
   *        of properties and then fetch them; or @c -additionalProperties to
   *        fetch them all at once.
   */
  @interface GTLRCloudTalentSolution_NamespacedDebugInput_ForcedFlags : GTLRObject
  @end
  
  
  /**
   *  Rollouts to force in a particular experiment state.
   *  Map from rollout name to rollout value.
   *
   *  @note This class is documented as having more properties of NSNumber (Uses
   *        NSNumber of boolValue.). Use @c -additionalJSONKeys and @c
   *        -additionalPropertyForName: to get the list of properties and then
   *        fetch them; or @c -additionalProperties to fetch them all at once.
   */
  @interface GTLRCloudTalentSolution_NamespacedDebugInput_ForcedRollouts : GTLRObject
  @end
  
  
  /**
   *  Input only.
   *  Use this field to specify bucketing option for the histogram search
   *  response.
   */
  @interface GTLRCloudTalentSolution_NumericBucketingOption : GTLRObject
  
  /**
   *  Required. Two adjacent values form a histogram bucket. Values should be in
   *  ascending order. For example, if [5, 10, 15] are provided, four buckets are
   *  created: (-inf, 5), 5, 10), [10, 15), [15, inf). At most 20
   *  [buckets_bound is supported.
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSArray<NSNumber *> *bucketBounds;
  
  /**
   *  Optional. If set to true, the histogram result includes minimum/maximum
   *  value of the numeric field.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *requiresMinMax;
  
  @end
  
  
  /**
   *  Output only.
   *  Custom numeric bucketing result.
   */
  @interface GTLRCloudTalentSolution_NumericBucketingResult : GTLRObject
  
  /**
   *  Count within each bucket. Its size is the length of
   *  NumericBucketingOption.bucket_bounds plus 1.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_BucketizedCount *> *counts;
  
  /**
   *  Stores the maximum value of the numeric field. Is populated only if
   *  [NumericBucketingOption.requires_min_max] is set to true.
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *maxValue;
  
  /**
   *  Stores the minimum value of the numeric field. Will be populated only if
   *  [NumericBucketingOption.requires_min_max] is set to true.
   *
   *  Uses NSNumber of doubleValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *minValue;
  
  @end
  
  
  /**
   *  Represents a postal address, e.g. for postal delivery or payments addresses.
   *  Given a postal address, a postal service can deliver items to a premise,
   *  P.O.
   *  Box or similar.
   *  It is not intended to model geographical locations (roads, towns,
   *  mountains).
   *  In typical usage an address would be created via user input or from
   *  importing
   *  existing data, depending on the type of process.
   *  Advice on address input / editing:
   *  - Use an i18n-ready address widget such as
   *  https://github.com/google/libaddressinput)
   *  - Users should not be presented with UI elements for input or editing of
   *  fields outside countries where that field is used.
   *  For more guidance on how to use this schema, please see:
   *  https://support.google.com/business/answer/6397478
   */
  @interface GTLRCloudTalentSolution_PostalAddress : GTLRObject
  
  /**
   *  Unstructured address lines describing the lower levels of an address.
   *  Because values in address_lines do not have type information and may
   *  sometimes contain multiple values in a single field (e.g.
   *  "Austin, TX"), it is important that the line order is clear. The order of
   *  address lines should be "envelope order" for the country/region of the
   *  address. In places where this can vary (e.g. Japan), address_language is
   *  used to make it explicit (e.g. "ja" for large-to-small ordering and
   *  "ja-Latn" or "en" for small-to-large). This way, the most specific line of
   *  an address can be selected based on the language.
   *  The minimum permitted structural representation of an address consists
   *  of a region_code with all remaining information placed in the
   *  address_lines. It would be possible to format such an address very
   *  approximately without geocoding, but no semantic reasoning could be
   *  made about any of the address components until it was at least
   *  partially resolved.
   *  Creating an address only containing a region_code and address_lines, and
   *  then geocoding is the recommended way to handle completely unstructured
   *  addresses (as opposed to guessing which parts of the address should be
   *  localities or administrative areas).
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *addressLines;
  
  /**
   *  Optional. Highest administrative subdivision which is used for postal
   *  addresses of a country or region.
   *  For example, this can be a state, a province, an oblast, or a prefecture.
   *  Specifically, for Spain this is the province and not the autonomous
   *  community (e.g. "Barcelona" and not "Catalonia").
   *  Many countries don't use an administrative area in postal addresses. E.g.
   *  in Switzerland this should be left unpopulated.
   */
  @property(nonatomic, copy, nullable) NSString *administrativeArea;
  
  /**
   *  Optional. BCP-47 language code of the contents of this address (if
   *  known). This is often the UI language of the input form or is expected
   *  to match one of the languages used in the address' country/region, or their
   *  transliterated equivalents.
   *  This can affect formatting in certain countries, but is not critical
   *  to the correctness of the data and will never affect any validation or
   *  other non-formatting related operations.
   *  If this value is not known, it should be omitted (rather than specifying a
   *  possibly incorrect default).
   *  Examples: "zh-Hant", "ja", "ja-Latn", "en".
   */
  @property(nonatomic, copy, nullable) NSString *languageCode;
  
  /**
   *  Optional. Generally refers to the city/town portion of the address.
   *  Examples: US city, IT comune, UK post town.
   *  In regions of the world where localities are not well defined or do not fit
   *  into this structure well, leave locality empty and use address_lines.
   */
  @property(nonatomic, copy, nullable) NSString *locality;
  
  /** Optional. The name of the organization at the address. */
  @property(nonatomic, copy, nullable) NSString *organization;
  
  /**
   *  Optional. Postal code of the address. Not all countries use or require
   *  postal codes to be present, but where they are used, they may trigger
   *  additional validation with other parts of the address (e.g. state/zip
   *  validation in the U.S.A.).
   */
  @property(nonatomic, copy, nullable) NSString *postalCode;
  
  /**
   *  Optional. The recipient at the address.
   *  This field may, under certain circumstances, contain multiline information.
   *  For example, it might contain "care of" information.
   */
  @property(nonatomic, strong, nullable) NSArray<NSString *> *recipients;
  
  /**
   *  Required. CLDR region code of the country/region of the address. This
   *  is never inferred and it is up to the user to ensure the value is
   *  correct. See http://cldr.unicode.org/ and
   *  http://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
   *  for details. Example: "CH" for Switzerland.
   */
  @property(nonatomic, copy, nullable) NSString *regionCode;
  
  /**
   *  The schema revision of the `PostalAddress`. This must be set to 0, which is
   *  the latest revision.
   *  All new revisions **must** be backward compatible with old revisions.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *revision;
  
  /**
   *  Optional. Additional, country-specific, sorting code. This is not used
   *  in most regions. Where it is used, the value is either a string like
   *  "CEDEX", optionally followed by a number (e.g. "CEDEX 7"), or just a number
   *  alone, representing the "sector code" (Jamaica), "delivery area indicator"
   *  (Malawi) or "post office indicator" (e.g. Côte d'Ivoire).
   */
  @property(nonatomic, copy, nullable) NSString *sortingCode;
  
  /**
   *  Optional. Sublocality of the address.
   *  For example, this can be neighborhoods, boroughs, districts.
   */
  @property(nonatomic, copy, nullable) NSString *sublocality;
  
  @end
  
  
  /**
   *  Input only.
   *  Options for job processing.
   */
  @interface GTLRCloudTalentSolution_ProcessingOptions : GTLRObject
  
  /**
   *  Optional. If set to `true`, the service does not attempt to resolve a
   *  more precise address for the job.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *disableStreetAddressResolution;
  
  /**
   *  Optional. Option for job HTML content sanitization. Applied fields are:
   *  * description
   *  * applicationInfo.instruction
   *  * incentives
   *  * qualifications
   *  * responsibilities
   *  HTML tags in these fields may be stripped if sanitiazation is not
   *  disabled.
   *  Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_ProcessingOptions_HtmlSanitization_HtmlSanitizationDisabled
   *        Disables sanitization on HTML input. (Value:
   *        "HTML_SANITIZATION_DISABLED")
   *    @arg @c kGTLRCloudTalentSolution_ProcessingOptions_HtmlSanitization_HtmlSanitizationUnspecified
   *        Default value. (Value: "HTML_SANITIZATION_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_ProcessingOptions_HtmlSanitization_SimpleFormattingOnly
   *        Sanitizes HTML input, only accepts bold, italic, ordered list, and
   *        unordered list markup tags. (Value: "SIMPLE_FORMATTING_ONLY")
   */
  @property(nonatomic, copy, nullable) NSString *htmlSanitization;
  
  @end
  
  
  /**
   *  Input only.
   *  Meta information related to the job searcher or entity
   *  conducting the job search. This information is used to improve the
   *  performance of the service.
   */
  @interface GTLRCloudTalentSolution_RequestMetadata : GTLRObject
  
  /**
   *  Optional. The type of device used by the job seeker at the time of the call
   *  to the
   *  service.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_DeviceInfo *deviceInfo;
  
  /**
   *  Required. The client-defined scope or source of the service call, which
   *  typically
   *  is the domain on
   *  which the service has been implemented and is currently being run.
   *  For example, if the service is being run by client <em>Foo, Inc.</em>, on
   *  job board www.foo.com and career site www.bar.com, then this field is
   *  set to "foo.com" for use on the job board, and "bar.com" for use on the
   *  career site.
   *  If this field isn't available for some reason, send "UNKNOWN".
   *  Any improvements to the model for a particular tenant site rely on this
   *  field being set correctly to a domain.
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *domain;
  
  /**
   *  Required. A unique session identification string. A session is defined as
   *  the
   *  duration of an end user's interaction with the service over a certain
   *  period.
   *  Obfuscate this field for privacy concerns before
   *  providing it to the service.
   *  If this field is not available for some reason, send "UNKNOWN". Note
   *  that any improvements to the model for a particular tenant
   *  site, rely on this field being set correctly to some unique session_id.
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *sessionId;
  
  /**
   *  Required. A unique user identification string, as determined by the client.
   *  To have the strongest positive impact on search quality
   *  make sure the client-level is unique.
   *  Obfuscate this field for privacy concerns before
   *  providing it to the service.
   *  If this field is not available for some reason, send "UNKNOWN". Note
   *  that any improvements to the model for a particular tenant
   *  site, rely on this field being set correctly to a unique user_id.
   *  The maximum number of allowed characters is 255.
   */
  @property(nonatomic, copy, nullable) NSString *userId;
  
  @end
  
  
  /**
   *  Output only.
   *  Additional information returned to client, such as debugging information.
   */
  @interface GTLRCloudTalentSolution_ResponseMetadata : GTLRObject
  
  /**
   *  A unique id associated with this call.
   *  This id is logged for tracking purposes.
   */
  @property(nonatomic, copy, nullable) NSString *requestId;
  
  @end
  
  
  /**
   *  Input only.
   *  The Request body of the `SearchJobs` call.
   */
  @interface GTLRCloudTalentSolution_SearchJobsRequest : GTLRObject
  
  /**
   *  Optional. Controls whether to disable exact keyword match on Job.job_title,
   *  Job.description, Job.company_display_name, Job.locations,
   *  Job.qualifications. When disable keyword match is turned off, a
   *  keyword match returns jobs that do not match given category filters when
   *  there are matching keywords. For example, the query "program manager," a
   *  result is returned even if the job posting has the title "software
   *  developer," which does not fall into "program manager" ontology, but does
   *  have "program manager" appearing in its description.
   *  For queries like "cloud" that does not contain title or
   *  location specific ontology, jobs with "cloud" keyword matches are returned
   *  regardless of this flag's value.
   *  Please use Company.keyword_searchable_custom_fields or
   *  Company.keyword_searchable_custom_attributes if company specific
   *  globally matched custom field/attribute string values is needed. Enabling
   *  keyword match improves recall of subsequent search requests.
   *  Defaults to false.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *disableKeywordMatch;
  
  /**
   *  Optional. Controls whether highly similar jobs are returned next to each
   *  other in
   *  the search results. Jobs are identified as highly similar based on
   *  their titles, job categories, and locations. Highly similar results are
   *  clustered so that only one representative job of the cluster is
   *  displayed to the job seeker higher up in the results, with the other jobs
   *  being displayed lower down in the results.
   *  Defaults to DiversificationLevel.SIMPLE if no value
   *  is specified.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_DiversificationLevel_Disabled
   *        Disables diversification. Jobs that would normally be pushed to the
   *        last
   *        page would not have their positions altered. This may result in highly
   *        similar jobs appearing in sequence in the search results. (Value:
   *        "DISABLED")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_DiversificationLevel_DiversificationLevelUnspecified
   *        The diversification level isn't specified. By default, jobs with this
   *        enum are ordered according to SIMPLE diversifying behavior. (Value:
   *        "DIVERSIFICATION_LEVEL_UNSPECIFIED")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_DiversificationLevel_Simple
   *        Default diversifying behavior. The result list is ordered so that
   *        highly similar results are pushed to the end of the last page of
   *        search
   *        results. (Value: "SIMPLE")
   */
  @property(nonatomic, copy, nullable) NSString *diversificationLevel;
  
  /**
   *  Optional. Controls whether to broaden the search when it produces sparse
   *  results.
   *  Broadened queries append results to the end of the matching results
   *  list.
   *  Defaults to false.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *enableBroadening;
  
  /** Optional. Histogram requests for jobs matching JobQuery. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_HistogramFacets *histogramFacets;
  
  /**
   *  Optional. Query used to search against jobs, such as keyword, location
   *  filters, etc.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_JobQuery *jobQuery;
  
  /**
   *  Optional. The desired job attributes returned for jobs in the
   *  search response. Defaults to JobView.SMALL if no value is specified.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewFull All
   *        available attributes are included in the search results. (Value:
   *        "JOB_VIEW_FULL")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewIdOnly A
   *        ID only view of job, with following attributes:
   *        Job.name, Job.requisition_id, Job.language_code. (Value:
   *        "JOB_VIEW_ID_ONLY")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewMinimal
   *        A minimal view of the job, with the following attributes:
   *        Job.name, Job.requisition_id, Job.title,
   *        Job.company_name, Job.DerivedInfo.locations, Job.language_code.
   *        (Value: "JOB_VIEW_MINIMAL")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewSmall A
   *        small view of the job, with the following attributes in the search
   *        results: Job.name, Job.requisition_id, Job.title,
   *        Job.company_name, Job.DerivedInfo.locations, Job.visibility,
   *        Job.language_code, Job.description. (Value: "JOB_VIEW_SMALL")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_JobView_JobViewUnspecified
   *        Default value. (Value: "JOB_VIEW_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *jobView;
  
  /**
   *  Optional. An integer that specifies the current offset (that is, starting
   *  result
   *  location, amongst the jobs deemed by the API as relevant) in search
   *  results. This field is only considered if page_token is unset.
   *  The maximum allowed value is 5000. Otherwise an error is thrown.
   *  For example, 0 means to return results starting from the first matching
   *  job, and 10 means to return from the 11th job. This can be used for
   *  pagination, (for example, pageSize = 10 and offset = 10 means to return
   *  from the second page).
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *offset;
  
  /**
   *  Optional. The criteria determining how search results are sorted. Default is
   *  "relevance desc".
   *  Supported options are:
   *  * `"relevance desc"`: By relevance descending, as determined by the API
   *  algorithms. Relevance thresholding of query results is only available
   *  with this ordering.
   *  * `"posting_publish_time desc"`: By Job.posting_publish_time
   *  descending.
   *  * `"posting_update_time desc"`: By Job.posting_update_time
   *  descending.
   *  * `"title"`: By Job.title ascending.
   *  * `"title desc"`: By Job.title descending.
   *  * `"annualized_base_compensation"`: By job's
   *  CompensationInfo.annualized_base_compensation_range ascending. Jobs
   *  whose annualized base compensation is unspecified are put at the end of
   *  search results.
   *  * `"annualized_base_compensation desc"`: By job's
   *  CompensationInfo.annualized_base_compensation_range descending. Jobs
   *  whose annualized base compensation is unspecified are put at the end of
   *  search results.
   *  * `"annualized_total_compensation"`: By job's
   *  CompensationInfo.annualized_total_compensation_range ascending. Jobs
   *  whose annualized base compensation is unspecified are put at the end of
   *  search results.
   *  * `"annualized_total_compensation desc"`: By job's
   *  CompensationInfo.annualized_total_compensation_range descending. Jobs
   *  whose annualized base compensation is unspecified are put at the end of
   *  search results.
   */
  @property(nonatomic, copy, nullable) NSString *orderBy;
  
  /**
   *  Optional. A limit on the number of jobs returned in the search results.
   *  Increasing this value above the default value of 10 can increase search
   *  response time. The value can be between 1 and 100.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *pageSize;
  
  /**
   *  Optional. The token specifying the current offset within
   *  search results. See SearchJobsResponse.next_page_token for
   *  an explanation of how to obtain the next set of query results.
   */
  @property(nonatomic, copy, nullable) NSString *pageToken;
  
  /**
   *  Required. The meta information collected about the job searcher, used to
   *  improve the
   *  search quality of the service. The identifiers (such as `user_id`) are
   *  provided by users, and must be unique and consistent.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_RequestMetadata *requestMetadata;
  
  /**
   *  Optional. Controls if the search job request requires the return of a
   *  precise
   *  count of the first 300 results. Setting this to `true` ensures
   *  consistency in the number of results per page. Best practice is to set this
   *  value to true if a client allows users to jump directly to a
   *  non-sequential search results page.
   *  Enabling this flag may adversely impact performance.
   *  Defaults to false.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *requirePreciseResultSize;
  
  /**
   *  Optional. Mode of a search.
   *  Defaults to SearchMode.JOB_SEARCH.
   *
   *  Likely values:
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_SearchMode_FeaturedJobSearch
   *        The job search matches only against featured jobs (jobs with a
   *        promotionValue > 0). This method doesn't return any jobs having a
   *        promotionValue <= 0. The search results order is determined by the
   *        promotionValue (jobs with a higher promotionValue are returned higher
   *        up
   *        in the search results), with relevance being used as a tiebreaker.
   *        (Value: "FEATURED_JOB_SEARCH")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_SearchMode_JobSearch
   *        The job search matches against all jobs, and featured jobs
   *        (jobs with promotionValue > 0) are not specially handled. (Value:
   *        "JOB_SEARCH")
   *    @arg @c kGTLRCloudTalentSolution_SearchJobsRequest_SearchMode_SearchModeUnspecified
   *        The mode of the search method isn't specified. The default search
   *        behavior is identical to JOB_SEARCH search behavior. (Value:
   *        "SEARCH_MODE_UNSPECIFIED")
   */
  @property(nonatomic, copy, nullable) NSString *searchMode;
  
  @end
  
  
  /**
   *  Output only.
   *  Response for SearchJob method.
   */
  @interface GTLRCloudTalentSolution_SearchJobsResponse : GTLRObject
  
  /**
   *  If query broadening is enabled, we may append additional results from the
   *  broadened query. This number indicates how many of the jobs returned in the
   *  jobs field are from the broadened query. These results are always at the
   *  end of the jobs list. In particular, a value of 0, or if the field isn't
   *  set, all the jobs in the jobs list are from the original
   *  (without broadening) query. If this field is non-zero, subsequent requests
   *  with offset after this result set should contain all broadened results.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *broadenedQueryJobsCount;
  
  /**
   *  An estimation of the number of jobs that match the specified query.
   *  This number is not guaranteed to be accurate. For accurate results,
   *  see enable_precise_result_size.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *estimatedTotalSize;
  
  /**
   *  The histogram results that match specified
   *  SearchJobsRequest.histogram_facets.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_HistogramResults *histogramResults;
  
  /**
   *  The location filters that the service applied to the specified query. If
   *  any filters are lat-lng based, the JobLocation.location_type is
   *  JobLocation.LocationType#LOCATION_TYPE_UNSPECIFIED.
   */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_Location *> *locationFilters;
  
  /** The Job entities that match the specified SearchJobsRequest. */
  @property(nonatomic, strong, nullable) NSArray<GTLRCloudTalentSolution_MatchingJob *> *matchingJobs;
  
  /**
   *  Additional information for the API invocation, such as the request
   *  tracking id.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_ResponseMetadata *metadata;
  
  /**
   *  The token that specifies the starting position of the next page of results.
   *  This field is empty if there are no more results.
   */
  @property(nonatomic, copy, nullable) NSString *nextPageToken;
  
  /** The spell checking result, and correction. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_SpellingCorrection *spellCorrection;
  
  /**
   *  The precise result count, which is available only if the client set
   *  enable_precise_result_size to `true`, or if the response
   *  is the last page of results. Otherwise, the value is `-1`.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *totalSize;
  
  @end
  
  
  /**
   *  Output only.
   *  Spell check result.
   */
  @interface GTLRCloudTalentSolution_SpellingCorrection : GTLRObject
  
  /**
   *  Indicates if the query was corrected by the spell checker.
   *
   *  Uses NSNumber of boolValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *corrected;
  
  /** Correction output consisting of the corrected keyword string. */
  @property(nonatomic, copy, nullable) NSString *correctedText;
  
  @end
  
  
  /**
   *  Represents a time of day. The date and time zone are either not significant
   *  or are specified elsewhere. An API may choose to allow leap seconds. Related
   *  types are google.type.Date and `google.protobuf.Timestamp`.
   */
  @interface GTLRCloudTalentSolution_TimeOfDay : GTLRObject
  
  /**
   *  Hours of day in 24 hour format. Should be from 0 to 23. An API may choose
   *  to allow the value "24:00:00" for scenarios like business closing time.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *hours;
  
  /**
   *  Minutes of hour of day. Must be from 0 to 59.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *minutes;
  
  /**
   *  Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *nanos;
  
  /**
   *  Seconds of minutes of the time. Must normally be from 0 to 59. An API may
   *  allow the value 60 if it allows leap-seconds.
   *
   *  Uses NSNumber of intValue.
   */
  @property(nonatomic, strong, nullable) NSNumber *seconds;
  
  @end
  
  
  /**
   *  Message representing a period of time between two timestamps.
   */
  @interface GTLRCloudTalentSolution_TimestampRange : GTLRObject
  
  /** End of the period. */
  @property(nonatomic, strong, nullable) GTLRDateTime *endTime;
  
  /** Begin of the period. */
  @property(nonatomic, strong, nullable) GTLRDateTime *startTime;
  
  @end
  
  
  /**
   *  Input only.
   *  Request for updating a specified company.
   */
  @interface GTLRCloudTalentSolution_UpdateCompanyRequest : GTLRObject
  
  /**
   *  Required. The company resource to replace the current resource in the
   *  system.
   */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Company *company;
  
  /**
   *  Optional but strongly recommended for the best service
   *  experience.
   *  If update_mask is provided, only the specified fields in
   *  company are updated. Otherwise all the fields are updated.
   *  A field mask to specify the company fields to be updated. Only
   *  top level fields of Company are supported.
   *
   *  String format is a comma-separated list of fields.
   */
  @property(nonatomic, copy, nullable) NSString *updateMask;
  
  @end
  
  
  /**
   *  Input only.
   *  Update job request.
   */
  @interface GTLRCloudTalentSolution_UpdateJobRequest : GTLRObject
  
  /** Required. The Job to be updated. */
  @property(nonatomic, strong, nullable) GTLRCloudTalentSolution_Job *job;
  
  /**
   *  Optional but strongly recommended to be provided for the best service
   *  experience.
   *  If update_mask is provided, only the specified fields in
   *  job are updated. Otherwise all the fields are updated.
   *  A field mask to restrict the fields that are updated. Only
   *  top level fields of Job are supported.
   *
   *  String format is a comma-separated list of fields.
   */
  @property(nonatomic, copy, nullable) NSString *updateMask;
  
  @end
  
  NS_ASSUME_NONNULL_END
  
  #pragma clang diagnostic pop
  