--
-- apm_package_version__add_interface/4
--
create or replace function apm_package_version__add_interface(
  integer,
  integer,
  character varying,
  character varying
) returns int4 as $$

declare
  add_interface__interface_id         alias for $1;  -- default null  
  add_interface__version_id           alias for $2;  
  add_interface__interface_uri        alias for $3;  
  add_interface__interface_version    alias for $4;  
  v_dep_id                            apm_package_dependencies.dependency_id%TYPE;
begin
      if add_interface__interface_id is null then
          select nextval('t_acs_object_id_seq') into v_dep_id from dual;
      else
          v_dep_id := add_interface__interface_id;
      end if;
  
      insert into apm_package_dependencies
      (dependency_id, version_id, dependency_type, service_uri, service_version)
      values
      (v_dep_id, add_interface__version_id, 'provides', add_interface__interface_uri,
	add_interface__interface_version);

      return v_dep_id;
   
end;$$ language plpgsql;