Skip to content

Feat(Storage): Enable full object checksum validation on JSON path#9

Open
thiyaguk09 wants to merge 55 commits intomainfrom
feat/enable-full-checksum-validation
Open

Feat(Storage): Enable full object checksum validation on JSON path#9
thiyaguk09 wants to merge 55 commits intomainfrom
feat/enable-full-checksum-validation

Conversation

@thiyaguk09
Copy link
Copy Markdown
Owner

@thiyaguk09 thiyaguk09 commented Dec 19, 2025

Enhanced Checksum Validation & Header Logic

This PR implements comprehensive MD5 and CRC32c checksum validation for object uploads, ensuring data integrity via the X-Goog-Hash header, improving data integrity verification. It refactors the upload architecture to handle hashes dynamically across different upload strategies.

Key Technical Changes

1. Core Library Enhancements (google-cloud-core)

  • ResumableUploader & StreamableUploader: Added type-safe logic (int)($rangeEnd + 1) === (int)$size to ensure X-Goog-Hash is transmitted only on the final chunk/request, preventing intermediate validation errors.
  • MultipartUploader: Standardized header merging to ensure hashes calculated by the connection layer are always included in single-shot uploads.
  • Header Integrity: Refactored restOptions merging to ensure custom metadata and encryption headers are preserved alongside checksums.

2. Storage Package Improvements (google-cloud-storage)

  • Automatic Hashing: Implemented logic to calculate missing MD5 or CRC32c hashes when the validate option is enabled.
  • Validation Logic: Updated Bucket::upload() to honor user-provided checksums and prevent redundant re-calculation.
  • Test Coverage: Added unit tests in BucketTest and RestTest to verify hash behavior in resumable, streamable, and multipart scenarios.

Note

CI "Lowest Dependencies" Failure: This failure occurs because the CI environment pulls the tagged version of google-cloud-core from Packagist instead of using the local changes in this PR. This will resolve once the Core changes are merged.

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @thiyaguk09, 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 enhances the storage client's object upload functionality by implementing comprehensive checksum validation. It ensures that both MD5 and CRC32c hashes are calculated for uploaded data and transmitted via the X-Goog-Hash header, improving data integrity verification. The changes also include logic to prevent redundant hash calculations if checksums are already provided, and new tests to cover these behaviors in both resumable and standard upload scenarios.

Highlights

  • Checksum Generation: Both MD5 and CRC32c hashes are now calculated for uploaded objects when validation is enabled, ensuring comprehensive data integrity checks.
  • X-Goog-Hash Header: A new X-Goog-Hash header is constructed from the calculated MD5 and CRC32c hashes and included in upload requests to Google Cloud Storage.
  • Validation Method Enhancement: The chooseValidationMethod now respects pre-existing x-goog-hash headers, allowing users to provide their own checksums and skipping redundant hash calculations.
  • Resumable Upload Testing: A new unit test has been added to verify that the X-Goog-Hash header is correctly applied only to the final chunk of resumable uploads.
  • Object Insertion Testing: A new unit test confirms the proper calculation and inclusion of the X-Goog-Hash header during standard object insertion.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

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
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 enables full object checksum validation by sending both CRC32c and MD5 hashes in the x-goog-hash header for uploads. The implementation correctly calculates and adds these hashes. My review highlights a significant performance issue where the data stream is read twice, which could be problematic for large files. I've also included suggestions for minor code cleanup in both the main logic and the tests. The added tests are comprehensive and effectively validate the new functionality.

@thiyaguk09
Copy link
Copy Markdown
Owner Author

/gemini review

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 introduces checksum validation for uploads by adding the X-Goog-Hash header, which is a valuable feature. The changes are implemented across multipart, resumable, and streamable uploaders, with comprehensive tests covering the new functionality. I've identified a couple of areas for improvement: a logic issue with merging custom headers in the multipart uploader, and an inconsistency in the casing of the X-Goog-Hash header. Addressing these points will enhance the robustness and maintainability of the code.

@thiyaguk09 thiyaguk09 force-pushed the feat/enable-full-checksum-validation branch from e5c33da to 4091fcc Compare March 20, 2026 15:21
@thiyaguk09 thiyaguk09 force-pushed the feat/enable-full-checksum-validation branch from d61822d to 4091fcc Compare March 23, 2026 11:33
Refactor Resumable, Streamable, and Multipart uploaders to ensure
integrity headers (X-Goog-Hash) are only attached to the request
when an upload is being finalized.

