openapi: 3.1.0 info: title: Google Cloud Storage JSON BucketAccessControls Objects API description: RESTful API for managing Google Cloud Storage resources including buckets and objects. Cloud Storage allows you to store and retrieve data on Google's infrastructure with high durability, availability, and scalability. The JSON API provides programmatic access to create, configure, and manage storage buckets, upload and download objects, control access permissions, and manage object metadata. version: v1 contact: name: Google Cloud Storage url: https://cloud.google.com/storage/docs/json_api termsOfService: https://cloud.google.com/terms license: name: Creative Commons Attribution 4.0 url: https://creativecommons.org/licenses/by/4.0/ servers: - url: https://storage.googleapis.com/storage/v1 description: Google Cloud Storage JSON API v1 security: - oauth2: [] - bearerAuth: [] tags: - name: Objects description: Operations for managing objects within Cloud Storage buckets paths: /b/{bucket}/o: get: operationId: listObjects summary: Google Cloud Storage List Objects description: Retrieves a list of objects matching the criteria. The authenticated user must have the storage.objects.list permission for the bucket. Lists objects in a bucket, optionally filtering by a prefix and delimiter to emulate directory listing. tags: - Objects parameters: - $ref: '#/components/parameters/bucketName' - name: delimiter in: query required: false description: Returns results in a directory-like mode. Items will contain only objects whose names, aside from the prefix, do not contain delimiter. Objects whose names, aside from the prefix, contain delimiter will have their name truncated after the delimiter, returned in prefixes. Duplicate prefixes are omitted. schema: type: string example: / - name: endOffset in: query required: false description: Filter results to objects whose names are lexicographically before endOffset. If startOffset is also set, the objects listed have names between startOffset (inclusive) and endOffset (exclusive). schema: type: string - name: includeFoldersAsPrefixes in: query required: false description: Only applicable if delimiter is set to /. If true, will also include folders and managed folders (besides objects) in the returned prefixes. schema: type: boolean - name: includeTrailingDelimiter in: query required: false description: If true, objects that end in exactly one instance of delimiter will have their metadata included in items in addition to prefixes. schema: type: boolean - name: matchGlob in: query required: false description: Filter results to objects and prefixes that match this glob pattern. Supports *, **, ?, and [...] character classes. schema: type: string - name: maxResults in: query required: false description: Maximum number of items plus prefixes to return in a single page of responses. The service may return fewer than this value. schema: type: integer minimum: 1 default: 1000 - name: pageToken in: query required: false description: A previously-returned page token representing part of the larger set of results to view. schema: type: string - name: prefix in: query required: false description: Filter results to objects whose names begin with this prefix. schema: type: string - name: projection in: query required: false description: Set of properties to return. Defaults to noAcl. schema: type: string enum: - full - noAcl default: noAcl - name: softDeleted in: query required: false description: If true, only lists soft-deleted object versions. schema: type: boolean - name: startOffset in: query required: false description: Filter results to objects whose names are lexicographically equal to or after startOffset. schema: type: string - name: versions in: query required: false description: If true, lists all versions of an object as distinct results. The default is false. schema: type: boolean default: false - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/prettyPrint' - $ref: '#/components/parameters/userProject' responses: '200': description: Successful response with a list of objects. content: application/json: schema: $ref: '#/components/schemas/ObjectList' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /b/{bucket}/o/{object}: get: operationId: getObject summary: Google Cloud Storage Get an Object description: Retrieves an object or its metadata. The authenticated user must have the storage.objects.get permission for the object. By default, this returns the object metadata. Use alt=media to download the object data. tags: - Objects parameters: - $ref: '#/components/parameters/bucketName' - $ref: '#/components/parameters/objectName' - name: alt in: query required: false description: Data format for the response. Use json for metadata or media to download the object data. schema: type: string enum: - json - media default: json - name: generation in: query required: false description: If present, selects a specific revision of this object. schema: type: integer format: int64 - name: ifGenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the object. schema: type: integer format: int64 - name: ifGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current generation does not match the given value. schema: type: integer format: int64 - name: ifMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration does not match the given value. schema: type: integer format: int64 - name: projection in: query required: false description: Set of properties to return. Defaults to noAcl. schema: type: string enum: - full - noAcl default: noAcl - name: softDeleted in: query required: false description: If true, retrieves the soft-deleted version of the object. schema: type: boolean - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/prettyPrint' - $ref: '#/components/parameters/userProject' responses: '200': description: Successful response with object metadata (alt=json) or object data (alt=media). content: application/json: schema: $ref: '#/components/schemas/Object' application/octet-stream: schema: type: string format: binary '304': description: Not Modified. The object has not been modified since the specified conditions. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' x-microcks-operation: delay: 0 dispatcher: FALLBACK put: operationId: updateObject summary: Google Cloud Storage Update an Object description: Updates an object's metadata. This method replaces all mutable metadata fields of the object with the values in the request body. tags: - Objects parameters: - $ref: '#/components/parameters/bucketName' - $ref: '#/components/parameters/objectName' - name: generation in: query required: false description: If present, selects a specific revision of this object. schema: type: integer format: int64 - name: ifGenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current generation matches the given value. schema: type: integer format: int64 - name: ifGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current generation does not match the given value. schema: type: integer format: int64 - name: ifMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration does not match the given value. schema: type: integer format: int64 - name: predefinedAcl in: query required: false description: Apply a predefined set of access controls to the object. schema: type: string enum: - authenticatedRead - bucketOwnerFullControl - bucketOwnerRead - private - projectPrivate - publicRead - name: projection in: query required: false description: Set of properties to return. Defaults to full. schema: type: string enum: - full - noAcl default: full - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/prettyPrint' - $ref: '#/components/parameters/userProject' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Object' responses: '200': description: Object metadata updated successfully. content: application/json: schema: $ref: '#/components/schemas/Object' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: patchObject summary: Google Cloud Storage Patch an Object description: Patches an object's metadata. This method supports patch semantics where only the specified fields are updated. tags: - Objects parameters: - $ref: '#/components/parameters/bucketName' - $ref: '#/components/parameters/objectName' - name: generation in: query required: false description: If present, selects a specific revision of this object. schema: type: integer format: int64 - name: ifGenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current generation matches the given value. schema: type: integer format: int64 - name: ifGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current generation does not match the given value. schema: type: integer format: int64 - name: ifMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration does not match the given value. schema: type: integer format: int64 - name: predefinedAcl in: query required: false description: Apply a predefined set of access controls to the object. schema: type: string enum: - authenticatedRead - bucketOwnerFullControl - bucketOwnerRead - private - projectPrivate - publicRead - name: projection in: query required: false description: Set of properties to return. Defaults to full. schema: type: string enum: - full - noAcl default: full - $ref: '#/components/parameters/fields' - $ref: '#/components/parameters/prettyPrint' - $ref: '#/components/parameters/userProject' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Object' responses: '200': description: Object metadata patched successfully. content: application/json: schema: $ref: '#/components/schemas/Object' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteObject summary: Google Cloud Storage Delete an Object description: Deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the object is not the latest version. When versioning is enabled, deleting the latest version creates a delete marker. tags: - Objects parameters: - $ref: '#/components/parameters/bucketName' - $ref: '#/components/parameters/objectName' - name: generation in: query required: false description: If present, permanently deletes a specific revision of this object. schema: type: integer format: int64 - name: ifGenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current generation matches the given value. schema: type: integer format: int64 - name: ifGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current generation does not match the given value. schema: type: integer format: int64 - name: ifMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the object's current metageneration does not match the given value. schema: type: integer format: int64 - $ref: '#/components/parameters/userProject' responses: '204': description: Object deleted successfully. No content returned. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' x-microcks-operation: delay: 0 dispatcher: FALLBACK /b/{bucket}/o/{object}/compose: post: operationId: composeObject summary: Google Cloud Storage Compose Objects description: Concatenates a list of existing objects into a new object in the same bucket. The composed object can contain no more than 32 source objects. The destination object's metadata is identical to that of the first source object unless overridden. tags: - Objects parameters: - $ref: '#/components/parameters/bucketName' - name: object in: path required: true description: Name of the destination object. schema: type: string - name: ifGenerationMatch in: query required: false description: Makes the operation conditional on whether the destination object's current generation matches the given value. schema: type: integer format: int64 - name: ifMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the destination object's current metageneration matches the given value. schema: type: integer format: int64 - $ref: '#/components/parameters/userProject' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ComposeRequest' responses: '200': description: Object composed successfully. content: application/json: schema: $ref: '#/components/schemas/Object' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' x-microcks-operation: delay: 0 dispatcher: FALLBACK /b/{bucket}/o/{object}/copyTo/b/{destinationBucket}/o/{destinationObject}: post: operationId: copyObject summary: Google Cloud Storage Copy an Object description: Copies a source object to a destination object. Optionally overrides metadata. This method creates a copy of an object as a new object in the destination bucket. tags: - Objects parameters: - name: bucket in: path required: true description: Name of the source bucket. schema: type: string - name: object in: path required: true description: Name of the source object. For information about how to URL-encode object names, see Encoding URI path parts. schema: type: string - name: destinationBucket in: path required: true description: Name of the destination bucket. schema: type: string - name: destinationObject in: path required: true description: Name of the destination object. schema: type: string - name: destinationPredefinedAcl in: query required: false description: Apply a predefined set of access controls to the destination object. schema: type: string enum: - authenticatedRead - bucketOwnerFullControl - bucketOwnerRead - private - projectPrivate - publicRead - name: ifGenerationMatch in: query required: false description: Makes the operation conditional on whether the destination object's current generation matches the given value. schema: type: integer format: int64 - name: ifGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the destination object's current generation does not match the given value. schema: type: integer format: int64 - name: ifMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the destination object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the destination object's current metageneration does not match the given value. schema: type: integer format: int64 - name: ifSourceGenerationMatch in: query required: false description: Makes the operation conditional on whether the source object's current generation matches the given value. schema: type: integer format: int64 - name: ifSourceGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the source object's current generation does not match the given value. schema: type: integer format: int64 - name: ifSourceMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the source object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifSourceMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the source object's current metageneration does not match the given value. schema: type: integer format: int64 - name: projection in: query required: false description: Set of properties to return. Defaults to noAcl. schema: type: string enum: - full - noAcl default: noAcl - name: sourceGeneration in: query required: false description: If present, selects a specific revision of the source object. schema: type: integer format: int64 - $ref: '#/components/parameters/userProject' requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/Object' responses: '200': description: Object copied successfully. content: application/json: schema: $ref: '#/components/schemas/Object' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' x-microcks-operation: delay: 0 dispatcher: FALLBACK /b/{bucket}/o/{object}/rewriteTo/b/{destinationBucket}/o/{destinationObject}: post: operationId: rewriteObject summary: Google Cloud Storage Rewrite an Object description: Rewrites a source object to a destination object. Optionally overrides metadata. This method can copy objects across locations and storage classes, and can also be used to change an object's encryption key. For large objects, this method may require multiple calls. tags: - Objects parameters: - name: bucket in: path required: true description: Name of the source bucket. schema: type: string - name: object in: path required: true description: Name of the source object. schema: type: string - name: destinationBucket in: path required: true description: Name of the destination bucket. schema: type: string - name: destinationObject in: path required: true description: Name of the destination object. schema: type: string - name: destinationKmsKeyName in: query required: false description: Resource name of the Cloud KMS key that will be used to encrypt the destination object. schema: type: string - name: destinationPredefinedAcl in: query required: false description: Apply a predefined set of access controls to the destination object. schema: type: string enum: - authenticatedRead - bucketOwnerFullControl - bucketOwnerRead - private - projectPrivate - publicRead - name: ifGenerationMatch in: query required: false description: Makes the operation conditional on whether the destination object's current generation matches the given value. schema: type: integer format: int64 - name: ifGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the destination object's current generation does not match the given value. schema: type: integer format: int64 - name: ifMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the destination object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the destination object's current metageneration does not match the given value. schema: type: integer format: int64 - name: ifSourceGenerationMatch in: query required: false description: Makes the operation conditional on whether the source object's current generation matches the given value. schema: type: integer format: int64 - name: ifSourceGenerationNotMatch in: query required: false description: Makes the operation conditional on whether the source object's current generation does not match the given value. schema: type: integer format: int64 - name: ifSourceMetagenerationMatch in: query required: false description: Makes the operation conditional on whether the source object's current metageneration matches the given value. schema: type: integer format: int64 - name: ifSourceMetagenerationNotMatch in: query required: false description: Makes the operation conditional on whether the source object's current metageneration does not match the given value. schema: type: integer format: int64 - name: maxBytesRewrittenPerCall in: query required: false description: The maximum number of bytes that will be rewritten per rewrite request. Allows throttling of large copies. schema: type: integer format: int64 - name: projection in: query required: false description: Set of properties to return. Defaults to noAcl. schema: type: string enum: - full - noAcl default: noAcl - name: rewriteToken in: query required: false description: Include this field only if the previous rewrite response included a rewriteToken. Provides a token for resuming a previously started rewrite operation. schema: type: string - name: sourceGeneration in: query required: false description: If present, selects a specific revision of the source object. schema: type: integer format: int64 - $ref: '#/components/parameters/userProject' requestBody: required: false content: application/json: schema: $ref: '#/components/schemas/Object' responses: '200': description: Rewrite response. If done is false, the rewrite is not yet complete and another call must be made with the returned rewriteToken. content: application/json: schema: $ref: '#/components/schemas/RewriteResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '412': $ref: '#/components/responses/PreconditionFailed' x-microcks-operation: delay: 0 dispatcher: FALLBACK /b/{bucket}/o/watchAll: post: operationId: watchAllObjects summary: Google Cloud Storage Watch for Object Changes description: Watch for changes on all objects in a bucket. This method creates a notification channel that sends a notification whenever an object is created, updated, or deleted. tags: - Objects parameters: - $ref: '#/components/parameters/bucketName' - name: prefix in: query required: false description: Limits notifications to objects with names beginning with this prefix. schema: type: string - $ref: '#/components/parameters/userProject' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Channel' responses: '200': description: Watch channel created successfully. content: application/json: schema: $ref: '#/components/schemas/Channel' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /channels/stop: post: operationId: stopChannel summary: Google Cloud Storage Stop a Notification Channel description: Stop receiving object change notifications through a previously created watch channel. tags: - Objects requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Channel' responses: '204': description: Channel stopped successfully. No content returned. '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: ObjectAccessControl: type: object description: An access-control entry for an object. properties: kind: type: string description: The kind of item this is. default: storage#objectAccessControl readOnly: true example: example_value id: type: string description: The ID of the access-control entry. readOnly: true example: abc123 selfLink: type: string format: uri description: The link to this access-control entry. readOnly: true example: https://www.example.com bucket: type: string description: The name of the bucket. example: example_value object: type: string description: The name of the object. example: example_value generation: type: string description: The content generation of the object. example: example_value entity: type: string description: 'The entity holding the permission, in one of the following forms: user-userId, user-email, group-groupId, group-email, domain-domain, project-team-projectId, allUsers, or allAuthenticatedUsers.' example: example_value role: type: string description: The access permission for the entity. enum: - OWNER - READER example: OWNER email: type: string format: email description: The email address associated with the entity, if any. readOnly: true example: user@example.com domain: type: string description: The domain associated with the entity, if any. readOnly: true example: example_value entityId: type: string description: The ID for the entity, if any. readOnly: true example: '500123' etag: type: string description: HTTP 1.1 Entity tag for the access-control entry. readOnly: true example: example_value projectTeam: type: object description: The project team associated with the entity, if any. readOnly: true properties: projectNumber: type: string description: The project number. team: type: string description: The team. enum: - editors - owners - viewers example: example_value required: - entity - role Object: type: object description: An object in Cloud Storage. Objects are the individual pieces of data that you store in Cloud Storage. properties: kind: type: string description: The kind of item this is. For objects, this is always storage#object. default: storage#object readOnly: true example: example_value id: type: string description: The ID of the object, including the bucket name, object name, and generation number. readOnly: true example: abc123 selfLink: type: string format: uri description: The link to this object. readOnly: true example: https://www.example.com mediaLink: type: string format: uri description: The link to download the object's data. readOnly: true example: https://www.example.com name: type: string description: The name of the object. examples: - my-object.txt - images/photo.jpg bucket: type: string description: The name of the bucket containing this object. example: example_value generation: type: string description: The content generation of this object. Used for object versioning. readOnly: true example: example_value metageneration: type: string description: The version of the metadata for this object. Used for preconditions and detecting metadata changes. readOnly: true example: example_value contentType: type: string description: Content-Type of the object data. examples: - application/octet-stream - text/plain - image/jpeg timeCreated: type: string format: date-time description: The creation time of the object in RFC 3339 format. readOnly: true example: '2026-01-15T10:30:00Z' updated: type: string format: date-time description: The modification time of the object metadata in RFC 3339 format. readOnly: true example: '2026-01-15T10:30:00Z' timeDeleted: type: - string - 'null' format: date-time description: The deletion time of the object in RFC 3339 format. Set only when the object is noncurrent. readOnly: true example: '2026-01-15T10:30:00Z' temporaryHold: type: boolean description: Whether the object is under a temporary hold. example: true eventBasedHold: type: boolean description: Whether the object is under an event-based hold. example: true retentionExpirationTime: type: - string - 'null' format: date-time description: The earliest time that the object can be deleted or replaced, based on the retention policy. readOnly: true example: '2026-01-15T10:30:00Z' storageClass: type: string description: Storage class of the object. enum: - STANDARD - NEARLINE - COLDLINE - ARCHIVE example: STANDARD timeStorageClassUpdated: type: string format: date-time description: The time at which the object's storage class was last changed. readOnly: true example: '2026-01-15T10:30:00Z' size: type: string description: Content-Length of the data in bytes. readOnly: true example: example_value md5Hash: type: string description: MD5 hash of the data, encoded using base64. Not available for composite objects. readOnly: true example: example_value crc32c: type: string description: CRC32c checksum, encoded using base64. readOnly: true example: example_value etag: type: string description: HTTP 1.1 Entity tag for the object. readOnly: true example: example_value componentCount: type: integer description: Number of underlying components that make up a composite object. readOnly: true example: 10 contentEncoding: type: string description: Content-Encoding of the object data. example: example_value contentDisposition: type: string description: Content-Disposition of the object data. example: example_value contentLanguage: type: string description: Content-Language of the object data. example: example_value cacheControl: type: string description: Cache-Control directive for the object data. examples: - public, max-age=3600 - no-cache metadata: type: object description: User-provided metadata in key/value pairs. additionalProperties: type: string example: example_value acl: type: array description: Access controls on the object. items: $ref: '#/components/schemas/ObjectAccessControl' example: [] owner: type: object description: The owner of the object. readOnly: true properties: entity: type: string description: The entity in the form user-userId. entityId: type: string description: The ID for the entity. example: example_value customerEncryption: type: object description: Metadata of customer-supplied encryption key, if the object is encrypted by such a key. readOnly: true properties: encryptionAlgorithm: type: string description: The encryption algorithm. keySha256: type: string description: SHA256 hash of the encryption key. example: example_value kmsKeyName: type: string description: Cloud KMS key used to encrypt the object, if one has been specified. example: example_value customTime: type: string format: date-time description: A timestamp in RFC 3339 format specified by the user for an object. Typically set to enable lifecycle management conditions based on custom time. example: '2026-01-15T10:30:00Z' softDeleteTime: type: - string - 'null' format: date-time description: The time at which the object was soft-deleted, if applicable. readOnly: true example: '2026-01-15T10:30:00Z' hardDeleteTime: type: - string - 'null' format: date-time description: The time at which the soft-deleted object will be permanently deleted. readOnly: true example: '2026-01-15T10:30:00Z' Channel: type: object description: A notification channel used to watch for resource changes. properties: kind: type: string description: Identifies this as a notification channel. default: api#channel example: example_value id: type: string description: A UUID or similar unique string that identifies this channel. example: abc123 resourceId: type: string description: An opaque value that identifies the watched resource. example: '500123' resourceUri: type: string format: uri description: A version-specific identifier for the watched resource. example: https://www.example.com token: type: string description: An arbitrary string delivered to the target address with each notification. example: example_value expiration: type: string description: Date and time of notification channel expiration, expressed in milliseconds since the epoch. example: example_value type: type: string description: The type of delivery mechanism used for this channel. enum: - web_hook example: web_hook address: type: string format: uri description: The address where notifications are delivered for this channel. example: https://www.example.com params: type: object description: Additional parameters controlling delivery channel behavior. additionalProperties: type: string example: example_value payload: type: boolean description: Whether the payload of each notification event is expected. example: true required: - id - type - address RewriteResponse: type: object description: A rewrite response. properties: kind: type: string description: The kind of item this is. default: storage#rewriteResponse example: example_value totalBytesRewritten: type: string description: The total bytes rewritten so far. example: example_value objectSize: type: string description: The total size of the object being copied. example: example_value done: type: boolean description: Whether the rewrite is complete. If false, call the rewrite method again with the returned rewriteToken. example: true rewriteToken: type: string description: A token to use in subsequent rewrite requests. Present only when the rewrite is not yet complete. example: example_value resource: $ref: '#/components/schemas/Object' ObjectList: type: object description: A list of objects. properties: kind: type: string description: The kind of item this is. default: storage#objects example: example_value nextPageToken: type: string description: The continuation token. Provide this value as the pageToken in a subsequent request to return the next page of results. example: example_value prefixes: type: array description: The list of prefixes of objects matching-but-not-listed up to and including the requested delimiter. items: type: string example: [] items: type: array description: The list of objects. items: $ref: '#/components/schemas/Object' example: [] Error: type: object description: An error response from the Cloud Storage JSON API. properties: error: type: object properties: code: type: integer description: The HTTP status code. message: type: string description: A human-readable description of the error. errors: type: array items: type: object properties: domain: type: string reason: type: string message: type: string locationType: type: string location: type: string example: example_value ComposeRequest: type: object description: A request to compose objects. properties: kind: type: string description: The kind of item this is. default: storage#composeRequest example: example_value destination: $ref: '#/components/schemas/Object' sourceObjects: type: array description: The list of source objects that will be concatenated into a single object. Maximum 32 objects. maxItems: 32 items: type: object properties: name: type: string description: The source object's name. generation: type: string description: The generation of the source object. objectPreconditions: type: object properties: ifGenerationMatch: type: integer format: int64 description: Only perform the composition if the generation of the source object matches this value. example: [] required: - sourceObjects responses: PreconditionFailed: description: Precondition Failed. The condition set in the conditional request header was not met. content: application/json: schema: $ref: '#/components/schemas/Error' Forbidden: description: Forbidden. The authenticated user does not have permission to perform the requested operation. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized. Authentication credentials were missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Not Found. The specified resource does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Bad Request. The request was malformed or contained invalid parameters. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: objectName: name: object in: path required: true description: Name of the object. For information about how to URL-encode object names to be path safe, see Encoding URI path parts. schema: type: string example: my-object.txt bucketName: name: bucket in: path required: true description: Name of the bucket. Bucket names must be globally unique and comply with naming requirements. schema: type: string example: my-bucket userProject: name: userProject in: query required: false description: The project to be billed for this request. Required for Requester Pays buckets. schema: type: string prettyPrint: name: prettyPrint in: query required: false description: Returns response with indentations and line breaks. Default is true. When set to false, can reduce the response payload size. schema: type: boolean default: true fields: name: fields in: query required: false description: Selector specifying a subset of fields to include in the response. Use for better performance by retrieving only needed fields. schema: type: string securitySchemes: oauth2: type: oauth2 description: OAuth 2.0 authentication for Google Cloud APIs flows: authorizationCode: authorizationUrl: https://accounts.google.com/o/oauth2/v2/auth tokenUrl: https://oauth2.googleapis.com/token scopes: https://www.googleapis.com/auth/devstorage.full_control: Full control of Cloud Storage resources https://www.googleapis.com/auth/devstorage.read_only: View your data in Cloud Storage https://www.googleapis.com/auth/devstorage.read_write: Manage your data in Cloud Storage https://www.googleapis.com/auth/cloud-platform: View and manage your data across Google Cloud services https://www.googleapis.com/auth/cloud-platform.read-only: View your data across Google Cloud services bearerAuth: type: http scheme: bearer description: Bearer token authentication using a Google Cloud access token obtained via service account or user credentials. externalDocs: description: Google Cloud Storage JSON API Documentation url: https://cloud.google.com/storage/docs/json_api/v1