diff --git a/.metadata.yml b/.metadata.yml index 5fabb70..a995750 100644 --- a/.metadata.yml +++ b/.metadata.yml @@ -39,6 +39,12 @@ experimental/circuit_service: - One single CircuitService would be needed to store MPLS related information (e.g. service id, provider ...) - On each site we would create a circuit connecting on one side our device and the CircuitService on the other side name: Circuit Service +experimental/epipe: + attribution: "[Jordy Dehaes](https://www.linkedin.com/in/jordy-dehaes/)" + dependencies: + - base + description: This schema extension contains models for MPLS Epipes + name: MPLS Epipes experimental/infiniband: dependencies: - base diff --git a/docs/docs/home.mdx b/docs/docs/home.mdx index 0fe4dfb..b525080 100644 --- a/docs/docs/home.mdx +++ b/docs/docs/home.mdx @@ -137,6 +137,7 @@ This list provides an overview of the schemas available in this repository. Each | **[Location Extended](./reference/location_extended.mdx)** | This schema extension is the most detailed when it comes to location, you'll find all the layers you can think of. | | **[Modules Linecards](./reference/modules_linecards.mdx)** | This schema extension allows you to capture Linecard related information like the version. You can insert the Linecard into a Dcim Physical Device and leverage the Linecard type model. The Linecard can accept PIC to help configure PORT information like breakout-capabilities and configurations. | | **[Modules Routing Engine](./reference/modules_routing_engine.mdx)** | This schema extension allows you to capture Routing Engine related information like the version. You can insert the Routing Engine into a Dcim Physical Device and leverage the Routing Engine type model. | +| **[MPLS Epipes](./reference/epipe.mdx)** | This schema extension contains models for MPLS Epipes | | **[QoS](./reference/qos.mdx)** | This schema extension contains models for Quality of Service (QoS) | | **[Security](./reference/security.mdx)** | This schema extension contains models for implementing detailed security. | | **[Tenancy](./reference/tenancy.mdx)** | This schema extension introduces tenancy for some of the schema nodes (circuits...) | diff --git a/docs/docs/reference/cross_connect.mdx b/docs/docs/reference/cross_connect.mdx index 70ba633..35a535e 100644 --- a/docs/docs/reference/cross_connect.mdx +++ b/docs/docs/reference/cross_connect.mdx @@ -19,7 +19,7 @@ This extension contains schema to capture Cross Connect. You can see it as "a ca - **Icon:** streamline:arrow-crossover-right-solid - **Display Labels:** identifier__value - **Uniqueness Constraints:** - - provider, identifier__value + - identifier__value, provider - **Human Friendly ID:** provider__name__value, identifier__value - **Inherit From:** DcimConnector @@ -59,8 +59,8 @@ nodes: - provider__name__value - identifier__value uniqueness_constraints: - - - provider - - identifier__value + - - identifier__value + - provider attributes: - name: identifier kind: Text diff --git a/docs/docs/reference/dwdm.mdx b/docs/docs/reference/dwdm.mdx index d60f3d1..3887112 100644 --- a/docs/docs/reference/dwdm.mdx +++ b/docs/docs/reference/dwdm.mdx @@ -80,8 +80,8 @@ This schema extension contains models for OADM (Optical Add Drop Multiplexer) su - **Icon:** game-icons:laser-warning - **Display Labels:** wdm_type__value, channel__value - **Uniqueness Constraints:** - - wdm_type__value, channel__value, wavelength__value, frequency__value - - wdm_type__value, channel__value + - frequency__value, wavelength__value, channel__value, wdm_type__value + - channel__value, wdm_type__value - **Human Friendly ID:** wdm_type__value, channel__value #### Attributes @@ -361,12 +361,12 @@ nodes: - wdm_type__value - channel__value uniqueness_constraints: - - - wdm_type__value - - channel__value + - - frequency__value - wavelength__value - - frequency__value - - - wdm_type__value - channel__value + - wdm_type__value + - - channel__value + - wdm_type__value human_friendly_id: - wdm_type__value - channel__value diff --git a/docs/docs/reference/epipe.mdx b/docs/docs/reference/epipe.mdx new file mode 100644 index 0000000..9d51ed3 --- /dev/null +++ b/docs/docs/reference/epipe.mdx @@ -0,0 +1,437 @@ +--- +title: MPLS Epipes +--- + +This schema extension contains models for MPLS Epipes + +## Details + +- **Dependencies:** + - [base](dcim) +- **Attribution:** [Jordy Dehaes](https://www.linkedin.com/in/jordy-dehaes/) + +## Nodes + +### LSPTemplate + +- **Label:** LSP Template +- **Namespace:** Infra + +#### Attributes + +| name | description | kind | optional | default_value | choices | +| ---- | ----------- | ---- | -------- | ------------- | ------- | +| name | | Text | False | | | +| role | | Dropdown | | | low_latency, igp_cost, disjoint | + +#### Relationships + +| name | peer | optional | cardinality | kind | +| ---- | ---- | -------- | ----------- | ---- | +| node_a | InfraDevice | | one | Attribute | +| node_b | InfraDevice | | one | Attribute | + +### EpipeTemplate + +- **Label:** Epipe Template +- **Namespace:** Infra + +#### Attributes + +| name | description | kind | optional | default_value | choices | +| ---- | ----------- | ---- | -------- | ------------- | ------- | +| name | | Text | True | | | +| mtu | Maximum Transmission Unit | Number | False | 9100 | | + +#### Relationships + +| name | peer | optional | cardinality | kind | +| ---- | ---- | -------- | ----------- | ---- | +| customer | ServicesCustomer | | one | Attribute | +| sdp_a | InfraSDP | | one | Attribute | +| sdp_b | InfraSDP | | one | Attribute | +| port_a | InfraPort | | one | Attribute | +| port_b | InfraPort | | one | Attribute | + +### EpipeService + +- **Label:** Epipe Service +- **Namespace:** Infra +- **Display Labels:** name__value + +#### Attributes + +| name | description | kind | optional | default_value | choices | +| ---- | ----------- | ---- | -------- | ------------- | ------- | +| name | | Text | False | | | + +#### Relationships + +| name | peer | optional | cardinality | kind | +| ---- | ---- | -------- | ----------- | ---- | +| epipe_a | InfraEpipe | False | one | Component | +| epipe_z | InfraEpipe | False | one | Component | +| customer | ServicesCustomer | False | one | Attribute | + +### LSP + +- **Label:** LSP +- **Namespace:** Infra +- **Display Labels:** name__value + +#### Attributes + +| name | description | kind | optional | default_value | choices | +| ---- | ----------- | ---- | -------- | ------------- | ------- | +| name | | Text | True | | | +| role | | Dropdown | | | low_latency, igp_cost, disjoint | + +#### Relationships + +| name | peer | optional | cardinality | kind | +| ---- | ---- | -------- | ----------- | ---- | +| src_ip | IpamIPAddress | False | one | Attribute | +| dst_ip | IpamIPAddress | False | one | Attribute | +| sdp | InfraSDP | True | one | Attribute | + +### SDP + +- **Label:** SDP +- **Namespace:** Infra +- **Display Labels:** sdp_id__value +- **Uniqueness Constraints:** + - lsp, sdp_id__value +- **Human Friendly ID:** lsp__name__value, sdp_id__value + +#### Attributes + +| name | description | kind | optional | default_value | choices | +| ---- | ----------- | ---- | -------- | ------------- | ------- | +| sdp_id | | Number | False | | | + +#### Relationships + +| name | peer | optional | cardinality | kind | +| ---- | ---- | -------- | ----------- | ---- | +| lsp | InfraLSP | False | one | Attribute | + +### SAP + +- **Label:** SAP +- **Namespace:** Infra +- **Display Labels:** sap_id__value +- **Human Friendly ID:** sap_id__value + +#### Attributes + +| name | description | kind | optional | default_value | choices | +| ---- | ----------- | ---- | -------- | ------------- | ------- | +| sap_id | | Number | False | | | +| admin_state | Administrative state of the SAP | Dropdown | False | enable | enable, disable | +| ingress_bandwidth | Ingress bandwidth rate in kbps | Bandwidth | False | 10240000 | | +| egress_bandwidth | Egress bandwidth rate in kbps | Bandwidth | False | 10240000 | | +| llf_admin_state | Link Loss Forwarding administrative state | Dropdown | False | enable | enable, disable | + +#### Relationships + +| name | peer | optional | cardinality | kind | +| ---- | ---- | -------- | ----------- | ---- | +| port | InfraPort | False | one | Attribute | +| epipe | InfraEpipe | True | one | Attribute | + +### Epipe + +- **Label:** Epipe +- **Namespace:** Infra +- **Display Labels:** name__value +- **Uniqueness Constraints:** + - sap, name__value +- **Human Friendly ID:** name__value + +#### Attributes + +| name | description | kind | optional | default_value | choices | +| ---- | ----------- | ---- | -------- | ------------- | ------- | +| epipe_id | | Number | False | | | +| name | | Text | False | | | + +#### Relationships + +| name | peer | optional | cardinality | kind | +| ---- | ---- | -------- | ----------- | ---- | +| sap | InfraSAP | False | one | Attribute | +| sdp | InfraSDP | False | one | Attribute | + + +## Code + +```yaml +version: '1.0' +nodes: +- name: LSPTemplate + label: LSP Template + include_in_menu: false + namespace: Infra + attributes: + - name: name + kind: Text + computed_attribute: + kind: Jinja2 + jinja2_template: '{{ role__value }}' + read_only: true + optional: false + - name: role + kind: Dropdown + choices: + - name: low_latency + label: Low Latency + - name: igp_cost + label: IGP Cost + - name: disjoint + label: Disjoint + relationships: + - name: node_a + label: Node A + peer: InfraDevice + kind: Attribute + cardinality: one + identifier: lsptemplate__node_a + - name: node_b + label: Node B + peer: InfraDevice + kind: Attribute + cardinality: one + identifier: lsptemplate__node_b +- name: EpipeTemplate + label: Epipe Template + include_in_menu: false + namespace: Infra + attributes: + - name: name + kind: Text + computed_attribute: + kind: TransformPython + transform: compute_epipe_name + read_only: true + optional: true + - name: mtu + kind: Number + optional: false + default_value: 9100 + description: Maximum Transmission Unit + relationships: + - name: customer + label: Customer + peer: ServicesCustomer + kind: Attribute + cardinality: one + identifier: epipetemplate__customer + - name: sdp_a + label: SDP Node A + peer: InfraSDP + kind: Attribute + cardinality: one + identifier: epipetemplate__sdp_a + - name: sdp_b + label: SDP Node B + peer: InfraSDP + kind: Attribute + cardinality: one + identifier: epipetemplate__sdp_b + - name: port_a + label: Port Node A + peer: InfraPort + kind: Attribute + cardinality: one + identifier: epipetemplate__port_a + - name: port_b + label: Port Node B + peer: InfraPort + kind: Attribute + cardinality: one + identifier: epipetemplate__port_b +- name: EpipeService + label: Epipe Service + include_in_menu: false + namespace: Infra + display_labels: + - name__value + attributes: + - name: name + kind: Text + unique: true + optional: false + relationships: + - name: epipe_a + label: Epipe A-Side + peer: InfraEpipe + kind: Component + cardinality: one + optional: false + identifier: epipeservice__epipe_a + - name: epipe_z + label: Epipe Z-Side + peer: InfraEpipe + kind: Component + cardinality: one + optional: false + identifier: epipeservice__epipe_z + - name: customer + label: Customer + peer: ServicesCustomer + kind: Attribute + cardinality: one + optional: false + identifier: epipeservice__customer +- name: LSP + label: LSP + include_in_menu: false + namespace: Infra + display_labels: + - name__value + attributes: + - name: name + kind: Text + optional: true + unique: true + - name: role + kind: Dropdown + choices: + - name: low_latency + label: Low Latency + - name: igp_cost + label: IGP Cost + - name: disjoint + label: Disjoint + relationships: + - name: src_ip + kind: Attribute + peer: IpamIPAddress + optional: false + cardinality: one + identifier: infra_lsp__src_ip + - name: dst_ip + kind: Attribute + peer: IpamIPAddress + optional: false + cardinality: one + identifier: infra_lsp__dst_ip + - name: sdp + kind: Attribute + peer: InfraSDP + cardinality: one + optional: true +- name: SDP + label: SDP + include_in_menu: false + namespace: Infra + display_labels: + - sdp_id__value + human_friendly_id: + - lsp__name__value + - sdp_id__value + uniqueness_constraints: + - - lsp + - sdp_id__value + attributes: + - name: sdp_id + kind: Number + optional: false + relationships: + - name: lsp + kind: Attribute + peer: InfraLSP + cardinality: one + optional: false +- name: SAP + label: SAP + include_in_menu: false + namespace: Infra + display_labels: + - sap_id__value + human_friendly_id: + - sap_id__value + attributes: + - name: sap_id + kind: Number + unique: true + optional: false + - name: admin_state + kind: Dropdown + optional: false + description: Administrative state of the SAP + default_value: enable + choices: + - name: enable + label: Enable + description: Enable the SAP + - name: disable + label: Disable + description: Disable the SAP + - name: ingress_bandwidth + kind: Bandwidth + description: Ingress bandwidth rate in kbps + default_value: 10240000 + optional: false + - name: egress_bandwidth + kind: Bandwidth + description: Egress bandwidth rate in kbps + default_value: 10240000 + optional: false + - name: llf_admin_state + kind: Dropdown + description: Link Loss Forwarding administrative state + optional: false + default_value: enable + choices: + - name: enable + label: Enable + description: Enable link loss forwarding + - name: disable + label: Disable + description: Disable link loss forwarding + relationships: + - name: port + kind: Attribute + peer: InfraPort + cardinality: one + optional: false + - name: epipe + kind: Attribute + peer: InfraEpipe + cardinality: one + optional: true +- name: Epipe + label: Epipe + namespace: Infra + include_in_menu: false + display_labels: + - name__value + human_friendly_id: + - name__value + uniqueness_constraints: + - - sap + - name__value + attributes: + - name: epipe_id + kind: Number + state: absent + unique: true + optional: false + - name: name + kind: Text + unique: true + optional: false + relationships: + - name: sap + kind: Attribute + peer: InfraSAP + cardinality: one + optional: false + - name: sdp + kind: Attribute + peer: InfraSDP + cardinality: one + optional: false + +``` \ No newline at end of file diff --git a/docs/docs/reference/firewall_policer.mdx b/docs/docs/reference/firewall_policer.mdx index fdba14a..42283d7 100644 --- a/docs/docs/reference/firewall_policer.mdx +++ b/docs/docs/reference/firewall_policer.mdx @@ -18,8 +18,6 @@ This schema extension contains models for VMs. You might consider Cluster or/and - **Namespace:** Security - **Icon:** mdi:car-speed-limiter - **Display Labels:** name__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value #### Attributes @@ -51,8 +49,6 @@ nodes: - name__value order_by: - name__value - uniqueness_constraints: - - - name__value human_friendly_id: - name__value attributes: diff --git a/docs/docs/reference/ipam.mdx b/docs/docs/reference/ipam.mdx index b992aeb..1f58fe2 100644 --- a/docs/docs/reference/ipam.mdx +++ b/docs/docs/reference/ipam.mdx @@ -18,7 +18,7 @@ Basic IPAM schema to capture IP addresses, subnets, and related information. - **Icon:** mdi:ip - **Display Labels:** address__value - **Uniqueness Constraints:** - - ip_namespace, address__value + - address__value, ip_namespace - **Human Friendly ID:** address__value, ip_namespace__name__value - **Inherit From:** BuiltinIPAddress @@ -42,7 +42,7 @@ Basic IPAM schema to capture IP addresses, subnets, and related information. - **Icon:** mdi:ip-network - **Display Labels:** prefix__value - **Uniqueness Constraints:** - - ip_namespace, prefix__value + - prefix__value, ip_namespace - **Human Friendly ID:** prefix__value, ip_namespace__name__value - **Inherit From:** BuiltinIPPrefix @@ -80,8 +80,8 @@ nodes: inherit_from: - BuiltinIPAddress uniqueness_constraints: - - - ip_namespace - - address__value + - - address__value + - ip_namespace human_friendly_id: - address__value - ip_namespace__name__value @@ -109,8 +109,8 @@ nodes: inherit_from: - BuiltinIPPrefix uniqueness_constraints: - - - ip_namespace - - prefix__value + - - prefix__value + - ip_namespace human_friendly_id: - prefix__value - ip_namespace__name__value diff --git a/docs/docs/reference/peering_ixp.mdx b/docs/docs/reference/peering_ixp.mdx index ac757bd..8cf0466 100644 --- a/docs/docs/reference/peering_ixp.mdx +++ b/docs/docs/reference/peering_ixp.mdx @@ -21,8 +21,6 @@ This schema extension contains all you need to model anything revolving around i - **Namespace:** Peering - **Icon:** mdi:network - **Display Labels:** name__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value #### Attributes @@ -87,8 +85,6 @@ nodes: description: An Internet Exchange Point (IXP) for peering label: Internet Exchange icon: mdi:network - uniqueness_constraints: - - - name__value human_friendly_id: - name__value order_by: diff --git a/docs/docs/reference/physical_disk.mdx b/docs/docs/reference/physical_disk.mdx index 79b6f8e..9af6a08 100644 --- a/docs/docs/reference/physical_disk.mdx +++ b/docs/docs/reference/physical_disk.mdx @@ -22,7 +22,7 @@ NOTE: This extension is compatible with all sort of device. You can apply the ge - **Icon:** carbon:vmdk-disk - **Display Labels:** name__value - **Uniqueness Constraints:** - - name__value, device + - device, name__value - **Human Friendly ID:** name__value #### Attributes @@ -86,12 +86,11 @@ nodes: human_friendly_id: - name__value uniqueness_constraints: - - - name__value - - device + - - device + - name__value attributes: - name: name kind: Text - unique: false optional: false order_weight: 900 - name: disk_type diff --git a/docs/docs/reference/routing_bgp.mdx b/docs/docs/reference/routing_bgp.mdx index 16eef8f..e0b529f 100644 --- a/docs/docs/reference/routing_bgp.mdx +++ b/docs/docs/reference/routing_bgp.mdx @@ -19,9 +19,6 @@ This schema extension contains all you need to model your BGP platform. - **Namespace:** Routing - **Icon:** mdi:bank-circle-outline - **Display Labels:** asn__value, name__value -- **Uniqueness Constraints:** - - asn__value - - name__value - **Human Friendly ID:** asn__value, name__value #### Attributes @@ -47,8 +44,6 @@ This schema extension contains all you need to model your BGP platform. - **Namespace:** Routing - **Icon:** mdi:view-grid-plus-outline - **Display Labels:** name__value, description__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value, description__value - **Inherit From:** RoutingProtocol @@ -139,9 +134,6 @@ nodes: label: Autonomous System icon: mdi:bank-circle-outline menu_placement: RoutingBGPSession - uniqueness_constraints: - - - asn__value - - - name__value human_friendly_id: - asn__value - name__value @@ -156,10 +148,12 @@ nodes: kind: Text description: Name of the Autonomous System order_weight: 1000 + unique: true - name: asn kind: Number description: Autonomous System Number order_weight: 1050 + unique: true - name: description kind: Text optional: true @@ -190,8 +184,6 @@ nodes: menu_placement: RoutingBGPSession inherit_from: - RoutingProtocol - uniqueness_constraints: - - - name__value human_friendly_id: - name__value - description__value @@ -204,6 +196,7 @@ nodes: - name: name kind: Text optional: false + unique: true description: Name of the BGP Group order_weight: 1000 - name: import_policies diff --git a/docs/docs/reference/routing_bgp_community.mdx b/docs/docs/reference/routing_bgp_community.mdx index 8de4643..31705bb 100644 --- a/docs/docs/reference/routing_bgp_community.mdx +++ b/docs/docs/reference/routing_bgp_community.mdx @@ -19,9 +19,6 @@ This schema extension adds the BGP Communities models. - **Namespace:** Routing - **Icon:** iconoir:community - **Display Labels:** name__value, community__value -- **Uniqueness Constraints:** - - name__value - - community__value - **Human Friendly ID:** name__value #### Attributes @@ -50,9 +47,6 @@ nodes: icon: iconoir:community label: BGP Community description: Defines a BGP community. - uniqueness_constraints: - - - name__value - - - community__value human_friendly_id: - name__value order_by: @@ -65,6 +59,7 @@ nodes: kind: Text description: The name of the BGP community. order_weight: 1000 + unique: true - name: description kind: Text description: An optional description of the BGP community. @@ -74,6 +69,7 @@ nodes: kind: Text description: The value of the BGP community (RFC1997, RFC4360, RFC8092). order_weight: 1200 + unique: true relationships: - name: routing_policy label: Routing Policies diff --git a/docs/docs/reference/routing_bgp_rr.mdx b/docs/docs/reference/routing_bgp_rr.mdx index 702aaaa..e609e67 100644 --- a/docs/docs/reference/routing_bgp_rr.mdx +++ b/docs/docs/reference/routing_bgp_rr.mdx @@ -20,8 +20,6 @@ This schema extension extend the BGP extension to add BGP Route Reflector Cluste - **Namespace:** Routing - **Icon:** mdi:router-network - **Display Labels:** name__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value #### Attributes @@ -66,8 +64,6 @@ nodes: label: Route Reflector Cluster icon: mdi:router-network include_in_menu: false - uniqueness_constraints: - - - name__value human_friendly_id: - name__value display_labels: @@ -77,6 +73,7 @@ nodes: kind: Text description: Name of the Route Reflector Cluster order_weight: 1000 + unique: true - name: description kind: Text description: Optional description of the Route Reflector Cluster diff --git a/docs/docs/reference/routing_policies.mdx b/docs/docs/reference/routing_policies.mdx index c2a2828..65a051c 100644 --- a/docs/docs/reference/routing_policies.mdx +++ b/docs/docs/reference/routing_policies.mdx @@ -17,8 +17,6 @@ This schema extension contains a generic to create Routing Policies. This Generi - **Namespace:** Routing - **Icon:** carbon:deployment-policy - **Display Labels:** name__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value #### Attributes @@ -43,8 +41,6 @@ generics: icon: carbon:deployment-policy include_in_menu: false description: Policy defining the rules for routing traffic in a network. - uniqueness_constraints: - - - name__value human_friendly_id: - name__value order_by: diff --git a/docs/docs/reference/users.mdx b/docs/docs/reference/users.mdx index de2d10c..0c40c2b 100644 --- a/docs/docs/reference/users.mdx +++ b/docs/docs/reference/users.mdx @@ -18,8 +18,6 @@ This schema extension contains models for account management. - **Namespace:** User - **Icon:** iconoir:group - **Display Labels:** name__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value #### Attributes @@ -39,15 +37,13 @@ This schema extension contains models for account management. - **Namespace:** User - **Icon:** mdi:account-key - **Display Labels:** name__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value #### Attributes | name | description | kind | optional | default_value | choices | | ---- | ----------- | ---- | -------- | ------------- | ------- | -| name | The login username | Text | False | | | +| name | The login username | Text | | | | | full_name | Full name of the account | Text | True | | | | ssh_key | SSH key for secure access | Password | True | | | | password | Password for login (alternative to SSH key) | Password | True | | | @@ -91,14 +87,13 @@ nodes: - name__value order_by: - name__value - uniqueness_constraints: - - - name__value human_friendly_id: - name__value attributes: - name: name kind: Text order_weight: 1000 + unique: true - name: description kind: Text optional: true @@ -130,17 +125,15 @@ nodes: - name__value order_by: - name__value - uniqueness_constraints: - - - name__value human_friendly_id: - name__value attributes: - name: name label: Username kind: Text - optional: false description: The login username order_weight: 1000 + unique: true - name: full_name kind: Text optional: true diff --git a/docs/docs/reference/vlan.mdx b/docs/docs/reference/vlan.mdx index 509f973..4e22cc6 100644 --- a/docs/docs/reference/vlan.mdx +++ b/docs/docs/reference/vlan.mdx @@ -19,7 +19,7 @@ This schema extension contains models to support VLANs in you network. - **Icon:** mdi:lan-pending - **Display Labels:** name__value - **Uniqueness Constraints:** - - l2domain, vlan_id__value + - vlan_id__value, l2domain - **Human Friendly ID:** name__value #### Attributes @@ -107,8 +107,8 @@ nodes: icon: mdi:lan-pending menu_placement: IpamL2Domain uniqueness_constraints: - - - l2domain - - vlan_id__value + - - vlan_id__value + - l2domain human_friendly_id: - name__value order_by: diff --git a/docs/docs/reference/vrrp.mdx b/docs/docs/reference/vrrp.mdx index 6d2f273..76929a9 100644 --- a/docs/docs/reference/vrrp.mdx +++ b/docs/docs/reference/vrrp.mdx @@ -18,8 +18,6 @@ This schema extension contains models for VRRP. - **Namespace:** Network - **Icon:** fluent:virtual-network-20-filled - **Display Labels:** name__value -- **Uniqueness Constraints:** - - name__value - **Human Friendly ID:** name__value #### Attributes @@ -98,8 +96,6 @@ nodes: - name__value order_by: - name__value - uniqueness_constraints: - - - name__value human_friendly_id: - name__value attributes: diff --git a/experimental/epipe/README.md b/experimental/epipe/README.md new file mode 100644 index 0000000..8f70b2c --- /dev/null +++ b/experimental/epipe/README.md @@ -0,0 +1,3 @@ +# epipe + +Please refer to the [reference page](https://docs.infrahub.app/schema-library/reference/epipe) for the corresponding documentation. diff --git a/experimental/epipe/epipe.yml b/experimental/epipe/epipe.yml new file mode 100644 index 0000000..450c2a8 --- /dev/null +++ b/experimental/epipe/epipe.yml @@ -0,0 +1,274 @@ +--- +# yaml-language-server: $schema=https://schema.infrahub.app/infrahub/schema/latest.json + +version: "1.0" +nodes: + - name: LSPTemplate + label: LSP Template + include_in_menu: false + namespace: Infra + attributes: + - name: name + kind: Text + computed_attribute: + kind: Jinja2 + jinja2_template: "{{ role__value }}" + read_only: true + optional: false + - name: role + kind: Dropdown + choices: + - name: low_latency + label: Low Latency + - name: igp_cost + label: IGP Cost + - name: disjoint + label: Disjoint + relationships: + - name: node_a + label: Node A + peer: InfraDevice + kind: Attribute + cardinality: one + identifier: lsptemplate__node_a + - name: node_b + label: Node B + peer: InfraDevice + kind: Attribute + cardinality: one + identifier: lsptemplate__node_b + + - name: EpipeTemplate + label: Epipe Template + include_in_menu: false + namespace: Infra + attributes: + - name: name + kind: Text + computed_attribute: + kind: TransformPython + transform: compute_epipe_name + read_only: true + optional: true + - name: mtu + kind: Number + optional: false + default_value: 9100 + description: "Maximum Transmission Unit" + relationships: + - name: customer + label: Customer + peer: ServicesCustomer + kind: Attribute + cardinality: one + identifier: epipetemplate__customer + - name: sdp_a + label: SDP Node A + peer: InfraSDP + kind: Attribute + cardinality: one + identifier: epipetemplate__sdp_a + - name: sdp_b + label: SDP Node B + peer: InfraSDP + kind: Attribute + cardinality: one + identifier: epipetemplate__sdp_b + - name: port_a + label: Port Node A + peer: InfraPort + kind: Attribute + cardinality: one + identifier: epipetemplate__port_a + - name: port_b + label: Port Node B + peer: InfraPort + kind: Attribute + cardinality: one + identifier: epipetemplate__port_b + + - name: EpipeService + label: Epipe Service + include_in_menu: false + namespace: Infra + display_labels: + - name__value + attributes: + - name: name + kind: Text + unique: true + optional: false + relationships: + - name: epipe_a + label: Epipe A-Side + peer: InfraEpipe + kind: Component + cardinality: one + optional: false + identifier: epipeservice__epipe_a + - name: epipe_z + label: Epipe Z-Side + peer: InfraEpipe + kind: Component + cardinality: one + optional: false + identifier: epipeservice__epipe_z + - name: customer + label: Customer + peer: ServicesCustomer + kind: Attribute + cardinality: one + optional: false + identifier: epipeservice__customer + + - name: LSP + label: LSP + include_in_menu: false + namespace: Infra + display_labels: + - name__value + attributes: + - name: name + kind: Text + optional: true + unique: true + - name: role + kind: Dropdown + choices: + - name: low_latency + label: Low Latency + - name: igp_cost + label: IGP Cost + - name: disjoint + label: Disjoint + relationships: + - name: src_ip + kind: Attribute + peer: IpamIPAddress + optional: false + cardinality: one + identifier: infra_lsp__src_ip + - name: dst_ip + kind: Attribute + peer: IpamIPAddress + optional: false + cardinality: one + identifier: infra_lsp__dst_ip + - name: sdp + kind: Attribute + peer: InfraSDP + cardinality: one + optional: true + + - name: SDP + label: SDP + include_in_menu: false + namespace: Infra + display_labels: + - sdp_id__value + human_friendly_id: + - lsp__name__value + - sdp_id__value + uniqueness_constraints: + - [lsp, sdp_id__value] + attributes: + - name: sdp_id + kind: Number + optional: false + relationships: + - name: lsp + kind: Attribute + peer: InfraLSP + cardinality: one + optional: false + + - name: SAP + label: SAP + include_in_menu: false + namespace: Infra + display_labels: + - sap_id__value + human_friendly_id: + - sap_id__value + attributes: + - name: sap_id + kind: Number + unique: true + optional: false + - name: admin_state + kind: Dropdown + optional: false + description: "Administrative state of the SAP" + default_value: "enable" + choices: + - name: enable + label: Enable + description: "Enable the SAP" + - name: disable + label: Disable + description: "Disable the SAP" + - name: ingress_bandwidth + kind: Bandwidth + description: "Ingress bandwidth rate in kbps" + default_value: 10240000 + optional: false + - name: egress_bandwidth + kind: Bandwidth + description: "Egress bandwidth rate in kbps" + default_value: 10240000 + optional: false + - name: llf_admin_state + kind: Dropdown + description: "Link Loss Forwarding administrative state" + optional: false + default_value: "enable" + choices: + - name: enable + label: Enable + description: "Enable link loss forwarding" + - name: disable + label: Disable + description: "Disable link loss forwarding" + relationships: + - name: port + kind: Attribute + peer: InfraPort + cardinality: one + optional: false + - name: epipe + kind: Attribute + peer: InfraEpipe + cardinality: one + optional: true + + - name: Epipe + label: Epipe + namespace: Infra + include_in_menu: false + display_labels: + - name__value + human_friendly_id: + - name__value + uniqueness_constraints: + - [sap, name__value] + attributes: + - name: epipe_id + kind: Number + state: absent + unique: true + optional: false + - name: name + kind: Text + unique: true + optional: false + relationships: + - name: sap + kind: Attribute + peer: InfraSAP + cardinality: one + optional: false + - name: sdp + kind: Attribute + peer: InfraSDP + cardinality: one + optional: false