- In StreamableUploader, introduced `$isFinalRequest` to track
  intent before writeSize recalculations.
- In ResumableUploader, added a boundary check to only attach
  the hash when the current range matches the total file size.
- Aligns with GCS best practices for resumable upload integrity.
@thiyaguk09 thiyaguk09 force-pushed the feat/enable-full-checksum-validation branch from 4091fcc to 2ac9aad Compare March 23, 2026 11:40
@thiyaguk09 thiyaguk09 marked this pull request as ready for review March 23, 2026 11:45
@thiyaguk09
Copy link
Copy Markdown
Owner Author

/gemini summary

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

This pull request introduces significant enhancements across two Google Cloud client libraries: Storage and BigQuery. For Google Cloud Storage, it implements comprehensive checksum validation for object uploads, ensuring that MD5 and CRC32c hashes are calculated and transmitted via the 'X-Goog-Hash' header, with careful handling for resumable and streamable uploads to send the header only on the final data chunk. Concurrently, for Google Cloud BigQuery, it integrates the stateless query API, allowing certain queries to bypass traditional job creation for improved efficiency.

Highlights

  • Storage Checksum Validation: Implemented calculation of both MD5 and CRC32c hashes for uploaded objects, which are then included in the 'X-Goog-Hash' header.
  • Optimized Hash Calculation: Added logic to prevent redundant hash calculations if checksums are already provided by the user, including checking for existing 'X-Goog-Hash' headers.
  • Conditional 'X-Goog-Hash' for Uploads: Ensured that the 'X-Goog-Hash' header is only sent with the final chunk in resumable and streamable upload scenarios to optimize network traffic and server processing.
  • BigQuery Stateless Query API: Introduced a new execution path in 'BigQueryClient' to leverage the stateless query API for compatible 'QueryJobConfiguration' objects, avoiding job creation overhead for simple queries.
  • Query Configuration Enhancements: Added methods to 'QueryJobConfiguration' to determine query statelessness and convert job configurations into the 'QueryRequest' format required by the stateless API.
  • Comprehensive Testing: Expanded unit and snippet tests to cover the new checksum validation behaviors in Storage and the stateless query execution in BigQuery, ensuring robustness and correctness.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • BigQuery/src/BigQueryClient.php
    • Refactored the 'runQuery' method to introduce a new stateless query execution path.
    • Implemented conditional logic to use the 'connection->query' endpoint directly for stateless queries.
    • Extracted the job creation logic into a new private 'createJob' method for reusability.
  • BigQuery/src/QueryJobConfiguration.php
    • Added a 'JOB_CREATION_MODE_OPTIONAL' constant and an 'isJobIdGenerated' property.
    • Implemented 'isStateless()' method to determine if a query configuration is compatible with the stateless API.
    • Added 'toQueryRequest()' method to convert the job configuration into the format required by the stateless query API.
  • BigQuery/src/QueryResults.php
    • Introduced an 'isStateless' property to track the nature of query results.
    • Modified the 'reload' method to return cached information directly if the query was stateless, avoiding unnecessary API calls.
  • BigQuery/tests/Snippet/BigQueryClientTest.php
    • Updated snippet tests to use the 'connection->query' method instead of 'insertJob' for stateless query scenarios.
    • Adjusted expected arguments for the 'query' method to match the new stateless API request format.
  • BigQuery/tests/Unit/BigQueryClientTest.php
    • Added new unit tests for stateless query execution, including cases where the query endpoint returns a complete job or a job reference.
    • Introduced a data provider to test various non-stateless query options that should fall back to the stateful path.
    • Added a test to verify that queries with pre-defined job IDs use the stateful path.
  • Core/src/Upload/MultipartUploader.php
    • Merged custom headers provided in 'restOptions' into the request headers for multipart uploads.
  • Core/src/Upload/ResumableUploader.php
    • Implemented logic to include the 'X-Goog-Hash' header only on the final chunk of a resumable upload.
  • Core/src/Upload/StreamableUploader.php
    • Implemented logic to include the 'X-Goog-Hash' header only on the final request of a streamable upload.
  • Core/tests/Unit/Upload/MultipartUploaderTest.php
    • Added a test case to verify that custom headers are correctly applied during multipart uploads.
  • Core/tests/Unit/Upload/ResumableUploaderTest.php
    • Added tests to confirm that the 'X-Goog-Hash' header is sent only on the final chunk of resumable uploads and not on intermediate chunks.
  • Core/tests/Unit/Upload/StreamableUploaderTest.php
    • Added tests to confirm that the 'X-Goog-Hash' header is sent only on the final step of streamable uploads.
  • Storage/src/Connection/Rest.php
    • Implemented calculation of both MD5 and CRC32c hashes for uploaded data when validation is enabled.
    • Constructed the 'X-Goog-Hash' header from the calculated hashes.
    • Integrated the 'X-Goog-Hash' header and other custom headers into the uploader options.
    • Updated 'chooseValidationMethod' to also check for pre-existing 'X-Goog-Hash' headers to prevent redundant hash calculations.
  • Storage/tests/Unit/BucketTest.php
    • Added a test to verify that resumable uploads initiated via the Bucket client correctly send the 'X-Goog-Hash' header only on the final chunk.
  • Storage/tests/Unit/Connection/RestTest.php
    • Added a test for 'insertObject' to verify the correct calculation and inclusion of the 'X-Goog-Hash' header.
    • Updated the 'validationMethod' data provider to include test cases where 'X-Goog-Hash' is provided in headers.
    • Added a helper proxy method 'getCrcFromStreamForTest' to expose a private method for testing purposes.
