From 6fb0a23a98f6089493a35031d9722b978110bb41 Mon Sep 17 00:00:00 2001 From: Michael Dokolin Date: Sat, 11 Nov 2023 09:45:12 +0100 Subject: [PATCH] feat: Add RADIUS incoming resource --- .../routeros_radius_incoming/import.sh | 1 + .../routeros_radius_incoming/resource.tf | 3 ++ routeros/provider.go | 1 + routeros/resource_radius.go | 41 +++++++++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 examples/resources/routeros_radius_incoming/import.sh create mode 100644 examples/resources/routeros_radius_incoming/resource.tf diff --git a/examples/resources/routeros_radius_incoming/import.sh b/examples/resources/routeros_radius_incoming/import.sh new file mode 100644 index 00000000..17f50a01 --- /dev/null +++ b/examples/resources/routeros_radius_incoming/import.sh @@ -0,0 +1 @@ +terraform import routeros_radius_incoming.settings . diff --git a/examples/resources/routeros_radius_incoming/resource.tf b/examples/resources/routeros_radius_incoming/resource.tf new file mode 100644 index 00000000..df3bde9c --- /dev/null +++ b/examples/resources/routeros_radius_incoming/resource.tf @@ -0,0 +1,3 @@ +resource "routeros_radius_incoming" "settings" { + accept = true +} diff --git a/routeros/provider.go b/routeros/provider.go index 50bdf8c4..f97147f1 100644 --- a/routeros/provider.go +++ b/routeros/provider.go @@ -180,6 +180,7 @@ func Provider() *schema.Provider { // RADIUS "routeros_radius": ResourceRadius(), + "routeros_radius_incoming": ResourceRadiusIncoming(), // SNMP "routeros_snmp": ResourceSNMP(), diff --git a/routeros/resource_radius.go b/routeros/resource_radius.go index ff1a32a9..92978970 100644 --- a/routeros/resource_radius.go +++ b/routeros/resource_radius.go @@ -106,3 +106,44 @@ func ResourceRadius() *schema.Resource { Schema: resSchema, } } + +// https://help.mikrotik.com/docs/display/ROS/RADIUS#RADIUS-ConnectionTerminatingfromRADIUS +func ResourceRadiusIncoming() *schema.Resource { + resSchema := map[string]*schema.Schema{ + MetaResourcePath: PropResourcePath("/radius/incoming"), + MetaId: PropId(Name), + + "accept": { + Type: schema.TypeBool, + Optional: true, + Default: false, + Description: "An option whether to accept the unsolicited messages.", + }, + "port": { + Type: schema.TypeInt, + Optional: true, + Default: 3799, + Description: "The port number to listen for the requests on.", + ValidateFunc: validation.IntBetween(0, 65535), + }, + "vrf": { + Type: schema.TypeString, + Optional: true, + Default: "main", + Description: "VRF on which service is listening for incoming connections.", + }, + } + + return &schema.Resource{ + CreateContext: DefaultSystemCreate(resSchema), + ReadContext: DefaultSystemRead(resSchema), + UpdateContext: DefaultSystemUpdate(resSchema), + DeleteContext: DefaultSystemDelete(resSchema), + + Importer: &schema.ResourceImporter{ + StateContext: schema.ImportStatePassthroughContext, + }, + + Schema: resSchema, + } +}