Storage Batch Operations API . projects . locations . jobs . bucketOperations

Instance Methods

close()

Close httplib2 connections.

get(name, x__xgafv=None)

Gets a BucketOperation.

list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)

Lists BucketOperations in a given project and job.

list_next()

Retrieves the next page of results.

Method Details

close()
Close httplib2 connections.
get(name, x__xgafv=None)
Gets a BucketOperation.

Args:
  name: string, Required. The `name` of the bucket operation to retrieve. Format: `projects/{project_id}/locations/global/jobs/{job_id}/bucketOperations/{bucket_operation_id}`. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # BucketOperation represents a bucket-level breakdown of a Job.
  "bucketName": "A String", # The bucket name of the objects to be transformed in the BucketOperation.
  "completeTime": "A String", # Output only. The time that the BucketOperation was completed.
  "counters": { # Describes details about the progress of the job. # Output only. Information about the progress of the bucket operation.
    "failedObjectCount": "A String", # Output only. The number of objects that failed due to user errors or service errors.
    "objectCustomContextsCreated": "A String", # Output only. Number of object custom contexts created. This field is only populated for jobs with the UpdateObjectCustomContext transformation.
    "objectCustomContextsDeleted": "A String", # Output only. Number of object custom contexts deleted. This field is only populated for jobs with the UpdateObjectCustomContext transformation.
    "objectCustomContextsUpdated": "A String", # Output only. Number of object custom contexts updated. This counter tracks custom contexts where the key already existed, but the payload was modified. This field is only populated for jobs with the UpdateObjectCustomContext transformation.
    "succeededObjectCount": "A String", # Output only. Number of objects completed.
    "totalBytesFound": "A String", # Output only. Number of bytes found from source. This field is only populated for jobs with a prefix list object configuration.
    "totalBytesTransformed": "A String", # Output only. The total number of bytes affected by the transformation. For example, this counts bytes deleted for `DeleteObject` operations and bytes rewritten for `RewriteObject` operations.
    "totalObjectCount": "A String", # Output only. Number of objects listed.
  },
  "createTime": "A String", # Output only. The time that the BucketOperation was created.
  "deleteObject": { # Describes options to delete an object. # Delete objects.
    "permanentObjectDeletionEnabled": True or False, # Required. Controls deletion behavior when versioning is enabled for the object's bucket. If true, both live and noncurrent objects will be permanently deleted. Otherwise live objects in versioned buckets will become noncurrent and objects that were already noncurrent will be skipped. This setting doesn't have any impact on the Soft Delete feature. All objects deleted by this service can be be restored for the duration of the Soft Delete retention duration if enabled. If enabled and the manifest doesn't specify an object's generation, a `GetObjectMetadata` call is made to determine the live object generation.
  },
  "errorSummaries": [ # Output only. Summarizes errors encountered with sample error log entries.
    { # A summary of errors by error code, plus a count and sample error log entries.
      "errorCode": "A String", # Required. The canonical error code.
      "errorCount": "A String", # Required. Number of errors encountered per `error_code`.
      "errorLogEntries": [ # Required. Sample error logs.
        { # An entry describing an error that has occurred.
          "errorDetails": [ # Optional. Output only. At most 5 error log entries are recorded for a given error code for a job.
            "A String",
          ],
          "objectUri": "A String", # Required. Output only. Object URL. e.g. gs://my_bucket/object.txt
        },
      ],
    },
  ],
  "manifest": { # Describes list of objects to be transformed. # Specifies objects in a manifest file.
    "manifestLocation": "A String", # Required. Specify the manifest file location. The format of manifest location can be an absolute path to the object in the format of `gs://bucket_name/path/object_name`. For example, `gs://bucket_name/path/object_name.csv`. Alternatively, you can specify an absolute path with a single wildcard character in the file name, for example `gs://bucket_name/path/file_name*.csv`. If the manifest location is specified with a wildcard, objects in all manifest files matching the pattern will be acted upon. The manifest is a CSV file, uploaded to Cloud Storage, that contains one object or a list of objects that you want to process. Each row in the manifest must include the `bucket` and `name` of the object. You can optionally specify the `generation` of the object. If you don't specify the `generation`, the current version of the object is used. You can optionally include a header row with the following format: `bucket,name,generation`. For example, bucket,name,generation bucket_1,object_1,generation_1 bucket_1,object_2,generation_2 bucket_1,object_3,generation_3 Note: The manifest file must specify only objects within the bucket provided to the job. Rows referencing objects in other buckets are ignored.
  },
  "name": "A String", # Identifier. The resource name of the BucketOperation. This is defined by the service. Format: `projects/{project_id}/locations/global/jobs/{job_id}/bucketOperations/{bucket_operation}`.
  "prefixList": { # Describes prefixes of objects to be transformed. # Specifies objects matching a prefix set.
    "includedObjectPrefixes": [ # Optional. Specify one or more object prefixes. For example: * To match one object, use a single prefix, `prefix1`. * To match multiple objects, use comma-separated prefixes, `prefix1, prefix2`. * To match all objects, use an empty prefix, `''`
      "A String",
    ],
  },
  "projectSource": { # Describes the project source where the objects satisfying the filters will be transformed. # Specifies objects matching the object filters in a project source.
    "bucketFilters": { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # Optional. Filters expressed in Common Expression Language (CEL) to apply to buckets to identify buckets with objects to be transformed.
      "description": "A String", # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
      "expression": "A String", # Textual representation of an expression in Common Expression Language syntax.
      "location": "A String", # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
      "title": "A String", # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
    },
    "dryRunJobId": "A String", # Optional. The unique identifier of a dry run job to use as the baseline for the current job. Specifying this ID ensures the job is executed against the same set of objects validated during the dry run. The value corresponds to the {job_id} segment of the resource name: `projects/{project_id}/locations/{location}/jobs/{job_id}`.
    "insightsDatasetConfig": "A String", # Required. The resource identifier of the Storage Insights dataset configuration. Storage batch operations uses the latest snapshot from this dataset as the source to list and filter target objects. Format: `projects/{project_id}/locations/{location}/datasetConfigs/{dataset_config}`.
    "objectFilters": { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # Optional. Filters expressed in Common Expression Language (CEL) to apply to objects to identify objects to be transformed.
      "description": "A String", # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
      "expression": "A String", # Textual representation of an expression in Common Expression Language syntax.
      "location": "A String", # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
      "title": "A String", # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
    },
    "project": "A String", # Required. Project name of the objects to be transformed. e.g. projects/my-project or projects/123456.
    "snapshotTime": "A String", # Output only. The snapshot time used by the job to read the Storage Insights dataset for bucket and object discovery. This field is populated by the service and reflects the exact timestamp of the dataset snapshot used.
    "targetLocations": { # Describes the Cloud Storage locations to include in a ProjectSource job. # Optional. Specifies the Cloud Storage locations to include in the job. If provided, only buckets and objects within these locations will be discovered from the Storage Insights dataset as configured in the `insights_dataset_config`. If omitted, the job will discover buckets and objects from all locations configured in the `insights_dataset_config`.
      "locations": [ # Required. REQUIRED. A list of Cloud Storage locations (e.g., `us-central1`) to include in the job. If `snapshot_time` is omitted, the job automatically defaults to the most recent snapshot timestamp that is successfully populated in BOTH the `object_attributes_view` and `bucket_attributes_view` across ALL specified locations. For details on Storage Insights dataset snapshots and views, see: https://docs.cloud.google.com/storage/docs/insights/dataset-tables-and-schemas#schema
        "A String",
      ],
      "snapshotTime": "A String", # Optional. OPTIONAL. The exact Storage Insights snapshot timestamp to use for the job compatible with the RFC 3339 format (e.g., `2024-01-02T03:04:05Z`). If specified, this exact snapshot must exist in BOTH the `object_attributes_view` and `bucket_attributes_view` for every location listed in `locations`. If the snapshot is missing from either view in any of the locations, the job fails.
    },
  },
  "putMetadata": { # Describes options for object metadata update. # Updates object metadata. Allows updating fixed-key and custom metadata and fixed-key metadata i.e. Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Type, Custom-Time.
    "cacheControl": "A String", # Optional. Updates the objects `Cache-Control` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. Additionally, the value for `Custom-Time` can't decrease. For details, see [Cache-Control](https://cloud.google.com/storage/docs/metadata#caching_data).
    "contentDisposition": "A String", # Optional. Updates objects `Content-Disposition` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Disposition](https://cloud.google.com/storage/docs/metadata#content-disposition).
    "contentEncoding": "A String", # Optional. Updates the objects `Content-Encoding` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Encoding](https://cloud.google.com/storage/docs/metadata#content-encoding).
    "contentLanguage": "A String", # Optional. Updates the objects `Content-Language` fixed metadata. Metadata values must use ISO 639-1 language codes. The maximum length for metadata values is 100 characters. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Language](https://cloud.google.com/storage/docs/metadata#content-language).
    "contentType": "A String", # Optional. Updates objects `Content-Type` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Type](https://cloud.google.com/storage/docs/metadata#content-type).
    "customMetadata": { # Optional. Updates the object's custom metadata. This operation adds or sets individual custom metadata key-value pairs. Keys specified with empty values have their values cleared. Existing custom metadata keys not included in the request remain unchanged. For details, see [Custom metadata](https://cloud.google.com/storage/docs/metadata#custom-metadata).
      "a_key": "A String",
    },
    "customTime": "A String", # Optional. Updates the objects `Custom-Time` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. The time must be specified in RFC 3339 format, for example `YYYY-MM-DD'T'HH:MM:SS'Z'` or `YYYY-MM-DD'T'HH:MM:SS.SS'Z'`. For details, see [Custom-Time](https://cloud.google.com/storage/docs/metadata#custom-time).
    "objectRetention": { # Describes options for object retention update. # Optional. Updates an object's retention configuration. To clear an object's retention, both `retentionMode` and `retainUntilTime` must be left unset (omitted). Setting `retentionMode` to `RETENTION_MODE_UNSPECIFIED` is treated as a no-op. Unlike an unset field, it doesn't modify or clear the retention settings. An object with `LOCKED` retention mode can't have its retention cleared or its `retainUntilTime` reduced. For more information, see [Object retention](https://cloud.google.com/storage/docs/batch-operations/create-manage-batch-operation-jobs#retain-until-time).
      "retainUntilTime": "A String", # Required. The object's retention expiration time, during which, the object is protected from being deleted or overwritten. The time must be specified in RFC 3339 format, for example `YYYY-MM-DD'T'HH:MM:SS'Z'` or `YYYY-MM-DD'T'HH:MM:SS.SS'Z'`. To clear an object's retention, both `retentionMode` and `retainUntilTime` must be left unset (omitted). Setting `retentionMode` to `RETENTION_MODE_UNSPECIFIED` is treated as a no-op. Unlike an unset field, it doesn't modify or clear the retention settings.
      "retentionMode": "A String", # Required. The retention mode.
    },
  },
  "putObjectHold": { # Describes options to update object hold. # Changes object hold status.
    "eventBasedHold": "A String", # Required. Updates object event based holds state. When object event based hold is set, object can't be deleted or replaced. Resets object's time in the bucket for the purposes of the retention period.
    "temporaryHold": "A String", # Required. Updates object temporary holds state. When object temporary hold is set, object can't be deleted or replaced.
  },
  "rewriteObject": { # Describes options for object rewrite. # Rewrite the object and updates metadata like KMS key.
    "kmsKey": "A String", # Optional. Resource name of the Cloud KMS key that is used to encrypt the object. The Cloud KMS key must be located in same location as the object. For details, see https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys#add-object-key Format: `projects/{project_id}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}` For example: `projects/123456/locations/us-central1/keyRings/my-keyring/cryptoKeys/my-key`. The object will be rewritten and set with the specified KMS key.
    "storageClass": "A String", # Optional. Rewrites the object to the specified storage class. Setting this field will perform a full byte copy of the object if the storage class is different from the object's current storage class. If Autoclass is enabled on the bucket, storage class changes are ignored by Cloud Storage.
  },
  "setObjectAcls": { # Describes options for setting object ACLs. # Updates object ACLs.
    "accessControlsUpdates": { # Represents updates to existing access-control entries on an object. # Required. Add, update, or remove grants from the object's existing ACLs.
      "grants": [ # Optional. Grants to add or update. If a grant for same entity exists, its role is updated.
        { # Represents an access control entry on an object.
          "entity": "A String", # Required. The entity holding the permission, in one of the following forms: * `allUsers` * `allAuthenticatedUsers`
          "role": "A String", # Required. The role to grant. Acceptable values are: * `READER` - gives read access to the object. * `OWNER` - gives owner access to the object.
        },
      ],
      "removeEntities": [ # Optional. Entities for which all grants should be removed. An entity can't be in both `grants` and `remove_entities`.
        "A String",
      ],
    },
  },
  "startTime": "A String", # Output only. The time that the BucketOperation was started.
  "state": "A String", # Output only. State of the BucketOperation.
  "updateObjectCustomContext": { # Describes options to update object custom contexts. # Update object custom context.
    "clearAll": True or False, # If set, must be set to true and all existing object custom contexts are deleted.
    "customContextUpdates": { # Describes a collection of updates to apply to custom contexts identified by key. # A collection of updates to apply to specific custom contexts. Use this to add, update or delete individual contexts by key.
      "keysToClear": [ # Optional. Custom contexts to clear by key. A key can't be present in both `updates` and `keys_to_clear`.
        "A String",
      ],
      "updates": { # Optional. Insert or update the existing custom contexts.
        "a_key": { # Describes the payload of a user-defined object custom context.
          "value": "A String", # The value of the object custom context. If set, `value` can't be an empty string because it is a required field in custom context. If unset, `value` is ignored and no changes are made to the `value` field of the custom context payload.
        },
      },
    },
  },
}
list(parent, filter=None, orderBy=None, pageSize=None, pageToken=None, x__xgafv=None)
Lists BucketOperations in a given project and job.