Activity
  • gemini-code-assist[bot] posted an initial summary of the pull request.
  • gemini-code-assist[bot] provided a high-priority review comment regarding the efficiency of hash calculation, suggesting a single-pass approach.
  • gemini-code-assist[bot] provided a medium-priority review comment about a redundant null-coalescing operator in 'Rest.php'.
  • gemini-code-assist[bot] provided a medium-priority review comment about a duplicate assertion in 'RestTest.php'.
  • gemini-code-assist[bot] provided a medium-priority review comment about a PHPDoc typo in 'RestTest.php'.
  • thiyaguk09 requested a review from gemini-code-assist[bot].
  • gemini-code-assist[bot] provided a high-priority review comment about an incorrect 'array_merge' order in 'MultipartUploader.php', which could overwrite custom headers.
  • gemini-code-assist[bot] provided a medium-priority review comment about inconsistent casing for the 'X-Goog-Hash' header in 'Rest.php'.
  • gemini-code-assist[bot] provided a medium-priority review comment about inconsistent casing for the 'X-Goog-Hash' header check in 'Rest.php'.
  • gemini-code-assist[bot] provided a medium-priority review comment about inconsistent casing for the 'X-Goog-Hash' header in a test case in 'RestTest.php'.
  • thiyaguk09 requested a summary from gemini-code-assist[bot].

