Supported services¶
Legend: ✅ supported · 🚧 partial · ⬜ planned
Cloud Storage (storage)¶
Client: google-cloud-storage · Transport: JSON API (default) · Backend: global
namespace.
| Operation | Status |
|---|---|
| Create / get / list / delete bucket | ✅ |
| Bucket metadata (location, labels, versioning) | 🚧 |
Upload - simple (media) |
✅ |
| Upload - multipart | ✅ |
| Upload - resumable (single + chunked) | ✅ |
| Download (full) | ✅ |
Download with Range |
✅ |
| Object metadata get / patch | ✅ |
| List objects (prefix + delimiter) | ✅ |
| Delete object | ✅ |
| Copy / rewrite object | ✅ |
| Bucket IAM policy (get / set / test) | ✅ |
| HMAC keys (create / list / get / update / delete) | ✅ |
| Signed URLs, object ACLs, notifications | ⬜ |
Secret Manager (secretmanager)¶
Client: google-cloud-secret-manager · Transport: gRPC (default), forced to
REST during a mock scope (no code change needed) · Backend: per-project.
| Operation | Status |
|---|---|
| Create / get / list / delete secret | ✅ |
| Update secret (labels) | 🚧 |
| Add / get / list versions | ✅ |
Access version (incl. latest) |
✅ |
| Enable / disable / destroy version | ✅ |
| IAM policy | ⬜ |
Pub/Sub (pubsub)¶
Client: google-cloud-pubsub (sync, gRPC via PUBSUB_EMULATOR_HOST) and
gcloud.aio.pubsub (async, aiohttp/REST via the aiohttp interceptor) · Backend:
global namespace, shared between both transports. Use the normal clients with no
changes.
| Operation | Status |
|---|---|
| Create / get / list / delete topic | ✅ |
| Create / get / list / delete subscription | ✅ |
| Publish (with attributes, fan-out to all subs) | ✅ |
| Pull / acknowledge | ✅ |
Async client (gcloud.aio.pubsub) |
✅ |
Nack via modifyAckDeadline(0) (redelivery) |
✅ |
Streaming pull (subscribe()) |
⬜ |
| Ack-deadline expiry / retention | ⬜ |
| IAM, schemas, snapshots, seek | ⬜ |
BigQuery (bigquery)¶
Client: google-cloud-bigquery · Transport: REST/JSON (default) · Backend:
per-project.
| Operation | Status |
|---|---|
| Create / get / list / delete dataset | ✅ |
| Create / get / list / delete table (with schema) | ✅ |
Streaming inserts (insert_rows_json / insertAll) |
✅ |
Read rows (list_rows / tabledata.list) |
✅ |
SQL query execution (client.query(...)) |
✅ (via drongo[bigquery]) |
| Load/extract/copy jobs, routines, views | ⬜ |
Cloud Tasks (cloudtasks)¶
Client: google-cloud-tasks · Transport: gRPC (default), forced to REST during
a mock scope (no emulator env var exists) · Backend: per-project. Use the normal
client with no transport argument.
| Operation | Status |
|---|---|
| Create / get / list / delete queue | ✅ |
| Pause / resume / purge queue | ✅ |
| Create / get / list / delete task | ✅ |
run_task (marks dispatched) |
✅ |
| Actual task dispatch / delivery to targets | ⬜ (no real network I/O) |
| Retry config, rate limits, IAM | ⬜ |
Note: because the client is forced onto REST, errors surface as REST-style
google.api_core.exceptions (e.g. a duplicate queue raises Conflict, not the
gRPC AlreadyExists). NotFound is the same for both.
Cloud Run Jobs (cloudrun)¶
Client: google-cloud-run (run_v2.JobsClient / ExecutionsClient) · Transport:
gRPC (default), forced to REST during a mock scope · Backend: per-project. Use
the normal clients with no transport argument.
| Operation | Status |
|---|---|
| Create / get / list / delete job | ✅ |
run_job (creates an execution) |
✅ |
| Executions: get / list / delete | ✅ |
Long-running operations (.result()) |
✅ (completed synchronously) |
| Actual container execution | ⬜ (no real compute) |
| Cloud Run services (serving), revisions, traffic | ⬜ |
Errors surface as REST-style exceptions (a duplicate job raises Conflict).
Resource Manager (resourcemanager)¶
Client: google-cloud-resource-manager (resourcemanager_v3.ProjectsClient) ·
Transport: gRPC (default), forced to REST during a mock scope · Backend: global
namespace. Use the normal client with no transport argument. Scoped to the
Projects API.
| Operation | Status |
|---|---|
| Create / get project | ✅ |
Get by project_id or projects/<number> |
✅ |
List projects (by parent) |
✅ |
| Search projects | ✅ |
| Delete / undelete project | ✅ |
| Update project (display name, labels) | ✅ |
| Move project, IAM policy, tags | ⬜ |
| Folders, Organizations | ⬜ |
Mutations are long-running operations completed synchronously (.result()
returns immediately). A duplicate project raises Conflict.
Firestore (firestore)¶
Client: google-cloud-firestore · Transport: gRPC (default), served by an
in-process gRPC emulator via FIRESTORE_EMULATOR_HOST · Backend: global
namespace. Use the normal client with no transport argument.
| Operation | Status |
|---|---|
| Document set / get / update / delete | ✅ |
set(merge=True), collection.add() (auto id) |
✅ |
| Typed values (str/int/float/bool/null/bytes/array/map/timestamp) | ✅ |
| Subcollections | ✅ |
Queries: where, order_by, limit, offset |
✅ |
Composite AND/OR, in / array_contains |
✅ |
| Transactions, batched writes | ⬜ |
Real-time listeners (on_snapshot) |
⬜ |
| Aggregation / collection-group queries | ⬜ |
IAM & Service Accounts (iam)¶
Client: google-cloud-iam (iam_admin_v1.IAMClient) · Transport: gRPC only,
served by an in-process gRPC emulator with an injected transport (no REST
transport or emulator env var exists) · Backend: per-project. Use the normal
client with no transport argument.
| Operation | Status |
|---|---|
| Create / get / list / delete service account | ✅ |
| Get by email or unique id | ✅ |
| Enable / disable service account | ✅ |
| Create / list / get / delete key | ✅ |
| Update (display name / description) | ⬜ |
| Roles, IAM policy get/set | ⬜ |
SignBlob / SignJwt |
⬜ |
Cloud Logging (logging)¶
Client: google-cloud-logging (logging.Client) · Transport: gRPC only, served
by an in-process gRPC emulator with an injected transport · Backend: global
namespace. Use the normal client with no transport argument.
| Operation | Status |
|---|---|
Write entries (log_text / log_struct / log_proto) |
✅ |
List entries (by resource_names) |
✅ |
| Ordering (ascending / descending) | ✅ |
| Delete a log; list logs | ✅ |
| Advanced filter language | ⬜ (entries returned unfiltered) |
| Sinks / exports, log-based metrics, tail | ⬜ |
Cloud KMS (kms)¶
Client: google-cloud-kms (kms.KeyManagementServiceClient) · Transport: gRPC
(default), forced to REST during a mock scope · Backend: per-project. Use the
normal client with no transport argument.
| Operation | Status |
|---|---|
| Create / get / list key ring | ✅ |
| Create / get / list crypto key | ✅ |
| Encrypt / decrypt (with AAD) | ✅ (reversible mock, not real crypto) |
| Crypto-key versions, rotation | ⬜ |
| Asymmetric sign/verify, MAC, raw encrypt | ⬜ |
| IAM policy, import jobs | ⬜ |
Cloud Scheduler (cloudscheduler)¶
Client: google-cloud-scheduler (scheduler_v1.CloudSchedulerClient) ·
Transport: gRPC (default), forced to REST during a mock scope · Backend:
per-project. Use the normal client with no transport argument.
| Operation | Status |
|---|---|
| Create / get / list / delete job | ✅ |
| Pause / resume / update | ✅ |
run_job (+ executable handler) |
✅ |
| Actual cron scheduling / automatic firing | ⬜ (no real clock) |
Cloud Functions (cloudfunctions)¶
Client: google-cloud-functions (functions_v2.FunctionServiceClient) ·
Transport: gRPC (default), forced to REST during a mock scope · Backend:
per-project. Use the normal client with no transport argument. Scoped to the
2nd-gen admin API.
| Operation | Status |
|---|---|
| Create / get / list / delete function (LRO) | ✅ |
| Update function (LRO) | ✅ |
generate_upload_url |
✅ (stub) |
| Synchronous invoke | ⬜ (2nd gen has no invoke RPC) |
Memorystore for Redis (memorystore)¶
Client: google-cloud-redis (redis_v1.CloudRedisClient) · Transport: gRPC
(default), forced to REST during a mock scope · Backend: per-project. Use the
normal client with no transport argument. Scoped to instance administration.
| Operation | Status |
|---|---|
| Create / get / list / delete instance (LRO) | ✅ |
| Update instance (LRO) | ✅ |
| Failover / export / import / upgrade | ⬜ |
| Redis data plane | ⬜ (use a real Redis) |
Datastore (datastore)¶
Client: google-cloud-datastore (datastore.Client) · Transport: gRPC (default),
served by an in-process gRPC emulator via DATASTORE_EMULATOR_HOST · Backend:
per-project. Use the normal client with no transport argument.
| Operation | Status |
|---|---|
put / get / delete (Commit / Lookup) |
✅ |
Named + auto-id keys (AllocateIds) |
✅ |
| Typed values (str/int/float/bool/null/bytes/array/timestamp/key) | ✅ |
| Queries: kind, filters, order, limit, offset | ✅ |
Composite AND/OR, IN/NOT_IN |
✅ |
| Transactions (accepted, completed synchronously) | ✅ |
| Ancestor queries, projections, cursors, aggregation | ⬜ |
Bigtable (bigtable)¶
Client: google-cloud-bigtable (bigtable.Client) · Transport: gRPC (default),
served by an in-process gRPC emulator via BIGTABLE_EMULATOR_HOST · Backend:
per-project. Use the normal client with admin=True.
| Operation | Status |
|---|---|
| Create / get / list / delete table, modify families | ✅ |
set_cell, versioned cells, deletes |
✅ |
read_row, read_rows (ranges, limit) |
✅ |
Batch mutate_rows, sample_row_keys |
✅ |
Read filters, check_and_mutate_row |
⬜ |
| Instance admin, change streams, aggregations | ⬜ |
Vertex AI (vertexai)¶
Client: google-cloud-aiplatform (aiplatform_v1 service clients) · Transport:
gRPC (default), forced to REST during a mock scope · Backend: per-project. Use the
normal clients with no transport argument; pass the regional endpoint as usual.
Scoped to the control plane.
| Operation | Status |
|---|---|
| Datasets: create / get / list / delete (LRO) | ✅ |
| Endpoints: create / get / list / delete (LRO) | ✅ |
| Deploy / undeploy model (LRO) | ✅ |
Online prediction (predict, via a handler) |
✅ |
| Models: upload / get / list / delete (LRO) | ✅ |
| Custom jobs: create / get / list / cancel / delete | ✅ |
| Batch prediction jobs: create / get / list / cancel / delete | ✅ |
| Raw predict / explain, pipeline / tuning jobs, feature store, index | ⬜ |
Cloud Monitoring (monitoring)¶
Client: google-cloud-monitoring (monitoring_v3 service clients) · Transport:
gRPC only, served by an in-process gRPC emulator with an injected transport ·
Backend: per-project. Use the normal clients with no transport argument.
| Operation | Status |
|---|---|
| Metric descriptors: create / get / list / delete | ✅ |
Time series: write (create_time_series) |
✅ |
Time series: read (list_time_series, filter + interval) |
✅ |
| Aggregation (scalar align/reduce + distribution merge/percentile) | ✅ |
| Alert policies: create / get / list / update / delete | ✅ |
| Notification channels: create / get / list / update / delete | ✅ |
| Uptime checks, groups, snoozes, services + SLOs | ✅ |
MQL query (separate QueryService) |
⬜ |
Document AI (documentai)¶
Client: google-cloud-documentai (documentai_v1) · Transport: gRPC (default),
forced to REST during a mock scope · Backend: per-project. Use the normal client
with no transport argument; pass the regional endpoint as usual.
| Operation | Status |
|---|---|
| Processors: create / get / list / delete (LRO) | ✅ |
| Enable / disable processor (LRO) | ✅ |
Process document (process_document, via a handler) |
✅ |
Batch process (batch_process_documents, LRO) |
✅ |
| Processor types: fetch / list / get | ✅ |
| Processor versions, human review, evaluations | ⬜ |
Planned¶
Next up (prioritized): Artifact Registry · Storage Transfer.
Also planned: Cloud Spanner · Firestore transactions & listeners · IAM roles & policies · KMS key versions · Bigtable read filters. See the roadmap and open a service request.