From 717af5ca05c3b16d22fc4e3db40657bb046c7625 Mon Sep 17 00:00:00 2001 From: Ludovic AUDIBERT Date: Tue, 8 Jul 2025 09:14:53 +0200 Subject: [PATCH 1/5] New Resource: eventgrid_namespace_topic # Conflicts: # internal/services/eventgrid/client/client.go # vendor/modules.txt --- internal/services/eventgrid/client/client.go | 15 +- .../eventgrid_namespace_topic_resource.go | 226 ++++++++++++++++++ ...eventgrid_namespace_topic_resource_test.go | 157 ++++++++++++ internal/services/eventgrid/registration.go | 1 + .../namespacetopics/README.md | 132 ++++++++++ .../namespacetopics/client.go | 26 ++ .../namespacetopics/constants.go | 151 ++++++++++++ .../namespacetopics/id_namespace.go | 130 ++++++++++ .../namespacetopics/id_namespacetopic.go | 139 +++++++++++ .../namespacetopics/method_createorupdate.go | 75 ++++++ .../namespacetopics/method_delete.go | 71 ++++++ .../namespacetopics/method_get.go | 53 ++++ .../namespacetopics/method_listbynamespace.go | 138 +++++++++++ .../method_listsharedaccesskeys.go | 54 +++++ .../namespacetopics/method_regeneratekey.go | 75 ++++++ .../namespacetopics/method_update.go | 75 ++++++ .../namespacetopics/model_namespacetopic.go | 16 ++ .../model_namespacetopicproperties.go | 11 + ...namespacetopicupdateparameterproperties.go | 8 + .../model_namespacetopicupdateparameters.go | 8 + .../model_topicregeneratekeyrequest.go | 8 + .../model_topicsharedaccesskeys.go | 9 + .../namespacetopics/predicates.go | 27 +++ .../namespacetopics/version.go | 10 + vendor/modules.txt | 1 + 25 files changed, 1613 insertions(+), 3 deletions(-) create mode 100644 internal/services/eventgrid/eventgrid_namespace_topic_resource.go create mode 100644 internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go create mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go diff --git a/internal/services/eventgrid/client/client.go b/internal/services/eventgrid/client/client.go index 38625e8021ab..d562904cc476 100644 --- a/internal/services/eventgrid/client/client.go +++ b/internal/services/eventgrid/client/client.go @@ -7,6 +7,7 @@ import ( "fmt" "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespaces" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" eventgrid_v2025_02_15 "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15" "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" "github.com/hashicorp/terraform-provider-azurerm/internal/common" @@ -15,7 +16,8 @@ import ( type Client struct { *eventgrid_v2025_02_15.Client - NamespacesClient *namespaces.NamespacesClient + NamespacesClient *namespaces.NamespacesClient + NamespaceTopicsClient *namespacetopics.NamespaceTopicsClient } func NewClient(o *common.ClientOptions) (*Client, error) { @@ -25,6 +27,12 @@ func NewClient(o *common.ClientOptions) (*Client, error) { } o.Configure(NamespacesClient.Client, o.Authorizers.ResourceManager) + NamespaceTopicsClient, err := namespacetopics.NewNamespaceTopicsClientWithBaseURI(o.Environment.ResourceManager) + if err != nil { + return nil, fmt.Errorf("building Namespace Topics Client: %+v", err) + } + o.Configure(NamespaceTopicsClient.Client, o.Authorizers.ResourceManager) + client, err := eventgrid_v2025_02_15.NewClientWithBaseURI(o.Environment.ResourceManager, func(c *resourcemanager.Client) { o.Configure(c, o.Authorizers.ResourceManager) }) @@ -32,7 +40,8 @@ func NewClient(o *common.ClientOptions) (*Client, error) { return nil, fmt.Errorf("building EventGrid client: %+v", err) } return &Client{ - NamespacesClient: NamespacesClient, - Client: client, + NamespacesClient: NamespacesClient, + NamespaceTopicsClient: NamespaceTopicsClient, + Client: client, }, nil } diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource.go new file mode 100644 index 000000000000..4e0c8369a4f4 --- /dev/null +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource.go @@ -0,0 +1,226 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package eventgrid + +import ( + "context" + "fmt" + "time" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-helpers/lang/response" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespaces" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" + "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" +) + +var _ sdk.ResourceWithUpdate = EventGridNamespaceTopicResource{} + +type EventGridNamespaceTopicResource struct{} + +type EventGridNamespaceTopicResourceModel struct { + Name string `tfschema:"name"` + NamespaceId string `tfschema:"namespace_id"` + EventRetentionInDays int64 `tfschema:"event_retention_in_days"` + InputSchema string `tfschema:"input_schema"` +} + +func (r EventGridNamespaceTopicResource) Arguments() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{ + "name": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.StringLenBetween(3, 50), // ^[a-zA-Z0-9-]*$ + }, + + "namespace_id": { + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: namespacetopics.ValidateNamespaceID, + }, + + "event_retention_in_days": { + Type: pluginsdk.TypeInt, + Optional: true, + Default: 7, + ValidateFunc: validation.IntBetween(1, 7), + }, + + "input_schema": { + Type: pluginsdk.TypeString, + Optional: true, + Default: "CloudEventSchemaV1_0", + ValidateFunc: validation.StringInSlice([]string{ + "CloudEventSchemaV1_0", + }, false), + }, + } +} + +func (r EventGridNamespaceTopicResource) ModelObject() interface{} { + return &EventGridNamespaceTopicResourceModel{} +} + +func (r EventGridNamespaceTopicResource) ResourceType() string { + return "azurerm_eventgrid_namespace_topic" +} + +func (r EventGridNamespaceTopicResource) Attributes() map[string]*pluginsdk.Schema { + return map[string]*pluginsdk.Schema{} +} + +func (r EventGridNamespaceTopicResource) Create() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.EventGrid.NamespaceTopicsClient + + var model EventGridNamespaceTopicResourceModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding %+v", err) + } + + subscriptionId := "" + namespaceName := "" + resourceGroupName := "" + if v := model.NamespaceId; v != "" { + namespaceId, err := namespaces.ParseNamespaceID(v) + if err != nil { + return err + } + subscriptionId = namespaceId.SubscriptionId + namespaceName = namespaceId.NamespaceName + resourceGroupName = namespaceId.ResourceGroupName + } + + id := namespacetopics.NewNamespaceTopicID(subscriptionId, resourceGroupName, namespaceName, model.Name) + + existing, err := client.Get(ctx, id) + if err != nil { + if !response.WasNotFound(existing.HttpResponse) { + return fmt.Errorf("checking for presence of existing %s: %s", id, err) + } + } + + if !response.WasNotFound(existing.HttpResponse) { + return metadata.ResourceRequiresImport(r.ResourceType(), id) + } + + namespaceTopic := namespacetopics.NamespaceTopic{ + Name: pointer.To(model.Name), + Properties: &namespacetopics.NamespaceTopicProperties{ + EventRetentionInDays: pointer.To(model.EventRetentionInDays), + InputSchema: pointer.To(namespacetopics.EventInputSchema(model.InputSchema)), + }, + } + + if err = client.CreateOrUpdateThenPoll(ctx, id, namespaceTopic); err != nil { + return fmt.Errorf("creating %s: %+v", id, err) + } + + metadata.SetID(id) + + return nil + }, + } +} + +func (r EventGridNamespaceTopicResource) Update() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.EventGrid.NamespaceTopicsClient + + var model EventGridNamespaceTopicResourceModel + if err := metadata.Decode(&model); err != nil { + return fmt.Errorf("decoding %+v", err) + } + + id, err := namespacetopics.ParseNamespaceTopicID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + payload := namespacetopics.NamespaceTopicUpdateParameters{ + Properties: &namespacetopics.NamespaceTopicUpdateParameterProperties{}, + } + + if metadata.ResourceData.HasChange("event_retention_in_days") { + payload.Properties.EventRetentionInDays = pointer.To(model.EventRetentionInDays) + } + + if err = client.UpdateThenPoll(ctx, *id, payload); err != nil { + return fmt.Errorf("creating %s: %+v", *id, err) + } + + metadata.SetID(id) + + return nil + }, + } +} + +func (r EventGridNamespaceTopicResource) Read() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 5 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.EventGrid.NamespaceTopicsClient + + id, err := namespacetopics.ParseNamespaceTopicID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + resp, err := client.Get(ctx, *id) + if err != nil { + if response.WasNotFound(resp.HttpResponse) { + return metadata.MarkAsGone(id) + } + return fmt.Errorf("retrieving %s: %+v", *id, err) + } + + state := EventGridNamespaceTopicResourceModel{ + Name: id.TopicName, + NamespaceId: namespacetopics.NewNamespaceID(id.SubscriptionId, id.ResourceGroupName, id.NamespaceName).ID(), + } + + if model := resp.Model; model != nil { + if props := model.Properties; props != nil { + state.EventRetentionInDays = int64(pointer.From(props.EventRetentionInDays)) + state.InputSchema = string(pointer.From(props.InputSchema)) + } + } + + return metadata.Encode(&state) + }, + } +} + +func (r EventGridNamespaceTopicResource) Delete() sdk.ResourceFunc { + return sdk.ResourceFunc{ + Timeout: 30 * time.Minute, + Func: func(ctx context.Context, metadata sdk.ResourceMetaData) error { + client := metadata.Client.EventGrid.NamespaceTopicsClient + + id, err := namespacetopics.ParseNamespaceTopicID(metadata.ResourceData.Id()) + if err != nil { + return err + } + + if err := client.DeleteThenPoll(ctx, *id); err != nil { + return fmt.Errorf("deleting %s: %v", *id, err) + } + + return nil + }, + } +} + +func (r EventGridNamespaceTopicResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { + return namespacetopics.ValidateNamespaceTopicID +} diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go new file mode 100644 index 000000000000..09ba520cff7d --- /dev/null +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go @@ -0,0 +1,157 @@ +// Copyright (c) HashiCorp, Inc. +// SPDX-License-Identifier: MPL-2.0 + +package eventgrid_test + +import ( + "context" + "fmt" + "testing" + + "github.com/hashicorp/go-azure-helpers/lang/pointer" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" + "github.com/hashicorp/terraform-provider-azurerm/internal/clients" + "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" +) + +type EventGridNamespaceTopicResource struct{} + +func TestAccEventGridNamespaceTopicResource_basic(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") + r := EventGridNamespaceTopicResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccEventGridNamespaceTopicResource_requiresImport(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") + r := EventGridNamespaceTopicResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + { + Config: r.requiresImport(data), + ExpectError: acceptance.RequiresImportError("azurerm_eventgrid_namespace_topic"), + }, + }) +} + +func TestAccEventGridNamespaceTopicResource_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") + r := EventGridNamespaceTopicResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func TestAccEventGridNamespaceTopicResource_update(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") + r := EventGridNamespaceTopicResource{} + + data.ResourceTest(t, r, []acceptance.TestStep{ + { + Config: r.basic(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + { + Config: r.complete(data), + Check: acceptance.ComposeTestCheckFunc( + check.That(data.ResourceName).ExistsInAzure(r), + ), + }, + data.ImportStep(), + }) +} + +func (r EventGridNamespaceTopicResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { + id, err := namespacetopics.ParseNamespaceTopicID(state.ID) + if err != nil { + return nil, err + } + + resp, err := clients.EventGrid.NamespaceTopicsClient.Get(ctx, *id) + if err != nil { + return nil, fmt.Errorf("retrieving %s: %+v", *id, err) + } + + return pointer.To(resp.Model != nil), nil +} + +func (r EventGridNamespaceTopicResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_eventgrid_namespace" "test" { + name = "acctest-egn-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} + +func (r EventGridNamespaceTopicResource) basic(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_eventgrid_namespace_topic" "test" { + name = "acctest-egnt-%d" + namespace_id = azurerm_eventgrid_namespace.test.id +} +`, r.template(data), data.RandomInteger) +} + +func (r EventGridNamespaceTopicResource) requiresImport(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_eventgrid_namespace_topic" "import" { + name = azurerm_eventgrid_namespace_topic.test.name + namespace_id = azurerm_eventgrid_namespace_topic.test.namespace_id +} +`, r.basic(data)) +} + +func (r EventGridNamespaceTopicResource) complete(data acceptance.TestData) string { + return fmt.Sprintf(` +%s + +resource "azurerm_eventgrid_namespace_topic" "test" { + name = "acctest-egnt-%d" + namespace_id = azurerm_eventgrid_namespace.test.id + event_retention_in_days = 1 + input_schema = "CloudEventSchemaV1_0" +} +`, r.template(data), data.RandomInteger) +} diff --git a/internal/services/eventgrid/registration.go b/internal/services/eventgrid/registration.go index f127bf1953a5..6e68f5de615f 100644 --- a/internal/services/eventgrid/registration.go +++ b/internal/services/eventgrid/registration.go @@ -43,6 +43,7 @@ func (r Registration) DataSources() []sdk.DataSource { func (r Registration) Resources() []sdk.Resource { return []sdk.Resource{ EventGridNamespaceResource{}, + EventGridNamespaceTopicResource{}, EventGridPartnerConfigurationResource{}, EventGridPartnerNamespaceResource{}, EventGridPartnerRegistrationResource{}, diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md new file mode 100644 index 000000000000..869539aacf98 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md @@ -0,0 +1,132 @@ + +## `github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics` Documentation + +The `namespacetopics` SDK allows for interaction with Azure Resource Manager `eventgrid` (API Version `2023-12-15-preview`). + +This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). + +### Import Path + +```go +import "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" +``` + + +### Client Initialization + +```go +client := namespacetopics.NewNamespaceTopicsClientWithBaseURI("https://management.azure.com") +client.Client.Authorizer = authorizer +``` + + +### Example Usage: `NamespaceTopicsClient.CreateOrUpdate` + +```go +ctx := context.TODO() +id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") + +payload := namespacetopics.NamespaceTopic{ + // ... +} + + +if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `NamespaceTopicsClient.Delete` + +```go +ctx := context.TODO() +id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") + +if err := client.DeleteThenPoll(ctx, id); err != nil { + // handle the error +} +``` + + +### Example Usage: `NamespaceTopicsClient.Get` + +```go +ctx := context.TODO() +id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") + +read, err := client.Get(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `NamespaceTopicsClient.ListByNamespace` + +```go +ctx := context.TODO() +id := namespacetopics.NewNamespaceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName") + +// alternatively `client.ListByNamespace(ctx, id, namespacetopics.DefaultListByNamespaceOperationOptions())` can be used to do batched pagination +items, err := client.ListByNamespaceComplete(ctx, id, namespacetopics.DefaultListByNamespaceOperationOptions()) +if err != nil { + // handle the error +} +for _, item := range items { + // do something +} +``` + + +### Example Usage: `NamespaceTopicsClient.ListSharedAccessKeys` + +```go +ctx := context.TODO() +id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") + +read, err := client.ListSharedAccessKeys(ctx, id) +if err != nil { + // handle the error +} +if model := read.Model; model != nil { + // do something with the model/response object +} +``` + + +### Example Usage: `NamespaceTopicsClient.RegenerateKey` + +```go +ctx := context.TODO() +id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") + +payload := namespacetopics.TopicRegenerateKeyRequest{ + // ... +} + + +if err := client.RegenerateKeyThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` + + +### Example Usage: `NamespaceTopicsClient.Update` + +```go +ctx := context.TODO() +id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") + +payload := namespacetopics.NamespaceTopicUpdateParameters{ + // ... +} + + +if err := client.UpdateThenPoll(ctx, id, payload); err != nil { + // handle the error +} +``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go new file mode 100644 index 000000000000..0eb8f6461601 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go @@ -0,0 +1,26 @@ +package namespacetopics + +import ( + "fmt" + + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NamespaceTopicsClient struct { + Client *resourcemanager.Client +} + +func NewNamespaceTopicsClientWithBaseURI(sdkApi sdkEnv.Api) (*NamespaceTopicsClient, error) { + client, err := resourcemanager.NewClient(sdkApi, "namespacetopics", defaultApiVersion) + if err != nil { + return nil, fmt.Errorf("instantiating NamespaceTopicsClient: %+v", err) + } + + return &NamespaceTopicsClient{ + Client: client, + }, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go new file mode 100644 index 000000000000..6da4ee9733dc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go @@ -0,0 +1,151 @@ +package namespacetopics + +import ( + "encoding/json" + "fmt" + "strings" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type EventInputSchema string + +const ( + EventInputSchemaCloudEventSchemaVOneZero EventInputSchema = "CloudEventSchemaV1_0" +) + +func PossibleValuesForEventInputSchema() []string { + return []string{ + string(EventInputSchemaCloudEventSchemaVOneZero), + } +} + +func (s *EventInputSchema) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseEventInputSchema(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseEventInputSchema(input string) (*EventInputSchema, error) { + vals := map[string]EventInputSchema{ + "cloudeventschemav1_0": EventInputSchemaCloudEventSchemaVOneZero, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := EventInputSchema(input) + return &out, nil +} + +type NamespaceTopicProvisioningState string + +const ( + NamespaceTopicProvisioningStateCanceled NamespaceTopicProvisioningState = "Canceled" + NamespaceTopicProvisioningStateCreateFailed NamespaceTopicProvisioningState = "CreateFailed" + NamespaceTopicProvisioningStateCreating NamespaceTopicProvisioningState = "Creating" + NamespaceTopicProvisioningStateDeleteFailed NamespaceTopicProvisioningState = "DeleteFailed" + NamespaceTopicProvisioningStateDeleted NamespaceTopicProvisioningState = "Deleted" + NamespaceTopicProvisioningStateDeleting NamespaceTopicProvisioningState = "Deleting" + NamespaceTopicProvisioningStateFailed NamespaceTopicProvisioningState = "Failed" + NamespaceTopicProvisioningStateSucceeded NamespaceTopicProvisioningState = "Succeeded" + NamespaceTopicProvisioningStateUpdatedFailed NamespaceTopicProvisioningState = "UpdatedFailed" + NamespaceTopicProvisioningStateUpdating NamespaceTopicProvisioningState = "Updating" +) + +func PossibleValuesForNamespaceTopicProvisioningState() []string { + return []string{ + string(NamespaceTopicProvisioningStateCanceled), + string(NamespaceTopicProvisioningStateCreateFailed), + string(NamespaceTopicProvisioningStateCreating), + string(NamespaceTopicProvisioningStateDeleteFailed), + string(NamespaceTopicProvisioningStateDeleted), + string(NamespaceTopicProvisioningStateDeleting), + string(NamespaceTopicProvisioningStateFailed), + string(NamespaceTopicProvisioningStateSucceeded), + string(NamespaceTopicProvisioningStateUpdatedFailed), + string(NamespaceTopicProvisioningStateUpdating), + } +} + +func (s *NamespaceTopicProvisioningState) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parseNamespaceTopicProvisioningState(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parseNamespaceTopicProvisioningState(input string) (*NamespaceTopicProvisioningState, error) { + vals := map[string]NamespaceTopicProvisioningState{ + "canceled": NamespaceTopicProvisioningStateCanceled, + "createfailed": NamespaceTopicProvisioningStateCreateFailed, + "creating": NamespaceTopicProvisioningStateCreating, + "deletefailed": NamespaceTopicProvisioningStateDeleteFailed, + "deleted": NamespaceTopicProvisioningStateDeleted, + "deleting": NamespaceTopicProvisioningStateDeleting, + "failed": NamespaceTopicProvisioningStateFailed, + "succeeded": NamespaceTopicProvisioningStateSucceeded, + "updatedfailed": NamespaceTopicProvisioningStateUpdatedFailed, + "updating": NamespaceTopicProvisioningStateUpdating, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := NamespaceTopicProvisioningState(input) + return &out, nil +} + +type PublisherType string + +const ( + PublisherTypeCustom PublisherType = "Custom" +) + +func PossibleValuesForPublisherType() []string { + return []string{ + string(PublisherTypeCustom), + } +} + +func (s *PublisherType) UnmarshalJSON(bytes []byte) error { + var decoded string + if err := json.Unmarshal(bytes, &decoded); err != nil { + return fmt.Errorf("unmarshaling: %+v", err) + } + out, err := parsePublisherType(decoded) + if err != nil { + return fmt.Errorf("parsing %q: %+v", decoded, err) + } + *s = *out + return nil +} + +func parsePublisherType(input string) (*PublisherType, error) { + vals := map[string]PublisherType{ + "custom": PublisherTypeCustom, + } + if v, ok := vals[strings.ToLower(input)]; ok { + return &v, nil + } + + // otherwise presume it's an undefined value and best-effort it + out := PublisherType(input) + return &out, nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go new file mode 100644 index 000000000000..9c4f27851c20 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go @@ -0,0 +1,130 @@ +package namespacetopics + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/recaser" + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +func init() { + recaser.RegisterResourceId(&NamespaceId{}) +} + +var _ resourceids.ResourceId = &NamespaceId{} + +// NamespaceId is a struct representing the Resource ID for a Namespace +type NamespaceId struct { + SubscriptionId string + ResourceGroupName string + NamespaceName string +} + +// NewNamespaceID returns a new NamespaceId struct +func NewNamespaceID(subscriptionId string, resourceGroupName string, namespaceName string) NamespaceId { + return NamespaceId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + NamespaceName: namespaceName, + } +} + +// ParseNamespaceID parses 'input' into a NamespaceId +func ParseNamespaceID(input string) (*NamespaceId, error) { + parser := resourceids.NewParserFromResourceIdType(&NamespaceId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + id := NamespaceId{} + if err = id.FromParseResult(*parsed); err != nil { + return nil, err + } + + return &id, nil +} + +// ParseNamespaceIDInsensitively parses 'input' case-insensitively into a NamespaceId +// note: this method should only be used for API response data and not user input +func ParseNamespaceIDInsensitively(input string) (*NamespaceId, error) { + parser := resourceids.NewParserFromResourceIdType(&NamespaceId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + id := NamespaceId{} + if err = id.FromParseResult(*parsed); err != nil { + return nil, err + } + + return &id, nil +} + +func (id *NamespaceId) FromParseResult(input resourceids.ParseResult) error { + var ok bool + + if id.SubscriptionId, ok = input.Parsed["subscriptionId"]; !ok { + return resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", input) + } + + if id.ResourceGroupName, ok = input.Parsed["resourceGroupName"]; !ok { + return resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", input) + } + + if id.NamespaceName, ok = input.Parsed["namespaceName"]; !ok { + return resourceids.NewSegmentNotSpecifiedError(id, "namespaceName", input) + } + + return nil +} + +// ValidateNamespaceID checks that 'input' can be parsed as a Namespace ID +func ValidateNamespaceID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseNamespaceID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Namespace ID +func (id NamespaceId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.EventGrid/namespaces/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NamespaceName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Namespace ID +func (id NamespaceId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftEventGrid", "Microsoft.EventGrid", "Microsoft.EventGrid"), + resourceids.StaticSegment("staticNamespaces", "namespaces", "namespaces"), + resourceids.UserSpecifiedSegment("namespaceName", "namespaceName"), + } +} + +// String returns a human-readable description of this Namespace ID +func (id NamespaceId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Namespace Name: %q", id.NamespaceName), + } + return fmt.Sprintf("Namespace (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go new file mode 100644 index 000000000000..521d9c94a961 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go @@ -0,0 +1,139 @@ +package namespacetopics + +import ( + "fmt" + "strings" + + "github.com/hashicorp/go-azure-helpers/resourcemanager/recaser" + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +func init() { + recaser.RegisterResourceId(&NamespaceTopicId{}) +} + +var _ resourceids.ResourceId = &NamespaceTopicId{} + +// NamespaceTopicId is a struct representing the Resource ID for a Namespace Topic +type NamespaceTopicId struct { + SubscriptionId string + ResourceGroupName string + NamespaceName string + TopicName string +} + +// NewNamespaceTopicID returns a new NamespaceTopicId struct +func NewNamespaceTopicID(subscriptionId string, resourceGroupName string, namespaceName string, topicName string) NamespaceTopicId { + return NamespaceTopicId{ + SubscriptionId: subscriptionId, + ResourceGroupName: resourceGroupName, + NamespaceName: namespaceName, + TopicName: topicName, + } +} + +// ParseNamespaceTopicID parses 'input' into a NamespaceTopicId +func ParseNamespaceTopicID(input string) (*NamespaceTopicId, error) { + parser := resourceids.NewParserFromResourceIdType(&NamespaceTopicId{}) + parsed, err := parser.Parse(input, false) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + id := NamespaceTopicId{} + if err = id.FromParseResult(*parsed); err != nil { + return nil, err + } + + return &id, nil +} + +// ParseNamespaceTopicIDInsensitively parses 'input' case-insensitively into a NamespaceTopicId +// note: this method should only be used for API response data and not user input +func ParseNamespaceTopicIDInsensitively(input string) (*NamespaceTopicId, error) { + parser := resourceids.NewParserFromResourceIdType(&NamespaceTopicId{}) + parsed, err := parser.Parse(input, true) + if err != nil { + return nil, fmt.Errorf("parsing %q: %+v", input, err) + } + + id := NamespaceTopicId{} + if err = id.FromParseResult(*parsed); err != nil { + return nil, err + } + + return &id, nil +} + +func (id *NamespaceTopicId) FromParseResult(input resourceids.ParseResult) error { + var ok bool + + if id.SubscriptionId, ok = input.Parsed["subscriptionId"]; !ok { + return resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", input) + } + + if id.ResourceGroupName, ok = input.Parsed["resourceGroupName"]; !ok { + return resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", input) + } + + if id.NamespaceName, ok = input.Parsed["namespaceName"]; !ok { + return resourceids.NewSegmentNotSpecifiedError(id, "namespaceName", input) + } + + if id.TopicName, ok = input.Parsed["topicName"]; !ok { + return resourceids.NewSegmentNotSpecifiedError(id, "topicName", input) + } + + return nil +} + +// ValidateNamespaceTopicID checks that 'input' can be parsed as a Namespace Topic ID +func ValidateNamespaceTopicID(input interface{}, key string) (warnings []string, errors []error) { + v, ok := input.(string) + if !ok { + errors = append(errors, fmt.Errorf("expected %q to be a string", key)) + return + } + + if _, err := ParseNamespaceTopicID(v); err != nil { + errors = append(errors, err) + } + + return +} + +// ID returns the formatted Namespace Topic ID +func (id NamespaceTopicId) ID() string { + fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.EventGrid/namespaces/%s/topics/%s" + return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NamespaceName, id.TopicName) +} + +// Segments returns a slice of Resource ID Segments which comprise this Namespace Topic ID +func (id NamespaceTopicId) Segments() []resourceids.Segment { + return []resourceids.Segment{ + resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), + resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), + resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), + resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), + resourceids.StaticSegment("staticProviders", "providers", "providers"), + resourceids.ResourceProviderSegment("staticMicrosoftEventGrid", "Microsoft.EventGrid", "Microsoft.EventGrid"), + resourceids.StaticSegment("staticNamespaces", "namespaces", "namespaces"), + resourceids.UserSpecifiedSegment("namespaceName", "namespaceName"), + resourceids.StaticSegment("staticTopics", "topics", "topics"), + resourceids.UserSpecifiedSegment("topicName", "topicName"), + } +} + +// String returns a human-readable description of this Namespace Topic ID +func (id NamespaceTopicId) String() string { + components := []string{ + fmt.Sprintf("Subscription: %q", id.SubscriptionId), + fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), + fmt.Sprintf("Namespace Name: %q", id.NamespaceName), + fmt.Sprintf("Topic Name: %q", id.TopicName), + } + return fmt.Sprintf("Namespace Topic (%s)", strings.Join(components, "\n")) +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go new file mode 100644 index 000000000000..b35c70daf34f --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go @@ -0,0 +1,75 @@ +package namespacetopics + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type CreateOrUpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData + Model *NamespaceTopic +} + +// CreateOrUpdate ... +func (c NamespaceTopicsClient) CreateOrUpdate(ctx context.Context, id NamespaceTopicId, input NamespaceTopic) (result CreateOrUpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusCreated, + http.StatusOK, + }, + HttpMethod: http.MethodPut, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed +func (c NamespaceTopicsClient) CreateOrUpdateThenPoll(ctx context.Context, id NamespaceTopicId, input NamespaceTopic) error { + result, err := c.CreateOrUpdate(ctx, id, input) + if err != nil { + return fmt.Errorf("performing CreateOrUpdate: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after CreateOrUpdate: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go new file mode 100644 index 000000000000..0d85b5ad7158 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go @@ -0,0 +1,71 @@ +package namespacetopics + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type DeleteOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData +} + +// Delete ... +func (c NamespaceTopicsClient) Delete(ctx context.Context, id NamespaceTopicId) (result DeleteOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusNoContent, + http.StatusOK, + }, + HttpMethod: http.MethodDelete, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// DeleteThenPoll performs Delete then polls until it's completed +func (c NamespaceTopicsClient) DeleteThenPoll(ctx context.Context, id NamespaceTopicId) error { + result, err := c.Delete(ctx, id) + if err != nil { + return fmt.Errorf("performing Delete: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Delete: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go new file mode 100644 index 000000000000..4324bba7213d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go @@ -0,0 +1,53 @@ +package namespacetopics + +import ( + "context" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type GetOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *NamespaceTopic +} + +// Get ... +func (c NamespaceTopicsClient) Get(ctx context.Context, id NamespaceTopicId) (result GetOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var model NamespaceTopic + result.Model = &model + if err = resp.Unmarshal(result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go new file mode 100644 index 000000000000..6bb10395b1e4 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go @@ -0,0 +1,138 @@ +package namespacetopics + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListByNamespaceOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *[]NamespaceTopic +} + +type ListByNamespaceCompleteResult struct { + LatestHttpResponse *http.Response + Items []NamespaceTopic +} + +type ListByNamespaceOperationOptions struct { + Filter *string + Top *int64 +} + +func DefaultListByNamespaceOperationOptions() ListByNamespaceOperationOptions { + return ListByNamespaceOperationOptions{} +} + +func (o ListByNamespaceOperationOptions) ToHeaders() *client.Headers { + out := client.Headers{} + + return &out +} + +func (o ListByNamespaceOperationOptions) ToOData() *odata.Query { + out := odata.Query{} + + return &out +} + +func (o ListByNamespaceOperationOptions) ToQuery() *client.QueryParams { + out := client.QueryParams{} + if o.Filter != nil { + out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) + } + if o.Top != nil { + out.Append("$top", fmt.Sprintf("%v", *o.Top)) + } + return &out +} + +type ListByNamespaceCustomPager struct { + NextLink *odata.Link `json:"nextLink"` +} + +func (p *ListByNamespaceCustomPager) NextPageLink() *odata.Link { + defer func() { + p.NextLink = nil + }() + + return p.NextLink +} + +// ListByNamespace ... +func (c NamespaceTopicsClient) ListByNamespace(ctx context.Context, id NamespaceId, options ListByNamespaceOperationOptions) (result ListByNamespaceOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodGet, + OptionsObject: options, + Pager: &ListByNamespaceCustomPager{}, + Path: fmt.Sprintf("%s/topics", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.ExecutePaged(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var values struct { + Values *[]NamespaceTopic `json:"value"` + } + if err = resp.Unmarshal(&values); err != nil { + return + } + + result.Model = values.Values + + return +} + +// ListByNamespaceComplete retrieves all the results into a single object +func (c NamespaceTopicsClient) ListByNamespaceComplete(ctx context.Context, id NamespaceId, options ListByNamespaceOperationOptions) (ListByNamespaceCompleteResult, error) { + return c.ListByNamespaceCompleteMatchingPredicate(ctx, id, options, NamespaceTopicOperationPredicate{}) +} + +// ListByNamespaceCompleteMatchingPredicate retrieves all the results and then applies the predicate +func (c NamespaceTopicsClient) ListByNamespaceCompleteMatchingPredicate(ctx context.Context, id NamespaceId, options ListByNamespaceOperationOptions, predicate NamespaceTopicOperationPredicate) (result ListByNamespaceCompleteResult, err error) { + items := make([]NamespaceTopic, 0) + + resp, err := c.ListByNamespace(ctx, id, options) + if err != nil { + result.LatestHttpResponse = resp.HttpResponse + err = fmt.Errorf("loading results: %+v", err) + return + } + if resp.Model != nil { + for _, v := range *resp.Model { + if predicate.Matches(v) { + items = append(items, v) + } + } + } + + result = ListByNamespaceCompleteResult{ + LatestHttpResponse: resp.HttpResponse, + Items: items, + } + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go new file mode 100644 index 000000000000..1003e0d1cf24 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go @@ -0,0 +1,54 @@ +package namespacetopics + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type ListSharedAccessKeysOperationResponse struct { + HttpResponse *http.Response + OData *odata.OData + Model *TopicSharedAccessKeys +} + +// ListSharedAccessKeys ... +func (c NamespaceTopicsClient) ListSharedAccessKeys(ctx context.Context, id NamespaceTopicId) (result ListSharedAccessKeysOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/listKeys", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + var model TopicSharedAccessKeys + result.Model = &model + if err = resp.Unmarshal(result.Model); err != nil { + return + } + + return +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go new file mode 100644 index 000000000000..f4a998c0f829 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go @@ -0,0 +1,75 @@ +package namespacetopics + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type RegenerateKeyOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData + Model *TopicSharedAccessKeys +} + +// RegenerateKey ... +func (c NamespaceTopicsClient) RegenerateKey(ctx context.Context, id NamespaceTopicId, input TopicRegenerateKeyRequest) (result RegenerateKeyOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPost, + Path: fmt.Sprintf("%s/regenerateKey", id.ID()), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// RegenerateKeyThenPoll performs RegenerateKey then polls until it's completed +func (c NamespaceTopicsClient) RegenerateKeyThenPoll(ctx context.Context, id NamespaceTopicId, input TopicRegenerateKeyRequest) error { + result, err := c.RegenerateKey(ctx, id, input) + if err != nil { + return fmt.Errorf("performing RegenerateKey: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after RegenerateKey: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go new file mode 100644 index 000000000000..3b72821af5c5 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go @@ -0,0 +1,75 @@ +package namespacetopics + +import ( + "context" + "fmt" + "net/http" + + "github.com/hashicorp/go-azure-sdk/sdk/client" + "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" + "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" + "github.com/hashicorp/go-azure-sdk/sdk/odata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type UpdateOperationResponse struct { + Poller pollers.Poller + HttpResponse *http.Response + OData *odata.OData + Model *NamespaceTopic +} + +// Update ... +func (c NamespaceTopicsClient) Update(ctx context.Context, id NamespaceTopicId, input NamespaceTopicUpdateParameters) (result UpdateOperationResponse, err error) { + opts := client.RequestOptions{ + ContentType: "application/json; charset=utf-8", + ExpectedStatusCodes: []int{ + http.StatusAccepted, + http.StatusOK, + }, + HttpMethod: http.MethodPatch, + Path: id.ID(), + } + + req, err := c.Client.NewRequest(ctx, opts) + if err != nil { + return + } + + if err = req.Marshal(input); err != nil { + return + } + + var resp *client.Response + resp, err = req.Execute(ctx) + if resp != nil { + result.OData = resp.OData + result.HttpResponse = resp.Response + } + if err != nil { + return + } + + result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) + if err != nil { + return + } + + return +} + +// UpdateThenPoll performs Update then polls until it's completed +func (c NamespaceTopicsClient) UpdateThenPoll(ctx context.Context, id NamespaceTopicId, input NamespaceTopicUpdateParameters) error { + result, err := c.Update(ctx, id, input) + if err != nil { + return fmt.Errorf("performing Update: %+v", err) + } + + if err := result.Poller.PollUntilDone(ctx); err != nil { + return fmt.Errorf("polling after Update: %+v", err) + } + + return nil +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go new file mode 100644 index 000000000000..1dccdc43f24e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go @@ -0,0 +1,16 @@ +package namespacetopics + +import ( + "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" +) + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NamespaceTopic struct { + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + Properties *NamespaceTopicProperties `json:"properties,omitempty"` + SystemData *systemdata.SystemData `json:"systemData,omitempty"` + Type *string `json:"type,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go new file mode 100644 index 000000000000..b37e01c1a8cc --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go @@ -0,0 +1,11 @@ +package namespacetopics + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NamespaceTopicProperties struct { + EventRetentionInDays *int64 `json:"eventRetentionInDays,omitempty"` + InputSchema *EventInputSchema `json:"inputSchema,omitempty"` + ProvisioningState *NamespaceTopicProvisioningState `json:"provisioningState,omitempty"` + PublisherType *PublisherType `json:"publisherType,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go new file mode 100644 index 000000000000..e2ff04da7e48 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go @@ -0,0 +1,8 @@ +package namespacetopics + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NamespaceTopicUpdateParameterProperties struct { + EventRetentionInDays *int64 `json:"eventRetentionInDays,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go new file mode 100644 index 000000000000..520c08e31bac --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go @@ -0,0 +1,8 @@ +package namespacetopics + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NamespaceTopicUpdateParameters struct { + Properties *NamespaceTopicUpdateParameterProperties `json:"properties,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go new file mode 100644 index 000000000000..2f4db5cc2b3d --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go @@ -0,0 +1,8 @@ +package namespacetopics + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TopicRegenerateKeyRequest struct { + KeyName string `json:"keyName"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go new file mode 100644 index 000000000000..5f3a72b8506e --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go @@ -0,0 +1,9 @@ +package namespacetopics + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type TopicSharedAccessKeys struct { + Key1 *string `json:"key1,omitempty"` + Key2 *string `json:"key2,omitempty"` +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go new file mode 100644 index 000000000000..3c6a5cbed3a9 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go @@ -0,0 +1,27 @@ +package namespacetopics + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +type NamespaceTopicOperationPredicate struct { + Id *string + Name *string + Type *string +} + +func (p NamespaceTopicOperationPredicate) Matches(input NamespaceTopic) bool { + + if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { + return false + } + + if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { + return false + } + + if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { + return false + } + + return true +} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go new file mode 100644 index 000000000000..cb3b44173291 --- /dev/null +++ b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go @@ -0,0 +1,10 @@ +package namespacetopics + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See NOTICE.txt in the project root for license information. + +const defaultApiVersion = "2023-12-15-preview" + +func userAgent() string { + return "hashicorp/go-azure-sdk/namespacetopics/2023-12-15-preview" +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 766e6729e3d5..96ad7340dadd 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -560,6 +560,7 @@ github.com/hashicorp/go-azure-sdk/resource-manager/elasticsan/2023-01-01/snapsho github.com/hashicorp/go-azure-sdk/resource-manager/elasticsan/2023-01-01/volumegroups github.com/hashicorp/go-azure-sdk/resource-manager/elasticsan/2023-01-01/volumes github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespaces +github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15 github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/cacertificates github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/channels From 4a16267d5a5f0c11f9659226616512007ea98163 Mon Sep 17 00:00:00 2001 From: Ludovic AUDIBERT Date: Tue, 8 Jul 2025 10:33:10 +0200 Subject: [PATCH 2/5] New Resource: eventgrid_namespace_topic - added doc, added missing field publisher_type, added regex on name --- .../eventgrid_namespace_topic_resource.go | 27 +++++-- ...eventgrid_namespace_topic_resource_test.go | 1 + .../r/eventgrid_namespace_topic.html.markdown | 71 +++++++++++++++++++ 3 files changed, 95 insertions(+), 4 deletions(-) create mode 100644 website/docs/r/eventgrid_namespace_topic.html.markdown diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource.go index 4e0c8369a4f4..62bbce8c58cf 100644 --- a/internal/services/eventgrid/eventgrid_namespace_topic_resource.go +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource.go @@ -6,6 +6,7 @@ package eventgrid import ( "context" "fmt" + "regexp" "time" "github.com/hashicorp/go-azure-helpers/lang/pointer" @@ -26,15 +27,22 @@ type EventGridNamespaceTopicResourceModel struct { NamespaceId string `tfschema:"namespace_id"` EventRetentionInDays int64 `tfschema:"event_retention_in_days"` InputSchema string `tfschema:"input_schema"` + PublisherType string `tfschema:"publisher_type"` } func (r EventGridNamespaceTopicResource) Arguments() map[string]*pluginsdk.Schema { return map[string]*pluginsdk.Schema{ "name": { - Type: pluginsdk.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validation.StringLenBetween(3, 50), // ^[a-zA-Z0-9-]*$ + Type: pluginsdk.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validation.All( + validation.StringIsNotEmpty, + validation.StringMatch( + regexp.MustCompile("^[a-zA-Z0-9-]{3,50}$"), + "Event Grid Namespace Topic name must be 3 - 50 characters long, contain only letters, numbers and hyphens.", + ), + ), }, "namespace_id": { @@ -59,6 +67,15 @@ func (r EventGridNamespaceTopicResource) Arguments() map[string]*pluginsdk.Schem "CloudEventSchemaV1_0", }, false), }, + + "publisher_type": { + Type: pluginsdk.TypeString, + Optional: true, + Default: "Custom", + ValidateFunc: validation.StringInSlice([]string{ + "Custom", + }, false), + }, } } @@ -116,6 +133,7 @@ func (r EventGridNamespaceTopicResource) Create() sdk.ResourceFunc { Properties: &namespacetopics.NamespaceTopicProperties{ EventRetentionInDays: pointer.To(model.EventRetentionInDays), InputSchema: pointer.To(namespacetopics.EventInputSchema(model.InputSchema)), + PublisherType: pointer.To(namespacetopics.PublisherType(model.PublisherType)), }, } @@ -193,6 +211,7 @@ func (r EventGridNamespaceTopicResource) Read() sdk.ResourceFunc { if props := model.Properties; props != nil { state.EventRetentionInDays = int64(pointer.From(props.EventRetentionInDays)) state.InputSchema = string(pointer.From(props.InputSchema)) + state.PublisherType = string(pointer.From(props.PublisherType)) } } diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go index 09ba520cff7d..513aec40a411 100644 --- a/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go @@ -152,6 +152,7 @@ resource "azurerm_eventgrid_namespace_topic" "test" { namespace_id = azurerm_eventgrid_namespace.test.id event_retention_in_days = 1 input_schema = "CloudEventSchemaV1_0" + publisher_type = "Custom" } `, r.template(data), data.RandomInteger) } diff --git a/website/docs/r/eventgrid_namespace_topic.html.markdown b/website/docs/r/eventgrid_namespace_topic.html.markdown new file mode 100644 index 000000000000..4b246c6c05e8 --- /dev/null +++ b/website/docs/r/eventgrid_namespace_topic.html.markdown @@ -0,0 +1,71 @@ +--- +subcategory: "Messaging" +layout: "azurerm" +page_title: "Azure Resource Manager: azurerm_eventgrid_namespace_topic" +description: |- + Manages a Event Grid Namespace Topic. +--- + +# azurerm_eventgrid_namespace_topic + +Manages a Event Grid Namespace Topic. + +## Example Usage + +```hcl +resource "azurerm_resource_group" "example" { + name = "example-resources" + location = "West Europe" +} + +resource "azurerm_eventgrid_namespace" "example" { + name = "my-eventgrid-namespace" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name +} + +resource "azurerm_eventgrid_namespace_topic" "example" { + name = "topic-namespace-example" + namespace_id = azurerm_eventgrid_namespace.test.id + event_retention_in_days = 1 +} +``` + +## Arguments Reference + +The following arguments are supported: + +* `name` - (Required) The name which should be used for this Event Grid Namespace Topic. Changing this forces a new Event Grid Namespace Topic to be created. + +* `namespace_id` - (Required) The ID of the Event Grid Namespace Topic. Changing this forces a new Event Grid Namespace Topic to be created. + +--- + +* `event_retention_in_days` - (Optional) Event retention for the namespace topic expressed in days. The property default value is 1 day. Min event retention duration value is 1 day and max event retention duration value is 1 day. Defaults to `7`. + +* `input_schema` - (Optional) This determines the format that is expected for incoming events published to the topic. Defaults to `CloudEventSchemaV1_0`. + +* `publisher_type` - (Optional) Publisher type of the namespace topic. Defaults to `Custom`. + +## Attributes Reference + +In addition to the Arguments listed above - the following Attributes are exported: + +* `id` - The ID of the Event Grid Namespace Topic. + +## Timeouts + +The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: + +* `create` - (Defaults to 30 minutes) Used when creating the Event Grid Namespace Topic. +* `read` - (Defaults to 5 minutes) Used when retrieving the Event Grid Namespace Topic. +* `update` - (Defaults to 30 minutes) Used when updating the Event Grid Namespace Topic. +* `delete` - (Defaults to 30 minutes) Used when deleting the Event Grid Namespace Topic. + +## Import + +Event Grid Namespace Topics can be imported using the `resource id`, e.g. + +```shell +terraform import azurerm_eventgrid_namespace_topic.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/namespaces/eventgrid1/topics/topic1 +``` \ No newline at end of file From efe11043dbc7c2173f563c3b509216db99e97d56 Mon Sep 17 00:00:00 2001 From: sreallymatt <106555974+sreallymatt@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:40:01 -0600 Subject: [PATCH 3/5] updates --- internal/services/eventgrid/client/client.go | 2 +- .../eventgrid_namespace_topic_resource.go | 83 +++++++----------- ...espace_topic_resource_identity_gen_test.go | 40 +++++++++ ...eventgrid_namespace_topic_resource_test.go | 85 +++++++++---------- .../r/eventgrid_namespace_topic.html.markdown | 26 +++--- 5 files changed, 127 insertions(+), 109 deletions(-) create mode 100644 internal/services/eventgrid/eventgrid_namespace_topic_resource_identity_gen_test.go diff --git a/internal/services/eventgrid/client/client.go b/internal/services/eventgrid/client/client.go index d562904cc476..04b83989cfc1 100644 --- a/internal/services/eventgrid/client/client.go +++ b/internal/services/eventgrid/client/client.go @@ -7,8 +7,8 @@ import ( "fmt" "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespaces" - "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" eventgrid_v2025_02_15 "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/namespacetopics" "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" "github.com/hashicorp/terraform-provider-azurerm/internal/common" ) diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource.go index 62bbce8c58cf..f1d7a435e96f 100644 --- a/internal/services/eventgrid/eventgrid_namespace_topic_resource.go +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource.go @@ -11,23 +11,27 @@ import ( "github.com/hashicorp/go-azure-helpers/lang/pointer" "github.com/hashicorp/go-azure-helpers/lang/response" - "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespaces" - "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" + "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/namespaces" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/namespacetopics" "github.com/hashicorp/terraform-provider-azurerm/internal/sdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/validation" ) -var _ sdk.ResourceWithUpdate = EventGridNamespaceTopicResource{} +//go:generate go run ../../tools/generator-tests resourceidentity -resource-name eventgrid_namespace_topic -properties "name" -compare-values "subscription_id:eventgrid_namespace_id,resource_group_name:eventgrid_namespace_id,namespace_name:eventgrid_namespace_id" + +var ( + _ sdk.ResourceWithUpdate = EventGridNamespaceTopicResource{} + _ sdk.ResourceWithIdentity = EventGridNamespaceTopicResource{} +) type EventGridNamespaceTopicResource struct{} type EventGridNamespaceTopicResourceModel struct { Name string `tfschema:"name"` - NamespaceId string `tfschema:"namespace_id"` + EventgridNamespaceId string `tfschema:"eventgrid_namespace_id"` EventRetentionInDays int64 `tfschema:"event_retention_in_days"` - InputSchema string `tfschema:"input_schema"` - PublisherType string `tfschema:"publisher_type"` } func (r EventGridNamespaceTopicResource) Arguments() map[string]*pluginsdk.Schema { @@ -45,7 +49,7 @@ func (r EventGridNamespaceTopicResource) Arguments() map[string]*pluginsdk.Schem ), }, - "namespace_id": { + "eventgrid_namespace_id": { Type: pluginsdk.TypeString, Required: true, ForceNew: true, @@ -58,24 +62,6 @@ func (r EventGridNamespaceTopicResource) Arguments() map[string]*pluginsdk.Schem Default: 7, ValidateFunc: validation.IntBetween(1, 7), }, - - "input_schema": { - Type: pluginsdk.TypeString, - Optional: true, - Default: "CloudEventSchemaV1_0", - ValidateFunc: validation.StringInSlice([]string{ - "CloudEventSchemaV1_0", - }, false), - }, - - "publisher_type": { - Type: pluginsdk.TypeString, - Optional: true, - Default: "Custom", - ValidateFunc: validation.StringInSlice([]string{ - "Custom", - }, false), - }, } } @@ -99,23 +85,15 @@ func (r EventGridNamespaceTopicResource) Create() sdk.ResourceFunc { var model EventGridNamespaceTopicResourceModel if err := metadata.Decode(&model); err != nil { - return fmt.Errorf("decoding %+v", err) + return fmt.Errorf("decoding: %+v", err) } - subscriptionId := "" - namespaceName := "" - resourceGroupName := "" - if v := model.NamespaceId; v != "" { - namespaceId, err := namespaces.ParseNamespaceID(v) - if err != nil { - return err - } - subscriptionId = namespaceId.SubscriptionId - namespaceName = namespaceId.NamespaceName - resourceGroupName = namespaceId.ResourceGroupName + namespaceId, err := namespaces.ParseNamespaceID(model.EventgridNamespaceId) + if err != nil { + return err } - id := namespacetopics.NewNamespaceTopicID(subscriptionId, resourceGroupName, namespaceName, model.Name) + id := namespacetopics.NewNamespaceTopicID(namespaceId.SubscriptionId, namespaceId.ResourceGroupName, namespaceId.NamespaceName, model.Name) existing, err := client.Get(ctx, id) if err != nil { @@ -132,8 +110,8 @@ func (r EventGridNamespaceTopicResource) Create() sdk.ResourceFunc { Name: pointer.To(model.Name), Properties: &namespacetopics.NamespaceTopicProperties{ EventRetentionInDays: pointer.To(model.EventRetentionInDays), - InputSchema: pointer.To(namespacetopics.EventInputSchema(model.InputSchema)), - PublisherType: pointer.To(namespacetopics.PublisherType(model.PublisherType)), + InputSchema: pointer.To(namespacetopics.EventInputSchemaCloudEventSchemaVOneZero), + PublisherType: pointer.To(namespacetopics.PublisherTypeCustom), }, } @@ -142,8 +120,7 @@ func (r EventGridNamespaceTopicResource) Create() sdk.ResourceFunc { } metadata.SetID(id) - - return nil + return pluginsdk.SetResourceIdentityData(metadata.ResourceData, &id) }, } } @@ -156,7 +133,7 @@ func (r EventGridNamespaceTopicResource) Update() sdk.ResourceFunc { var model EventGridNamespaceTopicResourceModel if err := metadata.Decode(&model); err != nil { - return fmt.Errorf("decoding %+v", err) + return fmt.Errorf("decoding: %+v", err) } id, err := namespacetopics.ParseNamespaceTopicID(metadata.ResourceData.Id()) @@ -173,11 +150,9 @@ func (r EventGridNamespaceTopicResource) Update() sdk.ResourceFunc { } if err = client.UpdateThenPoll(ctx, *id, payload); err != nil { - return fmt.Errorf("creating %s: %+v", *id, err) + return fmt.Errorf("updating %s: %+v", id, err) } - metadata.SetID(id) - return nil }, } @@ -203,18 +178,20 @@ func (r EventGridNamespaceTopicResource) Read() sdk.ResourceFunc { } state := EventGridNamespaceTopicResourceModel{ - Name: id.TopicName, - NamespaceId: namespacetopics.NewNamespaceID(id.SubscriptionId, id.ResourceGroupName, id.NamespaceName).ID(), + Name: id.TopicName, + EventgridNamespaceId: namespacetopics.NewNamespaceID(id.SubscriptionId, id.ResourceGroupName, id.NamespaceName).ID(), } if model := resp.Model; model != nil { if props := model.Properties; props != nil { - state.EventRetentionInDays = int64(pointer.From(props.EventRetentionInDays)) - state.InputSchema = string(pointer.From(props.InputSchema)) - state.PublisherType = string(pointer.From(props.PublisherType)) + state.EventRetentionInDays = pointer.From(props.EventRetentionInDays) } } + if err := pluginsdk.SetResourceIdentityData(metadata.ResourceData, id); err != nil { + return err + } + return metadata.Encode(&state) }, } @@ -243,3 +220,7 @@ func (r EventGridNamespaceTopicResource) Delete() sdk.ResourceFunc { func (r EventGridNamespaceTopicResource) IDValidationFunc() pluginsdk.SchemaValidateFunc { return namespacetopics.ValidateNamespaceTopicID } + +func (r EventGridNamespaceTopicResource) Identity() resourceids.ResourceId { + return new(namespacetopics.NamespaceTopicId) +} diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource_identity_gen_test.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource_identity_gen_test.go new file mode 100644 index 000000000000..f243b072a133 --- /dev/null +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource_identity_gen_test.go @@ -0,0 +1,40 @@ +// Copyright IBM Corp. 2014, 2025 +// SPDX-License-Identifier: MPL-2.0 + +package eventgrid_test + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-testing/statecheck" + "github.com/hashicorp/terraform-plugin-testing/tfjsonpath" + "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" + customstatecheck "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/statecheck" +) + +func TestAccEventgridNamespaceTopic_resourceIdentity(t *testing.T) { + data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") + r := EventgridNamespaceTopicResource{} + + checkedFields := map[string]struct{}{ + "name": {}, + "namespace_name": {}, + "resource_group_name": {}, + "subscription_id": {}, + } + + data.ResourceIdentityTest(t, []acceptance.TestStep{ + { + Config: r.basic(data), + ConfigStateChecks: []statecheck.StateCheck{ + customstatecheck.ExpectAllIdentityFieldsAreChecked("azurerm_eventgrid_namespace_topic.test", checkedFields), + statecheck.ExpectIdentityValueMatchesStateAtPath("azurerm_eventgrid_namespace_topic.test", tfjsonpath.New("name"), tfjsonpath.New("name")), + customstatecheck.ExpectStateContainsIdentityValueAtPath("azurerm_eventgrid_namespace_topic.test", tfjsonpath.New("namespace_name"), tfjsonpath.New("eventgrid_namespace_id")), + customstatecheck.ExpectStateContainsIdentityValueAtPath("azurerm_eventgrid_namespace_topic.test", tfjsonpath.New("resource_group_name"), tfjsonpath.New("eventgrid_namespace_id")), + customstatecheck.ExpectStateContainsIdentityValueAtPath("azurerm_eventgrid_namespace_topic.test", tfjsonpath.New("subscription_id"), tfjsonpath.New("eventgrid_namespace_id")), + }, + }, + data.ImportBlockWithResourceIdentityStep(false), + data.ImportBlockWithIDStep(false), + }, false) +} diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go index 513aec40a411..167dc46b7df8 100644 --- a/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go @@ -9,18 +9,18 @@ import ( "testing" "github.com/hashicorp/go-azure-helpers/lang/pointer" - "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" + "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/namespacetopics" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance" "github.com/hashicorp/terraform-provider-azurerm/internal/acceptance/check" "github.com/hashicorp/terraform-provider-azurerm/internal/clients" "github.com/hashicorp/terraform-provider-azurerm/internal/tf/pluginsdk" ) -type EventGridNamespaceTopicResource struct{} +type EventgridNamespaceTopicResource struct{} -func TestAccEventGridNamespaceTopicResource_basic(t *testing.T) { +func TestAccEventgridNamespaceTopicResource_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") - r := EventGridNamespaceTopicResource{} + r := EventgridNamespaceTopicResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { @@ -33,9 +33,9 @@ func TestAccEventGridNamespaceTopicResource_basic(t *testing.T) { }) } -func TestAccEventGridNamespaceTopicResource_requiresImport(t *testing.T) { +func TestAccEventgridNamespaceTopicResource_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") - r := EventGridNamespaceTopicResource{} + r := EventgridNamespaceTopicResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { @@ -44,16 +44,13 @@ func TestAccEventGridNamespaceTopicResource_requiresImport(t *testing.T) { check.That(data.ResourceName).ExistsInAzure(r), ), }, - { - Config: r.requiresImport(data), - ExpectError: acceptance.RequiresImportError("azurerm_eventgrid_namespace_topic"), - }, + data.RequiresImportErrorStep(r.requiresImport), }) } -func TestAccEventGridNamespaceTopicResource_complete(t *testing.T) { +func TestAccEventgridNamespaceTopicResource_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") - r := EventGridNamespaceTopicResource{} + r := EventgridNamespaceTopicResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { @@ -66,9 +63,9 @@ func TestAccEventGridNamespaceTopicResource_complete(t *testing.T) { }) } -func TestAccEventGridNamespaceTopicResource_update(t *testing.T) { +func TestAccEventgridNamespaceTopicResource_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") - r := EventGridNamespaceTopicResource{} + r := EventgridNamespaceTopicResource{} data.ResourceTest(t, r, []acceptance.TestStep{ { @@ -88,7 +85,7 @@ func TestAccEventGridNamespaceTopicResource_update(t *testing.T) { }) } -func (r EventGridNamespaceTopicResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { +func (r EventgridNamespaceTopicResource) Exists(ctx context.Context, clients *clients.Client, state *pluginsdk.InstanceState) (*bool, error) { id, err := namespacetopics.ParseNamespaceTopicID(state.ID) if err != nil { return nil, err @@ -102,57 +99,55 @@ func (r EventGridNamespaceTopicResource) Exists(ctx context.Context, clients *cl return pointer.To(resp.Model != nil), nil } -func (r EventGridNamespaceTopicResource) template(data acceptance.TestData) string { - return fmt.Sprintf(` -provider "azurerm" { - features {} -} - -resource "azurerm_resource_group" "test" { - name = "acctestRG-%[1]d" - location = "%[2]s" -} - -resource "azurerm_eventgrid_namespace" "test" { - name = "acctest-egn-%[1]d" - resource_group_name = azurerm_resource_group.test.name - location = azurerm_resource_group.test.location -} -`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) -} - -func (r EventGridNamespaceTopicResource) basic(data acceptance.TestData) string { +func (r EventgridNamespaceTopicResource) basic(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_eventgrid_namespace_topic" "test" { - name = "acctest-egnt-%d" - namespace_id = azurerm_eventgrid_namespace.test.id + name = "acctest-egnt-%d" + eventgrid_namespace_id = azurerm_eventgrid_namespace.test.id } `, r.template(data), data.RandomInteger) } -func (r EventGridNamespaceTopicResource) requiresImport(data acceptance.TestData) string { +func (r EventgridNamespaceTopicResource) requiresImport(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_eventgrid_namespace_topic" "import" { - name = azurerm_eventgrid_namespace_topic.test.name - namespace_id = azurerm_eventgrid_namespace_topic.test.namespace_id + name = azurerm_eventgrid_namespace_topic.test.name + eventgrid_namespace_id = azurerm_eventgrid_namespace_topic.test.eventgrid_namespace_id } `, r.basic(data)) } -func (r EventGridNamespaceTopicResource) complete(data acceptance.TestData) string { +func (r EventgridNamespaceTopicResource) complete(data acceptance.TestData) string { return fmt.Sprintf(` %s resource "azurerm_eventgrid_namespace_topic" "test" { name = "acctest-egnt-%d" - namespace_id = azurerm_eventgrid_namespace.test.id - event_retention_in_days = 1 - input_schema = "CloudEventSchemaV1_0" - publisher_type = "Custom" + eventgrid_namespace_id = azurerm_eventgrid_namespace.test.id + event_retention_in_days = 1 } `, r.template(data), data.RandomInteger) } + +func (r EventgridNamespaceTopicResource) template(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%[1]d" + location = "%[2]s" +} + +resource "azurerm_eventgrid_namespace" "test" { + name = "acctest-egn-%[1]d" + resource_group_name = azurerm_resource_group.test.name + location = azurerm_resource_group.test.location +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger) +} diff --git a/website/docs/r/eventgrid_namespace_topic.html.markdown b/website/docs/r/eventgrid_namespace_topic.html.markdown index 4b246c6c05e8..54d659d605c3 100644 --- a/website/docs/r/eventgrid_namespace_topic.html.markdown +++ b/website/docs/r/eventgrid_namespace_topic.html.markdown @@ -3,12 +3,12 @@ subcategory: "Messaging" layout: "azurerm" page_title: "Azure Resource Manager: azurerm_eventgrid_namespace_topic" description: |- - Manages a Event Grid Namespace Topic. + Manages an Event Grid Namespace Topic. --- # azurerm_eventgrid_namespace_topic -Manages a Event Grid Namespace Topic. +Manages an Event Grid Namespace Topic. ## Example Usage @@ -26,7 +26,7 @@ resource "azurerm_eventgrid_namespace" "example" { resource "azurerm_eventgrid_namespace_topic" "example" { name = "topic-namespace-example" - namespace_id = azurerm_eventgrid_namespace.test.id + eventgrid_namespace_id = azurerm_eventgrid_namespace.test.id event_retention_in_days = 1 } ``` @@ -35,17 +35,13 @@ resource "azurerm_eventgrid_namespace_topic" "example" { The following arguments are supported: -* `name` - (Required) The name which should be used for this Event Grid Namespace Topic. Changing this forces a new Event Grid Namespace Topic to be created. +* `name` - (Required) The name which should be used for this Event Grid Namespace Topic. Changing this forces a new resource to be created. -* `namespace_id` - (Required) The ID of the Event Grid Namespace Topic. Changing this forces a new Event Grid Namespace Topic to be created. +* `eventgrid_namespace_id` - (Required) The ID of the Event Grid Namespace. Changing this forces a new resource to be created. --- -* `event_retention_in_days` - (Optional) Event retention for the namespace topic expressed in days. The property default value is 1 day. Min event retention duration value is 1 day and max event retention duration value is 1 day. Defaults to `7`. - -* `input_schema` - (Optional) This determines the format that is expected for incoming events published to the topic. Defaults to `CloudEventSchemaV1_0`. - -* `publisher_type` - (Optional) Publisher type of the namespace topic. Defaults to `Custom`. +* `event_retention_in_days` - (Optional) Event retention for the namespace topic expressed in days. Defaults to `7`. ## Attributes Reference @@ -55,7 +51,7 @@ In addition to the Arguments listed above - the following Attributes are exporte ## Timeouts -The `timeouts` block allows you to specify [timeouts](https://www.terraform.io/language/resources/syntax#operation-timeouts) for certain actions: +The `timeouts` block allows you to specify [timeouts](https://developer.hashicorp.com/terraform/language/resources/configure#define-operation-timeouts) for certain actions: * `create` - (Defaults to 30 minutes) Used when creating the Event Grid Namespace Topic. * `read` - (Defaults to 5 minutes) Used when retrieving the Event Grid Namespace Topic. @@ -68,4 +64,10 @@ Event Grid Namespace Topics can be imported using the `resource id`, e.g. ```shell terraform import azurerm_eventgrid_namespace_topic.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.EventGrid/namespaces/eventgrid1/topics/topic1 -``` \ No newline at end of file +``` + +## API Providers + +This resource uses the following Azure API Providers: + +* `Microsoft.EventGrid` - 2025-02-15 From 27d3346f49fe054627159aecaf4cdf41cdffd7a0 Mon Sep 17 00:00:00 2001 From: sreallymatt <106555974+sreallymatt@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:41:32 -0600 Subject: [PATCH 4/5] go mod tidy && go mod vendor --- .../namespacetopics/README.md | 132 --------------- .../namespacetopics/client.go | 26 --- .../namespacetopics/constants.go | 151 ------------------ .../namespacetopics/id_namespace.go | 130 --------------- .../namespacetopics/id_namespacetopic.go | 139 ---------------- .../namespacetopics/method_createorupdate.go | 75 --------- .../namespacetopics/method_delete.go | 71 -------- .../namespacetopics/method_get.go | 53 ------ .../namespacetopics/method_listbynamespace.go | 138 ---------------- .../method_listsharedaccesskeys.go | 54 ------- .../namespacetopics/method_regeneratekey.go | 75 --------- .../namespacetopics/method_update.go | 75 --------- .../namespacetopics/model_namespacetopic.go | 16 -- .../model_namespacetopicproperties.go | 11 -- ...namespacetopicupdateparameterproperties.go | 8 - .../model_namespacetopicupdateparameters.go | 8 - .../model_topicregeneratekeyrequest.go | 8 - .../model_topicsharedaccesskeys.go | 9 -- .../namespacetopics/predicates.go | 27 ---- .../namespacetopics/version.go | 10 -- vendor/modules.txt | 1 - 21 files changed, 1217 deletions(-) delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go delete mode 100644 vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md deleted file mode 100644 index 869539aacf98..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/README.md +++ /dev/null @@ -1,132 +0,0 @@ - -## `github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics` Documentation - -The `namespacetopics` SDK allows for interaction with Azure Resource Manager `eventgrid` (API Version `2023-12-15-preview`). - -This readme covers example usages, but further information on [using this SDK can be found in the project root](https://github.com/hashicorp/go-azure-sdk/tree/main/docs). - -### Import Path - -```go -import "github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics" -``` - - -### Client Initialization - -```go -client := namespacetopics.NewNamespaceTopicsClientWithBaseURI("https://management.azure.com") -client.Client.Authorizer = authorizer -``` - - -### Example Usage: `NamespaceTopicsClient.CreateOrUpdate` - -```go -ctx := context.TODO() -id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") - -payload := namespacetopics.NamespaceTopic{ - // ... -} - - -if err := client.CreateOrUpdateThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` - - -### Example Usage: `NamespaceTopicsClient.Delete` - -```go -ctx := context.TODO() -id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") - -if err := client.DeleteThenPoll(ctx, id); err != nil { - // handle the error -} -``` - - -### Example Usage: `NamespaceTopicsClient.Get` - -```go -ctx := context.TODO() -id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") - -read, err := client.Get(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `NamespaceTopicsClient.ListByNamespace` - -```go -ctx := context.TODO() -id := namespacetopics.NewNamespaceID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName") - -// alternatively `client.ListByNamespace(ctx, id, namespacetopics.DefaultListByNamespaceOperationOptions())` can be used to do batched pagination -items, err := client.ListByNamespaceComplete(ctx, id, namespacetopics.DefaultListByNamespaceOperationOptions()) -if err != nil { - // handle the error -} -for _, item := range items { - // do something -} -``` - - -### Example Usage: `NamespaceTopicsClient.ListSharedAccessKeys` - -```go -ctx := context.TODO() -id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") - -read, err := client.ListSharedAccessKeys(ctx, id) -if err != nil { - // handle the error -} -if model := read.Model; model != nil { - // do something with the model/response object -} -``` - - -### Example Usage: `NamespaceTopicsClient.RegenerateKey` - -```go -ctx := context.TODO() -id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") - -payload := namespacetopics.TopicRegenerateKeyRequest{ - // ... -} - - -if err := client.RegenerateKeyThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` - - -### Example Usage: `NamespaceTopicsClient.Update` - -```go -ctx := context.TODO() -id := namespacetopics.NewNamespaceTopicID("12345678-1234-9876-4563-123456789012", "example-resource-group", "namespaceName", "topicName") - -payload := namespacetopics.NamespaceTopicUpdateParameters{ - // ... -} - - -if err := client.UpdateThenPoll(ctx, id, payload); err != nil { - // handle the error -} -``` diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go deleted file mode 100644 index 0eb8f6461601..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/client.go +++ /dev/null @@ -1,26 +0,0 @@ -package namespacetopics - -import ( - "fmt" - - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - sdkEnv "github.com/hashicorp/go-azure-sdk/sdk/environments" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NamespaceTopicsClient struct { - Client *resourcemanager.Client -} - -func NewNamespaceTopicsClientWithBaseURI(sdkApi sdkEnv.Api) (*NamespaceTopicsClient, error) { - client, err := resourcemanager.NewClient(sdkApi, "namespacetopics", defaultApiVersion) - if err != nil { - return nil, fmt.Errorf("instantiating NamespaceTopicsClient: %+v", err) - } - - return &NamespaceTopicsClient{ - Client: client, - }, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go deleted file mode 100644 index 6da4ee9733dc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/constants.go +++ /dev/null @@ -1,151 +0,0 @@ -package namespacetopics - -import ( - "encoding/json" - "fmt" - "strings" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type EventInputSchema string - -const ( - EventInputSchemaCloudEventSchemaVOneZero EventInputSchema = "CloudEventSchemaV1_0" -) - -func PossibleValuesForEventInputSchema() []string { - return []string{ - string(EventInputSchemaCloudEventSchemaVOneZero), - } -} - -func (s *EventInputSchema) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseEventInputSchema(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseEventInputSchema(input string) (*EventInputSchema, error) { - vals := map[string]EventInputSchema{ - "cloudeventschemav1_0": EventInputSchemaCloudEventSchemaVOneZero, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := EventInputSchema(input) - return &out, nil -} - -type NamespaceTopicProvisioningState string - -const ( - NamespaceTopicProvisioningStateCanceled NamespaceTopicProvisioningState = "Canceled" - NamespaceTopicProvisioningStateCreateFailed NamespaceTopicProvisioningState = "CreateFailed" - NamespaceTopicProvisioningStateCreating NamespaceTopicProvisioningState = "Creating" - NamespaceTopicProvisioningStateDeleteFailed NamespaceTopicProvisioningState = "DeleteFailed" - NamespaceTopicProvisioningStateDeleted NamespaceTopicProvisioningState = "Deleted" - NamespaceTopicProvisioningStateDeleting NamespaceTopicProvisioningState = "Deleting" - NamespaceTopicProvisioningStateFailed NamespaceTopicProvisioningState = "Failed" - NamespaceTopicProvisioningStateSucceeded NamespaceTopicProvisioningState = "Succeeded" - NamespaceTopicProvisioningStateUpdatedFailed NamespaceTopicProvisioningState = "UpdatedFailed" - NamespaceTopicProvisioningStateUpdating NamespaceTopicProvisioningState = "Updating" -) - -func PossibleValuesForNamespaceTopicProvisioningState() []string { - return []string{ - string(NamespaceTopicProvisioningStateCanceled), - string(NamespaceTopicProvisioningStateCreateFailed), - string(NamespaceTopicProvisioningStateCreating), - string(NamespaceTopicProvisioningStateDeleteFailed), - string(NamespaceTopicProvisioningStateDeleted), - string(NamespaceTopicProvisioningStateDeleting), - string(NamespaceTopicProvisioningStateFailed), - string(NamespaceTopicProvisioningStateSucceeded), - string(NamespaceTopicProvisioningStateUpdatedFailed), - string(NamespaceTopicProvisioningStateUpdating), - } -} - -func (s *NamespaceTopicProvisioningState) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parseNamespaceTopicProvisioningState(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parseNamespaceTopicProvisioningState(input string) (*NamespaceTopicProvisioningState, error) { - vals := map[string]NamespaceTopicProvisioningState{ - "canceled": NamespaceTopicProvisioningStateCanceled, - "createfailed": NamespaceTopicProvisioningStateCreateFailed, - "creating": NamespaceTopicProvisioningStateCreating, - "deletefailed": NamespaceTopicProvisioningStateDeleteFailed, - "deleted": NamespaceTopicProvisioningStateDeleted, - "deleting": NamespaceTopicProvisioningStateDeleting, - "failed": NamespaceTopicProvisioningStateFailed, - "succeeded": NamespaceTopicProvisioningStateSucceeded, - "updatedfailed": NamespaceTopicProvisioningStateUpdatedFailed, - "updating": NamespaceTopicProvisioningStateUpdating, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := NamespaceTopicProvisioningState(input) - return &out, nil -} - -type PublisherType string - -const ( - PublisherTypeCustom PublisherType = "Custom" -) - -func PossibleValuesForPublisherType() []string { - return []string{ - string(PublisherTypeCustom), - } -} - -func (s *PublisherType) UnmarshalJSON(bytes []byte) error { - var decoded string - if err := json.Unmarshal(bytes, &decoded); err != nil { - return fmt.Errorf("unmarshaling: %+v", err) - } - out, err := parsePublisherType(decoded) - if err != nil { - return fmt.Errorf("parsing %q: %+v", decoded, err) - } - *s = *out - return nil -} - -func parsePublisherType(input string) (*PublisherType, error) { - vals := map[string]PublisherType{ - "custom": PublisherTypeCustom, - } - if v, ok := vals[strings.ToLower(input)]; ok { - return &v, nil - } - - // otherwise presume it's an undefined value and best-effort it - out := PublisherType(input) - return &out, nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go deleted file mode 100644 index 9c4f27851c20..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespace.go +++ /dev/null @@ -1,130 +0,0 @@ -package namespacetopics - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/recaser" - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -func init() { - recaser.RegisterResourceId(&NamespaceId{}) -} - -var _ resourceids.ResourceId = &NamespaceId{} - -// NamespaceId is a struct representing the Resource ID for a Namespace -type NamespaceId struct { - SubscriptionId string - ResourceGroupName string - NamespaceName string -} - -// NewNamespaceID returns a new NamespaceId struct -func NewNamespaceID(subscriptionId string, resourceGroupName string, namespaceName string) NamespaceId { - return NamespaceId{ - SubscriptionId: subscriptionId, - ResourceGroupName: resourceGroupName, - NamespaceName: namespaceName, - } -} - -// ParseNamespaceID parses 'input' into a NamespaceId -func ParseNamespaceID(input string) (*NamespaceId, error) { - parser := resourceids.NewParserFromResourceIdType(&NamespaceId{}) - parsed, err := parser.Parse(input, false) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - id := NamespaceId{} - if err = id.FromParseResult(*parsed); err != nil { - return nil, err - } - - return &id, nil -} - -// ParseNamespaceIDInsensitively parses 'input' case-insensitively into a NamespaceId -// note: this method should only be used for API response data and not user input -func ParseNamespaceIDInsensitively(input string) (*NamespaceId, error) { - parser := resourceids.NewParserFromResourceIdType(&NamespaceId{}) - parsed, err := parser.Parse(input, true) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - id := NamespaceId{} - if err = id.FromParseResult(*parsed); err != nil { - return nil, err - } - - return &id, nil -} - -func (id *NamespaceId) FromParseResult(input resourceids.ParseResult) error { - var ok bool - - if id.SubscriptionId, ok = input.Parsed["subscriptionId"]; !ok { - return resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", input) - } - - if id.ResourceGroupName, ok = input.Parsed["resourceGroupName"]; !ok { - return resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", input) - } - - if id.NamespaceName, ok = input.Parsed["namespaceName"]; !ok { - return resourceids.NewSegmentNotSpecifiedError(id, "namespaceName", input) - } - - return nil -} - -// ValidateNamespaceID checks that 'input' can be parsed as a Namespace ID -func ValidateNamespaceID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := ParseNamespaceID(v); err != nil { - errors = append(errors, err) - } - - return -} - -// ID returns the formatted Namespace ID -func (id NamespaceId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.EventGrid/namespaces/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NamespaceName) -} - -// Segments returns a slice of Resource ID Segments which comprise this Namespace ID -func (id NamespaceId) Segments() []resourceids.Segment { - return []resourceids.Segment{ - resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), - resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), - resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), - resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), - resourceids.StaticSegment("staticProviders", "providers", "providers"), - resourceids.ResourceProviderSegment("staticMicrosoftEventGrid", "Microsoft.EventGrid", "Microsoft.EventGrid"), - resourceids.StaticSegment("staticNamespaces", "namespaces", "namespaces"), - resourceids.UserSpecifiedSegment("namespaceName", "namespaceName"), - } -} - -// String returns a human-readable description of this Namespace ID -func (id NamespaceId) String() string { - components := []string{ - fmt.Sprintf("Subscription: %q", id.SubscriptionId), - fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), - fmt.Sprintf("Namespace Name: %q", id.NamespaceName), - } - return fmt.Sprintf("Namespace (%s)", strings.Join(components, "\n")) -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go deleted file mode 100644 index 521d9c94a961..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/id_namespacetopic.go +++ /dev/null @@ -1,139 +0,0 @@ -package namespacetopics - -import ( - "fmt" - "strings" - - "github.com/hashicorp/go-azure-helpers/resourcemanager/recaser" - "github.com/hashicorp/go-azure-helpers/resourcemanager/resourceids" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -func init() { - recaser.RegisterResourceId(&NamespaceTopicId{}) -} - -var _ resourceids.ResourceId = &NamespaceTopicId{} - -// NamespaceTopicId is a struct representing the Resource ID for a Namespace Topic -type NamespaceTopicId struct { - SubscriptionId string - ResourceGroupName string - NamespaceName string - TopicName string -} - -// NewNamespaceTopicID returns a new NamespaceTopicId struct -func NewNamespaceTopicID(subscriptionId string, resourceGroupName string, namespaceName string, topicName string) NamespaceTopicId { - return NamespaceTopicId{ - SubscriptionId: subscriptionId, - ResourceGroupName: resourceGroupName, - NamespaceName: namespaceName, - TopicName: topicName, - } -} - -// ParseNamespaceTopicID parses 'input' into a NamespaceTopicId -func ParseNamespaceTopicID(input string) (*NamespaceTopicId, error) { - parser := resourceids.NewParserFromResourceIdType(&NamespaceTopicId{}) - parsed, err := parser.Parse(input, false) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - id := NamespaceTopicId{} - if err = id.FromParseResult(*parsed); err != nil { - return nil, err - } - - return &id, nil -} - -// ParseNamespaceTopicIDInsensitively parses 'input' case-insensitively into a NamespaceTopicId -// note: this method should only be used for API response data and not user input -func ParseNamespaceTopicIDInsensitively(input string) (*NamespaceTopicId, error) { - parser := resourceids.NewParserFromResourceIdType(&NamespaceTopicId{}) - parsed, err := parser.Parse(input, true) - if err != nil { - return nil, fmt.Errorf("parsing %q: %+v", input, err) - } - - id := NamespaceTopicId{} - if err = id.FromParseResult(*parsed); err != nil { - return nil, err - } - - return &id, nil -} - -func (id *NamespaceTopicId) FromParseResult(input resourceids.ParseResult) error { - var ok bool - - if id.SubscriptionId, ok = input.Parsed["subscriptionId"]; !ok { - return resourceids.NewSegmentNotSpecifiedError(id, "subscriptionId", input) - } - - if id.ResourceGroupName, ok = input.Parsed["resourceGroupName"]; !ok { - return resourceids.NewSegmentNotSpecifiedError(id, "resourceGroupName", input) - } - - if id.NamespaceName, ok = input.Parsed["namespaceName"]; !ok { - return resourceids.NewSegmentNotSpecifiedError(id, "namespaceName", input) - } - - if id.TopicName, ok = input.Parsed["topicName"]; !ok { - return resourceids.NewSegmentNotSpecifiedError(id, "topicName", input) - } - - return nil -} - -// ValidateNamespaceTopicID checks that 'input' can be parsed as a Namespace Topic ID -func ValidateNamespaceTopicID(input interface{}, key string) (warnings []string, errors []error) { - v, ok := input.(string) - if !ok { - errors = append(errors, fmt.Errorf("expected %q to be a string", key)) - return - } - - if _, err := ParseNamespaceTopicID(v); err != nil { - errors = append(errors, err) - } - - return -} - -// ID returns the formatted Namespace Topic ID -func (id NamespaceTopicId) ID() string { - fmtString := "/subscriptions/%s/resourceGroups/%s/providers/Microsoft.EventGrid/namespaces/%s/topics/%s" - return fmt.Sprintf(fmtString, id.SubscriptionId, id.ResourceGroupName, id.NamespaceName, id.TopicName) -} - -// Segments returns a slice of Resource ID Segments which comprise this Namespace Topic ID -func (id NamespaceTopicId) Segments() []resourceids.Segment { - return []resourceids.Segment{ - resourceids.StaticSegment("staticSubscriptions", "subscriptions", "subscriptions"), - resourceids.SubscriptionIdSegment("subscriptionId", "12345678-1234-9876-4563-123456789012"), - resourceids.StaticSegment("staticResourceGroups", "resourceGroups", "resourceGroups"), - resourceids.ResourceGroupSegment("resourceGroupName", "example-resource-group"), - resourceids.StaticSegment("staticProviders", "providers", "providers"), - resourceids.ResourceProviderSegment("staticMicrosoftEventGrid", "Microsoft.EventGrid", "Microsoft.EventGrid"), - resourceids.StaticSegment("staticNamespaces", "namespaces", "namespaces"), - resourceids.UserSpecifiedSegment("namespaceName", "namespaceName"), - resourceids.StaticSegment("staticTopics", "topics", "topics"), - resourceids.UserSpecifiedSegment("topicName", "topicName"), - } -} - -// String returns a human-readable description of this Namespace Topic ID -func (id NamespaceTopicId) String() string { - components := []string{ - fmt.Sprintf("Subscription: %q", id.SubscriptionId), - fmt.Sprintf("Resource Group Name: %q", id.ResourceGroupName), - fmt.Sprintf("Namespace Name: %q", id.NamespaceName), - fmt.Sprintf("Topic Name: %q", id.TopicName), - } - return fmt.Sprintf("Namespace Topic (%s)", strings.Join(components, "\n")) -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go deleted file mode 100644 index b35c70daf34f..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_createorupdate.go +++ /dev/null @@ -1,75 +0,0 @@ -package namespacetopics - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type CreateOrUpdateOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData - Model *NamespaceTopic -} - -// CreateOrUpdate ... -func (c NamespaceTopicsClient) CreateOrUpdate(ctx context.Context, id NamespaceTopicId, input NamespaceTopic) (result CreateOrUpdateOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusCreated, - http.StatusOK, - }, - HttpMethod: http.MethodPut, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// CreateOrUpdateThenPoll performs CreateOrUpdate then polls until it's completed -func (c NamespaceTopicsClient) CreateOrUpdateThenPoll(ctx context.Context, id NamespaceTopicId, input NamespaceTopic) error { - result, err := c.CreateOrUpdate(ctx, id, input) - if err != nil { - return fmt.Errorf("performing CreateOrUpdate: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after CreateOrUpdate: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go deleted file mode 100644 index 0d85b5ad7158..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_delete.go +++ /dev/null @@ -1,71 +0,0 @@ -package namespacetopics - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type DeleteOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData -} - -// Delete ... -func (c NamespaceTopicsClient) Delete(ctx context.Context, id NamespaceTopicId) (result DeleteOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusNoContent, - http.StatusOK, - }, - HttpMethod: http.MethodDelete, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// DeleteThenPoll performs Delete then polls until it's completed -func (c NamespaceTopicsClient) DeleteThenPoll(ctx context.Context, id NamespaceTopicId) error { - result, err := c.Delete(ctx, id) - if err != nil { - return fmt.Errorf("performing Delete: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after Delete: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go deleted file mode 100644 index 4324bba7213d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_get.go +++ /dev/null @@ -1,53 +0,0 @@ -package namespacetopics - -import ( - "context" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type GetOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *NamespaceTopic -} - -// Get ... -func (c NamespaceTopicsClient) Get(ctx context.Context, id NamespaceTopicId) (result GetOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var model NamespaceTopic - result.Model = &model - if err = resp.Unmarshal(result.Model); err != nil { - return - } - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go deleted file mode 100644 index 6bb10395b1e4..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listbynamespace.go +++ /dev/null @@ -1,138 +0,0 @@ -package namespacetopics - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListByNamespaceOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *[]NamespaceTopic -} - -type ListByNamespaceCompleteResult struct { - LatestHttpResponse *http.Response - Items []NamespaceTopic -} - -type ListByNamespaceOperationOptions struct { - Filter *string - Top *int64 -} - -func DefaultListByNamespaceOperationOptions() ListByNamespaceOperationOptions { - return ListByNamespaceOperationOptions{} -} - -func (o ListByNamespaceOperationOptions) ToHeaders() *client.Headers { - out := client.Headers{} - - return &out -} - -func (o ListByNamespaceOperationOptions) ToOData() *odata.Query { - out := odata.Query{} - - return &out -} - -func (o ListByNamespaceOperationOptions) ToQuery() *client.QueryParams { - out := client.QueryParams{} - if o.Filter != nil { - out.Append("$filter", fmt.Sprintf("%v", *o.Filter)) - } - if o.Top != nil { - out.Append("$top", fmt.Sprintf("%v", *o.Top)) - } - return &out -} - -type ListByNamespaceCustomPager struct { - NextLink *odata.Link `json:"nextLink"` -} - -func (p *ListByNamespaceCustomPager) NextPageLink() *odata.Link { - defer func() { - p.NextLink = nil - }() - - return p.NextLink -} - -// ListByNamespace ... -func (c NamespaceTopicsClient) ListByNamespace(ctx context.Context, id NamespaceId, options ListByNamespaceOperationOptions) (result ListByNamespaceOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodGet, - OptionsObject: options, - Pager: &ListByNamespaceCustomPager{}, - Path: fmt.Sprintf("%s/topics", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.ExecutePaged(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var values struct { - Values *[]NamespaceTopic `json:"value"` - } - if err = resp.Unmarshal(&values); err != nil { - return - } - - result.Model = values.Values - - return -} - -// ListByNamespaceComplete retrieves all the results into a single object -func (c NamespaceTopicsClient) ListByNamespaceComplete(ctx context.Context, id NamespaceId, options ListByNamespaceOperationOptions) (ListByNamespaceCompleteResult, error) { - return c.ListByNamespaceCompleteMatchingPredicate(ctx, id, options, NamespaceTopicOperationPredicate{}) -} - -// ListByNamespaceCompleteMatchingPredicate retrieves all the results and then applies the predicate -func (c NamespaceTopicsClient) ListByNamespaceCompleteMatchingPredicate(ctx context.Context, id NamespaceId, options ListByNamespaceOperationOptions, predicate NamespaceTopicOperationPredicate) (result ListByNamespaceCompleteResult, err error) { - items := make([]NamespaceTopic, 0) - - resp, err := c.ListByNamespace(ctx, id, options) - if err != nil { - result.LatestHttpResponse = resp.HttpResponse - err = fmt.Errorf("loading results: %+v", err) - return - } - if resp.Model != nil { - for _, v := range *resp.Model { - if predicate.Matches(v) { - items = append(items, v) - } - } - } - - result = ListByNamespaceCompleteResult{ - LatestHttpResponse: resp.HttpResponse, - Items: items, - } - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go deleted file mode 100644 index 1003e0d1cf24..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_listsharedaccesskeys.go +++ /dev/null @@ -1,54 +0,0 @@ -package namespacetopics - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type ListSharedAccessKeysOperationResponse struct { - HttpResponse *http.Response - OData *odata.OData - Model *TopicSharedAccessKeys -} - -// ListSharedAccessKeys ... -func (c NamespaceTopicsClient) ListSharedAccessKeys(ctx context.Context, id NamespaceTopicId) (result ListSharedAccessKeysOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/listKeys", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - var model TopicSharedAccessKeys - result.Model = &model - if err = resp.Unmarshal(result.Model); err != nil { - return - } - - return -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go deleted file mode 100644 index f4a998c0f829..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_regeneratekey.go +++ /dev/null @@ -1,75 +0,0 @@ -package namespacetopics - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type RegenerateKeyOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData - Model *TopicSharedAccessKeys -} - -// RegenerateKey ... -func (c NamespaceTopicsClient) RegenerateKey(ctx context.Context, id NamespaceTopicId, input TopicRegenerateKeyRequest) (result RegenerateKeyOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusOK, - }, - HttpMethod: http.MethodPost, - Path: fmt.Sprintf("%s/regenerateKey", id.ID()), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// RegenerateKeyThenPoll performs RegenerateKey then polls until it's completed -func (c NamespaceTopicsClient) RegenerateKeyThenPoll(ctx context.Context, id NamespaceTopicId, input TopicRegenerateKeyRequest) error { - result, err := c.RegenerateKey(ctx, id, input) - if err != nil { - return fmt.Errorf("performing RegenerateKey: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after RegenerateKey: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go deleted file mode 100644 index 3b72821af5c5..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/method_update.go +++ /dev/null @@ -1,75 +0,0 @@ -package namespacetopics - -import ( - "context" - "fmt" - "net/http" - - "github.com/hashicorp/go-azure-sdk/sdk/client" - "github.com/hashicorp/go-azure-sdk/sdk/client/pollers" - "github.com/hashicorp/go-azure-sdk/sdk/client/resourcemanager" - "github.com/hashicorp/go-azure-sdk/sdk/odata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type UpdateOperationResponse struct { - Poller pollers.Poller - HttpResponse *http.Response - OData *odata.OData - Model *NamespaceTopic -} - -// Update ... -func (c NamespaceTopicsClient) Update(ctx context.Context, id NamespaceTopicId, input NamespaceTopicUpdateParameters) (result UpdateOperationResponse, err error) { - opts := client.RequestOptions{ - ContentType: "application/json; charset=utf-8", - ExpectedStatusCodes: []int{ - http.StatusAccepted, - http.StatusOK, - }, - HttpMethod: http.MethodPatch, - Path: id.ID(), - } - - req, err := c.Client.NewRequest(ctx, opts) - if err != nil { - return - } - - if err = req.Marshal(input); err != nil { - return - } - - var resp *client.Response - resp, err = req.Execute(ctx) - if resp != nil { - result.OData = resp.OData - result.HttpResponse = resp.Response - } - if err != nil { - return - } - - result.Poller, err = resourcemanager.PollerFromResponse(resp, c.Client) - if err != nil { - return - } - - return -} - -// UpdateThenPoll performs Update then polls until it's completed -func (c NamespaceTopicsClient) UpdateThenPoll(ctx context.Context, id NamespaceTopicId, input NamespaceTopicUpdateParameters) error { - result, err := c.Update(ctx, id, input) - if err != nil { - return fmt.Errorf("performing Update: %+v", err) - } - - if err := result.Poller.PollUntilDone(ctx); err != nil { - return fmt.Errorf("polling after Update: %+v", err) - } - - return nil -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go deleted file mode 100644 index 1dccdc43f24e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopic.go +++ /dev/null @@ -1,16 +0,0 @@ -package namespacetopics - -import ( - "github.com/hashicorp/go-azure-helpers/resourcemanager/systemdata" -) - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NamespaceTopic struct { - Id *string `json:"id,omitempty"` - Name *string `json:"name,omitempty"` - Properties *NamespaceTopicProperties `json:"properties,omitempty"` - SystemData *systemdata.SystemData `json:"systemData,omitempty"` - Type *string `json:"type,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go deleted file mode 100644 index b37e01c1a8cc..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicproperties.go +++ /dev/null @@ -1,11 +0,0 @@ -package namespacetopics - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NamespaceTopicProperties struct { - EventRetentionInDays *int64 `json:"eventRetentionInDays,omitempty"` - InputSchema *EventInputSchema `json:"inputSchema,omitempty"` - ProvisioningState *NamespaceTopicProvisioningState `json:"provisioningState,omitempty"` - PublisherType *PublisherType `json:"publisherType,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go deleted file mode 100644 index e2ff04da7e48..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameterproperties.go +++ /dev/null @@ -1,8 +0,0 @@ -package namespacetopics - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NamespaceTopicUpdateParameterProperties struct { - EventRetentionInDays *int64 `json:"eventRetentionInDays,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go deleted file mode 100644 index 520c08e31bac..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_namespacetopicupdateparameters.go +++ /dev/null @@ -1,8 +0,0 @@ -package namespacetopics - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NamespaceTopicUpdateParameters struct { - Properties *NamespaceTopicUpdateParameterProperties `json:"properties,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go deleted file mode 100644 index 2f4db5cc2b3d..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicregeneratekeyrequest.go +++ /dev/null @@ -1,8 +0,0 @@ -package namespacetopics - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type TopicRegenerateKeyRequest struct { - KeyName string `json:"keyName"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go deleted file mode 100644 index 5f3a72b8506e..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/model_topicsharedaccesskeys.go +++ /dev/null @@ -1,9 +0,0 @@ -package namespacetopics - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type TopicSharedAccessKeys struct { - Key1 *string `json:"key1,omitempty"` - Key2 *string `json:"key2,omitempty"` -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go deleted file mode 100644 index 3c6a5cbed3a9..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/predicates.go +++ /dev/null @@ -1,27 +0,0 @@ -package namespacetopics - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -type NamespaceTopicOperationPredicate struct { - Id *string - Name *string - Type *string -} - -func (p NamespaceTopicOperationPredicate) Matches(input NamespaceTopic) bool { - - if p.Id != nil && (input.Id == nil || *p.Id != *input.Id) { - return false - } - - if p.Name != nil && (input.Name == nil || *p.Name != *input.Name) { - return false - } - - if p.Type != nil && (input.Type == nil || *p.Type != *input.Type) { - return false - } - - return true -} diff --git a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go b/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go deleted file mode 100644 index cb3b44173291..000000000000 --- a/vendor/github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics/version.go +++ /dev/null @@ -1,10 +0,0 @@ -package namespacetopics - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See NOTICE.txt in the project root for license information. - -const defaultApiVersion = "2023-12-15-preview" - -func userAgent() string { - return "hashicorp/go-azure-sdk/namespacetopics/2023-12-15-preview" -} diff --git a/vendor/modules.txt b/vendor/modules.txt index 96ad7340dadd..766e6729e3d5 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -560,7 +560,6 @@ github.com/hashicorp/go-azure-sdk/resource-manager/elasticsan/2023-01-01/snapsho github.com/hashicorp/go-azure-sdk/resource-manager/elasticsan/2023-01-01/volumegroups github.com/hashicorp/go-azure-sdk/resource-manager/elasticsan/2023-01-01/volumes github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespaces -github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2023-12-15-preview/namespacetopics github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15 github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/cacertificates github.com/hashicorp/go-azure-sdk/resource-manager/eventgrid/2025-02-15/channels From c40f11d05729e0b2e80e8981ff1da77539fb4cfa Mon Sep 17 00:00:00 2001 From: sreallymatt <106555974+sreallymatt@users.noreply.github.com> Date: Wed, 1 Apr 2026 10:52:04 -0600 Subject: [PATCH 5/5] tests: rename for consistency with generated identity test --- .../eventgrid/eventgrid_namespace_topic_resource_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go index 167dc46b7df8..c9c85d015b9f 100644 --- a/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go +++ b/internal/services/eventgrid/eventgrid_namespace_topic_resource_test.go @@ -18,7 +18,7 @@ import ( type EventgridNamespaceTopicResource struct{} -func TestAccEventgridNamespaceTopicResource_basic(t *testing.T) { +func TestAccEventgridNamespaceTopic_basic(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") r := EventgridNamespaceTopicResource{} @@ -33,7 +33,7 @@ func TestAccEventgridNamespaceTopicResource_basic(t *testing.T) { }) } -func TestAccEventgridNamespaceTopicResource_requiresImport(t *testing.T) { +func TestAccEventgridNamespaceTopic_requiresImport(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") r := EventgridNamespaceTopicResource{} @@ -48,7 +48,7 @@ func TestAccEventgridNamespaceTopicResource_requiresImport(t *testing.T) { }) } -func TestAccEventgridNamespaceTopicResource_complete(t *testing.T) { +func TestAccEventgridNamespaceTopic_complete(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") r := EventgridNamespaceTopicResource{} @@ -63,7 +63,7 @@ func TestAccEventgridNamespaceTopicResource_complete(t *testing.T) { }) } -func TestAccEventgridNamespaceTopicResource_update(t *testing.T) { +func TestAccEventgridNamespaceTopic_update(t *testing.T) { data := acceptance.BuildTestData(t, "azurerm_eventgrid_namespace_topic", "test") r := EventgridNamespaceTopicResource{}