-
Notifications
You must be signed in to change notification settings - Fork 1.5k
chore: librarian update image pull request: 20251112T170525Z #13346
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…prod/images-prod/librarian-go@sha256:c4bb601f466f857040028f81c47ecf808034fcf8463166320f80be761653d167
Summary of ChangesHello @quartzmo, 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 encompasses a routine update of the librarian-go image and significant enhancements to various Google Cloud client libraries. The primary functional change is the introduction of a 'returnPartialSuccess' query parameter for 'ListOperations' calls, enabling more flexible handling of long-running operations. Additionally, it includes refactoring of internal routing header logic in some clients and the enablement of hard-bound tokens for MTLS_S2A, contributing to improved client behavior and security. Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this 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 dependency update from Librarian. It introduces several changes across a large number of files, including updating the builder image, adding a returnPartialSuccess parameter to many ListOperations methods, and enabling MTLS_S2A for several clients.
The PR also refactors how routing headers are constructed in some clients. While the new approach is an improvement, I've noticed a recurring performance issue in the generated code where regular expressions are compiled inside functions on every call. This is inefficient. I've added a few comments with suggestions to optimize this by compiling the regex once and reusing the result. These suggestions should be applied to all similar occurrences to improve performance.
| var routingHeaders []string | ||
| seen := make(map[string]bool) | ||
| if reg := regexp.MustCompile("projects/[^/]+/locations/(?P<location>[^/]+)"); reg.MatchString(req.GetParent()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetParent())[1])) > 0 { | ||
| routingHeadersMap["location"] = url.QueryEscape(reg.FindStringSubmatch(req.GetParent())[1]) | ||
| } | ||
| for headerName, headerValue := range routingHeadersMap { | ||
| routingHeaders = fmt.Sprintf("%s%s=%s&", routingHeaders, headerName, headerValue) | ||
| if !seen["location"] { | ||
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "location", url.QueryEscape(reg.FindStringSubmatch(req.GetParent())[1]))) | ||
| seen["location"] = true | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This block can be made more efficient. regexp.MustCompile is a relatively expensive operation and is being called on every function invocation. For better performance, the compiled regular expression should be defined as a package-level variable.
Additionally, the regular expression is evaluated multiple times against req.GetParent(). This can be optimized by calling FindStringSubmatch once and reusing its result.
A similar pattern of inefficiency is present in other functions within this file that construct routing headers. Applying this feedback across all of them would be beneficial.
reg := regexp.MustCompile("projects/[^/]+/locations/(?P<location>[^/]+)")
if matches := reg.FindStringSubmatch(req.GetParent()); len(matches) > 1 && len(url.QueryEscape(matches[1])) > 0 {
if !seen["location"] {
routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "location", url.QueryEscape(matches[1])))
seen["location"] = true
}
}| var routingHeaders []string | ||
| seen := make(map[string]bool) | ||
| if reg := regexp.MustCompile("projects/(?P<project_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | ||
| routingHeadersMap["project_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | ||
| if !seen["project_id"] { | ||
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "project_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | ||
| seen["project_id"] = true | ||
| } | ||
| } | ||
| if reg := regexp.MustCompile("projects/[^/]+/databases/(?P<database_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | ||
| routingHeadersMap["database_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | ||
| } | ||
| for headerName, headerValue := range routingHeadersMap { | ||
| routingHeaders = fmt.Sprintf("%s%s=%s&", routingHeaders, headerName, headerValue) | ||
| if !seen["database_id"] { | ||
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "database_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | ||
| seen["database_id"] = true | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This block has some performance inefficiencies. regexp.MustCompile is called multiple times within this block, and for each regex, FindStringSubmatch is also called multiple times. For better performance, compiled regular expressions should be defined as package-level variables to avoid recompilation on every call.
Also, req.GetPitrSnapshot().GetDatabase() is called repeatedly, and the regex matching can be simplified to a single FindStringSubmatch call per regex, checking the length of the result.
Here's a suggested refactoring. This feedback also applies to the REST client implementation of this method later in the file.
| var routingHeaders []string | |
| seen := make(map[string]bool) | |
| if reg := regexp.MustCompile("projects/(?P<project_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | |
| routingHeadersMap["project_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | |
| if !seen["project_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "project_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | |
| seen["project_id"] = true | |
| } | |
| } | |
| if reg := regexp.MustCompile("projects/[^/]+/databases/(?P<database_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | |
| routingHeadersMap["database_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | |
| } | |
| for headerName, headerValue := range routingHeadersMap { | |
| routingHeaders = fmt.Sprintf("%s%s=%s&", routingHeaders, headerName, headerValue) | |
| if !seen["database_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "database_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | |
| seen["database_id"] = true | |
| } | |
| } | |
| var routingHeaders []string | |
| seen := make(map[string]bool) | |
| databasePath := req.GetPitrSnapshot().GetDatabase() | |
| regProject := regexp.MustCompile("projects/(?P<project_id>[^/]+)(?:/.*)?") | |
| if matches := regProject.FindStringSubmatch(databasePath); len(matches) > 1 && len(url.QueryEscape(matches[1])) > 0 { | |
| if !seen["project_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "project_id", url.QueryEscape(matches[1]))) | |
| seen["project_id"] = true | |
| } | |
| } | |
| regDatabase := regexp.MustCompile("projects/[^/]+/databases/(?P<database_id>[^/]+)(?:/.*)?") | |
| if matches := regDatabase.FindStringSubmatch(databasePath); len(matches) > 1 && len(url.QueryEscape(matches[1])) > 0 { | |
| if !seen["database_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "database_id", url.QueryEscape(matches[1]))) | |
| seen["database_id"] = true | |
| } | |
| } |
| var routingHeaders []string | ||
| seen := make(map[string]bool) | ||
| if reg := regexp.MustCompile("projects/(?P<project_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | ||
| routingHeadersMap["project_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | ||
| if !seen["project_id"] { | ||
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "project_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | ||
| seen["project_id"] = true | ||
| } | ||
| } | ||
| if reg := regexp.MustCompile("projects/[^/]+/databases/(?P<database_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | ||
| routingHeadersMap["database_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | ||
| } | ||
| for headerName, headerValue := range routingHeadersMap { | ||
| routingHeaders = fmt.Sprintf("%s%s=%s&", routingHeaders, headerName, headerValue) | ||
| if !seen["database_id"] { | ||
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "database_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | ||
| seen["database_id"] = true | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This block has the same performance inefficiencies as its gRPC counterpart earlier in the file. regexp.MustCompile is called multiple times, and for each regex, FindStringSubmatch is also called multiple times. For better performance, compiled regular expressions should be defined as package-level variables.
The regex matching can be simplified to a single FindStringSubmatch call per regex, checking the length of the result.
| var routingHeaders []string | |
| seen := make(map[string]bool) | |
| if reg := regexp.MustCompile("projects/(?P<project_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | |
| routingHeadersMap["project_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | |
| if !seen["project_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "project_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | |
| seen["project_id"] = true | |
| } | |
| } | |
| if reg := regexp.MustCompile("projects/[^/]+/databases/(?P<database_id>[^/]+)(?:/.*)?"); reg.MatchString(req.GetPitrSnapshot().GetDatabase()) && len(url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1])) > 0 { | |
| routingHeadersMap["database_id"] = url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]) | |
| } | |
| for headerName, headerValue := range routingHeadersMap { | |
| routingHeaders = fmt.Sprintf("%s%s=%s&", routingHeaders, headerName, headerValue) | |
| if !seen["database_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "database_id", url.QueryEscape(reg.FindStringSubmatch(req.GetPitrSnapshot().GetDatabase())[1]))) | |
| seen["database_id"] = true | |
| } | |
| } | |
| var routingHeaders []string | |
| seen := make(map[string]bool) | |
| databasePath := req.GetPitrSnapshot().GetDatabase() | |
| regProject := regexp.MustCompile("projects/(?P<project_id>[^/]+)(?:/.*)?") | |
| if matches := regProject.FindStringSubmatch(databasePath); len(matches) > 1 && len(url.QueryEscape(matches[1])) > 0 { | |
| if !seen["project_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "project_id", url.QueryEscape(matches[1]))) | |
| seen["project_id"] = true | |
| } | |
| } | |
| regDatabase := regexp.MustCompile("projects/[^/]+/databases/(?P<database_id>[^/]+)(?:/.*)?") | |
| if matches := regDatabase.FindStringSubmatch(databasePath); len(matches) > 1 && len(url.QueryEscape(matches[1])) > 0 { | |
| if !seen["database_id"] { | |
| routingHeaders = append(routingHeaders, fmt.Sprintf("%s=%s", "database_id", url.QueryEscape(matches[1]))) | |
| seen["database_id"] = true | |
| } | |
| } |
shollyman
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lots of LRO updates, LGTM
Summary of ChangesHello @quartzmo, 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 includes several updates to the codebase. It updates the librarian image, adds a new token option to gRPC clients, includes the Highlights
Using Gemini Code AssistThe 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
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 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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
The pull request primarily updates a librarian image in state.yaml and introduces a new returnPartialSuccess query parameter in various Go API client files. Additionally, there are minor refactorings in the cloudbuild and firestore clients to improve how routing headers are constructed, making the code more robust against duplicate parameters. An internal authentication option AllowHardBoundTokens("MTLS_S2A") was also added to some client options. Overall, the changes appear to be routine updates and minor code improvements, with no immediate critical or high-severity issues identified.
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v0.0.0-20251113212345-55e52e492404 Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:718167d5c23ed389b41f617b3a00ac839bdd938a6bd2d48ae0c2f1fa51ab1c3d <details><summary>aiplatform: 1.110.0</summary> ## [1.110.0](aiplatform/v1.109.0...aiplatform/v1.110.0) (2025-12-04) ### Features * add `gpu_partition_size` in `machine_spec` v1 api (PiperOrigin-RevId: 833901564) ([185951b](185951b3)) * A new field `min_gpu_driver_version` is added to message `.google.cloud.aiplatform.v1beta1.MachineSpec` (PiperOrigin-RevId: 838969898) ([185951b](185951b3)) * add `ReplicatedVoiceConfig` to `VoiceConfig` to enable Gemini TTS voice replication (PiperOrigin-RevId: 833560482) ([185951b](185951b3)) * Introduce RagManagedVertexVectorSearch as a new vector db option (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * Expose FullFineTunedResources for full fine tuned deployments (PiperOrigin-RevId: 839371231) ([185951b](185951b3)) * add RagCorpus.satisfies_pzs and RagCorpus.satisfies_pzi (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * Expose zone when creating a FeatureOnlineStore (PiperOrigin-RevId: 837256132) ([185951b](185951b3)) * Add support for developer connect based deployment (PiperOrigin-RevId: 833917724) ([185951b](185951b3)) ### Documentation * A comment for field `google_drive_metadata_source` in message `.google.cloud.aiplatform.v1beta1.RagFileMetadataConfig` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `user_metadata` in message `.google.cloud.aiplatform.v1beta1.RagFile` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `google_drive_metadata_schema_source` in message `.google.cloud.aiplatform.v1beta1.RagFileMetadataConfig` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for message `ReasoningEngineSpec` is changed (PiperOrigin-RevId: 833917724) ([185951b](185951b3)) * update `ReplicatedVoiceConfig.mime_type` comment (PiperOrigin-RevId: 839364684) ([185951b](185951b3)) * A comment for field `rag_files_count` in message `.google.cloud.aiplatform.v1beta1.RagCorpus` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `enterprise` in message `.google.cloud.aiplatform.v1beta1.RagManagedDbConfig` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `gcs_metadata_schema_source` in message `.google.cloud.aiplatform.v1beta1.RagFileMetadataConfig` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `scaled` in message `.google.cloud.aiplatform.v1beta1.RagManagedDbConfig` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `gcs_metadata_source` in message `.google.cloud.aiplatform.v1beta1.RagFileMetadataConfig` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `package_spec` in message `.google.cloud.aiplatform.v1.ReasoningEngineSpec` is changed (PiperOrigin-RevId: 833911903) ([185951b](185951b3)) * A comment for message `RagManagedDbConfig` is changed (PiperOrigin-RevId: 839431594) ([185951b](185951b3)) * A comment for field `package_spec` in message `.google.cloud.aiplatform.v1beta1.ReasoningEngineSpec` is changed (PiperOrigin-RevId: 833917724) ([185951b](185951b3)) </details> <details><summary>artifactregistry: 1.18.0</summary> ## [1.18.0](artifactregistry/v1.17.2...artifactregistry/v1.18.0) (2025-12-04) ### Features * add image_manifest field in DockerImage (PiperOrigin-RevId: 830951552) ([185951b](185951b3)) * add Ruby format in VulnerabilityScanningConfig (PiperOrigin-RevId: 830951552) ([185951b](185951b3)) * add ExportArtifact API (PiperOrigin-RevId: 839457154) ([185951b](185951b3)) * add artifact_type field in DockerImage (PiperOrigin-RevId: 830951552) ([185951b](185951b3)) ### Documentation * A comment for enum value `ENABLEMENT_CONFIG_UNSPECIFIED` in enum `EnablementConfig` is changed (PiperOrigin-RevId: 830951552) ([185951b](185951b3)) * A comment for field `name` in message `.google.devtools.artifactregistry.v1.DockerImage` is changed (PiperOrigin-RevId: 830951552) ([185951b](185951b3)) * A comment for field `satisfies_pzs` in message `.google.devtools.artifactregistry.v1.Repository` is changed (PiperOrigin-RevId: 830951552) ([185951b](185951b3)) * A comment for field `satisfies_pzi` in message `.google.devtools.artifactregistry.v1.Repository` is changed (PiperOrigin-RevId: 830951552) ([185951b](185951b3)) </details> <details><summary>backupdr: 1.6.0</summary> ## [1.6.0](backupdr/v1.5.0...backupdr/v1.6.0) (2025-12-04) ### Features * Adding new fields for CMEK and Retention Inheritance features (PiperOrigin-RevId: 833678865) ([185951b](185951b3)) * Adding `unreachable` field to `ListDataSourceReferences` API (PiperOrigin-RevId: 828740816) ([185951b](185951b3)) </details> <details><summary>batch: 1.14.0</summary> ## [1.14.0](batch/v1.13.0...batch/v1.14.0) (2025-12-04) ### Features * added new provisioning models (PiperOrigin-RevId: 833725203) ([185951b](185951b3)) </details> <details><summary>channel: 1.21.0</summary> ## [1.21.0](channel/v1.20.0...channel/v1.21.0) (2025-12-04) ### Bug Fixes * Changed field behavior for an existing field `entitlement_granularity` in message `.google.cloud.channel.v1.RepricingConfig` (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) ### Documentation * A comment for field `event_type` in message `.google.cloud.channel.v1.EntitlementEvent` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `account` in message `.google.cloud.channel.v1.RegisterSubscriberRequest` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `next_page_token` in message `.google.cloud.channel.v1.ListSkuGroupsResponse` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `account` in message `.google.cloud.channel.v1.ListSubscribersRequest` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `offers` in message `.google.cloud.channel.v1.ListOffersResponse` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `next_page_token` in message `.google.cloud.channel.v1.ListSkuGroupBillableSkusResponse` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `owned` in message `.google.cloud.channel.v1.CloudIdentityCustomerAccount` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for message `ChangeParametersRequest` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `event_type` in message `.google.cloud.channel.v1.CustomerEvent` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `page_token` in message `.google.cloud.channel.v1.ListSkuGroupBillableSkusRequest` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `page_token` in message `.google.cloud.channel.v1.ListSkuGroupsRequest` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `entitlement_granularity` in message `.google.cloud.channel.v1.RepricingConfig` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `account` in message `.google.cloud.channel.v1.UnregisterSubscriberRequest` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for method `RegisterSubscriber` in service `CloudChannelService` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for method `ListSubscribers` in service `CloudChannelService` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for method `UnregisterSubscriber` in service `CloudChannelService` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for enum `CustomerAttestationState` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) * A comment for field `customer_attestation_state` in message `.google.cloud.channel.v1.Customer` is changed (PiperOrigin-RevId: 838889186) ([185951b](185951b3)) </details> <details><summary>cloudbuild: 1.24.0</summary> ## [1.24.0](cloudbuild/v1.23.1...cloudbuild/v1.24.0) (2025-12-04) ### Features * Update GCB with latest proto changes (PiperOrigin-RevId: 837135318) ([185951b](185951b3)) </details> <details><summary>compute: 1.50.0</summary> ## [1.50.0](compute/v1.49.1...compute/v1.50.0) (2025-12-04) ### Features * Update Compute Engine v1beta API to revision 20251019 ([185951b](185951b3)) </details> <details><summary>dialogflow: 1.72.0</summary> ## [1.72.0](dialogflow/v1.71.0...dialogflow/v1.72.0) (2025-12-04) ### Features * add support for defining custom actions in code. See https://cloud.google.com/dialogflow/cx/docs/concept/playbook/code-block for more information (PiperOrigin-RevId: 830582229) ([185951b](185951b3)) * Service Account Auth in Tools and Webhooks (PiperOrigin-RevId: 830582229) ([185951b](185951b3)) * add agentDesktopSource field to the Participant object (PiperOrigin-RevId: 830460349) ([185951b](185951b3)) ### Documentation * Add further clarification for when the event Type CONVERSATION_FINISHED is fired (PiperOrigin-RevId: 830460349) ([185951b](185951b3)) * Update evaluator version from output only to optional. (PiperOrigin-RevId: 830460349) ([185951b](185951b3)) </details> <details><summary>eventarc: 1.18.0</summary> ## [1.18.0](eventarc/v1.17.0...eventarc/v1.18.0) (2025-12-04) ### Features * add wide-scope Eventarc GoogleApiSource flags (PiperOrigin-RevId: 836781847) ([185951b](185951b3)) * add Eventarc Trigger RetryPolicy (PiperOrigin-RevId: 836781847) ([185951b](185951b3)) </details> <details><summary>geminidataanalytics: 0.3.0</summary> ## [0.3.0](geminidataanalytics/v0.2.1...geminidataanalytics/v0.3.0) (2025-12-04) ### Features * Adding a new SchemaRelationship message to define relationships between table schema (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding an ExampleQueries message to surface derived and authored example queries (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding a GlossaryTerm message to allow users to provide definitions for domain-specific terms (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding struct_schema to Datasource to support flexible schemas, particularly for Looker datasources (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding DatasourceOptions to provide configuration options for datasources (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding client_managed_resource_context to allow clients to manage their own conversation and agent resources (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding support for LookerQuery within the DataQuery message for retrieving data from Looker explores (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding a new TextType PROGRESS to provide informational messages about an agent&#39;s progress for supporting more granular Agent RAG tools (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) * Adding a DeleteConversation RPC to allow for the deletion of conversations (PiperOrigin-RevId: 829449036) ([185951b](185951b3)) </details> <details><summary>gkemulticloud: 1.6.0</summary> ## [1.6.0](gkemulticloud/v1.5.4...gkemulticloud/v1.6.0) (2025-12-04) ### Features * added custom tolerations and labels support for Attached Clusters (PiperOrigin-RevId: 839306772) ([185951b](185951b3)) * mark GKE-on-AWS and GKE-on-Azure protos as being deprecated to discourage any new usage as these services turn down (PiperOrigin-RevId: 839306772) ([185951b](185951b3)) ### Documentation * A comment for field `requested_cancellation` in message `.google.cloud.gkemulticloud.v1.OperationMetadata` is changed (PiperOrigin-RevId: 839306772) ([185951b](185951b3)) * A comment for field `throughput` in message `.google.cloud.gkemulticloud.v1.AwsVolumeTemplate` is changed (PiperOrigin-RevId: 839306772) ([185951b](185951b3)) * A comment for field `tags` in message `.google.cloud.gkemulticloud.v1.AttachedCluster` is changed (PiperOrigin-RevId: 839306772) ([185951b](185951b3)) </details> <details><summary>hypercomputecluster: 0.1.0</summary> ## [0.1.0](hypercomputecluster/v0.0.0...hypercomputecluster/v0.1.0) (2025-12-04) ### Features * add new client (#13423) (PiperOrigin-RevId: 823382075) ([945efa9](945efa94)) </details> <details><summary>netapp: 1.11.0</summary> ## [1.11.0](netapp/v1.10.1...netapp/v1.11.0) (2025-12-04) ### Features * Add Squash Mode to Export Policy This change introduces squash mode options to the export policy rules. Squash mode determines how user and group IDs are mapped for NFS volume access. The following squash modes are added: * **NO_ROOT_SQUASH** Root user retains full access. * **ROOT_SQUASH** Root user is mapped to the anonymous user ID. * **ALL_SQUASH** All users are mapped to the anonymous user ID. A new field anon_uid is also added to specify the anonymous user ID when ALL_SQUASH is used. The squash_mode field takes precedence over the existing has_root_access field, which will be deprecated in the future. (PiperOrigin-RevId: 834629780) ([185951b](185951b3)) </details> <details><summary>networksecurity: 0.11.0</summary> ## [0.11.0](networksecurity/v0.10.7...networksecurity/v0.11.0) (2025-12-04) ### Features * publish networksecurity v1beta1 api (PiperOrigin-RevId: 838919865) ([185951b](185951b3)) </details> <details><summary>parallelstore: 0.12.0</summary> ## [0.12.0](parallelstore/v0.11.4...parallelstore/v0.12.0) (2025-12-04) ### Features * add transfer metadata options proto definition (PiperOrigin-RevId: 839132650) ([185951b](185951b3)) ### Documentation * update tickets component number (PiperOrigin-RevId: 839132650) ([185951b](185951b3)) </details> <details><summary>shopping: 1.4.0</summary> ## [1.4.0](shopping/v1.3.0...shopping/v1.4.0) (2025-12-04) ### Features * A new field `products_management` is added to message `.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new message `VerifySelfRequest` is added (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new field `comparison_shopping` is added to message `.google.shopping.merchant.accounts.v1.AccountService` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * Added C#, PHP, and Ruby namespace options to LocalInventory and RegionalInventory proto files for improved client library generation (PiperOrigin-RevId: 830781339) ([185951b](185951b3)) * Added `VERIFY_BUSINESS_VIDEO_IN_MERCHANT_CENTER` as a new enum value to `ExternalAction.Type`. This supports redirecting to Merchant Center for business video verification (PiperOrigin-RevId: 830781240) ([185951b](185951b3)) * A new message `ComparisonShopping` is added (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new field `comparison_shopping` is added to message `.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * Added the `product_id_base64_url_encoded` field to `ListLocalInventoriesRequest`, `InsertLocalInventoryRequest`, `DeleteLocalInventoryRequest`, `ListRegionalInventoriesRequest`, `InsertRegionalInventoryRequest`, and `DeleteRegionalInventoryRequest`. This allows for product IDs containing special characters to be correctly handled when base64url-encoded (PiperOrigin-RevId: 830781339) ([185951b](185951b3)) * Added the `product_id_base64_url_encoded` field to `InsertProductInputRequest`, `DeleteProductInputRequest`, and `GetProductRequest`. This allows for product IDs containing special characters to be correctly handled when unpadded base64url-encoded (PiperOrigin-RevId: 830818193) ([185951b](185951b3)) * A new message `VerificationMailSettings` is added (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new field `account_management` is added to message `.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * Add the AccountLimit resource and its service to the quota bundle (PiperOrigin-RevId: 830811341) ([185951b](185951b3)) * Added `handling_cutoff_time` and `handling_cutoff_timezone` fields to the `Shipping` message within `Attributes` (PiperOrigin-RevId: 830818171) ([185951b](185951b3)) * A new field `radius_area` is added to message `.google.shopping.merchant.accounts.v1.Region` (PiperOrigin-RevId: 838817995) ([185951b](185951b3)) * A new field `external_account_id` is added to message `.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new message `SetAliasForRelationship` is added (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * Added the `product_id_base64_url_encoded` field to `RenderProductIssuesRequest`. This allows for product IDs containing special characters to be correctly handled when unpadded base64url-encoded (PiperOrigin-RevId: 830781240) ([185951b](185951b3)) * Added the `product_id_base64_url_encoded` field to `ListLocalInventoriesRequest`, `InsertLocalInventoryRequest`, `DeleteLocalInventoryRequest`, `ListRegionalInventoriesRequest`, `InsertRegionalInventoryRequest`, and `DeleteRegionalInventoryRequest`. This allows for product IDs containing special characters to be correctly handled when unpadded base64url-encoded (PiperOrigin-RevId: 830781196) ([185951b](185951b3)) * A new field `verification_mail_settings` is added to message `.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new field `campaigns_management` is added to message `.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new method `GetAccountForGcpRegistration` is added to service `DeveloperRegistrationService` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new method `VerifySelf` is added to service `UserService` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A new field `set_alias` is added to message `.google.shopping.merchant.accounts.v1.CreateAndConfigureAccountRequest` (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * Added several fields to enhance shipping configurations: - `handling_cutoff_time` and `handling_cutoff_timezone` within the `Shipping` message - `ShippingBusinessDaysConfig` message to define business days for shipping - `shipping_handling_business_days` and `shipping_transit_business_days` in `ProductAttributes` - `HandlingCutoffTime` message to configure country-specific handling cutoffs - `handling_cutoff_times` array in `ProductAttributes` (PiperOrigin-RevId: 830818193) ([185951b](185951b3)) * Added C#, PHP, and Ruby namespace options to ProductInputs, Products, and ProductsCommon proto files for improved client library generation (PiperOrigin-RevId: 830818171) ([185951b](185951b3)) * A new message `GetAccountForGcpRegistrationResponse` is added (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) ### Bug Fixes * upgrade gRPC service registration func An update to Go gRPC Protobuf generation will change service registration function signatures to use an interface instead of a concrete type in generated .pb.go service files. This change should affect very few client library users. See release notes advisories in #11025. (PiperOrigin-RevId: 833829944) ([185951b](185951b3)) ### Documentation * Updated comments for several fields, including product name formats, data source creation, destination field descriptions (now also referred to as Marketing Methods), and the default page size for `ListProductsRequest` (PiperOrigin-RevId: 830818171) ([185951b](185951b3)) * A comment for message `User` is changed (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A comment for enum `State` is changed (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A comment for method `DeleteAccount` in service `AccountsService` is changed (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A comment for field `developer_email` in message `.google.shopping.merchant.accounts.v1.RegisterGcpRequest` is changed (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * A comment for enum value `API_DEVELOPER` in enum `AccessRight` is changed (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * Updated the API summary and overview in the service configuration (PiperOrigin-RevId: 830781339) ([185951b](185951b3)) * A comment for message `Program` is changed (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) * Updated various comments, including links to data source creation guides (PiperOrigin-RevId: 830818193) ([185951b](185951b3)) * A comment for enum `AccessRight` is changed (PiperOrigin-RevId: 832226276) ([185951b](185951b3)) </details> <details><summary>vectorsearch: 0.1.0</summary> ## [0.1.0](vectorsearch/v0.0.0...vectorsearch/v0.1.0) (2025-12-04) ### Features * Added TextSearch support to the batch search API (PiperOrigin-RevId: 834645993) ([185951b](185951b3)) * add new clients (#13369) (PiperOrigin-RevId: 828838688) ([41ac3fc](41ac3fcc)) ### Documentation * Added clarification of expected format of collection and index fields (PiperOrigin-RevId: 834645993) ([185951b](185951b3)) </details> <details><summary>vmmigration: 1.10.0</summary> ## [1.10.0](vmmigration/v1.9.1...vmmigration/v1.10.0) (2025-12-04) ### Features * add adaptation modifiers and storage pools to MigratingVM target defaults (PiperOrigin-RevId: 832917413) ([185951b](185951b3)) * add adaptation modifiers and guest OS features to ImageImport target details (PiperOrigin-RevId: 832917413) ([185951b](185951b3)) ### Documentation * A comment for message `DataDiskImageImport` is changed (PiperOrigin-RevId: 832917413) ([185951b](185951b3)) * A comment for method `CancelImageImportJob` in service `VmMigration` is changed (PiperOrigin-RevId: 832917413) ([185951b](185951b3)) </details> <details><summary>Bulk Changes</summary> * chore: librarian update image pull request: 20251112T170525Z (#13346) ([29b6c97](29b6c97d)) Libraries: aiplatform,artifactregistry,backupdr,batch,channel,cloudbuild,dialogflow,eventarc,geminidataanalytics,gkemulticloud,netapp,networksecurity,parallelstore,vmmigration * chore: split .repo-metadata-full.json into per-API .repo-metadata.json files (#13272) ([2debab5](2debab5d)) Libraries: artifactregistry,batch,channel,cloudbuild,compute,eventarc,geminidataanalytics,gkemulticloud,netapp,networksecurity,parallelstore,vmmigration * chore: update deps (#13364) ([6a53459](6a534590)) Libraries: aiplatform,artifactregistry,backupdr,batch,channel,cloudbuild,compute,dialogflow,eventarc,geminidataanalytics,gkemulticloud,netapp,networksecurity,parallelstore,shopping,vmmigration </details>
feat: update image to us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/librarian-go@sha256:c4bb601f466f857040028f81c47ecf808034fcf8463166320f80be761653d167