Skip to main content

How do you Update Gemini / AI Model Versions in Your SecOpsEnvironment?

  • July 16, 2026
  • 7 replies
  • 70 views

_K_O
Forum|alt.badge.img+13

Hi All, 

 

We received notifications that some Gemini versions that we were relying on for Playbooks were going to be deprecated: https://docs.cloud.google.com/gemini-enterprise-agent-platform/models/model-versions. Based on this, we needed to identify the versions that were currently in use within our SecOps environment. 

 

In some cases, e.g. VertexAI, we have a default set which is great if all playbooks use the default, but that didn’t turn out to be the case. The method we used to identify the playbooks/blocks using the soon-to-be-deprecated AI models is as follows:

Process

  1. Exported all playbook/block definitions from SecOps.
  2. Extracted the JSON contents into a local folder.
  3. Ran a Python parser to:
    1. Search JSON files for Gemini and/or Vertex references.
    2. Identify affected playbooks.
    3. Extract configured model IDs from playbook step parameters.
    4. Generated a list of playbooks using affected Gemini/Vertex models.

Output

  1. The scan reports:

    1. Playbook name

    2. Detection type (Gemini, Vertex, or both)

    3. Referenced model IDs (where available)

 

This seemed to be pretty inefficient and I’m certain that there are better ways to do it. Please let me know how you and your team have solved this problem! Also hopefully the Google team can chime in on better ways to do this going forward :) 

 

~ TIA

7 replies

cmorris
Staff
Forum|alt.badge.img+16
  • Staff
  • July 16, 2026

Are you using prebuilt or custom models with the Vertex AI integration? I have not yet tested it, but wonder if aliases would work - https://cloud.google.com/blog/products/ai-machine-learning/vertex-ai-model-registry?e=48754805#:~:text=AI%20Model%20Registry%2C-,aliases,-are%20uniquely%20named


_K_O
Forum|alt.badge.img+13
  • Author
  • Silver 2
  • July 16, 2026

We’re using prebuilt models, but different use cases may use different models, e.g. flash vs pro. 


whathehack81
Forum|alt.badge.img+9

Your current method is sound for discovery, but I would automate it as a recurring control rather than repeat the export manually.

The main improvement would be:

Enumerate playbooks and blocks through the SecOps API.

Recursively inspect all nested steps and action parameters.

Detect Gemini/Vertex integrations and extract:

explicit model IDs

aliases

variables used as model parameters

integration-instance defaults

Resolve inherited/default values, not only literal IDs stored in the playbook JSON.

Compare the resulting dependency inventory against a maintained deprecation list.

Alert or block promotion when a deprecated model is referenced.

One important edge case is that searching only for literal model IDs may miss playbooks that inherit the model from an integration instance, environment variable, alias, or nested block.

Aliases would help if every playbook references a stable alias and only the alias mapping changes. For prebuilt models or steps with model IDs embedded directly in their parameters, the dependency scan is still needed.

Ideally, Google could expose a first-class “model dependency inventory” showing which playbooks, blocks, and integration instances reference each model version.  🧠


_K_O
Forum|alt.badge.img+13
  • Author
  • Silver 2
  • July 16, 2026

@whathehack81 thanks for the reply. Makes sense, our next step was going to be a job as you suggested which still mostly automates discovery. have you / your team managed to update the actions automatically using this method as well? 

 


whathehack81
Forum|alt.badge.img+9

We have not automated the write-back step in production yet. I would treat automatic updates as a separate, higher-risk phase from discovery.

The safe pattern would be:

Export and inventory all affected playbooks/blocks.

Build a deterministic mapping of deprecated model ID → approved replacement.

Generate a proposed JSON patch for each object.

Validate the target action schema and confirm the replacement model supports the same parameters.

Apply changes through the SecOps API only after backup/version capture.

Re-export and diff the updated objects.

Run validation in a non-production environment before promotion.

I would avoid blind string replacement because the model value may be:

stored directly in an action parameter

inherited from an integration instance

passed through a variable

embedded in a nested block

tied to model-specific parameters that changed between versions

So yes, the update can be automated, but I would make it approval-gated: discovery → proposed patch → review → API update → post-update validation.

My next step would be to build the patch generator first, then test the write path against a small non-production playbook set before enabling bulk updates. I will notify you of any updates. 🔥


_K_O
Forum|alt.badge.img+13
  • Author
  • Silver 2
  • July 17, 2026

@cmorris we are also running into permission issues since the recommended models are not supported in different regions. Do you know when support will be extended to these regions? https://docs.cloud.google.com/gemini-enterprise-agent-platform/resources/locations#united-states 

 


whathehack81
Forum|alt.badge.img+9

One additional control for the automated updater is regional availability validation. A model ID may be a valid replacement globally but unavailable in the region used by the SecOps environment.

I would extend the migration mapping to include:

deprecated model

approved replacement

supported regions/endpoints

preview or GA status

modality compatibility

data-residency constraints

Before generating or applying a patch, the job should verify that the replacement model is available through the tenant’s configured regional or global endpoint. Otherwise, a syntactically correct update could leave the playbook unusable.

The endpoint-location matrix in the Google Cloud documentation could serve as one input to that validation, although ideally Google would expose this information through a machine-readable API. 🔥 🔥