diff --git a/CHANGELOG.md b/CHANGELOG.md index 316ef6f9..75bc30c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.5.2 (unreleased) + +- Add `speed` options to `interface_ethernet` resource and data source + ## 0.5.1 - Add `iosxe_vlan_filter` resource and data source diff --git a/docs/data-sources/interface_ethernet.md b/docs/data-sources/interface_ethernet.md index ac3e0f75..ba55aced 100644 --- a/docs/data-sources/interface_ethernet.md +++ b/docs/data-sources/interface_ethernet.md @@ -85,6 +85,14 @@ data "iosxe_interface_ethernet" "example" { - `spanning_tree_guard` (String) Change an interface's spanning tree guard mode - `spanning_tree_link_type` (String) Specify a link type for spanning tree tree protocol use - `spanning_tree_portfast_trunk` (Boolean) Enable portfast on the interface even in trunk mode +- `speed_100` (Boolean) 100 Mbps operation +- `speed_1000` (Boolean) 1000 Mbps operation +- `speed_10000` (Boolean) 10000 Mbps operation +- `speed_100000` (Boolean) 100000 Mbps operation +- `speed_2500` (Boolean) 2500 Mbps operation +- `speed_25000` (Boolean) 25000 Mbps operation +- `speed_40000` (Boolean) 40000 Mbps operation +- `speed_5000` (Boolean) 5000 Mbps operation - `switchport` (Boolean) - `trust_device` (String) trusted device class - `unnumbered` (String) Enable IP processing without an explicit address diff --git a/docs/guides/changelog.md b/docs/guides/changelog.md index 72190397..0d81773d 100644 --- a/docs/guides/changelog.md +++ b/docs/guides/changelog.md @@ -7,6 +7,10 @@ description: |- # Changelog +## 0.5.2 (unreleased) + +- Add `speed` options to `interface_ethernet` resource and data source + ## 0.5.1 - Add `iosxe_vlan_filter` resource and data source diff --git a/docs/resources/interface_ethernet.md b/docs/resources/interface_ethernet.md index eb5bc087..abdec26f 100644 --- a/docs/resources/interface_ethernet.md +++ b/docs/resources/interface_ethernet.md @@ -134,6 +134,14 @@ resource "iosxe_interface_ethernet" "example" { - `spanning_tree_link_type` (String) Specify a link type for spanning tree tree protocol use - Choices: `point-to-point`, `shared` - `spanning_tree_portfast_trunk` (Boolean) Enable portfast on the interface even in trunk mode +- `speed_100` (Boolean) 100 Mbps operation +- `speed_1000` (Boolean) 1000 Mbps operation +- `speed_10000` (Boolean) 10000 Mbps operation +- `speed_100000` (Boolean) 100000 Mbps operation +- `speed_2500` (Boolean) 2500 Mbps operation +- `speed_25000` (Boolean) 25000 Mbps operation +- `speed_40000` (Boolean) 40000 Mbps operation +- `speed_5000` (Boolean) 5000 Mbps operation - `switchport` (Boolean) - `trust_device` (String) trusted device class - Choices: `cisco-phone`, `cts`, `ip-camera`, `media-player` diff --git a/gen/definitions/interface_ethernet.yaml b/gen/definitions/interface_ethernet.yaml index e4e366b1..76487b52 100644 --- a/gen/definitions/interface_ethernet.yaml +++ b/gen/definitions/interface_ethernet.yaml @@ -238,6 +238,46 @@ attributes: - yang_name: ip/dhcp/Cisco-IOS-XE-dhcp:snooping/trust example: true test_tags: [C9000V] + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-100/value-100 + xpath: Cisco-IOS-XE-ethernet:speed/value-100 + tf_name: speed_100 + example: true + exclude_test: true + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-1000/value-1000 + xpath: Cisco-IOS-XE-ethernet:speed/value-1000 + tf_name: speed_1000 + example: true + exclude_test: true + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-2500/value-2500 + xpath: Cisco-IOS-XE-ethernet:speed/value-2500 + tf_name: speed_2500 + example: true + exclude_test: true + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-5000/value-5000 + xpath: Cisco-IOS-XE-ethernet:speed/value-5000 + tf_name: speed_5000 + example: true + exclude_test: true + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-10000/value-10000 + xpath: Cisco-IOS-XE-ethernet:speed/value-10000 + tf_name: speed_10000 + example: true + exclude_test: true + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-25000/value-25000 + xpath: Cisco-IOS-XE-ethernet:speed/value-25000 + tf_name: speed_25000 + example: true + exclude_test: true + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-40000/value-40000 + xpath: Cisco-IOS-XE-ethernet:speed/value-40000 + tf_name: speed_40000 + example: true + exclude_test: true + - yang_name: Cisco-IOS-XE-ethernet:speed/speed-choice/value-100000/value-100000 + xpath: Cisco-IOS-XE-ethernet:speed/value-100000 + tf_name: speed_100000 + example: true + exclude_test: true test_prerequisites: - path: Cisco-IOS-XE-native:native/vrf/definition=VRF1 diff --git a/internal/provider/data_source_iosxe_interface_ethernet.go b/internal/provider/data_source_iosxe_interface_ethernet.go index 2438ba5c..53fb1442 100644 --- a/internal/provider/data_source_iosxe_interface_ethernet.go +++ b/internal/provider/data_source_iosxe_interface_ethernet.go @@ -343,6 +343,38 @@ func (d *InterfaceEthernetDataSource) Schema(ctx context.Context, req datasource MarkdownDescription: "DHCP Snooping trust config", Computed: true, }, + "speed_100": schema.BoolAttribute{ + MarkdownDescription: "100 Mbps operation", + Computed: true, + }, + "speed_1000": schema.BoolAttribute{ + MarkdownDescription: "1000 Mbps operation", + Computed: true, + }, + "speed_2500": schema.BoolAttribute{ + MarkdownDescription: "2500 Mbps operation", + Computed: true, + }, + "speed_5000": schema.BoolAttribute{ + MarkdownDescription: "5000 Mbps operation", + Computed: true, + }, + "speed_10000": schema.BoolAttribute{ + MarkdownDescription: "10000 Mbps operation", + Computed: true, + }, + "speed_25000": schema.BoolAttribute{ + MarkdownDescription: "25000 Mbps operation", + Computed: true, + }, + "speed_40000": schema.BoolAttribute{ + MarkdownDescription: "40000 Mbps operation", + Computed: true, + }, + "speed_100000": schema.BoolAttribute{ + MarkdownDescription: "100000 Mbps operation", + Computed: true, + }, }, } } diff --git a/internal/provider/model_iosxe_interface_ethernet.go b/internal/provider/model_iosxe_interface_ethernet.go index 9f42c4d7..a8161e57 100644 --- a/internal/provider/model_iosxe_interface_ethernet.go +++ b/internal/provider/model_iosxe_interface_ethernet.go @@ -94,6 +94,14 @@ type InterfaceEthernet struct { IpArpInspectionTrust types.Bool `tfsdk:"ip_arp_inspection_trust"` IpArpInspectionLimitRate types.Int64 `tfsdk:"ip_arp_inspection_limit_rate"` IpDhcpSnoopingTrust types.Bool `tfsdk:"ip_dhcp_snooping_trust"` + Speed100 types.Bool `tfsdk:"speed_100"` + Speed1000 types.Bool `tfsdk:"speed_1000"` + Speed2500 types.Bool `tfsdk:"speed_2500"` + Speed5000 types.Bool `tfsdk:"speed_5000"` + Speed10000 types.Bool `tfsdk:"speed_10000"` + Speed25000 types.Bool `tfsdk:"speed_25000"` + Speed40000 types.Bool `tfsdk:"speed_40000"` + Speed100000 types.Bool `tfsdk:"speed_100000"` } type InterfaceEthernetData struct { @@ -156,6 +164,14 @@ type InterfaceEthernetData struct { IpArpInspectionTrust types.Bool `tfsdk:"ip_arp_inspection_trust"` IpArpInspectionLimitRate types.Int64 `tfsdk:"ip_arp_inspection_limit_rate"` IpDhcpSnoopingTrust types.Bool `tfsdk:"ip_dhcp_snooping_trust"` + Speed100 types.Bool `tfsdk:"speed_100"` + Speed1000 types.Bool `tfsdk:"speed_1000"` + Speed2500 types.Bool `tfsdk:"speed_2500"` + Speed5000 types.Bool `tfsdk:"speed_5000"` + Speed10000 types.Bool `tfsdk:"speed_10000"` + Speed25000 types.Bool `tfsdk:"speed_25000"` + Speed40000 types.Bool `tfsdk:"speed_40000"` + Speed100000 types.Bool `tfsdk:"speed_100000"` } type InterfaceEthernetHelperAddresses struct { Address types.String `tfsdk:"address"` @@ -396,6 +412,46 @@ func (data InterfaceEthernet) toBody(ctx context.Context) string { body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.dhcp.Cisco-IOS-XE-dhcp:snooping.trust", map[string]string{}) } } + if !data.Speed100.IsNull() && !data.Speed100.IsUnknown() { + if data.Speed100.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-100", map[string]string{}) + } + } + if !data.Speed1000.IsNull() && !data.Speed1000.IsUnknown() { + if data.Speed1000.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-1000", map[string]string{}) + } + } + if !data.Speed2500.IsNull() && !data.Speed2500.IsUnknown() { + if data.Speed2500.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-2500", map[string]string{}) + } + } + if !data.Speed5000.IsNull() && !data.Speed5000.IsUnknown() { + if data.Speed5000.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-5000", map[string]string{}) + } + } + if !data.Speed10000.IsNull() && !data.Speed10000.IsUnknown() { + if data.Speed10000.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-10000", map[string]string{}) + } + } + if !data.Speed25000.IsNull() && !data.Speed25000.IsUnknown() { + if data.Speed25000.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-25000", map[string]string{}) + } + } + if !data.Speed40000.IsNull() && !data.Speed40000.IsUnknown() { + if data.Speed40000.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-40000", map[string]string{}) + } + } + if !data.Speed100000.IsNull() && !data.Speed100000.IsUnknown() { + if data.Speed100000.ValueBool() { + body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"Cisco-IOS-XE-ethernet:speed.value-100000", map[string]string{}) + } + } if len(data.HelperAddresses) > 0 { body, _ = sjson.Set(body, helpers.LastElement(data.getPath())+"."+"ip.helper-address", []interface{}{}) for index, item := range data.HelperAddresses { @@ -976,6 +1032,78 @@ func (data *InterfaceEthernet) updateFromBody(ctx context.Context, res gjson.Res } else { data.IpDhcpSnoopingTrust = types.BoolNull() } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100"); !data.Speed100.IsNull() { + if value.Exists() { + data.Speed100 = types.BoolValue(true) + } else { + data.Speed100 = types.BoolValue(false) + } + } else { + data.Speed100 = types.BoolNull() + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-1000"); !data.Speed1000.IsNull() { + if value.Exists() { + data.Speed1000 = types.BoolValue(true) + } else { + data.Speed1000 = types.BoolValue(false) + } + } else { + data.Speed1000 = types.BoolNull() + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-2500"); !data.Speed2500.IsNull() { + if value.Exists() { + data.Speed2500 = types.BoolValue(true) + } else { + data.Speed2500 = types.BoolValue(false) + } + } else { + data.Speed2500 = types.BoolNull() + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-5000"); !data.Speed5000.IsNull() { + if value.Exists() { + data.Speed5000 = types.BoolValue(true) + } else { + data.Speed5000 = types.BoolValue(false) + } + } else { + data.Speed5000 = types.BoolNull() + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-10000"); !data.Speed10000.IsNull() { + if value.Exists() { + data.Speed10000 = types.BoolValue(true) + } else { + data.Speed10000 = types.BoolValue(false) + } + } else { + data.Speed10000 = types.BoolNull() + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-25000"); !data.Speed25000.IsNull() { + if value.Exists() { + data.Speed25000 = types.BoolValue(true) + } else { + data.Speed25000 = types.BoolValue(false) + } + } else { + data.Speed25000 = types.BoolNull() + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-40000"); !data.Speed40000.IsNull() { + if value.Exists() { + data.Speed40000 = types.BoolValue(true) + } else { + data.Speed40000 = types.BoolValue(false) + } + } else { + data.Speed40000 = types.BoolNull() + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100000"); !data.Speed100000.IsNull() { + if value.Exists() { + data.Speed100000 = types.BoolValue(true) + } else { + data.Speed100000 = types.BoolValue(false) + } + } else { + data.Speed100000 = types.BoolNull() + } } func (data *InterfaceEthernetData) fromBody(ctx context.Context, res gjson.Result) { @@ -1259,6 +1387,46 @@ func (data *InterfaceEthernetData) fromBody(ctx context.Context, res gjson.Resul } else { data.IpDhcpSnoopingTrust = types.BoolValue(false) } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100"); value.Exists() { + data.Speed100 = types.BoolValue(true) + } else { + data.Speed100 = types.BoolValue(false) + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-1000"); value.Exists() { + data.Speed1000 = types.BoolValue(true) + } else { + data.Speed1000 = types.BoolValue(false) + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-2500"); value.Exists() { + data.Speed2500 = types.BoolValue(true) + } else { + data.Speed2500 = types.BoolValue(false) + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-5000"); value.Exists() { + data.Speed5000 = types.BoolValue(true) + } else { + data.Speed5000 = types.BoolValue(false) + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-10000"); value.Exists() { + data.Speed10000 = types.BoolValue(true) + } else { + data.Speed10000 = types.BoolValue(false) + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-25000"); value.Exists() { + data.Speed25000 = types.BoolValue(true) + } else { + data.Speed25000 = types.BoolValue(false) + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-40000"); value.Exists() { + data.Speed40000 = types.BoolValue(true) + } else { + data.Speed40000 = types.BoolValue(false) + } + if value := res.Get(prefix + "Cisco-IOS-XE-ethernet:speed.value-100000"); value.Exists() { + data.Speed100000 = types.BoolValue(true) + } else { + data.Speed100000 = types.BoolValue(false) + } } func (data *InterfaceEthernet) getDeletedItems(ctx context.Context, state InterfaceEthernet) []string { @@ -1531,6 +1699,30 @@ func (data *InterfaceEthernet) getDeletedItems(ctx context.Context, state Interf if !state.IpDhcpSnoopingTrust.IsNull() && data.IpDhcpSnoopingTrust.IsNull() { deletedItems = append(deletedItems, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:snooping/trust", state.getPath())) } + if !state.Speed100.IsNull() && data.Speed100.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100", state.getPath())) + } + if !state.Speed1000.IsNull() && data.Speed1000.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-1000", state.getPath())) + } + if !state.Speed2500.IsNull() && data.Speed2500.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-2500", state.getPath())) + } + if !state.Speed5000.IsNull() && data.Speed5000.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-5000", state.getPath())) + } + if !state.Speed10000.IsNull() && data.Speed10000.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-10000", state.getPath())) + } + if !state.Speed25000.IsNull() && data.Speed25000.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-25000", state.getPath())) + } + if !state.Speed40000.IsNull() && data.Speed40000.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-40000", state.getPath())) + } + if !state.Speed100000.IsNull() && data.Speed100000.IsNull() { + deletedItems = append(deletedItems, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100000", state.getPath())) + } return deletedItems } @@ -1630,6 +1822,30 @@ func (data *InterfaceEthernet) getEmptyLeafsDelete(ctx context.Context) []string if !data.IpDhcpSnoopingTrust.IsNull() && !data.IpDhcpSnoopingTrust.ValueBool() { emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:snooping/trust", data.getPath())) } + if !data.Speed100.IsNull() && !data.Speed100.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100", data.getPath())) + } + if !data.Speed1000.IsNull() && !data.Speed1000.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-1000", data.getPath())) + } + if !data.Speed2500.IsNull() && !data.Speed2500.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-2500", data.getPath())) + } + if !data.Speed5000.IsNull() && !data.Speed5000.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-5000", data.getPath())) + } + if !data.Speed10000.IsNull() && !data.Speed10000.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-10000", data.getPath())) + } + if !data.Speed25000.IsNull() && !data.Speed25000.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-25000", data.getPath())) + } + if !data.Speed40000.IsNull() && !data.Speed40000.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-40000", data.getPath())) + } + if !data.Speed100000.IsNull() && !data.Speed100000.ValueBool() { + emptyLeafsDelete = append(emptyLeafsDelete, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100000", data.getPath())) + } return emptyLeafsDelete } @@ -1808,5 +2024,29 @@ func (data *InterfaceEthernet) getDeletePaths(ctx context.Context) []string { if !data.IpDhcpSnoopingTrust.IsNull() { deletePaths = append(deletePaths, fmt.Sprintf("%v/ip/dhcp/Cisco-IOS-XE-dhcp:snooping/trust", data.getPath())) } + if !data.Speed100.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100", data.getPath())) + } + if !data.Speed1000.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-1000", data.getPath())) + } + if !data.Speed2500.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-2500", data.getPath())) + } + if !data.Speed5000.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-5000", data.getPath())) + } + if !data.Speed10000.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-10000", data.getPath())) + } + if !data.Speed25000.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-25000", data.getPath())) + } + if !data.Speed40000.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-40000", data.getPath())) + } + if !data.Speed100000.IsNull() { + deletePaths = append(deletePaths, fmt.Sprintf("%v/Cisco-IOS-XE-ethernet:speed/value-100000", data.getPath())) + } return deletePaths } diff --git a/internal/provider/resource_iosxe_interface_ethernet.go b/internal/provider/resource_iosxe_interface_ethernet.go index e67a838a..9cc05df0 100644 --- a/internal/provider/resource_iosxe_interface_ethernet.go +++ b/internal/provider/resource_iosxe_interface_ethernet.go @@ -419,6 +419,38 @@ func (r *InterfaceEthernetResource) Schema(ctx context.Context, req resource.Sch MarkdownDescription: helpers.NewAttributeDescription("DHCP Snooping trust config").String, Optional: true, }, + "speed_100": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("100 Mbps operation").String, + Optional: true, + }, + "speed_1000": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("1000 Mbps operation").String, + Optional: true, + }, + "speed_2500": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("2500 Mbps operation").String, + Optional: true, + }, + "speed_5000": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("5000 Mbps operation").String, + Optional: true, + }, + "speed_10000": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("10000 Mbps operation").String, + Optional: true, + }, + "speed_25000": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("25000 Mbps operation").String, + Optional: true, + }, + "speed_40000": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("40000 Mbps operation").String, + Optional: true, + }, + "speed_100000": schema.BoolAttribute{ + MarkdownDescription: helpers.NewAttributeDescription("100000 Mbps operation").String, + Optional: true, + }, }, } } diff --git a/templates/guides/changelog.md.tmpl b/templates/guides/changelog.md.tmpl index 72190397..0d81773d 100644 --- a/templates/guides/changelog.md.tmpl +++ b/templates/guides/changelog.md.tmpl @@ -7,6 +7,10 @@ description: |- # Changelog +## 0.5.2 (unreleased) + +- Add `speed` options to `interface_ethernet` resource and data source + ## 0.5.1 - Add `iosxe_vlan_filter` resource and data source