<mxfile host="thecodeclouds.com" agent="hand-built" version="24.0.0" type="device">
<diagram id="ai-platform" name="AI platform on Google Cloud: reference architecture"><mxGraphModel dx="1400" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1500" pageHeight="1010" math="0" shadow="0"><root><mxCell id="0"/><mxCell id="1" parent="0"/><mxCell id="c1" value="An AI platform on Google Cloud: what the platform team owns" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=18;fontColor=#232F3E;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="20" y="14" width="1000" height="24" as="geometry"/></mxCell>
<mxCell id="c2" value="Tenants come in through one front door. Everything below the line is shared, paved and paid for by the platform." style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="20" y="40" width="1200" height="18" as="geometry"/></mxCell>
<mxCell id="t1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#5F6368;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="40" y="70" width="258.5" height="56" as="geometry"/></mxCell>
<mxCell id="c4" value="Product teams" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="50" y="78" width="242.5" height="18" as="geometry"/></mxCell>
<mxCell id="c5" value="apps calling models over an API" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="50" y="96" width="242.5" height="16" as="geometry"/></mxCell>
<mxCell id="t2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#5F6368;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="310.5" y="70" width="258.5" height="56" as="geometry"/></mxCell>
<mxCell id="c7" value="Data scientists" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="320.5" y="78" width="242.5" height="18" as="geometry"/></mxCell>
<mxCell id="c8" value="notebooks, training, evals" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="320.5" y="96" width="242.5" height="16" as="geometry"/></mxCell>
<mxCell id="t3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#5F6368;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="581" y="70" width="258.5" height="56" as="geometry"/></mxCell>
<mxCell id="c10" value="AI agents" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="591" y="78" width="242.5" height="18" as="geometry"/></mxCell>
<mxCell id="c11" value="ADK, LangGraph, MCP clients" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="591" y="96" width="242.5" height="16" as="geometry"/></mxCell>
<mxCell id="t4" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#5F6368;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="851.5" y="70" width="258.5" height="56" as="geometry"/></mxCell>
<mxCell id="c13" value="Internal users" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="861.5" y="78" width="242.5" height="18" as="geometry"/></mxCell>
<mxCell id="c14" value="Gemini Enterprise, chat, search" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="861.5" y="96" width="242.5" height="16" as="geometry"/></mxCell>
<mxCell id="c15" value="&lt;b&gt;Google Cloud&lt;/b&gt;" style="rounded=1;absoluteArcSize=1;arcSize=6;html=1;whiteSpace=wrap;strokeColor=#4285F4;fillColor=#FFFFFF;strokeWidth=1.5;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=34;spacingTop=-2;" vertex="1" parent="1"><mxGeometry x="20" y="146" width="1460" height="846" as="geometry"/></mxCell>
<mxCell id="c16" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;fillColor=#4285F4;shape=mxgraph.gcp2.google_cloud_platform;" vertex="1" parent="1"><mxGeometry x="28" y="151" width="22" height="22" as="geometry"/></mxCell>
<mxCell id="c17" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#D93025;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="40" y="186" width="1070" height="112" as="geometry"/></mxCell>
<mxCell id="c18" style="edgeStyle=none;html=1;rounded=0;strokeColor=#D93025;strokeWidth=5;dashed=0;startArrow=none;startFill=1;endArrow=none;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="190" as="sourcePoint"/><mxPoint x="40" y="294" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c19" value="1  Front door: one way in for every model call and tool call" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontColor=#D93025;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="54" y="194" width="1050" height="19" as="geometry"/></mxCell>
<mxCell id="g1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="56" y="222" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c21" value="Agent Gateway" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="66" y="230" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c22" value="per-agent policy, one control point" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="66" y="248" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="g2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="319" y="222" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c24" value="Model Armor" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="329" y="230" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c25" value="prompt injection, data leakage" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="329" y="248" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="g3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="582" y="222" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c27" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;fillColor=#5184F3;shape=mxgraph.gcp2.cloud_load_balancing;" vertex="1" parent="1"><mxGeometry x="590" y="236" width="32" height="30" as="geometry"/></mxCell>
<mxCell id="c28" value="API gateway / load balancer" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="630" y="230" width="197" height="18" as="geometry"/></mxCell>
<mxCell id="c29" value="keys, quotas per tenant" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="630" y="248" width="197" height="16" as="geometry"/></mxCell>
<mxCell id="g4" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="845" y="222" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c31" value="Agent Registry" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="855" y="230" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c32" value="approved tools and MCP servers" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="855" y="248" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="c33" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#1A73E8;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="40" y="316" width="1070" height="196" as="geometry"/></mxCell>
<mxCell id="c34" style="edgeStyle=none;html=1;rounded=0;strokeColor=#1A73E8;strokeWidth=5;dashed=0;startArrow=none;startFill=1;endArrow=none;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="320" as="sourcePoint"/><mxPoint x="40" y="508" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c35" value="2  Serving: managed first, self-hosted when you must" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontColor=#1A73E8;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="54" y="324" width="1050" height="19" as="geometry"/></mxCell>
<mxCell id="c36" value="&lt;b&gt;Gemini Enterprise Agent Platform (formerly Vertex AI)&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#AECBFA;fillColor=#F1F6FE;dashed=0;fontSize=12;fontStyle=0;fontColor=#1A73E8;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="56" y="350" width="520" height="148" as="geometry"/></mxCell>
<mxCell id="s1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="70" y="380" width="240" height="58" as="geometry"/></mxCell>
<mxCell id="c38" value="Model Garden" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="80" y="388" width="224" height="18" as="geometry"/></mxCell>
<mxCell id="c39" value="Gemini, partner, open models" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="80" y="406" width="224" height="16" as="geometry"/></mxCell>
<mxCell id="s2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="322" y="380" width="240" height="58" as="geometry"/></mxCell>
<mxCell id="c41" value="Endpoints" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="332" y="388" width="224" height="18" as="geometry"/></mxCell>
<mxCell id="c42" value="online + batch inference" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="332" y="406" width="224" height="16" as="geometry"/></mxCell>
<mxCell id="s3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="70" y="448" width="492" height="40" as="geometry"/></mxCell>
<mxCell id="c44" value="Agent Runtime" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="80" y="456" width="476" height="18" as="geometry"/></mxCell>
<mxCell id="c45" value="ADK agents, Sessions, Memory Bank" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="80" y="474" width="476" height="16" as="geometry"/></mxCell>
<mxCell id="c46" value="&lt;b&gt;GKE for self-hosted models&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#AECBFA;fillColor=#F1F6FE;dashed=0;fontSize=12;fontStyle=0;fontColor=#1A73E8;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="590" y="350" width="506" height="148" as="geometry"/></mxCell>
<mxCell id="k1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="604" y="380" width="233" height="58" as="geometry"/></mxCell>
<mxCell id="c48" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;fillColor=#5184F3;shape=mxgraph.gcp2.container_engine;" vertex="1" parent="1"><mxGeometry x="612" y="394" width="32" height="30" as="geometry"/></mxCell>
<mxCell id="c49" value="GKE Inference Gateway" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="652" y="388" width="179" height="18" as="geometry"/></mxCell>
<mxCell id="c50" value="model-aware routing" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="652" y="406" width="179" height="16" as="geometry"/></mxCell>
<mxCell id="k2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="849" y="380" width="233" height="58" as="geometry"/></mxCell>
<mxCell id="c52" value="GPU / TPU node pools" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="859" y="388" width="217" height="18" as="geometry"/></mxCell>
<mxCell id="c53" value="DWS flex-start, Spot" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="859" y="406" width="217" height="16" as="geometry"/></mxCell>
<mxCell id="k3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="604" y="448" width="478" height="40" as="geometry"/></mxCell>
<mxCell id="c55" value="Model servers (vLLM, SGLang)" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="614" y="456" width="462" height="18" as="geometry"/></mxCell>
<mxCell id="c56" value="weights streamed from Cloud Storage" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="614" y="474" width="462" height="16" as="geometry"/></mxCell>
<mxCell id="c57" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#8430CE;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="40" y="530" width="1070" height="112" as="geometry"/></mxCell>
<mxCell id="c58" style="edgeStyle=none;html=1;rounded=0;strokeColor=#8430CE;strokeWidth=5;dashed=0;startArrow=none;startFill=1;endArrow=none;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="534" as="sourcePoint"/><mxPoint x="40" y="638" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c59" value="3  Build and release: notebooks to registry to endpoint, the same way every time" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontColor=#8430CE;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="54" y="538" width="1050" height="19" as="geometry"/></mxCell>
<mxCell id="b1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="56" y="566" width="200" height="58" as="geometry"/></mxCell>
<mxCell id="c61" value="Colab Enterprise / Workbench" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="66" y="574" width="184" height="18" as="geometry"/></mxCell>
<mxCell id="c62" value="no public IP, CMEK" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="66" y="592" width="184" height="16" as="geometry"/></mxCell>
<mxCell id="b2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="266" y="566" width="200" height="58" as="geometry"/></mxCell>
<mxCell id="c64" value="Pipelines" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="276" y="574" width="184" height="18" as="geometry"/></mxCell>
<mxCell id="c65" value="train, evaluate, register" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="276" y="592" width="184" height="16" as="geometry"/></mxCell>
<mxCell id="b3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="476" y="566" width="200" height="58" as="geometry"/></mxCell>
<mxCell id="c67" value="Evals" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="486" y="574" width="184" height="18" as="geometry"/></mxCell>
<mxCell id="c68" value="quality gate before promote" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="486" y="592" width="184" height="16" as="geometry"/></mxCell>
<mxCell id="b4" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="686" y="566" width="200" height="58" as="geometry"/></mxCell>
<mxCell id="c70" value="Model Registry" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="696" y="574" width="184" height="18" as="geometry"/></mxCell>
<mxCell id="c71" value="versions, aliases, lineage" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="696" y="592" width="184" height="16" as="geometry"/></mxCell>
<mxCell id="b5" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="896" y="566" width="200" height="58" as="geometry"/></mxCell>
<mxCell id="c73" value="Artifact Registry + Cloud Build" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="906" y="574" width="184" height="18" as="geometry"/></mxCell>
<mxCell id="c74" value="images, signed, scanned" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="906" y="592" width="184" height="16" as="geometry"/></mxCell>
<mxCell id="c75" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#1E8E3E;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="40" y="660" width="1070" height="112" as="geometry"/></mxCell>
<mxCell id="c76" style="edgeStyle=none;html=1;rounded=0;strokeColor=#1E8E3E;strokeWidth=5;dashed=0;startArrow=none;startFill=1;endArrow=none;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="664" as="sourcePoint"/><mxPoint x="40" y="768" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c77" value="4  Data: governed once, used by every tenant" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontColor=#1E8E3E;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="54" y="668" width="1050" height="19" as="geometry"/></mxCell>
<mxCell id="d1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="56" y="696" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c79" value="BigQuery" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="66" y="704" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c80" value="training data, billing export" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="66" y="722" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="d2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="319" y="696" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c82" value="Cloud Storage" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="329" y="704" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c83" value="datasets, model weights" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="329" y="722" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="d3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="582" y="696" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c85" value="Feature Store" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="592" y="704" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c86" value="served from BigQuery" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="592" y="722" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="d4" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="845" y="696" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c88" value="Vector Search / RAG Engine" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="855" y="704" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c89" value="grounding for agents" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="855" y="722" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="c90" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#5F6368;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="40" y="790" width="1070" height="112" as="geometry"/></mxCell>
<mxCell id="c91" style="edgeStyle=none;html=1;rounded=0;strokeColor=#5F6368;strokeWidth=5;dashed=0;startArrow=none;startFill=1;endArrow=none;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="794" as="sourcePoint"/><mxPoint x="40" y="898" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c92" value="5  Landing zone: the guardrails nobody has to remember" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontColor=#5F6368;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="54" y="798" width="1050" height="19" as="geometry"/></mxCell>
<mxCell id="z1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="56" y="826" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c94" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;fillColor=#5184F3;shape=mxgraph.gcp2.virtual_private_cloud;" vertex="1" parent="1"><mxGeometry x="64" y="840" width="32" height="30" as="geometry"/></mxCell>
<mxCell id="c95" value="Shared VPC + PSC" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="104" y="834" width="197" height="18" as="geometry"/></mxCell>
<mxCell id="c96" value="private access to APIs" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="104" y="852" width="197" height="16" as="geometry"/></mxCell>
<mxCell id="z2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="319" y="826" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c98" value="VPC Service Controls" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="329" y="834" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c99" value="perimeter around AI + data" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="329" y="852" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="z3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="582" y="826" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c101" value="CMEK with Cloud KMS" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="592" y="834" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c102" value="keys per environment" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="592" y="852" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="z4" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="845" y="826" width="251" height="58" as="geometry"/></mxCell>
<mxCell id="c104" value="Org policies" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="855" y="834" width="235" height="18" as="geometry"/></mxCell>
<mxCell id="c105" value="allowed regions, no public IPs" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="855" y="852" width="235" height="16" as="geometry"/></mxCell>
<mxCell id="c106" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#D93025;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1130" y="186" width="330" height="360" as="geometry"/></mxCell>
<mxCell id="c107" style="edgeStyle=none;html=1;rounded=0;strokeColor=#D93025;strokeWidth=5;dashed=0;startArrow=none;startFill=1;endArrow=none;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1130" y="190" as="sourcePoint"/><mxPoint x="1130" y="542" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c108" value="Govern" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontColor=#D93025;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1144" y="194" width="310" height="19" as="geometry"/></mxCell>
<mxCell id="v1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="222" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c110" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;fillColor=#5184F3;shape=mxgraph.gcp2.cloud_iam;" vertex="1" parent="1"><mxGeometry x="1154" y="238" width="32" height="30" as="geometry"/></mxCell>
<mxCell id="c111" value="IAM + Agent Identity" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1194" y="230" width="246" height="18" as="geometry"/></mxCell>
<mxCell id="c112" value="one identity per agent" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1194" y="248" width="246" height="16" as="geometry"/></mxCell>
<mxCell id="v2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="296" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c114" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;fillColor=#5184F3;shape=mxgraph.gcp2.cloud_security_command_center;" vertex="1" parent="1"><mxGeometry x="1154" y="312" width="32" height="30" as="geometry"/></mxCell>
<mxCell id="c115" value="Security Command Center" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1194" y="304" width="246" height="18" as="geometry"/></mxCell>
<mxCell id="c116" value="AI assets, threats" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1194" y="322" width="246" height="16" as="geometry"/></mxCell>
<mxCell id="v3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="370" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c118" value="" style="sketch=0;html=1;aspect=fixed;strokeColor=none;fillColor=#5184F3;shape=mxgraph.gcp2.logging;" vertex="1" parent="1"><mxGeometry x="1154" y="386" width="32" height="30" as="geometry"/></mxCell>
<mxCell id="c119" value="Audit logs" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1194" y="378" width="246" height="18" as="geometry"/></mxCell>
<mxCell id="c120" value="Data Access on for AI APIs" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1194" y="396" width="246" height="16" as="geometry"/></mxCell>
<mxCell id="v4" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="444" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c122" value="Model + data approvals" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="452" width="284" height="18" as="geometry"/></mxCell>
<mxCell id="c123" value="which models, which regions" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="470" width="284" height="16" as="geometry"/></mxCell>
<mxCell id="c124" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#E37400;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1130" y="562" width="330" height="340" as="geometry"/></mxCell>
<mxCell id="c125" style="edgeStyle=none;html=1;rounded=0;strokeColor=#E37400;strokeWidth=5;dashed=0;startArrow=none;startFill=1;endArrow=none;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="1130" y="566" as="sourcePoint"/><mxPoint x="1130" y="898" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c126" value="Observe and pay" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=13;fontColor=#E37400;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1144" y="570" width="310" height="19" as="geometry"/></mxCell>
<mxCell id="o1" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="598" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c128" value="Cloud Monitoring" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="606" width="284" height="18" as="geometry"/></mxCell>
<mxCell id="c129" value="latency, TTFT, errors, GPU use" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="624" width="284" height="16" as="geometry"/></mxCell>
<mxCell id="o2" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="672" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c131" value="Traces for agents" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="680" width="284" height="18" as="geometry"/></mxCell>
<mxCell id="c132" value="every model + tool call" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="698" width="284" height="16" as="geometry"/></mxCell>
<mxCell id="o3" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="746" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c134" value="Billing export to BigQuery" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="754" width="284" height="18" as="geometry"/></mxCell>
<mxCell id="c135" value="labels: team, app, env" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="772" width="284" height="16" as="geometry"/></mxCell>
<mxCell id="o4" value="&lt;b&gt;&lt;/b&gt;" style="rounded=1;arcSize=8;html=1;whiteSpace=wrap;strokeColor=#DADCE0;fillColor=#FFFFFF;dashed=0;fontSize=12;fontStyle=0;fontColor=#3C4043;align=left;verticalAlign=top;spacingLeft=8;" vertex="1" parent="1"><mxGeometry x="1146" y="820" width="300" height="62" as="geometry"/></mxCell>
<mxCell id="c137" value="Budgets + quotas" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#202124;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="828" width="284" height="18" as="geometry"/></mxCell>
<mxCell id="c138" value="per tenant, alert at 80%" style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=10;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="1156" y="846" width="284" height="16" as="geometry"/></mxCell>
<mxCell id="c139" value="Tenants never get a raw API key to a model or a GPU node. They get a project, a quota, a gateway route and a dashboard." style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=12;fontColor=#3C4043;fontStyle=1;spacing=0;" vertex="1" parent="1"><mxGeometry x="40" y="924" width="1070" height="18" as="geometry"/></mxCell>
<mxCell id="c140" value="Layout: organization › folder ai-platform › one project per environment (dev, staging, prod) and per tenant. Product names as of November 2026." style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=11;fontColor=#5F6368;fontStyle=0;spacing=0;" vertex="1" parent="1"><mxGeometry x="40" y="950" width="1070" height="17" as="geometry"/></mxCell>
<mxCell id="c141" style="edgeStyle=none;html=1;rounded=0;strokeColor=#D93025;strokeWidth=2;dashed=0;startArrow=none;startFill=1;endArrow=block;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="169.25" y="126" as="sourcePoint"/><mxPoint x="169.25" y="184" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c142" style="edgeStyle=none;html=1;rounded=0;strokeColor=#D93025;strokeWidth=2;dashed=0;startArrow=none;startFill=1;endArrow=block;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="439.75" y="126" as="sourcePoint"/><mxPoint x="439.75" y="184" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c143" style="edgeStyle=none;html=1;rounded=0;strokeColor=#D93025;strokeWidth=2;dashed=0;startArrow=none;startFill=1;endArrow=block;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="710.25" y="126" as="sourcePoint"/><mxPoint x="710.25" y="184" as="targetPoint"/></mxGeometry></mxCell>
<mxCell id="c144" style="edgeStyle=none;html=1;rounded=0;strokeColor=#D93025;strokeWidth=2;dashed=0;startArrow=none;startFill=1;endArrow=block;endFill=1;endSize=4;startSize=4;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="980.75" y="126" as="sourcePoint"/><mxPoint x="980.75" y="184" as="targetPoint"/></mxGeometry></mxCell></root></mxGraphModel></diagram>
</mxfile>