gcf-owl-bot bot and others added 10 commits March 23, 2026 10:27
…ked deprecated for WorkerPools API (googleapis#9031)

* docs: An existing repeated string field custom_audiences is marked deprecated for WorkerPools API

PiperOrigin-RevId: 886276550

Source-Link: googleapis/googleapis@c063f49

Source-Link: https://github.com/googleapis/googleapis-gen/commit/1adb05fe8457b4879dde688c26b0fe0aca565479
Copy-Tag: eyJwIjoiUnVuLy5Pd2xCb3QueWFtbCIsImgiOiIxYWRiMDVmZTg0NTdiNDg3OWRkZTY4OGMyNmIwZmUwYWNhNTY1NDc5In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…dded to enum `SubResourceType` (googleapis#9036)

* feat: A new value `SUB_RESOURCE_TYPE_READ_POOL` is added to enum `SubResourceType`
feat: A new value `SUB_RESOURCE_TYPE_RESERVATION` is added to enum `SubResourceType`
feat: A new value `SUB_RESOURCE_TYPE_DATASET` is added to enum `SubResourceType`
feat: A new value `SIGNAL_TYPE_VERSION_NEARING_END_OF_LIFE` is added to enum `SignalType
docs: Modified comment for Edition Enum

PiperOrigin-RevId: 887887716

Source-Link: googleapis/googleapis@28d90ca

Source-Link: https://github.com/googleapis/googleapis-gen/commit/c0c1b557c7b07193a69fed7ba488cba93e319112
Copy-Tag: eyJwIjoiRGF0YWJhc2VDZW50ZXIvLk93bEJvdC55YW1sIiwiaCI6ImMwYzFiNTU3YzdiMDcxOTNhNjlmZWQ3YmE0ODhjYmE5M2UzMTkxMTIifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…gleapis#9037)

* feat: Adding new workload specific fields for AlloyDB

PiperOrigin-RevId: 888045819

Source-Link: googleapis/googleapis@f083611

Source-Link: https://github.com/googleapis/googleapis-gen/commit/5ee55b6e37681b6da7779ea7d8eef82974631ee9
Copy-Tag: eyJwIjoiQmFja3VwRHIvLk93bEJvdC55YW1sIiwiaCI6IjVlZTU1YjZlMzc2ODFiNmRhNzc3OWVhN2Q4ZWVmODI5NzQ2MzFlZTkifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…#9038)

* feat: updated v2 dialogflow client libraries

PiperOrigin-RevId: 888116636

Source-Link: googleapis/googleapis@6649b7f

Source-Link: https://github.com/googleapis/googleapis-gen/commit/42267da093de4105008a36bf83f7c567146b42a2
Copy-Tag: eyJwIjoiRGlhbG9nZmxvdy8uT3dsQm90LnlhbWwiLCJoIjoiNDIyNjdkYTA5M2RlNDEwNTAwOGEzNmJmODNmN2M1NjcxNDZiNDJhMiJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
gcf-owl-bot bot and others added 30 commits March 30, 2026 12:41
…leapis#9057)

* feat: Add Pausing/Yaml capabilities to public protos

PiperOrigin-RevId: 891736643

Source-Link: googleapis/googleapis@3aab7be

Source-Link: https://github.com/googleapis/googleapis-gen/commit/3b982464a1fde64933e0073692b551df958cda68
Copy-Tag: eyJwIjoiRGF0YWZsb3cvLk93bEJvdC55YW1sIiwiaCI6IjNiOTgyNDY0YTFmZGU2NDkzM2UwMDczNjkyYjU1MWRmOTU4Y2RhNjgifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…hostnames for private instances (googleapis#9053)

* feat: Add CustomHostConfig to configure custom hostnames for private instances
feat: Add option to require code owner approval in branch rules
feat: Add force option to DeleteInstance request
docs: Improve documentation for labels, pagination, and ListLocations

PiperOrigin-RevId: 889991858

Source-Link: googleapis/googleapis@10ac207

Source-Link: https://github.com/googleapis/googleapis-gen/commit/26a9c81372b50cc5009f125175c3c4e43bba8f97
Copy-Tag: eyJwIjoiU2VjdXJlU291cmNlTWFuYWdlci8uT3dsQm90LnlhbWwiLCJoIjoiMjZhOWM4MTM3MmI1MGNjNTAwOWYxMjUxNzVjM2M0ZTQzYmJhOGY5NyJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…m for when the merchant_id field is not valid (googleapis#9051)

* feat: add INVALID_MERCHANT_ID to the ErrorReason enum for when the merchant_id field is not valid
feat: add EU_POLITICAL_ADVERTISING_DECLARATION_REQUIRED to the ErrorReason enum for campaigns missing the EU political advertising declaration

PiperOrigin-RevId: 889816734

Source-Link: googleapis/googleapis@d3ad5e3

Source-Link: https://github.com/googleapis/googleapis-gen/commit/2108ed190b9b4cdb9277acf3b8154b65ba3d9ef7
Copy-Tag: eyJwIjoiQWRzRGF0YU1hbmFnZXIvLk93bEJvdC55YW1sIiwiaCI6IjIxMDhlZDE5MGI5YjRjZGI5Mjc3YWNmM2I4MTU0YjY1YmEzZDllZjcifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…sInspectionPolicy, GatewaySecurityPolicy, GatewaySecurityPolicyRule, and UrlList (googleapis#9049)

* feat: Publish proto definitions for AuthzPolicy, TlsInspectionPolicy, GatewaySecurityPolicy, GatewaySecurityPolicyRule, and UrlList
feat: Publish proto definitions for Intercept, Mirroring and SecurityProfileGroup
feat: Publish proto definitions for SSG
docs: Update and cleanup docs

PiperOrigin-RevId: 889789965

Source-Link: googleapis/googleapis@a4d528d

Source-Link: https://github.com/googleapis/googleapis-gen/commit/0b793c6cf0f81fa0ab5ae398e6b1ba660788e0ec
Copy-Tag: eyJwIjoiTmV0d29ya1NlY3VyaXR5Ly5Pd2xCb3QueWFtbCIsImgiOiIwYjc5M2M2Y2YwZjgxZmEwYWI1YWUzOThlNmIxYmE2NjA3ODhlMGVjIn0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…f_pattern` and `trace_blocks` (googleapis#9044)

* feat: updated v3 dialogflow client libraries with `dtmf_pattern` and `trace_blocks`

PiperOrigin-RevId: 888886398

Source-Link: googleapis/googleapis@59d5f2b

Source-Link: https://github.com/googleapis/googleapis-gen/commit/614ee1091e3971c8afc6381cd159cff041558a15
Copy-Tag: eyJwIjoiRGlhbG9nZmxvd0N4Ly5Pd2xCb3QueWFtbCIsImgiOiI2MTRlZTEwOTFlMzk3MWM4YWZjNjM4MWNkMTU5Y2ZmMDQxNTU4YTE1In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…oogleapis#9043)

* feat: add folders and teamFolders related changes to v1
docs: A comment for field `force` in message `.google.cloud.dataform.v1.DeleteRepositoryRequest` is changed

PiperOrigin-RevId: 888723444

Source-Link: googleapis/googleapis@29214fa

Source-Link: https://github.com/googleapis/googleapis-gen/commit/5125e3feaf76ea66810c0c5f59607f21b0aaba76
Copy-Tag: eyJwIjoiRGF0YWZvcm0vLk93bEJvdC55YW1sIiwiaCI6IjUxMjVlM2ZlYWY3NmVhNjY4MTBjMGM1ZjU5NjA3ZjIxYjBhYWJhNzYifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
feat: publish new error reasons
docs: fix documentation formatting
docs: update various comments
docs: update license year
docs: update API common type documentation

PiperOrigin-RevId: 889289393

Source-Link: googleapis/googleapis@94bc991

Source-Link: https://github.com/googleapis/googleapis-gen/commit/db7143a338a7c75839b4698cb3ea6f1013b4c3c7
Copy-Tag: eyJwIjoiQ29tbW9uUHJvdG9zLy5Pd2xCb3QueWFtbCIsImgiOiJkYjcxNDNhMzM4YTdjNzU4MzliNDY5OGNiM2VhNmYxMDEzYjRjM2M3In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* docs: update API common type documentation

PiperOrigin-RevId: 890591600

Source-Link: googleapis/googleapis@208f198

Source-Link: https://github.com/googleapis/googleapis-gen/commit/b10e9b25e87eabe00466b7d51b5ee4748c8c66c8
Copy-Tag: eyJwIjoiQ29tbW9uUHJvdG9zLy5Pd2xCb3QueWFtbCIsImgiOiJiMTBlOWIyNWU4N2VhYmUwMDQ2NmI3ZDUxYjVlZTQ3NDhjOGM2NmM4In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
* feat: Add ONTAP passthrough APIs

Adds the following new methods for direct ONTAP API interaction:
- ExecuteOntapPost
- ExecuteOntapGet
- ExecuteOntapDelete
- ExecuteOntapPatch

`StoragePoolType`
docs: A comment for field `source_volume` in message `.google.cloud.netapp.v1.Backup` is changed
docs: A comment for field `type` in message `.google.cloud.netapp.v1.StoragePool` is changed
docs: A comment for field `source_backup` in message `.google.cloud.netapp.v1.RestoreParameters` is changed

fix!: An existing value `UNIFIED_LARGE_CAPACITY` is removed from enum `StoragePoolType`

PiperOrigin-RevId: 889585893

Source-Link: googleapis/googleapis@a90dc55

Source-Link: https://github.com/googleapis/googleapis-gen/commit/13a2f770830b5eaa30cf6b221de9e2bdec80c4db
Copy-Tag: eyJwIjoiTmV0QXBwLy5Pd2xCb3QueWFtbCIsImgiOiIxM2EyZjc3MDgzMGI1ZWFhMzBjZjZiMjIxZGU5ZTJiZGVjODBjNGRiIn0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…os (googleapis#9058)

* feat: Add container_spec to Reasoning Engine public protos

PiperOrigin-RevId: 891815202

Source-Link: googleapis/googleapis@32f3753

Source-Link: https://github.com/googleapis/googleapis-gen/commit/6c6cec700e237ac5ca71004d637602d9ee107930
Copy-Tag: eyJwIjoiQWlQbGF0Zm9ybS8uT3dsQm90LnlhbWwiLCJoIjoiNmM2Y2VjNzAwZTIzN2FjNWNhNzEwMDRkNjM3NjAyZDllZTEwNzkzMCJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
* feat: add sha256 field to Package proto

PiperOrigin-RevId: 891887357

Source-Link: googleapis/googleapis@54ba514

Source-Link: https://github.com/googleapis/googleapis-gen/commit/54b07e8a20f58156b042f6b06df3bad728924d30
Copy-Tag: eyJwIjoiRGF0YWZsb3cvLk93bEJvdC55YW1sIiwiaCI6IjU0YjA3ZThhMjBmNTgxNTZiMDQyZjZiMDZkZjNiYWQ3Mjg5MjRkMzAifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…Flexible CA feature (googleapis#9060)

* feat: [Memorystore for Redis Cluster] Add support for Flexible CA feature

PiperOrigin-RevId: 891891848

Source-Link: googleapis/googleapis@0eb2a36

Source-Link: https://github.com/googleapis/googleapis-gen/commit/e41edbefa8a28491df182ec22394de70381e6019
Copy-Tag: eyJwIjoiUmVkaXNDbHVzdGVyLy5Pd2xCb3QueWFtbCIsImgiOiJlNDFlZGJlZmE4YTI4NDkxZGYxODJlYzIyMzk0ZGU3MDM4MWU2MDE5In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
… CA feature (googleapis#9061)

* feat: [Memorystore for Valkey] Add support for Flexible CA feature

PiperOrigin-RevId: 892004368

Source-Link: googleapis/googleapis@456866b

Source-Link: https://github.com/googleapis/googleapis-gen/commit/3b3ecd8f4c8b5a5621af82dca02805f27b69fa06
Copy-Tag: eyJwIjoiTWVtb3J5c3RvcmUvLk93bEJvdC55YW1sIiwiaCI6IjNiM2VjZDhmNGM4YjVhNTYyMWFmODJkY2EwMjgwNWYyN2I2OWZhMDYifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…o NEW_SURFACE_ONLY (googleapis#9030)

* chore(php): move all remaining migration_mode=MIGRATING to NEW_SURFACE_ONLY

PiperOrigin-RevId: 886270461

Source-Link: googleapis/googleapis@359422c

Source-Link: https://github.com/googleapis/googleapis-gen/commit/898376929e854a8efc30f4b94cf3720ba0b68f58
Copy-Tag: eyJwIjoiRXJyb3JSZXBvcnRpbmcvLk93bEJvdC55YW1sIiwiaCI6Ijg5ODM3NjkyOWU4NTRhOGVmYzMwZjRiOTRjZjM3MjBiYTBiNjhmNTgifQ==
Copy-Tag: eyJwIjoiRmlyZXN0b3JlLy5Pd2xCb3QueWFtbCIsImgiOiI4OTgzNzY5MjllODU0YThlZmMzMGY0Yjk0Y2YzNzIwYmEwYjY4ZjU4In0=
Copy-Tag: eyJwIjoiTG9nZ2luZy8uT3dsQm90LnlhbWwiLCJoIjoiODk4Mzc2OTI5ZTg1NGE4ZWZjMzBmNGI5NGNmMzcyMGJhMGI2OGY1OCJ9
Copy-Tag: eyJwIjoiTG9uZ1J1bm5pbmcvLk93bEJvdC55YW1sIiwiaCI6Ijg5ODM3NjkyOWU4NTRhOGVmYzMwZjRiOTRjZjM3MjBiYTBiNjhmNTgifQ==
Copy-Tag: eyJwIjoiVHJhY2UvLk93bEJvdC55YW1sIiwiaCI6Ijg5ODM3NjkyOWU4NTRhOGVmYzMwZjRiOTRjZjM3MjBiYTBiNjhmNTgifQ==
Copy-Tag: eyJwIjoiVmlzaW9uQWkvLk93bEJvdC55YW1sIiwiaCI6Ijg5ODM3NjkyOWU4NTRhOGVmYzMwZjRiOTRjZjM3MjBiYTBiNjhmNTgifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…ker (googleapis#9048)

Bumps [requests](https://github.com/psf/requests) from 2.32.5 to 2.33.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](psf/requests@v2.32.5...v2.33.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.33.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
- Refactor Rest.php hash calculation to be more concise using
array_filter.
- Remove redundant array initializations in Rest.php by utilizing PHP
autovivification.
- Improve readability of X-Goog-Hash header generation.
…eapis#9070)

* feat: add origin to AttributeContext.Request

docs: update comments and formatting
PiperOrigin-RevId: 892442206

Source-Link: googleapis/googleapis@ebd1d23

Source-Link: https://github.com/googleapis/googleapis-gen/commit/fc58cd7189b2a6fb9342489b9eafedb001a11424
Copy-Tag: eyJwIjoiQ29tbW9uUHJvdG9zLy5Pd2xCb3QueWFtbCIsImgiOiJmYzU4Y2Q3MTg5YjJhNmZiOTM0MjQ4OWI5ZWFmZWRiMDAxYTExNDI0In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* docs: update SelectiveGapicGeneration usage doc

PiperOrigin-RevId: 892649773

Source-Link: googleapis/googleapis@06a20b2

Source-Link: https://github.com/googleapis/googleapis-gen/commit/d9ae66451f81c9df99dbdc9b23bd75d007380f4e
Copy-Tag: eyJwIjoiQ29tbW9uUHJvdG9zLy5Pd2xCb3QueWFtbCIsImgiOiJkOWFlNjY0NTFmODFjOWRmOTlkYmRjOWIyM2JkNzVkMDA3MzgwZjRlIn0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…precate `relax_safety_filters` (googleapis#9064)

* feat: Support safety settings for Gemini voices and deprecate `relax_safety_filters`
feat: Support `enable_textnorm` for Gemini voices.
feat: Mark `advanced_voice_options` as optional.
docs: A comment for field `relax_safety_filters` in message `.google.cloud.texttospeech.v1beta1.AdvancedVoiceOptions` is changed
docs: A comment for field `advanced_voice_options` in message `.google.cloud.texttospeech.v1beta1.SynthesizeSpeechRequest` is changed
docs: A comment for field `markup` in message `.google.cloud.texttospeech.v1beta1.SynthesisInput` is changed
docs: A comment for field `markup` in message `.google.cloud.texttospeech.v1beta1.StreamingSynthesisInput` is changed

PiperOrigin-RevId: 892460024

Source-Link: googleapis/googleapis@015ab81

Source-Link: https://github.com/googleapis/googleapis-gen/commit/5af795eed18ccb69c161b6772886dbcbc8f28e19
Copy-Tag: eyJwIjoiVGV4dFRvU3BlZWNoLy5Pd2xCb3QueWFtbCIsImgiOiI1YWY3OTVlZWQxOGNjYjY5YzE2MWI2NzcyODg2ZGJjYmM4ZjI4ZTE5In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* feat: [Memorystore for Redis Cluster] Add support for Flexible CA feature

PiperOrigin-RevId: 891808664

Source-Link: googleapis/googleapis@4a55538

Source-Link: https://github.com/googleapis/googleapis-gen/commit/22c11cd7f00bf34f030012fb2ddb46cd92c809c7
Copy-Tag: eyJwIjoiVGV4dFRvU3BlZWNoLy5Pd2xCb3QueWFtbCIsImgiOiIyMmMxMWNkN2YwMGJmMzRmMDMwMDEyZmIyZGRiNDZjZDkyYzgwOWM3In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* feat: Support safety settings for Gemini voices and deprecate `relax_safety_filters`
feat: Support `enable_textnorm` for Gemini voices.
feat: Mark `advanced_voice_options` as optional.
docs: A comment for field `relax_safety_filters` in message `.google.cloud.texttospeech.v1beta1.AdvancedVoiceOptions` is changed
docs: A comment for field `advanced_voice_options` in message `.google.cloud.texttospeech.v1beta1.SynthesizeSpeechRequest` is changed
docs: A comment for field `markup` in message `.google.cloud.texttospeech.v1beta1.SynthesisInput` is changed
docs: A comment for field `markup` in message `.google.cloud.texttospeech.v1beta1.StreamingSynthesisInput` is changed

PiperOrigin-RevId: 892460024

Source-Link: googleapis/googleapis@a481d8b

Source-Link: https://github.com/googleapis/googleapis-gen/commit/80347618c38e2e98e5a08fbcf255e6c5be205124
Copy-Tag: eyJwIjoiVGV4dFRvU3BlZWNoLy5Pd2xCb3QueWFtbCIsImgiOiI4MDM0NzYxOGMzOGUyZTk4ZTVhMDhmYmNmMjU1ZTZjNWJlMjA1MTI0In0=

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
… CA feature (googleapis#9075)

* feat: [Memorystore for Valkey] Add support for Flexible CA feature

PiperOrigin-RevId: 893211666

Source-Link: googleapis/googleapis@1568178

Source-Link: https://github.com/googleapis/googleapis-gen/commit/0c9a0193430f73211e6e56ffbee75caf5f1f4aa4
Copy-Tag: eyJwIjoiTWVtb3J5c3RvcmUvLk93bEJvdC55YW1sIiwiaCI6IjBjOWEwMTkzNDMwZjczMjExZTZlNTZmZmJlZTc1Y2FmNWYxZjRhYTQifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
… to the AI Platform v1 API (googleapis#9074)

* feat: add evaluation metrics and autorater configuration to the AI Platform v1 API
feat: add evaluation configuration and dataset runs to TuningJob
feat: add multimodal input support and custom output formats to evaluation metrics

PiperOrigin-RevId: 893059415

Source-Link: googleapis/googleapis@582172d

Source-Link: https://github.com/googleapis/googleapis-gen/commit/b8fd77676de0063e462654a94f38c9b17c4042f7
Copy-Tag: eyJwIjoiQWlQbGF0Zm9ybS8uT3dsQm90LnlhbWwiLCJoIjoiYjhmZDc3Njc2ZGUwMDYzZTQ2MjY1NGE5NGYzOGM5YjE3YzQwNDJmNyJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
…ut (googleapis#9072)

* feat: Added a fields for image and table annotation output
feat: Update comments for proto fields

PiperOrigin-RevId: 893028748

Source-Link: googleapis/googleapis@280bed6

Source-Link: https://github.com/googleapis/googleapis-gen/commit/f1bd6d5615e4ac9b9a5015b2cb45c90ae1d901cd
Copy-Tag: eyJwIjoiRG9jdW1lbnRBaS8uT3dsQm90LnlhbWwiLCJoIjoiZjFiZDZkNTYxNWU0YWM5YjlhNTAxNWIyY2I0NWM5MGFlMWQ5MDFjZCJ9

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
… for Chat API ListMessages, GetMessage, GetSpaceEvent and ListSpaceEvents (googleapis#9076)

* feat: Addition of Section and SectionItem APIs

PiperOrigin-RevId: 893488928

Source-Link: googleapis/googleapis@76fdbf7

Source-Link: https://github.com/googleapis/googleapis-gen/commit/b4ed90249717c1799ab53f33c1428f2f5a89118f
Copy-Tag: eyJwIjoiQXBwc0NoYXQvLk93bEJvdC55YW1sIiwiaCI6ImI0ZWQ5MDI0OTcxN2MxNzk5YWI1M2YzM2MxNDI4ZjJmNWE4OTExOGYifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

* feat: Support app authentication with admin-consent scopes for Chat API ListMessages, GetMessage, GetSpaceEvent and ListSpaceEvents
docs: Update reference documentation for Chat API ListMessages, GetMessage, GetSpaceEvent and ListSpaceEvents.

PiperOrigin-RevId: 893619899

Source-Link: googleapis/googleapis@8d52a0b

Source-Link: https://github.com/googleapis/googleapis-gen/commit/eeac8ca6613a9bcfd90c07de78ca76d58c00bbbf
Copy-Tag: eyJwIjoiQXBwc0NoYXQvLk93bEJvdC55YW1sIiwiaCI6ImVlYWM4Y2E2NjEzYTliY2ZkOTBjMDdkZTc4Y2E3NmQ1OGMwMGJiYmYifQ==

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

---------

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
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.

6 participants