<!--
SPDX-FileCopyrightText: 2025 diffo_example contributors <https://github.com/diffo-dev/diffo_example/graphs.contributors>

SPDX-License-Identifier: MIT

Auto-generated by `mix gen.api_docs`. Do not edit by hand.
Regenerate after changing any domain's `code_interface` defines.
-->

# NBN Domain API

The Elixir function-call surface for each resource in the `DiffoExample.Nbn` domain. Generated from the `define` declarations in the domain's `resources do` block.

## Avc

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `build_avc` | `:build` | `id`, `which`, `relationships` (list of struct), `places` (list of struct), `parties` (list of struct) | creates a new AVC resource instance |
| `define_avc` | `:define` | `characteristic_value_updates` (list of term) | defines the AVC |
| `get_avc_by_id` | `:read` | `id` | read a service or resource instance |
| `relate_avc` | `:relate` | `relationships` (list of struct) | relates the AVC with other instances |

## Cvc

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `assign_cvlan` | `:assign_cvlan` | `assignment` (struct) | assigns a C-VLAN ID from the CVC pool to an AVC |
| `build_cvc` | `:build` | `id`, `which`, `relationships` (list of struct), `places` (list of struct), `parties` (list of struct) | creates a new CVC resource instance |
| `define_cvc` | `:define` | `characteristic_value_updates` (list of term) | defines the CVC |
| `get_cvc_by_id` | `:read` | `id` | read a service or resource instance |
| `relate_cvc` | `:relate` | `relationships` (list of struct) | relates the CVC with other instances (e.g. AVC aggregation, NNI Group termination) |

## NbnEthernet

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `build_nbn_ethernet` | `:build` | `id`, `which`, `relationships` (list of struct), `places` (list of struct), `parties` (list of struct) | creates a new NBN Ethernet access resource instance |
| `define_nbn_ethernet` | `:define` | `characteristic_value_updates` (list of term) | defines the NBN Ethernet access |
| `get_nbn_ethernet_by_id` | `:read` | `id` | read a service or resource instance |
| `relate_nbn_ethernet` | `:relate` | `relationships` (list of struct) | relates the NBN Ethernet access with other instances (e.g. UNI) |

## Nni

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `build_nni` | `:build` | `id`, `which`, `relationships` (list of struct), `places` (list of struct), `parties` (list of struct) | creates a new NNI resource instance |
| `define_nni` | `:define` | `characteristic_value_updates` (list of term) | defines the NNI |
| `get_nni_by_id` | `:read` | `id` | read a service or resource instance |
| `relate_nni` | `:relate` | `relationships` (list of struct) | relates the NNI with other instances (e.g. its parent NNI Group) |

## NniGroup

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `assign_svlan` | `:assign_svlan` | `assignment` (struct) | assigns an S-VLAN ID from the NNI Group pool to a CVC |
| `build_nni_group` | `:build` | `id`, `name`, `which`, `relationships` (list of struct), `places` (list of struct), `parties` (list of struct) | creates a new NNI Group resource instance |
| `define_nni_group` | `:define` | `characteristic_value_updates` (list of term) | defines the NNI Group |
| `get_nni_group_by_id` | `:read` | `id` | read a service or resource instance |
| `relate_nni_group` | `:relate` | `relationships` (list of struct) | relates the NNI Group with other instances (e.g. NNI resources it comprises) |

## Ntd

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `assign_port` | `:assign_port` | `assignment` (struct) | assigns a port from the NTD pool to a UNI |
| `build_ntd` | `:build` | `id`, `which`, `relationships` (list of struct), `places` (list of struct), `parties` (list of struct) | creates a new NTD resource instance |
| `define_ntd` | `:define` | `characteristic_value_updates` (list of term) | defines the NTD |
| `get_ntd_by_id` | `:read` | `id` | read a service or resource instance |
| `relate_ntd` | `:relate` | `relationships` (list of struct) | relates the NTD with other instances (e.g. UNI) |

## Rsp

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `activate_rsp` | `:activate` | — | — |
| `create_rsp` | `:build` | `name`, `short_name`, `id` | — |
| `deactivate_rsp` | `:deactivate` | — | — |
| `get_rsp_by_epid` | `:read` | `id` | — |
| `get_rsp_by_short_name` | `:read` | `short_name` | — |
| `list_rsps` | `:inventory` | — | — |
| `suspend_rsp` | `:suspend` | — | — |

## Uni

| Function | Action | Arguments | Purpose |
|---|---|---|---|
| `build_uni` | `:build` | `id`, `which`, `relationships` (list of struct), `places` (list of struct), `parties` (list of struct) | creates a new UNI resource instance |
| `define_uni` | `:define` | `characteristic_value_updates` (list of term) | defines the UNI |
| `get_uni_by_id` | `:read` | `id` | read a service or resource instance |
| `relate_uni` | `:relate` | `relationships` (list of struct) | relates the UNI with other instances (e.g. NTD, NBN Ethernet access) |
