Ash.CodeInterface.define_interface

You're seeing just the macro define_interface, go back to Ash.CodeInterface module for more information.
Link to this macro

define_interface(api, resource)

View Source (macro)

Defines the code interface for a given resource + api combination in the current module. For example:

defmodule MyApp.Accounting do
  require Ash.CodeInterface

  Ash.CodeInterface.define_interface(MyApp.Accounting, MyApp.Accounting.Transaction)
  Ash.CodeInterface.define_interface(MyApp.Accounting, MyApp.Accounting.Account)
  Ash.CodeInterface.define_interface(MyApp.Accounting, MyApp.Accounting.Invoice)
end

Keep in mind that you can have this "automatically" defined in your resources by using the define_for flag in a resource.

For example:

defmodule MyApp.Accounting.Transaction do
  use Ash.Resource

  ...

  code_interface do
    define_for MyApp.Accounting

    define :start do
      args [:invoice_id]
    end
  end
end

# Which can now be used like so:

MyApp.Accounting.Transaction.start!(invoice.id)