anchor.diff:  -copyright('Copyright (c) 2016 - 2021 SigScale Global Inc.').
   
   %% export the user_default public API
  --export([help/0, di/0, di/2, get_avp_info/1]).
  +-export([help/0, di/0, di/1, di/2, get_avp_info/1]).
   
   -include_lib("diameter/include/diameter.hrl").
   
  
positive.code: %%----------------------------------------------------------------------
  %%  The user_default private API
  %%----------------------------------------------------------------------
  
  -spec avp(Value) -> AVP
  	when
  
negative.code: help() ->
  	shell_default:help(),
  	io:format("** ocs commands ** \n"),
  	io:format("di()            -- diameter services info\n"),
  	io:format("di(Types)       -- diameter services info of types\n"),
  	io:format("di(acct, Types) -- diameter accounting services info\n"),
  	io:format("di(auth, Types) -- diameter authentication and authorization services info\n"),
  	true.
  
  -spec di() -> Result
  	when
  		Result :: [ServiceResult],
  		ServiceResult :: {Service, [term()]},
  		Service :: term().
  %% @doc Get information on running diameter services.
  di() ->
  	diameter_service_info(diameter:services(), []).
  
  -spec di(Info) -> Result
  	when
  		Info :: [Item],
  		Item :: peer | applications | capabilities
  				| transport | connections | statistics,
  		Result :: [ServiceResult],
  		ServiceResult :: {Service, [term()]},
  		Service :: term().
  %% @doc Get information on running diameter services.
  di(Info) ->
  	diameter_service_info(diameter:services(), Info).
  
  -spec di(ServiceType, Info) -> Result
  	when
  		ServiceType :: auth | acct,
  		Info :: [Item],
  		Item :: peer | applications | capabilities
  				| transport | connections | statistics,
  		Result :: term() | {error, Reason},
  		Reason :: unknown_service.
  %% @doc Get information on running diameter services.
  di(auth, Info) ->
  	F = fun({ocs_diameter_auth_service, _, _}) ->
  				true;
  			(_) ->
  				false
  	end,
  	AuthServices = lists:filter(F, diameter:services()),
  	diameter_service_info(AuthServices, Info);
  di(acct, Info) ->
  	F = fun({ocs_diameter_acct_service, _, _}) ->
  				true;
  			(_) ->
  				false
  	end,
  	AcctServices = lists:filter(F, diameter:services()),
  	diameter_service_info(AcctServices, Info).
  
  -spec get_avp_info(AVP) -> Result
  	when
  