Skip to content

Conversation

@amanda-tarafa
Copy link
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 November 5, 2025 09:04
@gemini-code-assist
Copy link

Summary of Changes

Hello @amanda-tarafa, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request updates the API definitions for a wide range of Google Cloud services, ensuring that the generated client libraries are synchronized with the most current API specifications. The changes encompass the introduction of new fields for enhanced artifact tracking and identity management, along with significant improvements in API documentation and the addition of new operational features for services like Storage Batch Operations and VM Migration. These updates collectively aim to improve the functionality, clarity, and integration capabilities of the affected APIs.

Highlights

  • API Definitions Regeneration: API definitions for multiple Google Cloud services, including Container Analysis, Firebase App Distribution, Firebase App Hosting, Firebase Storage, Healthcare, IAM Credentials, Merchant API, Network Connectivity, Retail, Storage Batch Operations, Travel Impact Model, and VM Migration, have been regenerated to reflect the latest API specifications.
  • New Artifact Registry Fields: New artifactRegistryPackage fields have been introduced across various Container Analysis schemas (v1, v1alpha1, v1beta1) to provide output-only paths to artifacts in Artifact Registry for built images and uploaded Go, Maven, npm, and Python modules.
  • IAM Credentials API Enhancements: The IAM Credentials API (v1) now includes new methods (getAllowedLocations) and corresponding schemas (ServiceAccountAllowedLocations, WorkforcePoolAllowedLocations, WorkloadIdentityPoolAllowedLocations) to retrieve trust boundary information for service accounts, workforce pools, and workload identity pools.
  • Storage Batch Operations Features: The Storage Batch Operations API (v1) introduces a new totalBytesFound field in Counters and an optional dryRun boolean field in Job to allow for dry run execution, returning object counts and bytes found without performing transformations.
  • VM Migration Storage Pool Configuration: The VM Migration API (v1) now supports specifying an optional storagePool for disk creation within ComputeEngineTargetDefaults and ComputeEngineTargetDetails, allowing users to define the storage pool for migrated VM disks.
  • Description and Deprecation Clarifications: Numerous API descriptions have been updated for clarity, including detailed explanations for flight segment properties in the Travel Impact Model, refined environment variable usage in Firebase App Hosting, and explicit 'Deprecated:' prefixes for filter fields in the Retail API.
  • Client Library Version Updates: All affected client libraries have received version bumps, and some have updated their Google.Apis and Google.Apis.Auth package references to align with the latest changes.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@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 is an automated API regeneration, which introduces new features and improves documentation across several services. The changes are consistent with what's expected from such an update. I've identified a minor typo in the descriptions within the merchantapi discovery documents that should be corrected. Otherwise, the changes look good.

},
"SupplementalProductDataSource": {
"description": "The supplemental data source for local and online products. After creation, you should make sure to link the supplemental product data source into one or more primary product data sources.",
"description": "The [supplemental data source](https://developers.google.com/merchant/api/guides/data-sources/api-sources#link-supplemental-data-source) for local and online products. After creation,you should make sure to link the supplemental product data source into one or more primary product data sources.",

Choose a reason for hiding this comment

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

medium

There is a minor typo in the description. The text creation,you is missing a space after the comma and should be creation, you.

Suggested change
"description": "The [supplemental data source](https://developers.google.com/merchant/api/guides/data-sources/api-sources#link-supplemental-data-source) for local and online products. After creation,you should make sure to link the supplemental product data source into one or more primary product data sources.",
"description": "The [supplemental data source](https://developers.google.com/merchant/api/guides/data-sources/api-sources#link-supplemental-data-source) for local and online products. After creation, you should make sure to link the supplemental product data source into one or more primary product data sources.",

},
"SupplementalProductDataSource": {
"description": "The supplemental data source for local and online products. After creation, you should make sure to link the supplemental product data source into one or more primary product data sources.",
"description": "The [supplemental data source](https://developers.google.com/merchant/api/guides/data-sources/api-sources#link-supplemental-data-source) for local and online products. After creation,you should make sure to link the supplemental product data source into one or more primary product data sources.",

Choose a reason for hiding this comment

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

medium

There is a minor typo in the description. The text creation,you is missing a space after the comma and should be creation, you.

Suggested change
"description": "The [supplemental data source](https://developers.google.com/merchant/api/guides/data-sources/api-sources#link-supplemental-data-source) for local and online products. After creation,you should make sure to link the supplemental product data source into one or more primary product data sources.",
"description": "The [supplemental data source](https://developers.google.com/merchant/api/guides/data-sources/api-sources#link-supplemental-data-source) for local and online products. After creation, you should make sure to link the supplemental product data source into one or more primary product data sources.",

@gemini-code-assist
Copy link

Summary of Changes

Hello @amanda-tarafa, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request represents an automated API regeneration that updates the client libraries for numerous Google Cloud services. It brings in new API features, such as enhanced artifact tracking in Container Analysis, expanded trust boundary information in IAM Credentials, and new dry-run functionality in Storage Batch Operations. The update also includes various documentation improvements, such as clearer descriptions and explicit deprecation notices, ensuring the client libraries remain current and accurately reflect the underlying API capabilities.

Highlights

  • API Schema Updates: Multiple Google Cloud services, including Container Analysis, Firebase, Healthcare, IAM Credentials, Merchant API, Network Connectivity, Retail, Storage Batch Operations, Travel Impact Model, and VM Migration, have received updated Discovery JSON schemas.
  • New Features and Properties: New functionalities include the addition of artifactRegistryPackage in Container Analysis, name as an identifier in Firebase App Distribution's DeviceExecution, new getAllowedLocations methods and schemas in IAM Credentials for trust boundary information, totalBytesFound and dryRun in Storage Batch Operations, and storagePool configuration in VM Migration.
  • Documentation and Deprecation Clarifications: API descriptions have been clarified across several services, such as the env property in Firebase App Hosting, organizeOutputBy in Healthcare, and extraLocationTypes in Network Connectivity. Additionally, filter fields in Retail API have been explicitly marked as deprecated, and Travel Impact Model flight segment properties received enhanced descriptions.
  • Client Library Version Bumps: Version numbers in .csproj files for various generated client libraries have been updated. Some libraries also received updates to their Google.Apis and Google.Apis.Auth package dependencies to align with the latest API definitions.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@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 appears to be an automated API regeneration. It includes updates to several Discovery JSON files, which in turn lead to regenerated C# client libraries. The changes include adding new fields and endpoints, updating descriptions for clarity, and bumping package versions. My review focused on the changes in the Discovery JSON files as they are the source of truth. I found a couple of issues: an inconsistency in a required parameter in the Healthcare API, and an opportunity to reduce schema duplication in the IAM Credentials API. The rest of the changes appear correct and improve the API definitions.

Comment on lines +3084 to 3086
"description": "Required. The FHIR resource type used to organize exported resources. Only supports \"Patient\". When organized by Patient resource, output files are grouped as follows: * Patient file(s) containing the Patient resources. Each Patient is sequentially followed by all resources the Patient references, and all resources that reference the Patient (equivalent to a GetPatientEverything request). * Individual files grouped by resource type for resources in the Group's member field and the Group resource itself. Resources may be duplicated across multiple Patients. For example, if two Patient resources reference the same Organization resource, it will appear twice, once after each Patient. The Group resource from the request does not appear in the Patient files.",
"location": "query",
"type": "string"

Choose a reason for hiding this comment

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

high

The description for organizeOutputBy now correctly states that it is "Required". However, the parameter itself is not marked as required in the schema (i.e., it's missing "required": true). This inconsistency can be misleading for clients and tools that generate code from this discovery document. To ensure correctness and a clear API contract, this parameter should be explicitly marked as required.

                          "description": "Required. The FHIR resource type used to organize exported resources. Only supports \"Patient\". When organized by Patient resource, output files are grouped as follows: * Patient file(s) containing the Patient resources. Each Patient is sequentially followed by all resources the Patient references, and all resources that reference the Patient (equivalent to a GetPatientEverything request). * Individual files grouped by resource type for resources in the Group's member field and the Group resource itself. Resources may be duplicated across multiple Patients. For example, if two Patient resources reference the same Organization resource, it will appear twice, once after each Patient. The Group resource from the request does not appear in the Patient files.",
                          "location": "query",
                          "required": true,
                          "type": "string"

Comment on lines +3269 to 3271
"description": "Required. The FHIR resource type used to organize exported resources. Only supports \"Patient\". When organized by Patient resource, output files are grouped as follows: * Patient file(s) containing the Patient resources. Each Patient is sequentially followed by all resources the Patient references, and all resources that reference the Patient (equivalent to a GetPatientEverything request). * Individual files grouped by resource type for resources in the Group's member field and the Group resource itself. Resources may be duplicated across multiple Patients. For example, if two Patient resources reference the same Organization resource, it will appear twice, once after each Patient. The Group resource from the request does not appear in the Patient files.",
"location": "query",
"type": "string"

Choose a reason for hiding this comment

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

high

The description for organizeOutputBy now correctly states that it is "Required". However, the parameter itself is not marked as required in the schema (i.e., it's missing "required": true). This inconsistency can be misleading for clients and tools that generate code from this discovery document. To ensure correctness and a clear API contract, this parameter should be explicitly marked as required.

                          "description": "Required. The FHIR resource type used to organize exported resources. Only supports \"Patient\". When organized by Patient resource, output files are grouped as follows: * Patient file(s) containing the Patient resources. Each Patient is sequentially followed by all resources the Patient references, and all resources that reference the Patient (equivalent to a GetPatientEverything request). * Individual files grouped by resource type for resources in the Group's member field and the Group resource itself. Resources may be duplicated across multiple Patients. For example, if two Patient resources reference the same Organization resource, it will appear twice, once after each Patient. The Group resource from the request does not appear in the Patient files.",
                          "location": "query",
                          "required": true,
                          "type": "string"

Comment on lines +421 to +439
"ServiceAccountAllowedLocations": {
"description": "Represents a list of allowed locations for given service account.",
"id": "ServiceAccountAllowedLocations",
"properties": {
"encodedLocations": {
"description": "Output only. The hex encoded bitmap of the trust boundary locations",
"readOnly": true,
"type": "string"
},
"locations": {
"description": "Output only. The human readable trust boundary locations. For example, [\"us-central1\", \"europe-west1\"]",
"items": {
"type": "string"
},
"readOnly": true,
"type": "array"
}
},
"type": "object"

Choose a reason for hiding this comment

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

medium

The schemas for ServiceAccountAllowedLocations, WorkforcePoolAllowedLocations (lines 505-523), and WorkloadIdentityPoolAllowedLocations (lines 525-543) are structurally identical. To improve maintainability and reduce redundancy, consider defining a single, reusable schema (e.g., AllowedLocations). This would make the API definition more concise and easier to manage, especially for future updates. If these schemas are intended to diverge in the future, this duplication might be acceptable, but a common base could still be beneficial.

@jskeet jskeet merged commit 02504ee into main Nov 5, 2025
5 checks passed
@jskeet jskeet deleted the release-2025-11-05.09-01-57 branch November 5, 2025 09:41
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