Skip to content

feat: API regeneration: release-2026-05-13.08-02-56#3172

Merged
jskeet merged 20 commits into
mainfrom
release-2026-05-13.08-02-56
May 13, 2026
Merged

feat: API regeneration: release-2026-05-13.08-02-56#3172
jskeet merged 20 commits into
mainfrom
release-2026-05-13.08-02-56

Conversation

@amanda-tarafa
Copy link
Copy Markdown
Contributor

Changes in this PR will be published to Nuget on the next release cycle.

@amanda-tarafa amanda-tarafa requested a review from a team as a code owner May 13, 2026 08:05
@jskeet jskeet merged commit 29a416e into main May 13, 2026
6 checks passed
@jskeet jskeet deleted the release-2026-05-13.08-02-56 branch May 13, 2026 08:07
Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates several Google API discovery documents and their associated generated .NET client libraries, including the addition of the Cloud Number Registry API. Key updates include the addition of SHA512 hash support for media uploads, new metadata and query options for HomeGraph, pickup cost details for Merchant Products, and Cloud Run job support for Network Management. The review feedback identifies formatting errors in documentation strings for Firebase App Hosting and HomeGraph, as well as a type safety improvement for the generated HomeGraph client code.

},
"requiredPaths": {
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\u201d type: GLOB }",
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if both ignored_paths and required_paths are not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\u201d type: GLOB }",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The example in the description has incorrect quoting. The closing curly quote (”) is placed immediately after the pattern string instead of at the end of the example block, and there is a mix of escaped straight quotes and curly quotes which makes the example confusing.

Suggested change
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if both ignored_paths and required_paths are not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\u201d type: GLOB }",
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if both ignored_paths and required_paths are not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\", type: GLOB }\u201d",

},
"requiredPaths": {
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\u201d type: GLOB }",
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if both ignored_paths and required_paths are not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\u201d type: GLOB }",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The example in the description has incorrect quoting. The closing curly quote (”) is placed immediately after the pattern string instead of at the end of the example block, and there is a mix of escaped straight quotes and curly quotes which makes the example confusing.

Suggested change
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if both ignored_paths and required_paths are not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\u201d type: GLOB }",
"description": "Optional. A list of file paths patterns that trigger a build and rollout if at least one of the changed files in the commit are present in this list. This field is optional; the rollout policy will default to triggering on all paths if both ignored_paths and required_paths are not populated. Limited to 100 paths. Example: \u201crequired_paths: { pattern: \"foo/bar/*\", type: GLOB }\u201d",

"additionalProperties": {
"$ref": "DeviceMetadata"
},
"description": "Map from the Trait ID (e.g., \"action.devices.traits.OnOff\") to its last Spanner commit timestamp. If a trait has no recorded timestamp, it will be omitted from this map.",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The description for deviceMetadata appears to be a copy-paste error from DeviceMetadata.traitCommitTimestamps. It describes the map as being from "Trait ID" to "timestamp", but the schema indicates it is a map from Device ID to DeviceMetadata objects.

Suggested change
"description": "Map from the Trait ID (e.g., \"action.devices.traits.OnOff\") to its last Spanner commit timestamp. If a trait has no recorded timestamp, it will be omitted from this map.",
"description": "Map from the device ID to its metadata. If a device has no recorded metadata, it will be omitted from this map.",

/// Map from the Trait ID (e.g., "action.devices.traits.OnOff") to its last Spanner commit timestamp.
/// </summary>
[Newtonsoft.Json.JsonPropertyAttribute("traitCommitTimestamps")]
public virtual System.Collections.Generic.IDictionary<string, object> TraitCommitTimestamps { get; set; }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The property TraitCommitTimestamps is generated as IDictionary<string, object>, but the corresponding discovery document specifies the values as string (with google-datetime format). Using string would provide better type safety for the API consumers.

        public virtual System.Collections.Generic.IDictionary<string, string> TraitCommitTimestamps { get; set; }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants