Skip to content

Commit e4e612b

Browse files
committed
New List Resource: azurerm_network_security_group
1 parent a657c99 commit e4e612b

File tree

3 files changed

+11
-55
lines changed

3 files changed

+11
-55
lines changed

internal/services/network/network_security_group_list_resource.go renamed to internal/services/network/network_security_group_resource_list.go

Lines changed: 10 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -5,70 +5,35 @@ import (
55
"fmt"
66
"time"
77

8-
"github.com/hashicorp/go-azure-helpers/framework/typehelpers"
98
"github.com/hashicorp/go-azure-helpers/lang/pointer"
109
"github.com/hashicorp/go-azure-helpers/resourcemanager/commonids"
11-
"github.com/hashicorp/go-azure-helpers/resourcemanager/resourcegroups"
1210
"github.com/hashicorp/go-azure-sdk/resource-manager/network/2025-01-01/networksecuritygroups"
1311
"github.com/hashicorp/terraform-plugin-framework/list"
14-
"github.com/hashicorp/terraform-plugin-framework/list/schema"
1512
"github.com/hashicorp/terraform-plugin-framework/resource"
16-
"github.com/hashicorp/terraform-plugin-framework/schema/validator"
17-
"github.com/hashicorp/terraform-plugin-framework/types"
1813
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1914
"github.com/hashicorp/terraform-provider-azurerm/internal/sdk"
20-
"github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation"
15+
"github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk"
2116
)
2217

23-
type NetworkSecurityGroupListResource struct {
24-
sdk.ListResourceMetadata
25-
}
26-
27-
type NetworkSecurityGroupListModel struct {
28-
ResourceGroupName types.String `tfsdk:"resource_group_name"`
29-
SubscriptionId types.String `tfsdk:"subscription_id"`
30-
}
18+
type NetworkSecurityGroupListResource struct{}
3119

32-
var _ sdk.ListResourceWithRawV5Schemas = new(NetworkSecurityGroupListResource)
20+
var _ sdk.FrameworkListWrappedResource = new(NetworkSecurityGroupListResource)
3321

34-
func NewNetworkSecurityGroupListResource() list.ListResource {
35-
return new(NetworkSecurityGroupListResource)
22+
func (r NetworkSecurityGroupListResource) ResourceFunc() *pluginsdk.Resource {
23+
return resourceNetworkSecurityGroup()
3624
}
3725

38-
func (r *NetworkSecurityGroupListResource) Metadata(_ context.Context, _ resource.MetadataRequest, response *resource.MetadataResponse) {
26+
func (r NetworkSecurityGroupListResource) Metadata(_ context.Context, _ resource.MetadataRequest, response *resource.MetadataResponse) {
3927
response.TypeName = networkSecurityGroupResourceName
4028
}
4129

42-
func (r *NetworkSecurityGroupListResource) ListResourceConfigSchema(_ context.Context, _ list.ListResourceSchemaRequest, response *list.ListResourceSchemaResponse) {
43-
response.Schema = schema.Schema{
44-
Attributes: map[string]schema.Attribute{
45-
"resource_group_name": schema.StringAttribute{
46-
Optional: true,
47-
Validators: []validator.String{
48-
typehelpers.WrappedStringValidator{
49-
Func: resourcegroups.ValidateName,
50-
},
51-
},
52-
},
53-
"subscription_id": schema.StringAttribute{
54-
Optional: true,
55-
Validators: []validator.String{
56-
typehelpers.WrappedStringValidator{
57-
Func: validation.IsUUID,
58-
},
59-
},
60-
},
61-
},
62-
}
63-
}
64-
65-
func (r *NetworkSecurityGroupListResource) List(ctx context.Context, request list.ListRequest, stream *list.ListResultsStream) {
66-
client := r.Client.Network.NetworkSecurityGroups
30+
func (r NetworkSecurityGroupListResource) List(ctx context.Context, request list.ListRequest, stream *list.ListResultsStream, metadata sdk.ResourceMetadata) {
31+
client := metadata.Client.Network.NetworkSecurityGroups
6732

6833
ctx, cancel := context.WithTimeout(ctx, time.Minute*60)
6934
defer cancel()
7035

71-
var data NetworkSecurityGroupListModel
36+
var data sdk.DefaultListModel
7237
diags := request.Config.Get(ctx, &data)
7338
if diags.HasError() {
7439
stream.Results = list.ListResultsStreamDiagnostics(diags)
@@ -77,7 +42,7 @@ func (r *NetworkSecurityGroupListResource) List(ctx context.Context, request lis
7742

7843
results := make([]networksecuritygroups.NetworkSecurityGroup, 0)
7944

80-
subscriptionID := r.SubscriptionId
45+
subscriptionID := metadata.SubscriptionId
8146
if !data.SubscriptionId.IsNull() {
8247
subscriptionID = data.SubscriptionId.ValueString()
8348
}
@@ -148,13 +113,3 @@ func (r *NetworkSecurityGroupListResource) List(ctx context.Context, request lis
148113
}
149114
}
150115
}
151-
152-
func (r *NetworkSecurityGroupListResource) Configure(_ context.Context, request resource.ConfigureRequest, response *resource.ConfigureResponse) {
153-
r.Defaults(request, response)
154-
}
155-
156-
func (r *NetworkSecurityGroupListResource) RawV5Schemas(ctx context.Context, _ list.RawV5SchemaRequest, response *list.RawV5SchemaResponse) {
157-
res := resourceNetworkSecurityGroup()
158-
response.ProtoV5Schema = res.ProtoSchema(ctx)()
159-
response.ProtoV5IdentitySchema = res.ProtoIdentitySchema(ctx)()
160-
}

internal/services/network/registration.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ func (r Registration) Actions() []func() action.Action {
199199

200200
func (r Registration) ListResources() []sdk.FrameworkListWrappedResource {
201201
return []sdk.FrameworkListWrappedResource{
202+
NetworkSecurityGroupListResource{},
202203
VirtualNetworkListResource{},
203204
}
204205
}

0 commit comments

Comments
 (0)