Skip to content

Commit 8ebca98

Browse files
[azsystemevents] switch over to use tsp-client (Azure#23830)
As part of this we've moved forward to the latest commit, which has removed Azure Media services events, since that service has been retired.
1 parent da0498b commit 8ebca98

File tree

16 files changed

+357
-3002
lines changed

16 files changed

+357
-3002
lines changed

sdk/messaging/eventgrid/azsystemevents/CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# Release History
22

3-
## 0.5.1 (Unreleased)
3+
## 0.6.0 (Unreleased)
44

55
### Features Added
66

7+
78
### Breaking Changes
89

10+
- Azure Media services has been retired - all related system events have been removed. See the [retirement announcement](https://azure.microsoft.com/updates?id=retirement-notice-azure-media-services-is-being-retired-on-30-june-2024) for more details.
11+
912
### Bugs Fixed
1013

1114
### Other Changes

sdk/messaging/eventgrid/azsystemevents/build.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// Copyright (c) Microsoft Corporation. All rights reserved.
55
// Licensed under the MIT License. See License.txt in the project root for license information.
66

7-
//go:generate pwsh ./testdata/gen.ps1
7+
//go:generate tsp-client update
88
//go:generate goimports -w .
99
//go:generate go run ./internal/generate
1010
//go:generate goimports -w ./..

sdk/messaging/eventgrid/azsystemevents/constants.go

Lines changed: 0 additions & 133 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/messaging/eventgrid/azsystemevents/interfaces.go

Lines changed: 0 additions & 14 deletions
This file was deleted.

sdk/messaging/eventgrid/azsystemevents/internal/generate/generate.go

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ package main
99
import (
1010
"fmt"
1111
"os"
12+
"regexp"
1213
"strings"
1314

1415
"github.com/Azure/azure-sdk-for-go/sdk/messaging/eventgrid/azsystemevents/internal/gopls"
@@ -26,6 +27,10 @@ func main() {
2627
return err
2728
}
2829

30+
if err := deleteUnneededTypes(); err != nil {
31+
return err
32+
}
33+
2934
if err := generateSystemEventEnum(); err != nil {
3035
return err
3136
}
@@ -42,6 +47,71 @@ func main() {
4247
fmt.Printf("DONE\n")
4348
}
4449

50+
// deleteUnneededTypes deletes types that are vestigial. Event Grid system events, in TypeSpec,
51+
// use inheritance. We model this by pushing the parent properties into the child objects, so the
52+
// parent object is not needed.
53+
// NOTE: this is a workaround, I'm running into some conflicting behavior as I move between tsp-client
54+
// and my "homebrew" version calling the powershell scripts directly.
55+
func deleteUnneededTypes() error {
56+
typesToDelete := []string{
57+
"ACSChatEventBaseProperties",
58+
"ACSChatEventInThreadBaseProperties",
59+
"ACSChatMessageEventBaseProperties",
60+
"ACSChatMessageEventInThreadBaseProperties",
61+
"ACSChatThreadEventBaseProperties",
62+
"ACSChatThreadEventInThreadBaseProperties",
63+
"ACSMessageEventData",
64+
"ACSRouterEventData",
65+
"ACSRouterJobEventData",
66+
"ACSRouterWorkerEventData",
67+
"ACSSmsEventBaseProperties",
68+
"AppConfigurationSnapshotEventData",
69+
"AVSClusterEventData",
70+
"AVSPrivateCloudEventData",
71+
"AVSScriptExecutionEventData",
72+
"ContainerRegistryArtifactEventData",
73+
"ContainerRegistryEventData",
74+
"ContainerServiceClusterSupportEventData",
75+
"ContainerServiceNodePoolRollingEventData",
76+
"DeviceConnectionStateEventProperties",
77+
"DeviceLifeCycleEventProperties",
78+
"DeviceTelemetryEventProperties",
79+
"EventGridMQTTClientEventData",
80+
"MapsGeofenceEventProperties",
81+
"ResourceNotificationsResourceDeletedEventData",
82+
"ResourceNotificationsResourceUpdatedEventData",
83+
}
84+
85+
for _, typeToDelete := range typesToDelete {
86+
// ex: // ACSChatEventBaseProperties - Schema of common properties of all chat events
87+
if err := replaceAll("models.go", fmt.Sprintf("(?is)// %s.+?\n}\n", typeToDelete), ""); err != nil {
88+
return err
89+
}
90+
91+
// ex: // MarshalJSON implements the json.Marshaller interface for type ACSChatEventBaseProperties.
92+
// ex: // UnmarshalJSON implements the json.Unmarshaller interface for type ACSChatEventBaseProperties.
93+
if err := replaceAll("models_serde.go",
94+
fmt.Sprintf("(?is)// (?:Marshal|Unmarshal)JSON\\s*implements\\s*the\\s*json\\.(?:Marshaller|Unmarshaller)\\s*interface\\s*for\\s*type\\s*%s.+?\n}\n", typeToDelete), ""); err != nil {
95+
return err
96+
}
97+
}
98+
99+
return nil
100+
}
101+
102+
func replaceAll(filename string, re string, replacement string) error {
103+
buff, err := os.ReadFile(filename)
104+
105+
if err != nil {
106+
return err
107+
}
108+
109+
modelsRE := regexp.MustCompile(re)
110+
buff = modelsRE.ReplaceAll(buff, []byte(replacement))
111+
112+
return os.WriteFile(filename, buff, 0600)
113+
}
114+
45115
// swapErrorTypes handles turning most of the auto-generated errors into a single consistent error type.
46116
// The key is that the Error type doesn't export human readable strings as fields - it's all contained in
47117
// the Error() field.

sdk/messaging/eventgrid/azsystemevents/internal/generate/generate_constants.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func getConstantValues(reader io.ReadCloser) (map[string]constant, error) {
103103
}
104104

105105
if !ignorable {
106-
log.Printf("===========> DIDN'T MATCH REGEX: %q ", comment)
106+
log.Fatalf("Non-system event type not classified: %q ", comment)
107107
}
108108
}
109109

sdk/messaging/eventgrid/azsystemevents/internal/version.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ const (
99
ModuleName = "azsystemevents"
1010

1111
// ModuleVersion is the semantic version (see http://semver.org) of this module.
12-
ModuleVersion = "v0.5.1"
12+
ModuleVersion = "v0.6.0"
1313
)

0 commit comments

Comments
 (0)