Args:
  parent: string, Required. Format: `projects/{project_id}/locations/global/jobs/{job_id}`. (required)
  filter: string, Optional. Filters results as defined by https://google.aip.dev/160.
  orderBy: string, Optional. Field to sort by. Supported fields are `name` and `create_time`.
  pageSize: integer, Optional. The list page size. Default page size is 100.
  pageToken: string, Optional. The list page token.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Message for response to listing BucketOperations
  "bucketOperations": [ # A list of storage batch bucket operations.
    { # BucketOperation represents a bucket-level breakdown of a Job.
      "bucketName": "A String", # The bucket name of the objects to be transformed in the BucketOperation.
      "completeTime": "A String", # Output only. The time that the BucketOperation was completed.
      "counters": { # Describes details about the progress of the job. # Output only. Information about the progress of the bucket operation.
        "failedObjectCount": "A String", # Output only. The number of objects that failed due to user errors or service errors.
        "objectCustomContextsCreated": "A String", # Output only. Number of object custom contexts created. This field is only populated for jobs with the UpdateObjectCustomContext transformation.
        "objectCustomContextsDeleted": "A String", # Output only. Number of object custom contexts deleted. This field is only populated for jobs with the UpdateObjectCustomContext transformation.
        "objectCustomContextsUpdated": "A String", # Output only. Number of object custom contexts updated. This counter tracks custom contexts where the key already existed, but the payload was modified. This field is only populated for jobs with the UpdateObjectCustomContext transformation.
        "succeededObjectCount": "A String", # Output only. Number of objects completed.
        "totalBytesFound": "A String", # Output only. Number of bytes found from source. This field is only populated for jobs with a prefix list object configuration.
        "totalBytesTransformed": "A String", # Output only. The total number of bytes affected by the transformation. For example, this counts bytes deleted for `DeleteObject` operations and bytes rewritten for `RewriteObject` operations.
        "totalObjectCount": "A String", # Output only. Number of objects listed.
      },
      "createTime": "A String", # Output only. The time that the BucketOperation was created.
      "deleteObject": { # Describes options to delete an object. # Delete objects.
        "permanentObjectDeletionEnabled": True or False, # Required. Controls deletion behavior when versioning is enabled for the object's bucket. If true, both live and noncurrent objects will be permanently deleted. Otherwise live objects in versioned buckets will become noncurrent and objects that were already noncurrent will be skipped. This setting doesn't have any impact on the Soft Delete feature. All objects deleted by this service can be be restored for the duration of the Soft Delete retention duration if enabled. If enabled and the manifest doesn't specify an object's generation, a `GetObjectMetadata` call is made to determine the live object generation.
      },
      "errorSummaries": [ # Output only. Summarizes errors encountered with sample error log entries.
        { # A summary of errors by error code, plus a count and sample error log entries.
          "errorCode": "A String", # Required. The canonical error code.
          "errorCount": "A String", # Required. Number of errors encountered per `error_code`.
          "errorLogEntries": [ # Required. Sample error logs.
            { # An entry describing an error that has occurred.
              "errorDetails": [ # Optional. Output only. At most 5 error log entries are recorded for a given error code for a job.
                "A String",
              ],
              "objectUri": "A String", # Required. Output only. Object URL. e.g. gs://my_bucket/object.txt
            },
          ],
        },
      ],
      "manifest": { # Describes list of objects to be transformed. # Specifies objects in a manifest file.
        "manifestLocation": "A String", # Required. Specify the manifest file location. The format of manifest location can be an absolute path to the object in the format of `gs://bucket_name/path/object_name`. For example, `gs://bucket_name/path/object_name.csv`. Alternatively, you can specify an absolute path with a single wildcard character in the file name, for example `gs://bucket_name/path/file_name*.csv`. If the manifest location is specified with a wildcard, objects in all manifest files matching the pattern will be acted upon. The manifest is a CSV file, uploaded to Cloud Storage, that contains one object or a list of objects that you want to process. Each row in the manifest must include the `bucket` and `name` of the object. You can optionally specify the `generation` of the object. If you don't specify the `generation`, the current version of the object is used. You can optionally include a header row with the following format: `bucket,name,generation`. For example, bucket,name,generation bucket_1,object_1,generation_1 bucket_1,object_2,generation_2 bucket_1,object_3,generation_3 Note: The manifest file must specify only objects within the bucket provided to the job. Rows referencing objects in other buckets are ignored.
      },
      "name": "A String", # Identifier. The resource name of the BucketOperation. This is defined by the service. Format: `projects/{project_id}/locations/global/jobs/{job_id}/bucketOperations/{bucket_operation}`.
      "prefixList": { # Describes prefixes of objects to be transformed. # Specifies objects matching a prefix set.
        "includedObjectPrefixes": [ # Optional. Specify one or more object prefixes. For example: * To match one object, use a single prefix, `prefix1`. * To match multiple objects, use comma-separated prefixes, `prefix1, prefix2`. * To match all objects, use an empty prefix, `''`
          "A String",
        ],
      },
      "projectSource": { # Describes the project source where the objects satisfying the filters will be transformed. # Specifies objects matching the object filters in a project source.
        "bucketFilters": { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # Optional. Filters expressed in Common Expression Language (CEL) to apply to buckets to identify buckets with objects to be transformed.
          "description": "A String", # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
          "expression": "A String", # Textual representation of an expression in Common Expression Language syntax.
          "location": "A String", # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
          "title": "A String", # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
        },
        "dryRunJobId": "A String", # Optional. The unique identifier of a dry run job to use as the baseline for the current job. Specifying this ID ensures the job is executed against the same set of objects validated during the dry run. The value corresponds to the {job_id} segment of the resource name: `projects/{project_id}/locations/{location}/jobs/{job_id}`.
        "insightsDatasetConfig": "A String", # Required. The resource identifier of the Storage Insights dataset configuration. Storage batch operations uses the latest snapshot from this dataset as the source to list and filter target objects. Format: `projects/{project_id}/locations/{location}/datasetConfigs/{dataset_config}`.
        "objectFilters": { # Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: "Summary size limit" description: "Determines if a summary is less than 100 chars" expression: "document.summary.size() < 100" Example (Equality): title: "Requestor is owner" description: "Determines if requestor is the document owner" expression: "document.owner == request.auth.claims.email" Example (Logic): title: "Public documents" description: "Determine whether the document should be publicly visible" expression: "document.type != 'private' && document.type != 'internal'" Example (Data Manipulation): title: "Notification string" description: "Create a notification string with a timestamp." expression: "'New message received at ' + string(document.create_time)" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information. # Optional. Filters expressed in Common Expression Language (CEL) to apply to objects to identify objects to be transformed.
          "description": "A String", # Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.
          "expression": "A String", # Textual representation of an expression in Common Expression Language syntax.
          "location": "A String", # Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.
          "title": "A String", # Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.
        },
        "project": "A String", # Required. Project name of the objects to be transformed. e.g. projects/my-project or projects/123456.
        "snapshotTime": "A String", # Output only. The snapshot time used by the job to read the Storage Insights dataset for bucket and object discovery. This field is populated by the service and reflects the exact timestamp of the dataset snapshot used.
        "targetLocations": { # Describes the Cloud Storage locations to include in a ProjectSource job. # Optional. Specifies the Cloud Storage locations to include in the job. If provided, only buckets and objects within these locations will be discovered from the Storage Insights dataset as configured in the `insights_dataset_config`. If omitted, the job will discover buckets and objects from all locations configured in the `insights_dataset_config`.
          "locations": [ # Required. REQUIRED. A list of Cloud Storage locations (e.g., `us-central1`) to include in the job. If `snapshot_time` is omitted, the job automatically defaults to the most recent snapshot timestamp that is successfully populated in BOTH the `object_attributes_view` and `bucket_attributes_view` across ALL specified locations. For details on Storage Insights dataset snapshots and views, see: https://docs.cloud.google.com/storage/docs/insights/dataset-tables-and-schemas#schema
            "A String",
          ],
          "snapshotTime": "A String", # Optional. OPTIONAL. The exact Storage Insights snapshot timestamp to use for the job compatible with the RFC 3339 format (e.g., `2024-01-02T03:04:05Z`). If specified, this exact snapshot must exist in BOTH the `object_attributes_view` and `bucket_attributes_view` for every location listed in `locations`. If the snapshot is missing from either view in any of the locations, the job fails.
        },
      },
      "putMetadata": { # Describes options for object metadata update. # Updates object metadata. Allows updating fixed-key and custom metadata and fixed-key metadata i.e. Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Content-Type, Custom-Time.
        "cacheControl": "A String", # Optional. Updates the objects `Cache-Control` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. Additionally, the value for `Custom-Time` can't decrease. For details, see [Cache-Control](https://cloud.google.com/storage/docs/metadata#caching_data).
        "contentDisposition": "A String", # Optional. Updates objects `Content-Disposition` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Disposition](https://cloud.google.com/storage/docs/metadata#content-disposition).
        "contentEncoding": "A String", # Optional. Updates the objects `Content-Encoding` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Encoding](https://cloud.google.com/storage/docs/metadata#content-encoding).
        "contentLanguage": "A String", # Optional. Updates the objects `Content-Language` fixed metadata. Metadata values must use ISO 639-1 language codes. The maximum length for metadata values is 100 characters. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Language](https://cloud.google.com/storage/docs/metadata#content-language).
        "contentType": "A String", # Optional. Updates objects `Content-Type` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. For details, see [Content-Type](https://cloud.google.com/storage/docs/metadata#content-type).
        "customMetadata": { # Optional. Updates the object's custom metadata. This operation adds or sets individual custom metadata key-value pairs. Keys specified with empty values have their values cleared. Existing custom metadata keys not included in the request remain unchanged. For details, see [Custom metadata](https://cloud.google.com/storage/docs/metadata#custom-metadata).
          "a_key": "A String",
        },
        "customTime": "A String", # Optional. Updates the objects `Custom-Time` fixed metadata. Unset values in the request are ignored. To clear the metadata, set an empty value. The time must be specified in RFC 3339 format, for example `YYYY-MM-DD'T'HH:MM:SS'Z'` or `YYYY-MM-DD'T'HH:MM:SS.SS'Z'`. For details, see [Custom-Time](https://cloud.google.com/storage/docs/metadata#custom-time).
        "objectRetention": { # Describes options for object retention update. # Optional. Updates an object's retention configuration. To clear an object's retention, both `retentionMode` and `retainUntilTime` must be left unset (omitted). Setting `retentionMode` to `RETENTION_MODE_UNSPECIFIED` is treated as a no-op. Unlike an unset field, it doesn't modify or clear the retention settings. An object with `LOCKED` retention mode can't have its retention cleared or its `retainUntilTime` reduced. For more information, see [Object retention](https://cloud.google.com/storage/docs/batch-operations/create-manage-batch-operation-jobs#retain-until-time).
          "retainUntilTime": "A String", # Required. The object's retention expiration time, during which, the object is protected from being deleted or overwritten. The time must be specified in RFC 3339 format, for example `YYYY-MM-DD'T'HH:MM:SS'Z'` or `YYYY-MM-DD'T'HH:MM:SS.SS'Z'`. To clear an object's retention, both `retentionMode` and `retainUntilTime` must be left unset (omitted). Setting `retentionMode` to `RETENTION_MODE_UNSPECIFIED` is treated as a no-op. Unlike an unset field, it doesn't modify or clear the retention settings.
          "retentionMode": "A String", # Required. The retention mode.
        },
      },
      "putObjectHold": { # Describes options to update object hold. # Changes object hold status.
        "eventBasedHold": "A String", # Required. Updates object event based holds state. When object event based hold is set, object can't be deleted or replaced. Resets object's time in the bucket for the purposes of the retention period.
        "temporaryHold": "A String", # Required. Updates object temporary holds state. When object temporary hold is set, object can't be deleted or replaced.
      },
      "rewriteObject": { # Describes options for object rewrite. # Rewrite the object and updates metadata like KMS key.
        "kmsKey": "A String", # Optional. Resource name of the Cloud KMS key that is used to encrypt the object. The Cloud KMS key must be located in same location as the object. For details, see https://cloud.google.com/storage/docs/encryption/using-customer-managed-keys#add-object-key Format: `projects/{project_id}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}` For example: `projects/123456/locations/us-central1/keyRings/my-keyring/cryptoKeys/my-key`. The object will be rewritten and set with the specified KMS key.
        "storageClass": "A String", # Optional. Rewrites the object to the specified storage class. Setting this field will perform a full byte copy of the object if the storage class is different from the object's current storage class. If Autoclass is enabled on the bucket, storage class changes are ignored by Cloud Storage.
      },
      "setObjectAcls": { # Describes options for setting object ACLs. # Updates object ACLs.
        "accessControlsUpdates": { # Represents updates to existing access-control entries on an object. # Required. Add, update, or remove grants from the object's existing ACLs.
          "grants": [ # Optional. Grants to add or update. If a grant for same entity exists, its role is updated.
            { # Represents an access control entry on an object.
              "entity": "A String", # Required. The entity holding the permission, in one of the following forms: * `allUsers` * `allAuthenticatedUsers`
              "role": "A String", # Required. The role to grant. Acceptable values are: * `READER` - gives read access to the object. * `OWNER` - gives owner access to the object.
            },
          ],
          "removeEntities": [ # Optional. Entities for which all grants should be removed. An entity can't be in both `grants` and `remove_entities`.
            "A String",
          ],
        },
      },
      "startTime": "A String", # Output only. The time that the BucketOperation was started.
      "state": "A String", # Output only. State of the BucketOperation.
      "updateObjectCustomContext": { # Describes options to update object custom contexts. # Update object custom context.
        "clearAll": True or False, # If set, must be set to true and all existing object custom contexts are deleted.
        "customContextUpdates": { # Describes a collection of updates to apply to custom contexts identified by key. # A collection of updates to apply to specific custom contexts. Use this to add, update or delete individual contexts by key.
          "keysToClear": [ # Optional. Custom contexts to clear by key. A key can't be present in both `updates` and `keys_to_clear`.
            "A String",
          ],
          "updates": { # Optional. Insert or update the existing custom contexts.
            "a_key": { # Describes the payload of a user-defined object custom context.
              "value": "A String", # The value of the object custom context. If set, `value` can't be an empty string because it is a required field in custom context. If unset, `value` is ignored and no changes are made to the `value` field of the custom context payload.
            },
          },
        },
      },
    },
  ],
  "nextPageToken": "A String", # A token identifying a page of results.
  "unreachable": [ # Locations that could not be reached.
    "A String",
  ],
}
list_next()
Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.