<?php
namespace Airavata\Service\Profile\Tenant\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 $TENANT_PROFILE_CPI_VERSION;
  static protected $TENANT_PROFILE_CPI_NAME;

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

  static protected function init_TENANT_PROFILE_CPI_NAME() {
    return "TenantProfileService";
  }
}


