From 183a4ea614e14bb67154bb80972b99c37fda06c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Marti=CC=81nez=20Bernardo?= Date: Mon, 20 Jul 2026 17:17:15 +0200 Subject: [PATCH] [Azure Event Grid] Add outbound end-to-end coverage --- Datadog.Trace.Samples.g.sln | 14 + Datadog.Trace.sln | 14 + docker-compose.yml | 12 +- docker/eventgrid-emulator-config.json | 5 + .../PackageVersionsGeneratorDefinitions.json | 22 + .../build/PackageVersionsLatestMajors.g.props | 162 ++ .../build/PackageVersionsLatestMinors.g.props | 1890 +++++++++++++++++ .../PackageVersionsLatestSpecific.g.props | 216 ++ .../Azure/AzureEventGridNamespacesTests.cs | 67 + .../Azure/AzureEventGridTests.cs | 123 ++ .../PackageVersions.g.cs | 4 + .../PackageVersionsLatestMajors.g.cs | 83 + .../PackageVersionsLatestMinors.g.cs | 371 ++++ .../PackageVersionsLatestSpecific.g.cs | 92 + .../Samples.AzureEventGrid/Program.cs | 165 ++ .../Samples.AzureEventGrid.csproj | 18 + .../Program.cs | 108 + .../Samples.AzureEventGridNamespaces.csproj | 13 + 18 files changed, 3378 insertions(+), 1 deletion(-) create mode 100644 docker/eventgrid-emulator-config.json create mode 100644 tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridNamespacesTests.cs create mode 100644 tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridTests.cs create mode 100644 tracer/test/test-applications/integrations/Samples.AzureEventGrid/Program.cs create mode 100644 tracer/test/test-applications/integrations/Samples.AzureEventGrid/Samples.AzureEventGrid.csproj create mode 100644 tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Program.cs create mode 100644 tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Samples.AzureEventGridNamespaces.csproj diff --git a/Datadog.Trace.Samples.g.sln b/Datadog.Trace.Samples.g.sln index 486ff523abfd..ccd18757a164 100644 --- a/Datadog.Trace.Samples.g.sln +++ b/Datadog.Trace.Samples.g.sln @@ -387,6 +387,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.DataStreams.AzureSe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.AzureEventHubs", "tracer\test\test-applications\integrations\Samples.AzureEventHubs\Samples.AzureEventHubs.csproj", "{BC44A41F-1BED-4438-9F66-0EA5607906D7}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.AzureEventGrid", "tracer\test\test-applications\integrations\Samples.AzureEventGrid\Samples.AzureEventGrid.csproj", "{A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.AzureEventGridNamespaces", "tracer\test\test-applications\integrations\Samples.AzureEventGridNamespaces\Samples.AzureEventGridNamespaces.csproj", "{A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.AWS.DynamoDBv2", "tracer\test\test-applications\integrations\Samples.AWS.DynamoDBv2\Samples.AWS.DynamoDBv2.csproj", "{D59C5649-BE0E-4A33-B868-B652D8614534}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.Amazon.Lambda.RuntimeSupport", "tracer\test\test-applications\integrations\Samples.Amazon.Lambda.RuntimeSupport\Samples.Amazon.Lambda.RuntimeSupport.csproj", "{18A6904A-5AFD-4816-AC3F-9F5E433720B5}" @@ -969,6 +973,14 @@ Global {BC44A41F-1BED-4438-9F66-0EA5607906D7}.Debug|Any CPU.Build.0 = Debug|Any CPU {BC44A41F-1BED-4438-9F66-0EA5607906D7}.Release|Any CPU.ActiveCfg = Release|Any CPU {BC44A41F-1BED-4438-9F66-0EA5607906D7}.Release|Any CPU.Build.0 = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Release|Any CPU.Build.0 = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Release|Any CPU.Build.0 = Release|Any CPU {D59C5649-BE0E-4A33-B868-B652D8614534}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D59C5649-BE0E-4A33-B868-B652D8614534}.Debug|Any CPU.Build.0 = Debug|Any CPU {D59C5649-BE0E-4A33-B868-B652D8614534}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -1254,6 +1266,8 @@ Global {BC44A41F-1BED-4438-9F66-0EA5607906D6} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {56DE0D44-E9E5-48DA-BAEA-2934B1E28D4E} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {BC44A41F-1BED-4438-9F66-0EA5607906D7} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {D59C5649-BE0E-4A33-B868-B652D8614534} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {18A6904A-5AFD-4816-AC3F-9F5E433720B5} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {23EA38E3-0BF1-40DF-A52D-C34EA2FB3F26} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} diff --git a/Datadog.Trace.sln b/Datadog.Trace.sln index 1b8ff4771f97..03008c27d2e9 100644 --- a/Datadog.Trace.sln +++ b/Datadog.Trace.sln @@ -537,6 +537,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.DataStreams.AzureSe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.AzureEventHubs", "tracer\test\test-applications\integrations\Samples.AzureEventHubs\Samples.AzureEventHubs.csproj", "{BC44A41F-1BED-4438-9F66-0EA5607906D7}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.AzureEventGrid", "tracer\test\test-applications\integrations\Samples.AzureEventGrid\Samples.AzureEventGrid.csproj", "{A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Samples.AzureEventGridNamespaces", "tracer\test\test-applications\integrations\Samples.AzureEventGridNamespaces\Samples.AzureEventGridNamespaces.csproj", "{A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}" +EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Datadog.Trace.Tools.dd_dotnet", "tracer\src\Datadog.Trace.Tools.dd_dotnet\Datadog.Trace.Tools.dd_dotnet.csproj", "{B28A33A4-C694-4514-BC30-2680605B0B3D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Datadog.Trace.Tools.dd_dotnet.ArtifactTests", "tracer\test\Datadog.Trace.Tools.dd_dotnet.ArtifactTests\Datadog.Trace.Tools.dd_dotnet.ArtifactTests.csproj", "{604CE6F2-9E90-4D0B-91CB-EBA06880A7D7}" @@ -1375,6 +1379,14 @@ Global {BC44A41F-1BED-4438-9F66-0EA5607906D7}.Debug|Any CPU.Build.0 = Debug|Any CPU {BC44A41F-1BED-4438-9F66-0EA5607906D7}.Release|Any CPU.ActiveCfg = Release|Any CPU {BC44A41F-1BED-4438-9F66-0EA5607906D7}.Release|Any CPU.Build.0 = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C}.Release|Any CPU.Build.0 = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D}.Release|Any CPU.Build.0 = Release|Any CPU {B28A33A4-C694-4514-BC30-2680605B0B3D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B28A33A4-C694-4514-BC30-2680605B0B3D}.Debug|Any CPU.Build.0 = Debug|Any CPU {B28A33A4-C694-4514-BC30-2680605B0B3D}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -1784,6 +1796,8 @@ Global {BC44A41F-1BED-4438-9F66-0EA5607906D6} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {56DE0D44-E9E5-48DA-BAEA-2934B1E28D4E} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {BC44A41F-1BED-4438-9F66-0EA5607906D7} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8C} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} + {A2E3F4D5-B6C7-4891-9012-3D4E5F6A7B8D} = {BAF8F246-3645-42AD-B1D0-0F7EAFBAB34A} {B28A33A4-C694-4514-BC30-2680605B0B3D} = {9E5F0022-0A50-40BF-AC6A-C3078585ECAB} {604CE6F2-9E90-4D0B-91CB-EBA06880A7D7} = {8CEC2042-F11C-49F5-A674-2355793B600A} {A9632530-0FB8-4156-BD3C-DD432527768E} = {8CEC2042-F11C-49F5-A674-2355793B600A} diff --git a/docker-compose.yml b/docker-compose.yml index bbd5fac6b772..d3e01e0a8f04 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -273,6 +273,14 @@ services: volumes: - ./docker/eventhubs-emulator-config.json:/Eventhubs_Emulator/ConfigFiles/Config.json:ro + azure-eventgrid-emulator: + image: workleap/eventgridemulator:0.6.37@sha256:a366e9bf0c73979311654d98f4cb91f85e35cddd8333821f5a5029692b6002bb + profiles: ["group2"] + ports: + - "127.0.0.1:6500:6500" + volumes: + - ./docker/eventgrid-emulator-config.json:/app/appsettings.json:ro + cosmosdb-emulator: image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview@sha256:54d7bc334494c50cea867c270880671a7db080626a9732832b34c0d69342f9b0 profiles: ["group2"] @@ -456,6 +464,7 @@ services: - COUCHBASE_PORT=8091 - ASB_CONNECTION_STRING=Endpoint=sb://azureservicebus-emulator:5672;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true; - EVENTHUBS_CONNECTION_STRING=Endpoint=sb://azure-eventhubs-emulator:5672;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true; + - EVENTGRID_TOPIC_ENDPOINT=http://azure-eventgrid-emulator:6500/samples-eventgrid-topic/api/events - COSMOSDB_ENDPOINT=https://cosmosdb-emulator:8081 - TEST_AGENT_HOST=test-agent - CONTAINER_HOSTNAME=http://integrationtests @@ -683,11 +692,12 @@ services: - azureservicebus-emulator - azurite - azure-eventhubs-emulator + - azure-eventgrid-emulator - cosmosdb-emulator - test-agent environment: - TIMEOUT_LENGTH=120 - command: elasticsearch5:9200 elasticsearch6:9200 elasticsearch7:9200 mongo:27017 localstack:4566 sqledge:1433 azureservicebus-emulator:5672 azure-eventhubs-emulator:5672 cosmosdb-emulator:8081 test-agent:8126 test-agent:4317 test-agent:4318 + command: elasticsearch5:9200 elasticsearch6:9200 elasticsearch7:9200 mongo:27017 localstack:4566 sqledge:1433 azureservicebus-emulator:5672 azure-eventhubs-emulator:5672 azure-eventgrid-emulator:6500 cosmosdb-emulator:8081 test-agent:8126 test-agent:4317 test-agent:4318 IntegrationTests.ARM64: build: diff --git a/docker/eventgrid-emulator-config.json b/docker/eventgrid-emulator-config.json new file mode 100644 index 000000000000..757f3ef14cbe --- /dev/null +++ b/docker/eventgrid-emulator-config.json @@ -0,0 +1,5 @@ +{ + "Topics": { + "samples-eventgrid-topic": [] + } +} diff --git a/tracer/build/PackageVersionsGeneratorDefinitions.json b/tracer/build/PackageVersionsGeneratorDefinitions.json index 5b308537a731..9574529588cb 100644 --- a/tracer/build/PackageVersionsGeneratorDefinitions.json +++ b/tracer/build/PackageVersionsGeneratorDefinitions.json @@ -959,6 +959,28 @@ "5.*.*" ] }, + { + "IntegrationName": "AzureEventGrid", + "SampleProjectName": "Samples.AzureEventGrid", + "NugetPackageSearchName": "Azure.Messaging.EventGrid", + "MinVersion": "4.0.0", + "MaxVersionExclusive": "6.0.0", + "SpecificVersions": [ + "4.0.*", + "5.*.*" + ] + }, + { + "IntegrationName": "AzureEventGridNamespaces", + "SampleProjectName": "Samples.AzureEventGridNamespaces", + "NugetPackageSearchName": "Azure.Messaging.EventGrid.Namespaces", + "MinVersion": "1.0.0", + "MaxVersionExclusive": "2.0.0", + "SpecificVersions": [ + "1.0.*", + "1.*.*" + ] + }, { "IntegrationName": "Selenium", "SampleProjectName": "Samples.Selenium", diff --git a/tracer/build/PackageVersionsLatestMajors.g.props b/tracer/build/PackageVersionsLatestMajors.g.props index 6854289d9971..75fe472b11df 100644 --- a/tracer/build/PackageVersionsLatestMajors.g.props +++ b/tracer/build/PackageVersionsLatestMajors.g.props @@ -6714,6 +6714,168 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely All Samples.AzureEventHubs + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + None + Samples.AzureEventGridNamespaces + ApiVersion=4.46.0;RestoreRecursive=false;BuildProjectReferences=false net48 diff --git a/tracer/build/PackageVersionsLatestMinors.g.props b/tracer/build/PackageVersionsLatestMinors.g.props index be48b7d76d47..03b50c8b3bea 100644 --- a/tracer/build/PackageVersionsLatestMinors.g.props +++ b/tracer/build/PackageVersionsLatestMinors.g.props @@ -45549,6 +45549,1896 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely All Samples.AzureEventHubs + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.1.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.2.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.3.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.4.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.5.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.6.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.7.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.8.2;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.9.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.10.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.11.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.12.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.13.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.14.1;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.15.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.16.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.17.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.18.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.19.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.20.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.21.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.22.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.23.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.24.1;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.25.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.26.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.27.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.28.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.29.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.30.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.31.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + None + Samples.AzureEventGridNamespaces + ApiVersion=4.0.1;RestoreRecursive=false;BuildProjectReferences=false net48 diff --git a/tracer/build/PackageVersionsLatestSpecific.g.props b/tracer/build/PackageVersionsLatestSpecific.g.props index f8cf0da6a4e6..084862b610ea 100644 --- a/tracer/build/PackageVersionsLatestSpecific.g.props +++ b/tracer/build/PackageVersionsLatestSpecific.g.props @@ -9396,6 +9396,222 @@ NOTE: This code was generated by the GeneratePackageVersions tool. To safely All Samples.AzureEventHubs + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + All + Samples.AzureEventGrid + + + ApiVersion=4.0.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=5.0.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + All + Samples.AzureEventGrid + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp2.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + netcoreapp3.1 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net5.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net6.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net7.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net8.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net9.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.0.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + None + Samples.AzureEventGridNamespaces + + + ApiVersion=1.1.0;RestoreRecursive=false;BuildProjectReferences=false + net10.0 + None + Samples.AzureEventGridNamespaces + ApiVersion=4.0.1;RestoreRecursive=false;BuildProjectReferences=false net48 diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridNamespacesTests.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridNamespacesTests.cs new file mode 100644 index 000000000000..85a4dd8452b8 --- /dev/null +++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridNamespacesTests.cs @@ -0,0 +1,67 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Datadog.Trace.TestHelpers; +using FluentAssertions; +using FluentAssertions.Execution; +using Xunit; +using Xunit.Abstractions; + +namespace Datadog.Trace.ClrProfiler.IntegrationTests.Azure +{ + [Trait("Category", "ArmUnsupported")] + public class AzureEventGridNamespacesTests : TracingIntegrationTest + { + private const string ExpectedOperationName = "azure_eventgrid.send"; + + public AzureEventGridNamespacesTests(ITestOutputHelper output) + : base("AzureEventGridNamespaces", output) + { + SetEnvironmentVariable("DD_TRACE_AZUREEVENTGRID_ENABLED", "true"); + } + + public static IEnumerable GetEnabledConfig() + => from packageVersionArray in PackageVersions.AzureEventGridNamespaces + from metadataSchemaVersion in new[] { "v0", "v1" } + from testMode in new[] { "Send", "SendAsync", "SendBatch", "SendBatchAsync" } + select new[] { packageVersionArray[0], metadataSchemaVersion, testMode }; + + public override Result ValidateIntegrationSpan(MockSpan span, string metadataSchemaVersion) => + span.Tags["span.kind"] switch + { + SpanKinds.Producer => span.IsAzureEventGridOutbound(metadataSchemaVersion), + _ => throw new ArgumentException($"span.Tags[\"span.kind\"] is not a supported value for the Azure Event Grid integration: {span.Tags["span.kind"]}", nameof(span)), + }; + + [SkippableTheory] + [MemberData(nameof(GetEnabledConfig))] + [Trait("Category", "EndToEnd")] + public async Task SubmitCloudEvents(string packageVersion, string metadataSchemaVersion, string testMode) + { + SetEnvironmentVariable("DD_TRACE_SPAN_ATTRIBUTE_SCHEMA", metadataSchemaVersion); + SetEnvironmentVariable("EVENTGRID_TEST_MODE", testMode); + + using (var agent = EnvironmentHelper.GetMockAgent()) + using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion)) + { + var spans = await agent.WaitForSpansAsync(1, timeoutInMilliseconds: 5_000, operationName: ExpectedOperationName, assertExpectedCount: false); + + using var scope = new AssertionScope(); + var span = spans.Should().ContainSingle($"Expected one producer span for EventGridSenderClient.{testMode}").Which; + ValidateIntegrationSpan(span, metadataSchemaVersion).Success.Should().BeTrue(); + span.Resource.Should().Be("eventgrid"); + + if (testMode.IndexOf("Batch", StringComparison.Ordinal) >= 0) + { + span.Tags["messaging.batch.message_count"].Should().Be("3"); + } + } + } + } +} diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridTests.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridTests.cs new file mode 100644 index 000000000000..038759cf4898 --- /dev/null +++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/Azure/AzureEventGridTests.cs @@ -0,0 +1,123 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Datadog.Trace.TestHelpers; +using FluentAssertions; +using FluentAssertions.Execution; +using Xunit; +using Xunit.Abstractions; + +namespace Datadog.Trace.ClrProfiler.IntegrationTests.Azure +{ + [Trait("RequiresDockerDependency", "true")] + [Trait("DockerGroup", "2")] + [Trait("Category", "ArmUnsupported")] + public class AzureEventGridTests : TracingIntegrationTest + { + private const string DefaultTopicEndpoint = "http://localhost:6500/samples-eventgrid-topic/api/events"; + private const string ExpectedOperationName = "azure_eventgrid.send"; + + private static readonly string PublisherHost = + new Uri(Environment.GetEnvironmentVariable("EVENTGRID_TOPIC_ENDPOINT") ?? DefaultTopicEndpoint).Host; + + private static readonly object[][] PublisherTestCases = + [ + ["SendEventGridEvent", null, true], + ["SendEventGridEventAsync", null, true], + ["SendEventGridEvents", 3, false], + ["SendEventGridEventsAsync", 3, false], + ["SendBinaryDataEvent", null, false], + ["SendBinaryDataEventAsync", null, false], + ["SendBinaryDataEvents", 3, false], + ["SendBinaryDataEventsAsync", 3, false], + ["SendCloudEvent", null, true], + ["SendCloudEventAsync", null, true], + ["SendCloudEvents", 3, false], + ["SendCloudEventsAsync", 3, false], + ]; + + private static readonly object[][] PartnerChannelTestCases = + [ + ["SendCloudEventToChannel", null, true], + ["SendCloudEventsToChannel", 3, false], + ["SendCloudEventToChannelAsync", null, true], + ["SendCloudEventsToChannelAsync", 3, false], + ]; + + public AzureEventGridTests(ITestOutputHelper output) + : base("AzureEventGrid", output) + { + SetEnvironmentVariable("DD_TRACE_AZUREEVENTGRID_ENABLED", "true"); + } + + public static IEnumerable GetEnabledConfig() + => from packageVersionArray in PackageVersions.AzureEventGrid + from metadataSchemaVersion in new[] { "v0", "v1" } + from testCase in PublisherTestCases + select new[] { packageVersionArray[0], metadataSchemaVersion }.Concat(testCase).ToArray(); + + // Partner channel overloads were introduced in Azure.Messaging.EventGrid 4.11.0. + public static IEnumerable GetPartnerChannelEnabledConfig() + => from packageVersionArray in PackageVersions.AzureEventGrid + let packageVersion = (string)packageVersionArray[0] + where string.IsNullOrEmpty(packageVersion) || new Version(packageVersion) >= new Version(4, 11, 0) + from metadataSchemaVersion in new[] { "v0", "v1" } + from testCase in PartnerChannelTestCases + select new object[] { packageVersion, metadataSchemaVersion }.Concat(testCase).ToArray(); + + public override Result ValidateIntegrationSpan(MockSpan span, string metadataSchemaVersion) => + span.Tags["span.kind"] switch + { + SpanKinds.Producer => span.IsAzureEventGridOutbound(metadataSchemaVersion), + _ => throw new ArgumentException($"span.Tags[\"span.kind\"] is not a supported value for the Azure EventGrid integration: {span.Tags["span.kind"]}", nameof(span)), + }; + + [SkippableTheory] + [MemberData(nameof(GetEnabledConfig))] + [MemberData(nameof(GetPartnerChannelEnabledConfig))] + [Trait("Category", "EndToEnd")] + public async Task SubmitEvents(string packageVersion, string metadataSchemaVersion, string testMode, int? expectedBatchMessageCount, bool expectMessageId) + { + SetEnvironmentVariable("DD_TRACE_SPAN_ATTRIBUTE_SCHEMA", metadataSchemaVersion); + SetEnvironmentVariable("EVENTGRID_TEST_MODE", testMode); + + using (var agent = EnvironmentHelper.GetMockAgent()) + using (await RunSampleAndWaitForExit(agent, packageVersion: packageVersion)) + { + var spans = await agent.WaitForSpansAsync(1, timeoutInMilliseconds: 5_000, operationName: ExpectedOperationName, assertExpectedCount: false); + + using var s = new AssertionScope(); + var span = spans.Should().ContainSingle($"Expected one producer span for azure_eventgrid.send ({testMode})").Which; + var result = ValidateIntegrationSpan(span, metadataSchemaVersion); + result.Success.Should().BeTrue($"Span validation failed: {result}"); + + span.Tags["network.destination.name"].Should().Be(PublisherHost); + span.Resource.Should().Be("eventgrid"); + + if (expectedBatchMessageCount is { } batchMessageCount) + { + span.Tags.Should().ContainKey("messaging.batch.message_count").WhoseValue.Should().Be(batchMessageCount.ToString()); + } + else + { + span.Tags.Should().NotContainKey("messaging.batch.message_count"); + } + + if (expectMessageId) + { + span.Tags.Should().ContainKey("messaging.message_id").WhoseValue.Should().NotBeNullOrEmpty(); + } + else + { + span.Tags.Should().NotContainKey("messaging.message_id"); + } + } + } + } +} diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersions.g.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersions.g.cs index 43271741e358..9602489d2b71 100644 --- a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersions.g.cs +++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersions.g.cs @@ -136,6 +136,10 @@ public class PackageVersions public static IEnumerable AzureEventHubs => IsAllMinorPackageVersions ? PackageVersionsLatestMinors.AzureEventHubs : PackageVersionsLatestSpecific.AzureEventHubs; + public static IEnumerable AzureEventGrid => IsAllMinorPackageVersions ? PackageVersionsLatestMinors.AzureEventGrid : PackageVersionsLatestSpecific.AzureEventGrid; + + public static IEnumerable AzureEventGridNamespaces => IsAllMinorPackageVersions ? PackageVersionsLatestMinors.AzureEventGridNamespaces : PackageVersionsLatestSpecific.AzureEventGridNamespaces; + public static IEnumerable Selenium => IsAllMinorPackageVersions ? PackageVersionsLatestMinors.Selenium : PackageVersionsLatestSpecific.Selenium; public static IEnumerable OpenFeature => IsAllMinorPackageVersions ? PackageVersionsLatestMinors.OpenFeature : PackageVersionsLatestSpecific.OpenFeature; diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMajors.g.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMajors.g.cs index b30c0bb5260a..705a6038f591 100644 --- a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMajors.g.cs +++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMajors.g.cs @@ -2704,6 +2704,89 @@ public class PackageVersionsLatestMajors #if NET10_0 new object[] { "5.12.2" }, #endif +#endif + }; + + public static IEnumerable AzureEventGrid => + + new List + { +#if DEFAULT_SAMPLES + new object[] { string.Empty }, +#else +#if NETCOREAPP2_1 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NETCOREAPP3_0 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NETCOREAPP3_1 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET5_0 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET6_0 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET7_0 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET8_0 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET9_0 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET10_0 + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#endif + }; + + public static IEnumerable AzureEventGridNamespaces => + + new List + { +#if DEFAULT_SAMPLES + new object[] { string.Empty }, +#else +#if NETCOREAPP2_1 + new object[] { "1.1.0" }, +#endif +#if NETCOREAPP3_0 + new object[] { "1.1.0" }, +#endif +#if NETCOREAPP3_1 + new object[] { "1.1.0" }, +#endif +#if NET5_0 + new object[] { "1.1.0" }, +#endif +#if NET6_0 + new object[] { "1.1.0" }, +#endif +#if NET7_0 + new object[] { "1.1.0" }, +#endif +#if NET8_0 + new object[] { "1.1.0" }, +#endif +#if NET9_0 + new object[] { "1.1.0" }, +#endif +#if NET10_0 + new object[] { "1.1.0" }, +#endif #endif }; diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs index 80db08c2c5c5..ddd0de669a87 100644 --- a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs +++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestMinors.g.cs @@ -9036,6 +9036,377 @@ public class PackageVersionsLatestMinors new object[] { "5.11.6" }, new object[] { "5.12.2" }, #endif +#endif + }; + + public static IEnumerable AzureEventGrid => + + new List + { +#if DEFAULT_SAMPLES + new object[] { string.Empty }, +#else +#if NETCOREAPP2_1 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NETCOREAPP3_0 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NETCOREAPP3_1 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET5_0 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET6_0 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET7_0 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET8_0 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET9_0 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#if NET10_0 + new object[] { "4.0.0" }, + new object[] { "4.1.0" }, + new object[] { "4.2.0" }, + new object[] { "4.3.0" }, + new object[] { "4.4.0" }, + new object[] { "4.5.0" }, + new object[] { "4.6.0" }, + new object[] { "4.7.0" }, + new object[] { "4.8.2" }, + new object[] { "4.9.0" }, + new object[] { "4.10.0" }, + new object[] { "4.11.0" }, + new object[] { "4.12.0" }, + new object[] { "4.13.0" }, + new object[] { "4.14.1" }, + new object[] { "4.15.0" }, + new object[] { "4.16.0" }, + new object[] { "4.17.0" }, + new object[] { "4.18.0" }, + new object[] { "4.19.0" }, + new object[] { "4.20.0" }, + new object[] { "4.21.0" }, + new object[] { "4.22.0" }, + new object[] { "4.23.0" }, + new object[] { "4.24.1" }, + new object[] { "4.25.0" }, + new object[] { "4.26.0" }, + new object[] { "4.27.0" }, + new object[] { "4.28.0" }, + new object[] { "4.29.0" }, + new object[] { "4.30.0" }, + new object[] { "4.31.0" }, + new object[] { "5.0.0" }, +#endif +#endif + }; + + public static IEnumerable AzureEventGridNamespaces => + + new List + { +#if DEFAULT_SAMPLES + new object[] { string.Empty }, +#else +#if NETCOREAPP2_1 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NETCOREAPP3_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NETCOREAPP3_1 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET5_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET6_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET7_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET8_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET9_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET10_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif #endif }; diff --git a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestSpecific.g.cs b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestSpecific.g.cs index 93cb4d00ce0e..49ea1754ce8b 100644 --- a/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestSpecific.g.cs +++ b/tracer/test/Datadog.Trace.ClrProfiler.IntegrationTests/PackageVersionsLatestSpecific.g.cs @@ -3139,6 +3139,98 @@ public class PackageVersionsLatestSpecific new object[] { "5.11.6" }, new object[] { "5.12.2" }, #endif +#endif + }; + + public static IEnumerable AzureEventGrid => + + new List + { +#if DEFAULT_SAMPLES + new object[] { string.Empty }, +#else +#if NETCOREAPP2_1 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NETCOREAPP3_0 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NETCOREAPP3_1 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NET5_0 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NET6_0 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NET7_0 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NET8_0 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NET9_0 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#if NET10_0 + new object[] { "4.0.0" }, + new object[] { "5.0.0" }, +#endif +#endif + }; + + public static IEnumerable AzureEventGridNamespaces => + + new List + { +#if DEFAULT_SAMPLES + new object[] { string.Empty }, +#else +#if NETCOREAPP2_1 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NETCOREAPP3_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NETCOREAPP3_1 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET5_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET6_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET7_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET8_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET9_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif +#if NET10_0 + new object[] { "1.0.0" }, + new object[] { "1.1.0" }, +#endif #endif }; diff --git a/tracer/test/test-applications/integrations/Samples.AzureEventGrid/Program.cs b/tracer/test/test-applications/integrations/Samples.AzureEventGrid/Program.cs new file mode 100644 index 000000000000..8a6acc45b09c --- /dev/null +++ b/tracer/test/test-applications/integrations/Samples.AzureEventGrid/Program.cs @@ -0,0 +1,165 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +using System; +using System.Collections.Generic; +using System.Text.Json; +using System.Threading.Tasks; +using Azure; +using Azure.Messaging; +using Azure.Messaging.EventGrid; + +namespace Samples.AzureEventGrid +{ + public enum TestMode + { + SendEventGridEvent, + SendEventGridEventAsync, + SendEventGridEvents, + SendEventGridEventsAsync, + SendBinaryDataEvent, + SendBinaryDataEventAsync, + SendBinaryDataEvents, + SendBinaryDataEventsAsync, + SendCloudEvent, + SendCloudEventAsync, + SendCloudEvents, + SendCloudEventsAsync, + SendCloudEventToChannel, + SendCloudEventsToChannel, + SendCloudEventToChannelAsync, + SendCloudEventsToChannelAsync, + } + + public class Program + { + private static readonly string TopicEndpoint = + Environment.GetEnvironmentVariable("EVENTGRID_TOPIC_ENDPOINT") ?? + "http://localhost:6500/samples-eventgrid-topic/api/events"; + + private static readonly string TopicKey = + Environment.GetEnvironmentVariable("EVENTGRID_TOPIC_KEY") ?? + "test-key"; + + public static async Task Main(string[] args) + { + var testModeString = Environment.GetEnvironmentVariable("EVENTGRID_TEST_MODE"); + Console.WriteLine($"Starting Azure Event Grid Test Sample - Mode: {testModeString ?? "Default"}"); + Console.WriteLine($"Connecting to: {TopicEndpoint}"); + + if (string.IsNullOrEmpty(testModeString) || !Enum.TryParse(testModeString, ignoreCase: true, out var testMode)) + { + throw new ArgumentException($"Invalid or missing EVENTGRID_TEST_MODE. Expected one of: {string.Join(", ", Enum.GetNames(typeof(TestMode)))}. Got: '{testModeString ?? "null"}'"); + } + + var client = new EventGridPublisherClient( + new Uri(TopicEndpoint), + new AzureKeyCredential(TopicKey)); + + switch (testMode) + { + case TestMode.SendEventGridEvent: + client.SendEvent(CreateEventGridEvent("1")); + break; + case TestMode.SendEventGridEventAsync: + await client.SendEventAsync(CreateEventGridEvent("1")); + break; + case TestMode.SendEventGridEvents: + client.SendEvents(CreateEventGridEvents()); + break; + case TestMode.SendEventGridEventsAsync: + await client.SendEventsAsync(CreateEventGridEvents()); + break; + case TestMode.SendBinaryDataEvent: + client.SendEvent(CreateBinaryDataEvent("1")); + break; + case TestMode.SendBinaryDataEventAsync: + await client.SendEventAsync(CreateBinaryDataEvent("1")); + break; + case TestMode.SendBinaryDataEvents: + client.SendEvents(CreateBinaryDataEvents()); + break; + case TestMode.SendBinaryDataEventsAsync: + await client.SendEventsAsync(CreateBinaryDataEvents()); + break; + case TestMode.SendCloudEvent: + client.SendEvent(CreateCloudEvent("1")); + break; + case TestMode.SendCloudEventAsync: + await client.SendEventAsync(CreateCloudEvent("1")); + break; + case TestMode.SendCloudEvents: + client.SendEvents(CreateCloudEvents()); + break; + case TestMode.SendCloudEventsAsync: + await client.SendEventsAsync(CreateCloudEvents()); + break; + + // The dynamic calls preserve compilation against pre-4.11 packages, which do not define the partner-channel overloads. + case TestMode.SendCloudEventToChannel: + ((dynamic)client).SendEvent(CreateCloudEvent("1"), "test-channel"); + break; + case TestMode.SendCloudEventsToChannel: + ((dynamic)client).SendEvents(CreateCloudEvents(), "test-channel"); + break; + case TestMode.SendCloudEventToChannelAsync: + await ((dynamic)client).SendEventAsync(CreateCloudEvent("1"), "test-channel"); + break; + case TestMode.SendCloudEventsToChannelAsync: + await ((dynamic)client).SendEventsAsync(CreateCloudEvents(), "test-channel"); + break; + default: + throw new ArgumentException($"Unhandled test mode: {testMode}"); + } + } + + private static IEnumerable CreateEventGridEvents() + { + yield return CreateEventGridEvent("1"); + yield return CreateEventGridEvent("2"); + yield return CreateEventGridEvent("3"); + } + + private static IEnumerable CreateBinaryDataEvents() + { + yield return CreateBinaryDataEvent("1"); + yield return CreateBinaryDataEvent("2"); + yield return CreateBinaryDataEvent("3"); + } + + private static IEnumerable CreateCloudEvents() + { + yield return CreateCloudEvent("1"); + yield return CreateCloudEvent("2"); + yield return CreateCloudEvent("3"); + } + + private static EventGridEvent CreateEventGridEvent(string suffix) => + new EventGridEvent( + subject: $"Samples.AzureEventGrid/test-subject-{suffix}", + eventType: "Samples.AzureEventGrid.TestEvent", + dataVersion: "1.0", + data: new { message = $"Test event {suffix}", timestamp = DateTimeOffset.UtcNow }); + + private static BinaryData CreateBinaryDataEvent(string suffix) => + new BinaryData( + JsonSerializer.Serialize( + new + { + id = Guid.NewGuid(), + eventType = "Samples.AzureEventGrid.TestEvent", + subject = $"Samples.AzureEventGrid/test-subject-{suffix}", + eventTime = DateTimeOffset.UtcNow, + dataVersion = "1.0", + data = new { message = $"Test custom event {suffix}" }, + })); + + private static CloudEvent CreateCloudEvent(string suffix) => + new CloudEvent( + source: "/Samples.AzureEventGrid/test-source", + type: "Samples.AzureEventGrid.TestCloudEvent", + jsonSerializableData: new { message = $"Test cloud event {suffix}", timestamp = DateTimeOffset.UtcNow }); + } +} diff --git a/tracer/test/test-applications/integrations/Samples.AzureEventGrid/Samples.AzureEventGrid.csproj b/tracer/test/test-applications/integrations/Samples.AzureEventGrid/Samples.AzureEventGrid.csproj new file mode 100644 index 000000000000..57c9d98049cf --- /dev/null +++ b/tracer/test/test-applications/integrations/Samples.AzureEventGrid/Samples.AzureEventGrid.csproj @@ -0,0 +1,18 @@ + + + + 5.0.0 + All + + + + + + + + + + + + + diff --git a/tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Program.cs b/tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Program.cs new file mode 100644 index 000000000000..89e76e8b9211 --- /dev/null +++ b/tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Program.cs @@ -0,0 +1,108 @@ +// +// Unless explicitly stated otherwise all files in this repository are licensed under the Apache 2 License. +// This product includes software developed at Datadog (https://www.datadoghq.com/). Copyright 2017 Datadog, Inc. +// + +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Threading.Tasks; +using Azure; +using Azure.Messaging; +using Azure.Messaging.EventGrid.Namespaces; + +namespace Samples.AzureEventGridNamespaces +{ + public enum TestMode + { + Send, + SendAsync, + SendBatch, + SendBatchAsync, + } + + public class Program + { + public static async Task Main(string[] args) + { + var testModeString = Environment.GetEnvironmentVariable("EVENTGRID_TEST_MODE"); + if (string.IsNullOrEmpty(testModeString) || !Enum.TryParse(testModeString, ignoreCase: true, out var testMode)) + { + throw new ArgumentException($"Invalid or missing EVENTGRID_TEST_MODE. Expected one of: {string.Join(", ", Enum.GetNames(typeof(TestMode)))}. Got: '{testModeString ?? "null"}'"); + } + + using (var server = WebServer.Start(out var endpoint)) + { + server.RequestHandler = ValidateCloudEventRequest; + + var client = new EventGridSenderClient( + new Uri(endpoint), + "samples-eventgrid-topic", + new AzureKeyCredential("test-key")); + + switch (testMode) + { + case TestMode.Send: + client.Send(CreateCloudEvent("1")); + break; + case TestMode.SendAsync: + await client.SendAsync(CreateCloudEvent("1")); + break; + case TestMode.SendBatch: + SendBatch(client); + break; + case TestMode.SendBatchAsync: + await SendBatchAsync(client); + break; + default: + throw new ArgumentOutOfRangeException(nameof(testMode), testMode, "Unhandled test mode"); + } + } + + await SampleHelpers.ForceTracerFlushAsync(); + } + + private static void SendBatch(EventGridSenderClient client) + { + client.Send(CreateCloudEvents()); + } + + private static async Task SendBatchAsync(EventGridSenderClient client) + { + await client.SendAsync(CreateCloudEvents()); + } + + private static IEnumerable CreateCloudEvents() + { + yield return CreateCloudEvent("1"); + yield return CreateCloudEvent("2"); + yield return CreateCloudEvent("3"); + } + + private static CloudEvent CreateCloudEvent(string suffix) => + new CloudEvent( + source: "/Samples.AzureEventGridNamespaces/test-source", + type: "Samples.AzureEventGridNamespaces.TestCloudEvent", + jsonSerializableData: new { message = $"Test cloud event {suffix}", timestamp = DateTimeOffset.UtcNow }); + + private static void ValidateCloudEventRequest(HttpListenerContext context) + { + using (var reader = new StreamReader(context.Request.InputStream, context.Request.ContentEncoding)) + { + var requestContent = reader.ReadToEnd(); + Console.WriteLine($"Event Grid namespace request content: {requestContent}"); + + if (requestContent.IndexOf("\"traceparent\"", StringComparison.Ordinal) < 0) + { + context.Response.StatusCode = (int)HttpStatusCode.BadRequest; + context.Response.Close(); + return; + } + } + + context.Response.StatusCode = (int)HttpStatusCode.OK; + context.Response.Close(); + } + } +} diff --git a/tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Samples.AzureEventGridNamespaces.csproj b/tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Samples.AzureEventGridNamespaces.csproj new file mode 100644 index 000000000000..7b515959ba61 --- /dev/null +++ b/tracer/test/test-applications/integrations/Samples.AzureEventGridNamespaces/Samples.AzureEventGridNamespaces.csproj @@ -0,0 +1,13 @@ + + + + 1.1.0 + + + + + + + + +