[AutoPR Azure.ResourceManager.IotHub]-generated-from-SDK Generation - .NET-6833409 - #62975
azure-sdk-automation[bot] wants to merge 1 commit into
Conversation
…ces/IoTHub/tspconfig.yaml', and CommitSHA: 'aacdbe71d42e2e79ff09699751c2d543e3ecc826' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6833409 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
|
Azure Pipelines: Successfully started running 1 pipeline(s). 12 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🟡 Changes recommended
Critical source and binary compatibility breaks remain in public models and model-factory APIs.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Refreshes Azure.ResourceManager.IotHub from a newer TypeSpec revision and regenerates the .NET management SDK.
Changes:
- Updates the TypeSpec source commit, metadata, and API surfaces.
- Adds Device Registry, MQTT v5, topic-group, and payload-format APIs.
- Regenerates models, serializers, resources, collections, and model factories.
File summaries
| File | Reviewed change |
|---|---|
sdk/iothub/Azure.ResourceManager.IotHub/tsp-location.yaml |
Updates the TypeSpec source commit. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/TopicGroup.Serialization.cs |
Adds topic-group serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/TopicGroup.cs |
Adds the MQTT v5 topic-group model. Nit: use a scoped public name. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingStorageContainerProperties.Serialization.cs |
Updates storage routing serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingStorageContainerProperties.cs |
Adds storage routing payload support. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingServiceBusTopicEndpointProperties.Serialization.cs |
Updates Service Bus topic serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingServiceBusTopicEndpointProperties.cs |
Adds Service Bus topic payload support. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingServiceBusQueueEndpointProperties.Serialization.cs |
Updates Service Bus queue serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingServiceBusQueueEndpointProperties.cs |
Adds Service Bus queue payload support. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingRuleProperties.Serialization.cs |
Updates routing-rule serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingRuleProperties.cs |
Updates routing-rule properties. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingEventStreamProperties.Serialization.cs |
Updates event-stream serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingEventStreamProperties.cs |
Updates event-stream routing properties. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingEventHubProperties.Serialization.cs |
Updates Event Hubs serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingEventHubProperties.cs |
Updates Event Hubs routing properties. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingCosmosDBSqlApiProperties.Serialization.cs |
Updates Cosmos DB routing serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/RoutingCosmosDBSqlApiProperties.cs |
Updates Cosmos DB routing properties. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/MqttV5Settings.Serialization.cs |
Adds MQTT v5 settings serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/MqttV5Settings.cs |
Adds MQTT v5 settings. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/MessagePayloadFormat.cs |
Adds payload-format model. Nit: use an IoT Hub-specific public name. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubProperties.Serialization.cs |
Updates IoT Hub property serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubProperties.cs |
Adds Device Registry and MQTT properties. Critical: preserve the DeviceRegistry setter. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubDeviceRegistry.Serialization.cs |
Adds Device Registry serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubDeviceRegistry.cs |
Updates Device Registry APIs. Critical: preserve the public constructor, NamespaceResourceId setter, and IdentityResourceId. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubCertificatePropertiesWithNonce.Serialization.cs |
Updates nonce certificate serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubCertificatePropertiesWithNonce.cs |
Updates nonce certificate properties. Critical: preserve PolicyResourceId. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubCertificateProperties.Serialization.cs |
Updates certificate serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/IotHubCertificateProperties.cs |
Updates certificate properties. Critical: preserve PolicyResourceId. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/ErrorDetails.Serialization.cs |
Adds error-details serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/ErrorDetails.cs |
Adds linking error details. Nit: use a scoped public name. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/DeviceRegistryLinkingState.cs |
Adds the linking-state enum. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/DeviceRegistryLinkingProperties.Serialization.cs |
Adds linking-properties serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/DeviceRegistryLinkingProperties.cs |
Adds Device Registry linking properties. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/DeviceRegistryIdentityType.cs |
Adds the identity-type enum. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/DeviceRegistryIdentity.Serialization.cs |
Adds identity serialization. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/DeviceRegistryIdentity.cs |
Adds Device Registry identity model. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/ConnectionProfile.cs |
Adds connection-profile model. Nit: use a scoped public name. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Models/AzureResourceManagerIotHubContext.cs |
Registers generated models. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/IotHubPrivateEndpointConnectionResource.cs |
Updates private endpoint resource APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/IotHubPrivateEndpointConnectionCollection.cs |
Updates private endpoint collection APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/IotHubDescriptionResource.cs |
Updates IoT Hub description resource APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/IotHubDescriptionCollection.cs |
Updates IoT Hub description collection APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/IotHubCertificateDescriptionResource.cs |
Updates certificate description resource APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/IotHubCertificateDescriptionCollection.cs |
Updates certificate description collection APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Extensions/MockableIotHubSubscriptionResource.cs |
Updates mockable subscription APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/Extensions/MockableIotHubResourceGroupResource.cs |
Updates mockable resource-group APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/EventHubConsumerGroupInfoResource.cs |
Updates consumer-group resource APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/EventHubConsumerGroupInfoCollection.cs |
Updates consumer-group collection APIs. |
sdk/iothub/Azure.ResourceManager.IotHub/src/Generated/ArmIotHubModelFactory.cs |
Regenerates factory APIs. Critical: preserve prior overloads, named parameters, binary compatibility, and avoid compatibility-wrapper recursion. |
sdk/iothub/Azure.ResourceManager.IotHub/metadata.json |
Updates service API-version metadata. |
sdk/iothub/Azure.ResourceManager.IotHub/api/Azure.ResourceManager.IotHub.net8.0.cs |
Regenerates the .NET 8 API surface. |
sdk/iothub/Azure.ResourceManager.IotHub/api/Azure.ResourceManager.IotHub.net10.0.cs |
Regenerates the .NET 10 API surface. |
Review details
- Files reviewed: 5/53 changed files
- Comments generated: 16
- Review effort level: Lite (auto)
Note
Copilot is running an experiment and ran this review at Lite.
| /// <param name="iotHubDetailsGatewayVersion"> The IoT hub Gateway version. </param> | ||
| /// <returns> A new <see cref="Models.IotHubProperties"/> instance for mocking. </returns> | ||
| public static IotHubProperties IotHubProperties(IEnumerable<SharedAccessSignatureAuthorizationRule> authorizationPolicies, bool? disableLocalAuth, bool? disableDeviceSas, bool? disableModuleSas, bool? restrictOutboundNetworkAccess, IEnumerable<string> allowedFqdns, IotHubPublicNetworkAccess? publicNetworkAccess, IEnumerable<IotHubIPFilterRule> ipFilterRules, IotHubNetworkRuleSetProperties networkRuleSets, string minTlsVersion, IEnumerable<IotHubPrivateEndpointConnectionData> privateEndpointConnections, string provisioningState, string state, string hostName, string deviceHostName, string serviceHostName, IDictionary<string, EventHubCompatibleEndpointProperties> eventHubEndpoints, IotHubRoutingProperties routing, IDictionary<string, IotHubStorageEndpointProperties> storageEndpoints, IDictionary<string, MessagingEndpointProperties> messagingEndpoints, bool? enableFileUploadNotifications, CloudToDeviceProperties cloudToDevice, string comments, IEnumerable<string> deviceStreamsStreamingEndpoints, IotHubCapability? features, IotHubEncryptionProperties encryption, IEnumerable<IotHubLocationDescription> locations, bool? enableDataResidency, IotHubRootCertificateProperties rootCertificate, IotHubIPVersion? ipVersion, IotHubDeviceRegistry deviceRegistry = default, IotHubGatewayVersion? iotHubDetailsGatewayVersion = default) | ||
| public static IotHubProperties IotHubProperties(IEnumerable<SharedAccessSignatureAuthorizationRule> authorizationPolicies, bool? disableLocalAuth, bool? disableDeviceSas, bool? disableModuleSas, bool? restrictOutboundNetworkAccess, IEnumerable<string> allowedFqdns, IotHubPublicNetworkAccess? publicNetworkAccess, IEnumerable<IotHubIPFilterRule> ipFilterRules, IotHubNetworkRuleSetProperties networkRuleSets, string minTlsVersion, IEnumerable<IotHubPrivateEndpointConnectionData> privateEndpointConnections, string provisioningState, string state, string hostName, string deviceHostName, string serviceHostName, IDictionary<string, EventHubCompatibleEndpointProperties> eventHubEndpoints, IotHubRoutingProperties routing, IDictionary<string, IotHubStorageEndpointProperties> storageEndpoints, IDictionary<string, MessagingEndpointProperties> messagingEndpoints, bool? enableFileUploadNotifications, CloudToDeviceProperties cloudToDevice, string comments, IEnumerable<string> deviceStreamsStreamingEndpoints, IotHubCapability? features, IotHubEncryptionProperties encryption, IEnumerable<IotHubLocationDescription> locations, bool? enableDataResidency, IotHubRootCertificateProperties rootCertificate, IotHubIPVersion? ipVersion, ConnectionProfile? connectionProfile = default, IEnumerable<TopicGroup> mqttV5TopicGroups = default, IotHubDeviceRegistry deviceRegistry = default, IotHubGatewayVersion? iotHubDetailsGatewayVersion = default) |
| /// <param name="messagePayloadFormat"> The format of the message payload delivered to this endpoint. </param> | ||
| /// <returns> A new <see cref="Models.RoutingServiceBusQueueEndpointProperties"/> instance for mocking. </returns> | ||
| public static RoutingServiceBusQueueEndpointProperties RoutingServiceBusQueueEndpointProperties(Guid? id = default, string connectionString = default, string endpoint = default, string entityPath = default, IotHubAuthenticationType? authenticationType = default, ResourceIdentifier userAssignedIdentity = default, string name = default, string subscriptionId = default, string resourceGroup = default) | ||
| public static RoutingServiceBusQueueEndpointProperties RoutingServiceBusQueueEndpointProperties(Guid? id = default, string connectionString = default, string endpoint = default, string entityPath = default, IotHubAuthenticationType? authenticationType = default, ResourceIdentifier userAssignedIdentity = default, string name = default, string subscriptionId = default, string resourceGroup = default, MessagePayloadFormat? messagePayloadFormat = default) |
| /// <param name="messagePayloadFormat"> The format of the message payload delivered to this endpoint. </param> | ||
| /// <returns> A new <see cref="Models.RoutingCosmosDBSqlApiProperties"/> instance for mocking. </returns> | ||
| public static RoutingCosmosDBSqlApiProperties RoutingCosmosDBSqlApiProperties(string name = default, string id = default, string subscriptionId = default, string resourceGroup = default, Uri endpointUri = default, IotHubAuthenticationType? authenticationType = default, ResourceIdentifier userAssignedIdentity = default, string primaryKey = default, string secondaryKey = default, string databaseName = default, string containerName = default, string partitionKeyName = default, string partitionKeyTemplate = default) | ||
| public static RoutingCosmosDBSqlApiProperties RoutingCosmosDBSqlApiProperties(string name, string id, string subscriptionId, string resourceGroup, Uri endpointUri, IotHubAuthenticationType? authenticationType, ResourceIdentifier userAssignedIdentity, string primaryKey, string secondaryKey, string databaseName, string containerName, string partitionKeyName, string partitionKeyTemplate, MessagePayloadFormat? messagePayloadFormat) |
| /// <param name="isEnabled"> Used to specify whether a route is enabled. </param> | ||
| /// <returns> A new <see cref="Models.RoutingRuleProperties"/> instance for mocking. </returns> | ||
| public static RoutingRuleProperties RoutingRuleProperties(string name = default, IotHubRoutingSource source = default, string condition = default, IEnumerable<string> endpointNames = default, bool isEnabled = default) | ||
| public static RoutingRuleProperties RoutingRuleProperties(string name = default, IotHubRoutingSource source = default, string condition = default, string dataSchema = default, IEnumerable<string> endpointNames = default, bool isEnabled = default) |
| /// <param name="linkingProperties"> The properties related to linking the IoT Hub with the Azure Device Registry. </param> | ||
| /// <returns> A new <see cref="Models.IotHubDeviceRegistry"/> instance for mocking. </returns> | ||
| public static IotHubDeviceRegistry IotHubDeviceRegistry(ResourceIdentifier namespaceResourceId = default, ResourceIdentifier identityResourceId = default) | ||
| public static IotHubDeviceRegistry IotHubDeviceRegistry(ResourceIdentifier namespaceResourceId = default, string namespaceUuid = default, string dataPlaneHostName = default, DeviceRegistryIdentity identity = default, DeviceRegistryLinkingProperties linkingProperties = default) |
| /// <summary> Represents properties related to the Azure Device Registry (ADR). </summary> | ||
| public IotHubDeviceRegistry DeviceRegistry { get; set; } | ||
| public IotHubDeviceRegistry DeviceRegistry { get; } |
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> The connection profile that the IoT hub uses for device connections. </summary> | ||
| public readonly partial struct ConnectionProfile : IEquatable<ConnectionProfile> |
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> Error details. </summary> | ||
| public partial class ErrorDetails |
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> The supported formats for message payloads delivered to routing endpoints. </summary> | ||
| public readonly partial struct MessagePayloadFormat : IEquatable<MessagePayloadFormat> |
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> A named set of topic templates for an Event Grid-backed MQTT v5 IoT hub. </summary> | ||
| public partial class TopicGroup |
There was a problem hiding this comment.
Management SDK Review Summary
- Scope:
Azure.ResourceManager.IotHub(TypeSpec-backed refresh fromtsp-location.yamlcommit update) - Versioning: pass —
ApiCompatVersion(1.1.1) preserved, no major version bump (1.2.0-beta.5), no new ApiCompat baseline suppressions added - API surface: pass — no scanner violations introduced by this PR (1 pre-existing
SUFFIX001-family finding forIotHubNameAvailabilityResponsewas already shipped in 1.1.1/main and is out of scope) - Contextual naming: evaluated 8 new public types introduced by this PR, flagged 4
- ApiCompat / breaking changes: pass — CI
net - pullrequestsucceeded; no unmitigated breaking changes found in the diff against the last GA baseline
Findings (4, all blocking contextual-naming):
ConnectionProfile(Models/ConnectionProfile.cs) — generic name, needs IoT Hub scopingMessagePayloadFormat(Models/MessagePayloadFormat.cs) — generic name, needs IoT Hub/routing scopingErrorDetails(Models/ErrorDetails.cs) — generic name, needs Device Registry linking scopingTopicGroup(Models/TopicGroup.cs) — generic name, needs MQTT v5/IoT Hub scoping
All four are new types synthesized directly from the updated TypeSpec source, so TSPRENAME001 requires the fix to be made via @@clientName(...) in the spec repo's client.tsp, not SDK-side customization. Details and suggested names are in the inline comments.
Other new types in this refresh (DeviceRegistryIdentity, DeviceRegistryIdentityType, DeviceRegistryLinkingProperties, DeviceRegistryLinkingState) already carry sufficient DeviceRegistry/IoT Hub domain context and were not flagged.
Resolving TypeSpec-related review comments
- Open a separate spec PR in
azure-rest-api-specs, or update the existing spec PR for this SDK change. - Before the spec PR merges, update
tsp-location.yamlto the latest commit from the spec PR, regenerate the SDK, and rerun this review. - If the review reports new findings, address them in the same spec PR, update the SDK from its latest commit, and repeat steps 2 and 3. Do not merge the spec PR while any review findings remain.
- Only after the review reports no more findings, merge the spec PR.
- After the spec PR merges, update
tsp-location.yamlto the latestmaincommit inazure-rest-api-specsthat contains the merged changes, then regenerate the SDK.
Total inline comments: 4.
Analyzed by Azure .NET Management SDK PR Review: commit_id=d2c6b7838cb8b7c590090cdc7fe3dc843cbdd588
Analyzed by Azure .NET Management SDK PR Review: https://github.com/Azure/azure-sdk-for-net/actions/runs/34882016398
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> The connection profile that the IoT hub uses for device connections. </summary> | ||
| public readonly partial struct ConnectionProfile : IEquatable<ConnectionProfile> |
There was a problem hiding this comment.
[Phase 2 - Contextual naming] ConnectionProfile is a generic name that gives no IoT Hub context in IntelliSense outside its namespace (similar to flagged patterns like Scope/Sensitivity). Recommend a service-scoped name, e.g. IotHubConnectionProfile.
Since this package is TypeSpec-backed (tsp-location.yaml present), apply the rename in the spec repo's client.tsp:
@@clientName(ConnectionProfile, "IotHubConnectionProfile", "csharp");
then update tsp-location.yaml and regenerate. Do not rename via SDK customization only (see TSPRENAME001).
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> The supported formats for message payloads delivered to routing endpoints. </summary> | ||
| public readonly partial struct MessagePayloadFormat : IEquatable<MessagePayloadFormat> |
There was a problem hiding this comment.
[Phase 2 - Contextual naming] MessagePayloadFormat is generic and does not read as IoT Hub-specific in IntelliSense. Recommend an IoT Hub-scoped name, e.g. IotHubMessagePayloadFormat or RoutingMessagePayloadFormat (this enum is only used by routing endpoint properties).
Apply via TypeSpec client.tsp:
@@clientName(MessagePayloadFormat, "IotHubMessagePayloadFormat", "csharp");
then update tsp-location.yaml and regenerate (TSPRENAME001 applies; do not use SDK-only customization).
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> Error details. </summary> | ||
| public partial class ErrorDetails |
There was a problem hiding this comment.
[Phase 2 - Contextual naming] ErrorDetails is a generic, unscoped name that collides in intent with common error-model patterns and gives no IoT Hub / Device Registry context. Recommend a scoped name, e.g. IotHubDeviceRegistryLinkingErrorDetails or DeviceRegistryLinkingErrorDetails (this type is only referenced from DeviceRegistryLinkingProperties.Error).
Apply via TypeSpec client.tsp:
@@clientName(ErrorDetails, "DeviceRegistryLinkingErrorDetails", "csharp");
then update tsp-location.yaml and regenerate (TSPRENAME001 applies).
|
|
||
| namespace Azure.ResourceManager.IotHub.Models | ||
| { | ||
| /// <summary> A named set of topic templates for an Event Grid-backed MQTT v5 IoT hub. </summary> |
There was a problem hiding this comment.
[Phase 2 - Contextual naming] TopicGroup is a generic name lacking IoT Hub / MQTT v5 context in IntelliSense. Recommend a scoped name, e.g. IotHubMqttTopicGroup or MqttV5TopicGroup (matches the existing MqttV5Settings / IotHubProperties.MqttV5TopicGroups naming already used elsewhere in this package).
Apply via TypeSpec client.tsp:
@@clientName(TopicGroup, "MqttV5TopicGroup", "csharp");
then update tsp-location.yaml and regenerate (TSPRENAME001 applies).
Configurations: 'specification/iothub/resource-manager/Microsoft.Devices/IoTHub/tspconfig.yaml', and CommitSHA: 'aacdbe71d42e2e79ff09699751c2d543e3ecc826' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6833409 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. Release plan link: https://azsdk-releaseplan-dashboard-hveph5aqhhcfhtgu.westus-01.azurewebsites.net/?releaseplan=36517 Submitted by: damontan@microsoft.com