# Cloud Storage JSON API — Full Reference Manifest
# Auto-generated by reference.py — DO NOT HAND-EDIT
# This file contains EVERY schema and operation from the discovery doc.
# Use it as a reference when extending codegen/manifests/storage.toml
#
# Schemas: 34 total, 10 in manifest
# Operations: 82 total, 14 in manifest
#
# Legend:
# [IN MANIFEST] = already in the curated manifest
# format: byte = needs format = "bytes" override
# RESERVED_WORD = needs rust_name + serde_rename override
# ======================================================================
# SCHEMAS (34 total)
# ======================================================================
# --- AdvanceRelocateBucketOperationRequest (2 fields) ---
# An AdvanceRelocateBucketOperation request.
# [[types]]
# schema = "AdvanceRelocateBucketOperationRequest"
# include_fields = ["expireTime", "ttl"]
#
# expireTime: string, format: date-time
# ttl: string, format: google-duration
# --- AnywhereCache (12 fields) ---
# An Anywhere Cache instance.
# [[types]]
# schema = "AnywhereCache"
# include_fields = ["admissionPolicy", "anywhereCacheId", "bucket", "createTime", "id", "kind", "pendingUpdate", "selfLink", "state", "ttl", "updateTime", "zone"]
#
# admissionPolicy: string
# anywhereCacheId: string
# bucket: string
# createTime: string, format: date-time
# id: string
# kind: string
# pendingUpdate: boolean
# selfLink: string
# state: string
# ttl: string, format: google-duration
# updateTime: string, format: date-time
# zone: string
# --- AnywhereCaches (3 fields) ---
# A list of Anywhere Caches.
# [[types]]
# schema = "AnywhereCaches"
# include_fields = ["items", "kind", "nextPageToken"]
#
# items: array<AnywhereCache>
# kind: string
# nextPageToken: string
# --- Bucket (38 fields) [IN MANIFEST] ---
# A bucket.
# [[types]]
# schema = "Bucket"
# include_fields = ["acl", "autoclass", "billing", "cors", "customPlacementConfig", "defaultEventBasedHold", "defaultObjectAcl", "encryption", "etag", "generation", "hardDeleteTime", "hierarchicalNamespace", "iamConfiguration", "id", "ipFilter", "kind", "labels", "lifecycle", "location", "locationType", "logging", "metageneration", "name", "objectRetention", "owner", "projectNumber", "retentionPolicy", "rpo", "satisfiesPZI", "satisfiesPZS", "selfLink", "softDeletePolicy", "softDeleteTime", "storageClass", "timeCreated", "updated", "versioning", "website"]
#
# acl: array<BucketAccessControl>
# autoclass: object
# billing: object
# cors: array<object>
# customPlacementConfig: object
# defaultEventBasedHold: boolean
# defaultObjectAcl: array<ObjectAccessControl>
# encryption: object
# etag: string
# generation: string, format: int64
# hardDeleteTime: string, format: date-time
# hierarchicalNamespace: object
# iamConfiguration: object
# id: string
# ipFilter: object
# kind: string
# labels: map<string, string>
# lifecycle: object
# location: string
# locationType: string
# logging: object
# metageneration: string, format: int64
# name: string
# objectRetention: object
# owner: object
# projectNumber: string, format: uint64
# retentionPolicy: object
# rpo: string
# satisfiesPZI: boolean
# satisfiesPZS: boolean
# selfLink: string
# softDeletePolicy: object
# softDeleteTime: string, format: date-time
# storageClass: string
# timeCreated: string, format: date-time
# updated: string, format: date-time
# versioning: object
# website: object
#
# [types.field_overrides]
# name = { required = true }
# --- BucketAccessControl (11 fields) [IN MANIFEST] ---
# An access-control entry.
# [[types]]
# schema = "BucketAccessControl"
# include_fields = ["bucket", "domain", "email", "entity", "entityId", "etag", "id", "kind", "projectTeam", "role", "selfLink"]
#
# bucket: string
# domain: string
# email: string
# entity: string
# entityId: string
# etag: string
# id: string
# kind: string
# projectTeam: object
# role: string
# selfLink: string
# --- BucketAccessControls (2 fields) ---
# An access-control list.
# [[types]]
# schema = "BucketAccessControls"
# include_fields = ["items", "kind"]
#
# items: array<BucketAccessControl>
# kind: string
# --- BucketStorageLayout (6 fields) ---
# The storage layout configuration of a bucket.
# [[types]]
# schema = "BucketStorageLayout"
# include_fields = ["bucket", "customPlacementConfig", "hierarchicalNamespace", "kind", "location", "locationType"]
#
# bucket: string
# customPlacementConfig: object
# hierarchicalNamespace: object
# kind: string
# location: string
# locationType: string
# --- Buckets (4 fields) [IN MANIFEST] ---
# A list of buckets.
# [[types]]
# schema = "Buckets"
# include_fields = ["items", "kind", "nextPageToken", "unreachable"]
#
# items: array<Bucket>
# kind: string
# nextPageToken: string
# unreachable: array<string>
# --- BulkRestoreObjectsRequest (7 fields) ---
# A bulk restore objects request.
# [[types]]
# schema = "BulkRestoreObjectsRequest"
# include_fields = ["allowOverwrite", "copySourceAcl", "createdAfterTime", "createdBeforeTime", "matchGlobs", "softDeletedAfterTime", "softDeletedBeforeTime"]
#
# allowOverwrite: boolean
# copySourceAcl: boolean
# createdAfterTime: string, format: date-time
# createdBeforeTime: string, format: date-time
# matchGlobs: array<string>
# softDeletedAfterTime: string, format: date-time
# softDeletedBeforeTime: string, format: date-time
# --- Channel (10 fields) ---
# An notification channel used to watch for resource changes.
# WARNING: reserved words: type
# [[types]]
# schema = "Channel"
# include_fields = ["address", "expiration", "id", "kind", "params", "payload", "resourceId", "resourceUri", "token", "type"]
#
# address: string
# expiration: string, format: int64
# id: string
# kind: string
# params: map<string, string>
# payload: boolean
# resourceId: string
# resourceUri: string
# token: string
# type: string, RESERVED_WORD
#
# [types.field_overrides]
# type = { rust_name = "type_value", serde_rename = "type" }
# --- ComposeRequest (4 fields) [IN MANIFEST] ---
# A Compose request.
# [[types]]
# schema = "ComposeRequest"
# include_fields = ["deleteSourceObjects", "destination", "kind", "sourceObjects"]
#
# deleteSourceObjects: boolean
# destination: $ref: Object
# kind: string
# sourceObjects: array<object>
# --- Expr (4 fields) [IN MANIFEST] ---
# Represents an expression text. Example: title: "User account presence" description: "Determines whet
# [[types]]
# schema = "Expr"
# include_fields = ["description", "expression", "location", "title"]
#
# description: string
# expression: string
# location: string
# title: string
# --- Folder (9 fields) ---
# A folder. Only available in buckets with hierarchical namespace enabled.
# [[types]]
# schema = "Folder"
# include_fields = ["bucket", "createTime", "id", "kind", "metageneration", "name", "pendingRenameInfo", "selfLink", "updateTime"]
#
# bucket: string
# createTime: string, format: date-time
# id: string
# kind: string
# metageneration: string, format: int64
# name: string
# pendingRenameInfo: object
# selfLink: string
# updateTime: string, format: date-time
#
# [types.field_overrides]
# name = { required = true }
# --- Folders (3 fields) ---
# A list of folders.
# [[types]]
# schema = "Folders"
# include_fields = ["items", "kind", "nextPageToken"]
#
# items: array<Folder>
# kind: string
# nextPageToken: string
# --- GoogleLongrunningListOperationsResponse (3 fields) ---
# The response message for storage.buckets.operations.list.
# [[types]]
# schema = "GoogleLongrunningListOperationsResponse"
# include_fields = ["kind", "nextPageToken", "operations"]
#
# kind: string
# nextPageToken: string
# operations: array<GoogleLongrunningOperation>
# --- GoogleLongrunningOperation (7 fields) ---
# This resource represents a long-running operation that is the result of a network API call.
# [[types]]
# schema = "GoogleLongrunningOperation"
# include_fields = ["done", "error", "kind", "metadata", "name", "response", "selfLink"]
#
# done: boolean
# error: $ref: GoogleRpcStatus
# kind: string
# metadata: map<string, any>
# name: string
# response: map<string, any>
# selfLink: string
#
# [types.field_overrides]
# name = { required = true }
# --- GoogleRpcStatus (3 fields) ---
# The "Status" type defines a logical error model that is suitable for different programming environme
# [[types]]
# schema = "GoogleRpcStatus"
# include_fields = ["code", "details", "message"]
#
# code: integer, format: int32
# details: array<object>
# message: string
# --- HmacKey (3 fields) ---
# JSON template to produce a JSON-style HMAC Key resource for Create responses.
# [[types]]
# schema = "HmacKey"
# include_fields = ["kind", "metadata", "secret"]
#
# kind: string
# metadata: $ref: HmacKeyMetadata
# secret: string
# --- HmacKeyMetadata (10 fields) ---
# JSON template to produce a JSON-style HMAC Key metadata resource.
# [[types]]
# schema = "HmacKeyMetadata"
# include_fields = ["accessId", "etag", "id", "kind", "projectId", "selfLink", "serviceAccountEmail", "state", "timeCreated", "updated"]
#
# accessId: string
# etag: string
# id: string
# kind: string
# projectId: string
# selfLink: string
# serviceAccountEmail: string
# state: string
# timeCreated: string, format: date-time
# updated: string, format: date-time
# --- HmacKeysMetadata (3 fields) ---
# A list of hmacKeys.
# [[types]]
# schema = "HmacKeysMetadata"
# include_fields = ["items", "kind", "nextPageToken"]
#
# items: array<HmacKeyMetadata>
# kind: string
# nextPageToken: string
# --- ManagedFolder (8 fields) ---
# A managed folder.
# [[types]]
# schema = "ManagedFolder"
# include_fields = ["bucket", "createTime", "id", "kind", "metageneration", "name", "selfLink", "updateTime"]
#
# bucket: string
# createTime: string, format: date-time
# id: string
# kind: string
# metageneration: string, format: int64
# name: string
# selfLink: string
# updateTime: string, format: date-time
#
# [types.field_overrides]
# name = { required = true }
# --- ManagedFolders (3 fields) ---
# A list of managed folders.
# [[types]]
# schema = "ManagedFolders"
# include_fields = ["items", "kind", "nextPageToken"]
#
# items: array<ManagedFolder>
# kind: string
# nextPageToken: string
# --- Notification (9 fields) ---
# A subscription to receive Google PubSub notifications.
# [[types]]
# schema = "Notification"
# include_fields = ["custom_attributes", "etag", "event_types", "id", "kind", "object_name_prefix", "payload_format", "selfLink", "topic"]
#
# custom_attributes: map<string, string>
# etag: string
# event_types: array<string>
# id: string
# kind: string
# object_name_prefix: string
# payload_format: string
# selfLink: string
# topic: string
# --- Notifications (2 fields) ---
# A list of notification subscriptions.
# [[types]]
# schema = "Notifications"
# include_fields = ["items", "kind"]
#
# items: array<Notification>
# kind: string
# --- Object (38 fields) [IN MANIFEST] ---
# An object.
# [[types]]
# schema = "Object"
# include_fields = ["acl", "bucket", "cacheControl", "componentCount", "contentDisposition", "contentEncoding", "contentLanguage", "contentType", "contexts", "crc32c", "customTime", "customerEncryption", "etag", "eventBasedHold", "generation", "hardDeleteTime", "id", "kind", "kmsKeyName", "md5Hash", "mediaLink", "metadata", "metageneration", "name", "owner", "restoreToken", "retention", "retentionExpirationTime", "selfLink", "size", "softDeleteTime", "storageClass", "temporaryHold", "timeCreated", "timeDeleted", "timeFinalized", "timeStorageClassUpdated", "updated"]
#
# acl: array<ObjectAccessControl>
# bucket: string
# cacheControl: string
# componentCount: integer, format: int32
# contentDisposition: string
# contentEncoding: string
# contentLanguage: string
# contentType: string
# contexts: object
# crc32c: string
# customTime: string, format: date-time
# customerEncryption: object
# etag: string
# eventBasedHold: boolean
# generation: string, format: int64
# hardDeleteTime: string, format: date-time
# id: string
# kind: string
# kmsKeyName: string
# md5Hash: string
# mediaLink: string
# metadata: map<string, string>
# metageneration: string, format: int64
# name: string
# owner: object
# restoreToken: string
# retention: object
# retentionExpirationTime: string, format: date-time
# selfLink: string
# size: string, format: uint64
# softDeleteTime: string, format: date-time
# storageClass: string
# temporaryHold: boolean
# timeCreated: string, format: date-time
# timeDeleted: string, format: date-time
# timeFinalized: string, format: date-time
# timeStorageClassUpdated: string, format: date-time
# updated: string, format: date-time
#
# [types.field_overrides]
# name = { required = true }
# --- ObjectAccessControl (13 fields) [IN MANIFEST] ---
# An access-control entry.
# [[types]]
# schema = "ObjectAccessControl"
# include_fields = ["bucket", "domain", "email", "entity", "entityId", "etag", "generation", "id", "kind", "object", "projectTeam", "role", "selfLink"]
#
# bucket: string
# domain: string
# email: string
# entity: string
# entityId: string
# etag: string
# generation: string, format: int64
# id: string
# kind: string
# object: string
# projectTeam: object
# role: string
# selfLink: string
# --- ObjectAccessControls (2 fields) ---
# An access-control list.
# [[types]]
# schema = "ObjectAccessControls"
# include_fields = ["items", "kind"]
#
# items: array<ObjectAccessControl>
# kind: string
# --- ObjectCustomContextPayload (3 fields) ---
# The payload of a single user-defined object context.
# [[types]]
# schema = "ObjectCustomContextPayload"
# include_fields = ["createTime", "updateTime", "value"]
#
# createTime: string, format: date-time
# updateTime: string, format: date-time
# value: string
# --- Objects (4 fields) [IN MANIFEST] ---
# A list of objects.
# [[types]]
# schema = "Objects"
# include_fields = ["items", "kind", "nextPageToken", "prefixes"]
#
# items: array<Object>
# kind: string
# nextPageToken: string
# prefixes: array<string>
# --- Policy (5 fields) [IN MANIFEST] ---
# A bucket/object/managedFolder IAM policy.
# WARNING: format:"byte" fields: etag
# [[types]]
# schema = "Policy"
# include_fields = ["bindings", "etag", "kind", "resourceId", "version"]
#
# bindings: array<object>
# etag: string, format: byte
# kind: string
# resourceId: string
# version: integer, format: int32
#
# [types.field_overrides]
# etag = { format = "bytes" }
# --- RelocateBucketRequest (4 fields) ---
# A Relocate Bucket request.
# [[types]]
# schema = "RelocateBucketRequest"
# include_fields = ["destinationCustomPlacementConfig", "destinationKmsKeyName", "destinationLocation", "validateOnly"]
#
# destinationCustomPlacementConfig: object
# destinationKmsKeyName: string
# destinationLocation: string
# validateOnly: boolean
# --- RewriteResponse (6 fields) [IN MANIFEST] ---
# A rewrite response.
# [[types]]
# schema = "RewriteResponse"
# include_fields = ["done", "kind", "objectSize", "resource", "rewriteToken", "totalBytesRewritten"]
#
# done: boolean
# kind: string
# objectSize: string, format: int64
# resource: $ref: Object
# rewriteToken: string
# totalBytesRewritten: string, format: int64
# --- ServiceAccount (2 fields) ---
# A subscription to receive Google PubSub notifications.
# [[types]]
# schema = "ServiceAccount"
# include_fields = ["email_address", "kind"]
#
# email_address: string
# kind: string
# --- TestIamPermissionsResponse (2 fields) ---
# A storage.(buckets|objects|managedFolders).testIamPermissions response.
# [[types]]
# schema = "TestIamPermissionsResponse"
# include_fields = ["kind", "permissions"]
#
# kind: string
# permissions: array<string>
# ======================================================================
# OPERATIONS (82 total)
# ======================================================================
# --- anywhereCaches.insert ---
# POST b/{bucket}/anywhereCaches
# Creates an Anywhere Cache instance.
# Request: AnywhereCache
# Response: GoogleLongrunningOperation
# [[operations]]
# discovery_resource = "anywhereCaches"
# discovery_method = "insert"
# rust_name = "create_anywhere_cache"
# --- anywhereCaches.update ---
# PATCH b/{bucket}/anywhereCaches/{anywhereCacheId}
# Updates the config(ttl and admissionPolicy) of an Anywhere Cache instance.
# Request: AnywhereCache
# Response: GoogleLongrunningOperation
# [[operations]]
# discovery_resource = "anywhereCaches"
# discovery_method = "update"
# rust_name = "update_anywhere_cache"
# --- anywhereCaches.get ---
# GET b/{bucket}/anywhereCaches/{anywhereCacheId}
# Returns the metadata of an Anywhere Cache instance.
# Response: AnywhereCache
# [[operations]]
# discovery_resource = "anywhereCaches"
# discovery_method = "get"
# rust_name = "get_anywhere_cache"
# --- anywhereCaches.list ---
# GET b/{bucket}/anywhereCaches
# Returns a list of Anywhere Cache instances of the bucket matching the criteria.
# Response: AnywhereCaches
# Query params: pageSize, pageToken
# [[operations]]
# discovery_resource = "anywhereCaches"
# discovery_method = "list"
# rust_name = "list_anywhere_caches"
# list_response = { type_name = "AnywhereCaches", items_field = "items", item_type = "AnywhereCache" }
# query_params = ["pageSize", "pageToken"]
# --- anywhereCaches.pause ---
# POST b/{bucket}/anywhereCaches/{anywhereCacheId}/pause
# Pauses an Anywhere Cache instance.
# Response: AnywhereCache
# [[operations]]
# discovery_resource = "anywhereCaches"
# discovery_method = "pause"
# rust_name = "pause_anywhere_cache"
# --- anywhereCaches.resume ---
# POST b/{bucket}/anywhereCaches/{anywhereCacheId}/resume
# Resumes a paused or disabled Anywhere Cache instance.
# Response: AnywhereCache
# [[operations]]
# discovery_resource = "anywhereCaches"
# discovery_method = "resume"
# rust_name = "resume_anywhere_cache"
# --- anywhereCaches.disable ---
# POST b/{bucket}/anywhereCaches/{anywhereCacheId}/disable
# Disables an Anywhere Cache instance.
# Response: AnywhereCache
# [[operations]]
# discovery_resource = "anywhereCaches"
# discovery_method = "disable"
# rust_name = "disable_anywhere_cache"
# --- bucketAccessControls.delete ---
# DELETE b/{bucket}/acl/{entity}
# Permanently deletes the ACL entry for the specified entity on the specified bucket.
# Query params: userProject
# [[operations]]
# discovery_resource = "bucketAccessControls"
# discovery_method = "delete"
# rust_name = "delete_bucket_access_control"
# query_params = ["userProject"]
# --- bucketAccessControls.get ---
# GET b/{bucket}/acl/{entity}
# Returns the ACL entry for the specified entity on the specified bucket.
# Response: BucketAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "bucketAccessControls"
# discovery_method = "get"
# rust_name = "get_bucket_access_control"
# query_params = ["userProject"]
# --- bucketAccessControls.insert ---
# POST b/{bucket}/acl
# Creates a new ACL entry on the specified bucket.
# Request: BucketAccessControl
# Response: BucketAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "bucketAccessControls"
# discovery_method = "insert"
# rust_name = "create_bucket_access_control"
# query_params = ["userProject"]
# --- bucketAccessControls.list ---
# GET b/{bucket}/acl
# Retrieves ACL entries on the specified bucket.
# Response: BucketAccessControls
# Query params: userProject
# [[operations]]
# discovery_resource = "bucketAccessControls"
# discovery_method = "list"
# rust_name = "list_bucket_access_controls"
# query_params = ["userProject"]
# --- bucketAccessControls.patch ---
# PATCH b/{bucket}/acl/{entity}
# Patches an ACL entry on the specified bucket.
# Request: BucketAccessControl
# Response: BucketAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "bucketAccessControls"
# discovery_method = "patch"
# rust_name = "update_bucket_access_control"
# query_params = ["userProject"]
# --- bucketAccessControls.update ---
# PUT b/{bucket}/acl/{entity}
# Updates an ACL entry on the specified bucket.
# Request: BucketAccessControl
# Response: BucketAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "bucketAccessControls"
# discovery_method = "update"
# rust_name = "update_bucket_access_control"
# query_params = ["userProject"]
# --- buckets.delete [IN MANIFEST] ---
# DELETE b/{bucket}
# Deletes an empty bucket. Deletions are permanent unless soft delete is enabled on the bucket.
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "delete"
# rust_name = "delete_bucket"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch", "userProject"]
# --- buckets.restore ---
# POST b/{bucket}/restore
# Restores a soft-deleted bucket.
# Response: Bucket
# Query params: generation, projection, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "restore"
# rust_name = "restore_bucket"
# query_params = ["generation", "projection", "userProject"]
# --- buckets.relocate ---
# POST b/{bucket}/relocate
# Initiates a long-running Relocate Bucket operation on the specified bucket.
# Request: RelocateBucketRequest
# Response: GoogleLongrunningOperation
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "relocate"
# rust_name = "relocate_bucket"
# --- buckets.get [IN MANIFEST] ---
# GET b/{bucket}
# Returns metadata for the specified bucket.
# Response: Bucket
# Query params: generation, ifMetagenerationMatch, ifMetagenerationNotMatch, projection, softDeleted, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "get"
# rust_name = "get_bucket"
# query_params = ["generation", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "projection", "softDeleted", "userProject"]
# --- buckets.getIamPolicy [IN MANIFEST] ---
# GET b/{bucket}/iam
# Returns an IAM policy for the specified bucket.
# Response: Policy
# Query params: optionsRequestedPolicyVersion, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "getIamPolicy"
# rust_name = "getIamPolicy_bucket"
# query_params = ["optionsRequestedPolicyVersion", "userProject"]
# --- buckets.getStorageLayout ---
# GET b/{bucket}/storageLayout
# Returns the storage layout configuration for the specified bucket. Note that this operation requires
# Response: BucketStorageLayout
# Query params: prefix
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "getStorageLayout"
# rust_name = "getStorageLayout_bucket"
# query_params = ["prefix"]
# --- buckets.insert [IN MANIFEST] ---
# POST b
# Creates a new bucket.
# Request: Bucket
# Response: Bucket
# Query params: enableObjectRetention, predefinedAcl, predefinedDefaultObjectAcl, project, projection, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "insert"
# rust_name = "create_bucket"
# query_params = ["enableObjectRetention", "predefinedAcl", "predefinedDefaultObjectAcl", "project", "projection", "userProject"]
# --- buckets.list [IN MANIFEST] ---
# GET b
# Retrieves a list of buckets for a given project.
# Response: Buckets
# Query params: maxResults, pageToken, prefix, project, projection, returnPartialSuccess, softDeleted, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "list"
# rust_name = "list_buckets"
# list_response = { type_name = "Buckets", items_field = "items", item_type = "Bucket" }
# query_params = ["maxResults", "pageToken", "prefix", "project", "projection", "returnPartialSuccess", "softDeleted", "userProject"]
# --- buckets.lockRetentionPolicy ---
# POST b/{bucket}/lockRetentionPolicy
# Locks retention policy on a bucket.
# Response: Bucket
# Query params: ifMetagenerationMatch, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "lockRetentionPolicy"
# rust_name = "lockRetentionPolicy_bucket"
# query_params = ["ifMetagenerationMatch", "userProject"]
# --- buckets.patch [IN MANIFEST] ---
# PATCH b/{bucket}
# Patches a bucket. Changes to the bucket will be readable immediately after writing, but configuratio
# Request: Bucket
# Response: Bucket
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch, predefinedAcl, predefinedDefaultObjectAcl, projection, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "patch"
# rust_name = "update_bucket"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch", "predefinedAcl", "predefinedDefaultObjectAcl", "projection", "userProject"]
# --- buckets.setIamPolicy [IN MANIFEST] ---
# PUT b/{bucket}/iam
# Updates an IAM policy for the specified bucket.
# Request: Policy
# Response: Policy
# Query params: userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "setIamPolicy"
# rust_name = "setIamPolicy_bucket"
# query_params = ["userProject"]
# --- buckets.testIamPermissions ---
# GET b/{bucket}/iam/testPermissions
# Tests a set of permissions on the given bucket to see which, if any, are held by the caller.
# Response: TestIamPermissionsResponse
# Query params: permissions (repeated), userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "testIamPermissions"
# rust_name = "testIamPermissions_bucket"
# query_params = ["permissions", "userProject"]
# --- buckets.update ---
# PUT b/{bucket}
# Updates a bucket. Changes to the bucket will be readable immediately after writing, but configuratio
# Request: Bucket
# Response: Bucket
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch, predefinedAcl, predefinedDefaultObjectAcl, projection, userProject
# [[operations]]
# discovery_resource = "buckets"
# discovery_method = "update"
# rust_name = "update_bucket"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch", "predefinedAcl", "predefinedDefaultObjectAcl", "projection", "userProject"]
# --- operations.cancel ---
# POST b/{bucket}/operations/{operationId}/cancel
# Starts asynchronous cancellation on a long-running operation. The server makes a best effort to canc
# [[operations]]
# discovery_resource = "operations"
# discovery_method = "cancel"
# rust_name = "cancel_operation"
# --- operations.get ---
# GET b/{bucket}/operations/{operationId}
# Gets the latest state of a long-running operation.
# Response: GoogleLongrunningOperation
# [[operations]]
# discovery_resource = "operations"
# discovery_method = "get"
# rust_name = "get_operation"
# --- operations.advanceRelocateBucket ---
# POST b/{bucket}/operations/{operationId}/advanceRelocateBucket
# Starts asynchronous advancement of the relocate bucket operation in the case of required write downt
# Request: AdvanceRelocateBucketOperationRequest
# [[operations]]
# discovery_resource = "operations"
# discovery_method = "advanceRelocateBucket"
# rust_name = "advanceRelocateBucket_operation"
# --- operations.list ---
# GET b/{bucket}/operations
# Lists operations that match the specified filter in the request.
# Response: GoogleLongrunningListOperationsResponse
# Query params: filter, pageSize, pageToken
# [[operations]]
# discovery_resource = "operations"
# discovery_method = "list"
# rust_name = "list_operations"
# list_response = { type_name = "GoogleLongrunningListOperationsResponse", items_field = "operations", item_type = "GoogleLongrunningOperation" }
# query_params = ["filter", "pageSize", "pageToken"]
# --- channels.stop ---
# POST channels/stop
# Stop watching resources through this channel
# Request: Channel
# [[operations]]
# discovery_resource = "channels"
# discovery_method = "stop"
# rust_name = "stop_channel"
# --- defaultObjectAccessControls.delete ---
# DELETE b/{bucket}/defaultObjectAcl/{entity}
# Permanently deletes the default object ACL entry for the specified entity on the specified bucket.
# Query params: userProject
# [[operations]]
# discovery_resource = "defaultObjectAccessControls"
# discovery_method = "delete"
# rust_name = "delete_default_object_access_control"
# query_params = ["userProject"]
# --- defaultObjectAccessControls.get ---
# GET b/{bucket}/defaultObjectAcl/{entity}
# Returns the default object ACL entry for the specified entity on the specified bucket.
# Response: ObjectAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "defaultObjectAccessControls"
# discovery_method = "get"
# rust_name = "get_default_object_access_control"
# query_params = ["userProject"]
# --- defaultObjectAccessControls.insert ---
# POST b/{bucket}/defaultObjectAcl
# Creates a new default object ACL entry on the specified bucket.
# Request: ObjectAccessControl
# Response: ObjectAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "defaultObjectAccessControls"
# discovery_method = "insert"
# rust_name = "create_default_object_access_control"
# query_params = ["userProject"]
# --- defaultObjectAccessControls.list ---
# GET b/{bucket}/defaultObjectAcl
# Retrieves default object ACL entries on the specified bucket.
# Response: ObjectAccessControls
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch, userProject
# [[operations]]
# discovery_resource = "defaultObjectAccessControls"
# discovery_method = "list"
# rust_name = "list_default_object_access_controls"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch", "userProject"]
# --- defaultObjectAccessControls.patch ---
# PATCH b/{bucket}/defaultObjectAcl/{entity}
# Patches a default object ACL entry on the specified bucket.
# Request: ObjectAccessControl
# Response: ObjectAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "defaultObjectAccessControls"
# discovery_method = "patch"
# rust_name = "update_default_object_access_control"
# query_params = ["userProject"]
# --- defaultObjectAccessControls.update ---
# PUT b/{bucket}/defaultObjectAcl/{entity}
# Updates a default object ACL entry on the specified bucket.
# Request: ObjectAccessControl
# Response: ObjectAccessControl
# Query params: userProject
# [[operations]]
# discovery_resource = "defaultObjectAccessControls"
# discovery_method = "update"
# rust_name = "update_default_object_access_control"
# query_params = ["userProject"]
# --- folders.delete ---
# DELETE b/{bucket}/folders/{folder}
# Permanently deletes a folder. Only applicable to buckets with hierarchical namespace enabled.
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch
# [[operations]]
# discovery_resource = "folders"
# discovery_method = "delete"
# rust_name = "delete_folder"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch"]
# --- folders.deleteRecursive ---
# POST b/{bucket}/folders/{folder}/deleteRecursive
# Deletes a folder recursively. Only applicable to buckets with hierarchical namespace enabled.
# Response: GoogleLongrunningOperation
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch
# [[operations]]
# discovery_resource = "folders"
# discovery_method = "deleteRecursive"
# rust_name = "deleteRecursive_folder"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch"]
# --- folders.get ---
# GET b/{bucket}/folders/{folder}
# Returns metadata for the specified folder. Only applicable to buckets with hierarchical namespace en
# Response: Folder
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch
# [[operations]]
# discovery_resource = "folders"
# discovery_method = "get"
# rust_name = "get_folder"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch"]
# --- folders.insert ---
# POST b/{bucket}/folders
# Creates a new folder. Only applicable to buckets with hierarchical namespace enabled.
# Request: Folder
# Response: Folder
# Query params: recursive
# [[operations]]
# discovery_resource = "folders"
# discovery_method = "insert"
# rust_name = "create_folder"
# query_params = ["recursive"]
# --- folders.list ---
# GET b/{bucket}/folders
# Retrieves a list of folders matching the criteria. Only applicable to buckets with hierarchical name
# Response: Folders
# Query params: delimiter, endOffset, pageSize, pageToken, prefix, startOffset
# [[operations]]
# discovery_resource = "folders"
# discovery_method = "list"
# rust_name = "list_folders"
# list_response = { type_name = "Folders", items_field = "items", item_type = "Folder" }
# query_params = ["delimiter", "endOffset", "pageSize", "pageToken", "prefix", "startOffset"]
# --- folders.rename ---
# POST b/{bucket}/folders/{sourceFolder}/renameTo/folders/{destinationFolder}
# Renames a source folder to a destination folder. Only applicable to buckets with hierarchical namesp
# Response: GoogleLongrunningOperation
# Query params: ifSourceMetagenerationMatch, ifSourceMetagenerationNotMatch
# [[operations]]
# discovery_resource = "folders"
# discovery_method = "rename"
# rust_name = "rename_folder"
# query_params = ["ifSourceMetagenerationMatch", "ifSourceMetagenerationNotMatch"]
# --- managedFolders.delete ---
# DELETE b/{bucket}/managedFolders/{managedFolder}
# Permanently deletes a managed folder.
# Query params: allowNonEmpty, ifMetagenerationMatch, ifMetagenerationNotMatch
# [[operations]]
# discovery_resource = "managedFolders"
# discovery_method = "delete"
# rust_name = "delete_managed_folder"
# query_params = ["allowNonEmpty", "ifMetagenerationMatch", "ifMetagenerationNotMatch"]
# --- managedFolders.get ---
# GET b/{bucket}/managedFolders/{managedFolder}
# Returns metadata of the specified managed folder.
# Response: ManagedFolder
# Query params: ifMetagenerationMatch, ifMetagenerationNotMatch
# [[operations]]
# discovery_resource = "managedFolders"
# discovery_method = "get"
# rust_name = "get_managed_folder"
# query_params = ["ifMetagenerationMatch", "ifMetagenerationNotMatch"]
# --- managedFolders.getIamPolicy ---
# GET b/{bucket}/managedFolders/{managedFolder}/iam
# Returns an IAM policy for the specified managed folder.
# Response: Policy
# Query params: optionsRequestedPolicyVersion, userProject
# [[operations]]
# discovery_resource = "managedFolders"
# discovery_method = "getIamPolicy"
# rust_name = "getIamPolicy_managed_folder"
# query_params = ["optionsRequestedPolicyVersion", "userProject"]
# --- managedFolders.insert ---
# POST b/{bucket}/managedFolders
# Creates a new managed folder.
# Request: ManagedFolder
# Response: ManagedFolder
# [[operations]]
# discovery_resource = "managedFolders"
# discovery_method = "insert"
# rust_name = "create_managed_folder"
# --- managedFolders.list ---
# GET b/{bucket}/managedFolders
# Lists managed folders in the given bucket.
# Response: ManagedFolders
# Query params: pageSize, pageToken, prefix
# [[operations]]
# discovery_resource = "managedFolders"
# discovery_method = "list"
# rust_name = "list_managed_folders"
# list_response = { type_name = "ManagedFolders", items_field = "items", item_type = "ManagedFolder" }
# query_params = ["pageSize", "pageToken", "prefix"]
# --- managedFolders.setIamPolicy ---
# PUT b/{bucket}/managedFolders/{managedFolder}/iam
# Updates an IAM policy for the specified managed folder.
# Request: Policy
# Response: Policy
# Query params: userProject
# [[operations]]
# discovery_resource = "managedFolders"
# discovery_method = "setIamPolicy"
# rust_name = "setIamPolicy_managed_folder"
# query_params = ["userProject"]
# --- managedFolders.testIamPermissions ---
# GET b/{bucket}/managedFolders/{managedFolder}/iam/testPermissions
# Tests a set of permissions on the given managed folder to see which, if any, are held by the caller.
# Response: TestIamPermissionsResponse
# Query params: permissions (repeated), userProject
# [[operations]]
# discovery_resource = "managedFolders"
# discovery_method = "testIamPermissions"
# rust_name = "testIamPermissions_managed_folder"
# query_params = ["permissions", "userProject"]
# --- notifications.delete ---
# DELETE b/{bucket}/notificationConfigs/{notification}
# Permanently deletes a notification subscription.
# Query params: userProject
# [[operations]]
# discovery_resource = "notifications"
# discovery_method = "delete"
# rust_name = "delete_notification"
# query_params = ["userProject"]
# --- notifications.get ---
# GET b/{bucket}/notificationConfigs/{notification}
# View a notification configuration.
# Response: Notification
# Query params: userProject
# [[operations]]
# discovery_resource = "notifications"
# discovery_method = "get"
# rust_name = "get_notification"
# query_params = ["userProject"]
# --- notifications.insert ---
# POST b/{bucket}/notificationConfigs
# Creates a notification subscription for a given bucket.
# Request: Notification
# Response: Notification
# Query params: userProject
# [[operations]]
# discovery_resource = "notifications"
# discovery_method = "insert"
# rust_name = "create_notification"
# query_params = ["userProject"]
# --- notifications.list ---
# GET b/{bucket}/notificationConfigs
# Retrieves a list of notification subscriptions for a given bucket.
# Response: Notifications
# Query params: userProject
# [[operations]]
# discovery_resource = "notifications"
# discovery_method = "list"
# rust_name = "list_notifications"
# query_params = ["userProject"]
# --- objectAccessControls.delete ---
# DELETE b/{bucket}/o/{object}/acl/{entity}
# Permanently deletes the ACL entry for the specified entity on the specified object.
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objectAccessControls"
# discovery_method = "delete"
# rust_name = "delete_object_access_control"
# query_params = ["generation", "userProject"]
# --- objectAccessControls.get ---
# GET b/{bucket}/o/{object}/acl/{entity}
# Returns the ACL entry for the specified entity on the specified object.
# Response: ObjectAccessControl
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objectAccessControls"
# discovery_method = "get"
# rust_name = "get_object_access_control"
# query_params = ["generation", "userProject"]
# --- objectAccessControls.insert ---
# POST b/{bucket}/o/{object}/acl
# Creates a new ACL entry on the specified object.
# Request: ObjectAccessControl
# Response: ObjectAccessControl
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objectAccessControls"
# discovery_method = "insert"
# rust_name = "create_object_access_control"
# query_params = ["generation", "userProject"]
# --- objectAccessControls.list ---
# GET b/{bucket}/o/{object}/acl
# Retrieves ACL entries on the specified object.
# Response: ObjectAccessControls
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objectAccessControls"
# discovery_method = "list"
# rust_name = "list_object_access_controls"
# query_params = ["generation", "userProject"]
# --- objectAccessControls.patch ---
# PATCH b/{bucket}/o/{object}/acl/{entity}
# Patches an ACL entry on the specified object.
# Request: ObjectAccessControl
# Response: ObjectAccessControl
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objectAccessControls"
# discovery_method = "patch"
# rust_name = "update_object_access_control"
# query_params = ["generation", "userProject"]
# --- objectAccessControls.update ---
# PUT b/{bucket}/o/{object}/acl/{entity}
# Updates an ACL entry on the specified object.
# Request: ObjectAccessControl
# Response: ObjectAccessControl
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objectAccessControls"
# discovery_method = "update"
# rust_name = "update_object_access_control"
# query_params = ["generation", "userProject"]
# --- objects.compose [IN MANIFEST] ---
# POST b/{destinationBucket}/o/{destinationObject}/compose
# Concatenates a list of existing objects into a new object in the same bucket.
# Request: ComposeRequest
# Response: Object
# Query params: destinationPredefinedAcl, dropContextGroups (repeated), ifGenerationMatch, ifMetagenerationMatch, kmsKeyName, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "compose"
# rust_name = "compose_object"
# query_params = ["destinationPredefinedAcl", "dropContextGroups", "ifGenerationMatch", "ifMetagenerationMatch", "kmsKeyName", "userProject"]
# --- objects.copy [IN MANIFEST] ---
# POST b/{sourceBucket}/o/{sourceObject}/copyTo/b/{destinationBucket}/o/{destinationObject}
# Copies a source object to a destination object. Optionally overrides metadata.
# Request: Object
# Response: Object
# Query params: destinationKmsKeyName, destinationPredefinedAcl, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, ifSourceGenerationMatch, ifSourceGenerationNotMatch, ifSourceMetagenerationMatch, ifSourceMetagenerationNotMatch, projection, sourceGeneration, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "copy"
# rust_name = "copy_object"
# query_params = ["destinationKmsKeyName", "destinationPredefinedAcl", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "ifSourceGenerationMatch", "ifSourceGenerationNotMatch", "ifSourceMetagenerationMatch", "ifSourceMetagenerationNotMatch", "projection", "sourceGeneration", "userProject"]
# --- objects.delete [IN MANIFEST] ---
# DELETE b/{bucket}/o/{object}
# Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the buc
# Query params: generation, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "delete"
# rust_name = "delete_object"
# query_params = ["generation", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "userProject"]
# --- objects.get [IN MANIFEST] ---
# GET b/{bucket}/o/{object}
# Retrieves an object or its metadata.
# Response: Object
# Query params: generation, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, projection, restoreToken, softDeleted, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "get"
# rust_name = "get_object"
# query_params = ["generation", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "projection", "restoreToken", "softDeleted", "userProject"]
# --- objects.getIamPolicy ---
# GET b/{bucket}/o/{object}/iam
# Returns an IAM policy for the specified object.
# Response: Policy
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "getIamPolicy"
# rust_name = "getIamPolicy_object"
# query_params = ["generation", "userProject"]
# --- objects.insert [IN MANIFEST] ---
# POST b/{bucket}/o
# Stores a new object and metadata.
# Request: Object
# Response: Object
# Query params: contentEncoding, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, kmsKeyName, name, predefinedAcl, projection, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "insert"
# rust_name = "create_object"
# query_params = ["contentEncoding", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "kmsKeyName", "name", "predefinedAcl", "projection", "userProject"]
# --- objects.list [IN MANIFEST] ---
# GET b/{bucket}/o
# Retrieves a list of objects matching the criteria.
# Response: Objects
# Query params: delimiter, endOffset, filter, includeFoldersAsPrefixes, includeTrailingDelimiter, matchGlob, maxResults, pageToken, prefix, projection, softDeleted, startOffset, userProject, versions
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "list"
# rust_name = "list_objects"
# list_response = { type_name = "Objects", items_field = "items", item_type = "Object" }
# query_params = ["delimiter", "endOffset", "filter", "includeFoldersAsPrefixes", "includeTrailingDelimiter", "matchGlob", "maxResults", "pageToken", "prefix", "projection", "softDeleted", "startOffset", "userProject", "versions"]
# --- objects.patch ---
# PATCH b/{bucket}/o/{object}
# Patches an object's metadata.
# Request: Object
# Response: Object
# Query params: generation, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, overrideUnlockedRetention, predefinedAcl, projection, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "patch"
# rust_name = "update_object"
# query_params = ["generation", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "overrideUnlockedRetention", "predefinedAcl", "projection", "userProject"]
# --- objects.rewrite [IN MANIFEST] ---
# POST b/{sourceBucket}/o/{sourceObject}/rewriteTo/b/{destinationBucket}/o/{destinationObject}
# Rewrites a source object to a destination object. Optionally overrides metadata.
# Request: Object
# Response: RewriteResponse
# Query params: destinationKmsKeyName, destinationPredefinedAcl, dropContextGroups (repeated), ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, ifSourceGenerationMatch, ifSourceGenerationNotMatch, ifSourceMetagenerationMatch, ifSourceMetagenerationNotMatch, maxBytesRewrittenPerCall, projection, rewriteToken, sourceGeneration, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "rewrite"
# rust_name = "rewrite_object"
# query_params = ["destinationKmsKeyName", "destinationPredefinedAcl", "dropContextGroups", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "ifSourceGenerationMatch", "ifSourceGenerationNotMatch", "ifSourceMetagenerationMatch", "ifSourceMetagenerationNotMatch", "maxBytesRewrittenPerCall", "projection", "rewriteToken", "sourceGeneration", "userProject"]
# --- objects.move ---
# POST b/{bucket}/o/{sourceObject}/moveTo/o/{destinationObject}
# Moves the source object to the destination object in the same bucket.
# Response: Object
# Query params: ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, ifSourceGenerationMatch, ifSourceGenerationNotMatch, ifSourceMetagenerationMatch, ifSourceMetagenerationNotMatch, projection, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "move"
# rust_name = "move_object"
# query_params = ["ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "ifSourceGenerationMatch", "ifSourceGenerationNotMatch", "ifSourceMetagenerationMatch", "ifSourceMetagenerationNotMatch", "projection", "userProject"]
# --- objects.setIamPolicy ---
# PUT b/{bucket}/o/{object}/iam
# Updates an IAM policy for the specified object.
# Request: Policy
# Response: Policy
# Query params: generation, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "setIamPolicy"
# rust_name = "setIamPolicy_object"
# query_params = ["generation", "userProject"]
# --- objects.testIamPermissions ---
# GET b/{bucket}/o/{object}/iam/testPermissions
# Tests a set of permissions on the given object to see which, if any, are held by the caller.
# Response: TestIamPermissionsResponse
# Query params: generation, permissions (repeated), userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "testIamPermissions"
# rust_name = "testIamPermissions_object"
# query_params = ["generation", "permissions", "userProject"]
# --- objects.update ---
# PUT b/{bucket}/o/{object}
# Updates an object's metadata.
# Request: Object
# Response: Object
# Query params: generation, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, overrideUnlockedRetention, predefinedAcl, projection, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "update"
# rust_name = "update_object"
# query_params = ["generation", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "overrideUnlockedRetention", "predefinedAcl", "projection", "userProject"]
# --- objects.watchAll ---
# POST b/{bucket}/o/watch
# Watch for changes on all objects in a bucket.
# Request: Channel
# Response: Channel
# Query params: delimiter, endOffset, includeTrailingDelimiter, maxResults, pageToken, prefix, projection, startOffset, userProject, versions
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "watchAll"
# rust_name = "watchAll_object"
# query_params = ["delimiter", "endOffset", "includeTrailingDelimiter", "maxResults", "pageToken", "prefix", "projection", "startOffset", "userProject", "versions"]
# --- objects.restore ---
# POST b/{bucket}/o/{object}/restore
# Restores a soft-deleted object.
# Response: Object
# Query params: copySourceAcl, generation, ifGenerationMatch, ifGenerationNotMatch, ifMetagenerationMatch, ifMetagenerationNotMatch, projection, restoreToken, userProject
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "restore"
# rust_name = "restore_object"
# query_params = ["copySourceAcl", "generation", "ifGenerationMatch", "ifGenerationNotMatch", "ifMetagenerationMatch", "ifMetagenerationNotMatch", "projection", "restoreToken", "userProject"]
# --- objects.bulkRestore ---
# POST b/{bucket}/o/bulkRestore
# Initiates a long-running bulk restore operation on the specified bucket.
# Request: BulkRestoreObjectsRequest
# Response: GoogleLongrunningOperation
# [[operations]]
# discovery_resource = "objects"
# discovery_method = "bulkRestore"
# rust_name = "bulkRestore_object"
# --- projects.hmacKeys.create ---
# POST projects/{projectId}/hmacKeys
# Creates a new HMAC key for the specified service account.
# Response: HmacKey
# Query params: serviceAccountEmail, userProject
# [[operations]]
# discovery_method = "projects.hmacKeys.create"
# rust_name = "create_projects.hmac_key"
# query_params = ["serviceAccountEmail", "userProject"]
# --- projects.hmacKeys.delete ---
# DELETE projects/{projectId}/hmacKeys/{accessId}
# Deletes an HMAC key.
# Query params: userProject
# [[operations]]
# discovery_method = "projects.hmacKeys.delete"
# rust_name = "delete_projects.hmac_key"
# query_params = ["userProject"]
# --- projects.hmacKeys.get ---
# GET projects/{projectId}/hmacKeys/{accessId}
# Retrieves an HMAC key's metadata
# Response: HmacKeyMetadata
# Query params: userProject
# [[operations]]
# discovery_method = "projects.hmacKeys.get"
# rust_name = "get_projects.hmac_key"
# query_params = ["userProject"]
# --- projects.hmacKeys.list ---
# GET projects/{projectId}/hmacKeys
# Retrieves a list of HMAC keys matching the criteria.
# Response: HmacKeysMetadata
# Query params: maxResults, pageToken, serviceAccountEmail, showDeletedKeys, userProject
# [[operations]]
# discovery_method = "projects.hmacKeys.list"
# rust_name = "list_projects.hmac_keys"
# list_response = { type_name = "HmacKeysMetadata", items_field = "items", item_type = "HmacKeyMetadata" }
# query_params = ["maxResults", "pageToken", "serviceAccountEmail", "showDeletedKeys", "userProject"]
# --- projects.hmacKeys.update ---
# PUT projects/{projectId}/hmacKeys/{accessId}
# Updates the state of an HMAC key. See the [HMAC Key resource descriptor](https://cloud.google.com/st
# Request: HmacKeyMetadata
# Response: HmacKeyMetadata
# Query params: userProject
# [[operations]]
# discovery_method = "projects.hmacKeys.update"
# rust_name = "update_projects.hmac_key"
# query_params = ["userProject"]
# --- projects.serviceAccount.get ---
# GET projects/{projectId}/serviceAccount
# Get the email address of this project's Google Cloud Storage service account.
# Response: ServiceAccount
# Query params: userProject
# [[operations]]
# discovery_method = "projects.serviceAccount.get"
# rust_name = "get_projects.service_account"
# query_params = ["userProject"]
# ======================================================================
# COVERAGE SUMMARY
# ======================================================================
# Schemas in discovery: 34
# Schemas in manifest: 10
# Coverage: 10/34 (29%)
#
# Operations in discovery: 82
# Operations in manifest: 14
# Coverage: 14/82 (17%)
#
# format:"byte" fields in manifest types: 1
# Unhandled (missing format="bytes"): 1