<?php
namespace Airavata\Service\Profile\User\CPI;

/**
 * Autogenerated by Thrift Compiler (0.9.3)
 *
 * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
 *  @generated
 */
use Thrift\Base\TBase;
use Thrift\Type\TType;
use Thrift\Type\TMessageType;
use Thrift\Exception\TException;
use Thrift\Exception\TProtocolException;
use Thrift\Protocol\TProtocol;
use Thrift\Protocol\TBinaryProtocolAccelerated;
use Thrift\Exception\TApplicationException;


final class Constant extends \Thrift\Type\TConstant {
  static protected $USER_PROFILE_CPI_VERSION;
  static protected $USER_PROFILE_CPI_NAME;

  static protected function init_USER_PROFILE_CPI_VERSION() {
    return "0.17";
  }

  static protected function init_USER_PROFILE_CPI_NAME() {
    return "UserProfileService";
  }
}


