"""Generated message classes for storagebatchoperations version v1.

"""
# NOTE: This file is autogenerated and should not be edited by hand.

from apitools.base.protorpclite import messages as _messages
from apitools.base.py import encoding
from apitools.base.py import extra_types


package = 'storagebatchoperations'


class AccessControlsUpdates(_messages.Message):
  r"""Represents updates to existing access-control entries on an object.

  Fields:
    grants: Optional. Grants to add or update. If a grant for same entity
      exists, its role is updated.
    removeEntities: Optional. Entities for which all grants should be removed.
      An entity can't be in both `grants` and `remove_entities`.
  """

  grants = _messages.MessageField('ObjectAccessControl', 1, repeated=True)
  removeEntities = _messages.StringField(2, repeated=True)


class Bucket(_messages.Message):
  r"""Describes configuration of a single bucket and its objects to be
  transformed.

  Fields:
    bucket: Required. Bucket name for the objects to be transformed.
    manifest: Specifies objects in a manifest file.
    prefixList: Specifies objects matching a prefix set.
  """

  bucket = _messages.StringField(1)
  manifest = _messages.MessageField('Manifest', 2)
  prefixList = _messages.MessageField('PrefixList', 3)


class BucketList(_messages.Message):
  r"""Describes list of buckets and their objects to be transformed.

  Fields:
    buckets: Required. List of buckets and their objects to be transformed.
      You can specify only one bucket per job. If multiple buckets are
      specified, an error occurs.
  """

  buckets = _messages.MessageField('Bucket', 1, repeated=True)


class BucketOperation(_messages.Message):
  r"""BucketOperation represents a bucket-level breakdown of a Job.

  Enums:
    StateValueValuesEnum: Output only. State of the BucketOperation.

  Fields:
    bucketName: The bucket name of the objects to be transformed in the
      BucketOperation.
    completeTime: Output only. The time that the BucketOperation was
      completed.
    counters: Output only. Information about the progress of the bucket
      operation.
    createTime: Output only. The time that the BucketOperation was created.
    deleteObject: Delete objects.
    errorSummaries: Output only. Summarizes errors encountered with sample
      error log entries.
    manifest: Specifies objects in a manifest file.
    name: 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: Specifies objects matching a prefix set.
    projectSource: Specifies objects matching the object filters in a project
      source.
    putMetadata: 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.
    putObjectHold: Changes object hold status.
    rewriteObject: Rewrite the object and updates metadata like KMS key.
    setObjectAcls: Updates object ACLs.
    startTime: Output only. The time that the BucketOperation was started.
    state: Output only. State of the BucketOperation.
    updateObjectCustomContext: Update object custom context.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. State of the BucketOperation.

    Values:
      STATE_UNSPECIFIED: Default value. This value is unused.
      QUEUED: Created but not yet started.
      RUNNING: In progress.
      SUCCEEDED: Completed successfully.
      CANCELED: Cancelled by the user.
      FAILED: Terminated due to an unrecoverable failure.
    """
    STATE_UNSPECIFIED = 0
    QUEUED = 1
    RUNNING = 2
    SUCCEEDED = 3
    CANCELED = 4
    FAILED = 5

  bucketName = _messages.StringField(1)
  completeTime = _messages.StringField(2)
  counters = _messages.MessageField('Counters', 3)
  createTime = _messages.StringField(4)
  deleteObject = _messages.MessageField('DeleteObject', 5)
  errorSummaries = _messages.MessageField('ErrorSummary', 6, repeated=True)
  manifest = _messages.MessageField('Manifest', 7)
  name = _messages.StringField(8)
  prefixList = _messages.MessageField('PrefixList', 9)
  projectSource = _messages.MessageField('ProjectSource', 10)
  putMetadata = _messages.MessageField('PutMetadata', 11)
  putObjectHold = _messages.MessageField('PutObjectHold', 12)
  rewriteObject = _messages.MessageField('RewriteObject', 13)
  setObjectAcls = _messages.MessageField('SetObjectAcls', 14)
  startTime = _messages.StringField(15)
  state = _messages.EnumField('StateValueValuesEnum', 16)
  updateObjectCustomContext = _messages.MessageField('UpdateObjectCustomContext', 17)


class CancelJobRequest(_messages.Message):
  r"""Message for Job to Cancel

  Fields:
    requestId: Optional. An optional request ID to identify requests. Specify
      a unique request ID in case you need to retry your request. Requests
      with same `request_id` are ignored for at least 60 minutes since the
      first request. The request ID must be a valid UUID with the exception
      that zero UUID isn't supported (00000000-0000-0000-0000-000000000000).
  """

  requestId = _messages.StringField(1)


class CancelJobResponse(_messages.Message):
  r"""Message for response to cancel Job."""


class CancelOperationRequest(_messages.Message):
  r"""The request message for Operations.CancelOperation."""


class Counters(_messages.Message):
  r"""Describes details about the progress of the job.

  Fields:
    failedObjectCount: Output only. The number of objects that failed due to
      user errors or service errors.
    objectCustomContextsCreated: Output only. Number of object custom contexts
      created. This field is only populated for jobs with the
      UpdateObjectCustomContext transformation.
    objectCustomContextsDeleted: Output only. Number of object custom contexts
      deleted. This field is only populated for jobs with the
      UpdateObjectCustomContext transformation.
    objectCustomContextsUpdated: 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: Output only. Number of objects completed.
    totalBytesFound: Output only. Number of bytes found from source. This
      field is only populated for jobs with a prefix list object
      configuration.
    totalBytesTransformed: 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: Output only. Number of objects listed.
  """

  failedObjectCount = _messages.IntegerField(1)
  objectCustomContextsCreated = _messages.IntegerField(2)
  objectCustomContextsDeleted = _messages.IntegerField(3)
  objectCustomContextsUpdated = _messages.IntegerField(4)
  succeededObjectCount = _messages.IntegerField(5)
  totalBytesFound = _messages.IntegerField(6)
  totalBytesTransformed = _messages.IntegerField(7)
  totalObjectCount = _messages.IntegerField(8)


class CustomContextUpdates(_messages.Message):
  r"""Describes a collection of updates to apply to custom contexts identified
  by key.

  Messages:
    UpdatesValue: Optional. Insert or update the existing custom contexts.

  Fields:
    keysToClear: Optional. Custom contexts to clear by key. A key can't be
      present in both `updates` and `keys_to_clear`.
    updates: Optional. Insert or update the existing custom contexts.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class UpdatesValue(_messages.Message):
    r"""Optional. Insert or update the existing custom contexts.

    Messages:
      AdditionalProperty: An additional property for a UpdatesValue object.

    Fields:
      additionalProperties: Additional properties of type UpdatesValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a UpdatesValue object.

      Fields:
        key: Name of the additional property.
        value: A ObjectCustomContextPayload attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('ObjectCustomContextPayload', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  keysToClear = _messages.StringField(1, repeated=True)
  updates = _messages.MessageField('UpdatesValue', 2)


class DeleteObject(_messages.Message):
  r"""Describes options to delete an object.

  Fields:
    permanentObjectDeletionEnabled: 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.
  """

  permanentObjectDeletionEnabled = _messages.BooleanField(1)


class Empty(_messages.Message):
  r"""A generic empty message that you can re-use to avoid defining duplicated
  empty messages in your APIs. A typical example is to use it as the request
  or the response type of an API method. For instance: service Foo { rpc
  Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  """



class ErrorLogEntry(_messages.Message):
  r"""An entry describing an error that has occurred.

  Fields:
    errorDetails: Optional. Output only. At most 5 error log entries are
      recorded for a given error code for a job.
    objectUri: Required. Output only. Object URL. e.g.
      gs://my_bucket/object.txt
  """

  errorDetails = _messages.StringField(1, repeated=True)
  objectUri = _messages.StringField(2)


class ErrorSummary(_messages.Message):
  r"""A summary of errors by error code, plus a count and sample error log
  entries.

  Enums:
    ErrorCodeValueValuesEnum: Required. The canonical error code.

  Fields:
    errorCode: Required. The canonical error code.
    errorCount: Required. Number of errors encountered per `error_code`.
    errorLogEntries: Required. Sample error logs.
  """

  class ErrorCodeValueValuesEnum(_messages.Enum):
    r"""Required. The canonical error code.

    Values:
      OK: Not an error; returned on success. HTTP Mapping: 200 OK
      CANCELLED: The operation was cancelled, typically by the caller. HTTP
        Mapping: 499 Client Closed Request
      UNKNOWN: Unknown error. For example, this error may be returned when a
        `Status` value received from another address space belongs to an error
        space that is not known in this address space. Also errors raised by
        APIs that do not return enough error information may be converted to
        this error. HTTP Mapping: 500 Internal Server Error
      INVALID_ARGUMENT: The client specified an invalid argument. Note that
        this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates
        arguments that are problematic regardless of the state of the system
        (e.g., a malformed file name). HTTP Mapping: 400 Bad Request
      DEADLINE_EXCEEDED: The deadline expired before the operation could
        complete. For operations that change the state of the system, this
        error may be returned even if the operation has completed
        successfully. For example, a successful response from a server could
        have been delayed long enough for the deadline to expire. HTTP
        Mapping: 504 Gateway Timeout
      NOT_FOUND: Some requested entity (e.g., file or directory) was not
        found. Note to server developers: if a request is denied for an entire
        class of users, such as gradual feature rollout or undocumented
        allowlist, `NOT_FOUND` may be used. If a request is denied for some
        users within a class of users, such as user-based access control,
        `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found
      ALREADY_EXISTS: The entity that a client attempted to create (e.g., file
        or directory) already exists. HTTP Mapping: 409 Conflict
      PERMISSION_DENIED: The caller does not have permission to execute the
        specified operation. `PERMISSION_DENIED` must not be used for
        rejections caused by exhausting some resource (use
        `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED`
        must not be used if the caller can not be identified (use
        `UNAUTHENTICATED` instead for those errors). This error code does not
        imply the request is valid or the requested entity exists or satisfies
        other pre-conditions. HTTP Mapping: 403 Forbidden
      UNAUTHENTICATED: The request does not have valid authentication
        credentials for the operation. HTTP Mapping: 401 Unauthorized
      RESOURCE_EXHAUSTED: Some resource has been exhausted, perhaps a per-user
        quota, or perhaps the entire file system is out of space. HTTP
        Mapping: 429 Too Many Requests
      FAILED_PRECONDITION: The operation was rejected because the system is
        not in a state required for the operation's execution. For example,
        the directory to be deleted is non-empty, an rmdir operation is
        applied to a non-directory, etc. Service implementors can use the
        following guidelines to decide between `FAILED_PRECONDITION`,
        `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can
        retry just the failing call. (b) Use `ABORTED` if the client should
        retry at a higher level. For example, when a client-specified test-
        and-set fails, indicating the client should restart a read-modify-
        write sequence. (c) Use `FAILED_PRECONDITION` if the client should not
        retry until the system state has been explicitly fixed. For example,
        if an "rmdir" fails because the directory is non-empty,
        `FAILED_PRECONDITION` should be returned since the client should not
        retry unless the files are deleted from the directory. HTTP Mapping:
        400 Bad Request
      ABORTED: The operation was aborted, typically due to a concurrency issue
        such as a sequencer check failure or transaction abort. See the
        guidelines above for deciding between `FAILED_PRECONDITION`,
        `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict
      OUT_OF_RANGE: The operation was attempted past the valid range. E.g.,
        seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this
        error indicates a problem that may be fixed if the system state
        changes. For example, a 32-bit file system will generate
        `INVALID_ARGUMENT` if asked to read at an offset that is not in the
        range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read
        from an offset past the current file size. There is a fair bit of
        overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend
        using `OUT_OF_RANGE` (the more specific error) when it applies so that
        callers who are iterating through a space can easily look for an
        `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400
        Bad Request
      UNIMPLEMENTED: The operation is not implemented or is not
        supported/enabled in this service. HTTP Mapping: 501 Not Implemented
      INTERNAL: Internal errors. This means that some invariants expected by
        the underlying system have been broken. This error code is reserved
        for serious errors. HTTP Mapping: 500 Internal Server Error
      UNAVAILABLE: The service is currently unavailable. This is most likely a
        transient condition, which can be corrected by retrying with a
        backoff. Note that it is not always safe to retry non-idempotent
        operations. See the guidelines above for deciding between
        `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503
        Service Unavailable
      DATA_LOSS: Unrecoverable data loss or corruption. HTTP Mapping: 500
        Internal Server Error
    """
    OK = 0
    CANCELLED = 1
    UNKNOWN = 2
    INVALID_ARGUMENT = 3
    DEADLINE_EXCEEDED = 4
    NOT_FOUND = 5
    ALREADY_EXISTS = 6
    PERMISSION_DENIED = 7
    UNAUTHENTICATED = 8
    RESOURCE_EXHAUSTED = 9
    FAILED_PRECONDITION = 10
    ABORTED = 11
    OUT_OF_RANGE = 12
    UNIMPLEMENTED = 13
    INTERNAL = 14
    UNAVAILABLE = 15
    DATA_LOSS = 16

  errorCode = _messages.EnumField('ErrorCodeValueValuesEnum', 1)
  errorCount = _messages.IntegerField(2)
  errorLogEntries = _messages.MessageField('ErrorLogEntry', 3, repeated=True)


class Expr(_messages.Message):
  r"""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.

  Fields:
    description: Optional. Description of the expression. This is a longer
      text which describes the expression, e.g. when hovered over it in a UI.
    expression: Textual representation of an expression in Common Expression
      Language syntax.
    location: Optional. String indicating the location of the expression for
      error reporting, e.g. a file name and a position in the file.
    title: 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.
  """

  description = _messages.StringField(1)
  expression = _messages.StringField(2)
  location = _messages.StringField(3)
  title = _messages.StringField(4)


class Job(_messages.Message):
  r"""The storage batch operations job description.

  Enums:
    StateValueValuesEnum: Output only. State of the job.

  Fields:
    bucketList: Specifies a list of buckets and their objects to be
      transformed.
    completeTime: Output only. The time that the job was completed.
    counters: Output only. Information about the progress of the job.
    createTime: Output only. The time that the job was created.
    deleteObject: Delete objects.
    description: Optional. A user-provided description for the job. Maximum
      length: 1024 bytes when unicode-encoded.
    dryRun: Optional. If true, the job runs in dry run mode, returning the
      total object count and, if the object configuration is a prefix list,
      the bytes found from source. No transformations are performed.
    errorSummaries: Output only. Summarizes errors encountered with sample
      error log entries.
    isMultiBucketJob: Output only. If true, this job operates on multiple
      buckets. Multi-bucket jobs are subject to different quota limits than
      single-bucket jobs.
    loggingConfig: Optional. Logging configuration.
    name: Identifier. The resource name of the job. Format:
      `projects/{project_id}/locations/global/jobs/{job_id}`. For example:
      `projects/123456/locations/global/jobs/job01`. `job_id` is unique in a
      given project.
    projectSource: Specifies a project source and filters to identify objects
      to be transformed.
    putMetadata: Updates object metadata. Allows updating fixed-key and custom
      metadata. For example, `Cache-Control`, `Content-Disposition`, `Content-
      Encoding`, `Content-Language`, `Content-Type`, `Custom-Time`, and
      `Retention configuration`.
    putObjectHold: Changes object hold status.
    rewriteObject: Rewrite the object and updates metadata like KMS key.
    scheduleTime: Output only. The time that the job was scheduled.
    setObjectAcls: Updates object ACLs.
    state: Output only. State of the job.
    updateObjectCustomContext: Update object custom context.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. State of the job.

    Values:
      STATE_UNSPECIFIED: Default value. This value is unused.
      RUNNING: In progress.
      SUCCEEDED: Completed successfully.
      CANCELED: Cancelled by the user.
      FAILED: Terminated due to an unrecoverable failure.
      QUEUED: Queued but not yet started.
    """
    STATE_UNSPECIFIED = 0
    RUNNING = 1
    SUCCEEDED = 2
    CANCELED = 3
    FAILED = 4
    QUEUED = 5

  bucketList = _messages.MessageField('BucketList', 1)
  completeTime = _messages.StringField(2)
  counters = _messages.MessageField('Counters', 3)
  createTime = _messages.StringField(4)
  deleteObject = _messages.MessageField('DeleteObject', 5)
  description = _messages.StringField(6)
  dryRun = _messages.BooleanField(7)
  errorSummaries = _messages.MessageField('ErrorSummary', 8, repeated=True)
  isMultiBucketJob = _messages.BooleanField(9)
  loggingConfig = _messages.MessageField('LoggingConfig', 10)
  name = _messages.StringField(11)
  projectSource = _messages.MessageField('ProjectSource', 12)
  putMetadata = _messages.MessageField('PutMetadata', 13)
  putObjectHold = _messages.MessageField('PutObjectHold', 14)
  rewriteObject = _messages.MessageField('RewriteObject', 15)
  scheduleTime = _messages.StringField(16)
  setObjectAcls = _messages.MessageField('SetObjectAcls', 17)
  state = _messages.EnumField('StateValueValuesEnum', 18)
  updateObjectCustomContext = _messages.MessageField('UpdateObjectCustomContext', 19)


class ListBucketOperationsResponse(_messages.Message):
  r"""Message for response to listing BucketOperations

  Fields:
    bucketOperations: A list of storage batch bucket operations.
    nextPageToken: A token identifying a page of results.
    unreachable: Locations that could not be reached.
  """

  bucketOperations = _messages.MessageField('BucketOperation', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListJobsResponse(_messages.Message):
  r"""Message for response to listing Jobs

  Fields:
    jobs: A list of storage batch jobs.
    nextPageToken: A token identifying a page of results.
    unreachable: Locations that could not be reached.
  """

  jobs = _messages.MessageField('Job', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  unreachable = _messages.StringField(3, repeated=True)


class ListLocationsResponse(_messages.Message):
  r"""The response message for Locations.ListLocations.

  Fields:
    locations: A list of locations that matches the specified filter in the
      request.
    nextPageToken: The standard List next-page token.
  """

  locations = _messages.MessageField('Location', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListOperationsResponse(_messages.Message):
  r"""The response message for Operations.ListOperations.

  Fields:
    nextPageToken: The standard List next-page token.
    operations: A list of operations that matches the specified filter in the
      request.
    unreachable: Unordered list. Unreachable resources. Populated when the
      request sets `ListOperationsRequest.return_partial_success` and reads
      across collections. For example, when attempting to list all resources
      across all supported locations.
  """

  nextPageToken = _messages.StringField(1)
  operations = _messages.MessageField('Operation', 2, repeated=True)
  unreachable = _messages.StringField(3, repeated=True)


class Location(_messages.Message):
  r"""A resource that represents a Google Cloud location.

  Messages:
    LabelsValue: Cross-service attributes for the location. For example
      {"cloud.googleapis.com/region": "us-east1"}
    MetadataValue: Service-specific metadata. For example the available
      capacity at the given location.

  Fields:
    displayName: The friendly name for this location, typically a nearby city
      name. For example, "Tokyo".
    labels: Cross-service attributes for the location. For example
      {"cloud.googleapis.com/region": "us-east1"}
    locationId: The canonical id for this location. For example: `"us-east1"`.
    metadata: Service-specific metadata. For example the available capacity at
      the given location.
    name: Resource name for the location, which may vary between
      implementations. For example: `"projects/example-project/locations/us-
      east1"`
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Cross-service attributes for the location. For example
    {"cloud.googleapis.com/region": "us-east1"}

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Service-specific metadata. For example the available capacity at the
    given location.

    Messages:
      AdditionalProperty: An additional property for a MetadataValue object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a MetadataValue object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  displayName = _messages.StringField(1)
  labels = _messages.MessageField('LabelsValue', 2)
  locationId = _messages.StringField(3)
  metadata = _messages.MessageField('MetadataValue', 4)
  name = _messages.StringField(5)


class LoggingConfig(_messages.Message):
  r"""Specifies the Cloud Logging behavior.

  Enums:
    LogActionStatesValueListEntryValuesEnum:
    LogActionsValueListEntryValuesEnum:

  Fields:
    logActionStates: Required. States in which Action are logged.If empty, no
      logs are generated.
    logActions: Required. Specifies the actions to be logged.
  """

  class LogActionStatesValueListEntryValuesEnum(_messages.Enum):
    r"""LogActionStatesValueListEntryValuesEnum enum type.

    Values:
      LOGGABLE_ACTION_STATE_UNSPECIFIED: Illegal value, to avoid allowing a
        default.
      SUCCEEDED: `LoggableAction` completed successfully. `SUCCEEDED` actions
        are logged as INFO.
      FAILED: `LoggableAction` terminated in an error state. `FAILED` actions
        are logged as ERROR.
    """
    LOGGABLE_ACTION_STATE_UNSPECIFIED = 0
    SUCCEEDED = 1
    FAILED = 2

  class LogActionsValueListEntryValuesEnum(_messages.Enum):
    r"""LogActionsValueListEntryValuesEnum enum type.

    Values:
      LOGGABLE_ACTION_UNSPECIFIED: Illegal value, to avoid allowing a default.
      TRANSFORM: The corresponding transform action in this job.
    """
    LOGGABLE_ACTION_UNSPECIFIED = 0
    TRANSFORM = 1

  logActionStates = _messages.EnumField('LogActionStatesValueListEntryValuesEnum', 1, repeated=True)
  logActions = _messages.EnumField('LogActionsValueListEntryValuesEnum', 2, repeated=True)


class Manifest(_messages.Message):
  r"""Describes list of objects to be transformed.

  Fields:
    manifestLocation: 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.
  """

  manifestLocation = _messages.StringField(1)


class ObjectAccessControl(_messages.Message):
  r"""Represents an access control entry on an object.

  Fields:
    entity: Required. The entity holding the permission, in one of the
      following forms: * `allUsers` * `allAuthenticatedUsers`
    role: Required. The role to grant. Acceptable values are: * `READER` -
      gives read access to the object. * `OWNER` - gives owner access to the
      object.
  """

  entity = _messages.StringField(1)
  role = _messages.StringField(2)


class ObjectCustomContextPayload(_messages.Message):
  r"""Describes the payload of a user-defined object custom context.

  Fields:
    value: 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.
  """

  value = _messages.StringField(1)


class ObjectRetention(_messages.Message):
  r"""Describes options for object retention update.

  Enums:
    RetentionModeValueValuesEnum: Required. The retention mode.

  Fields:
    retainUntilTime: 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: Required. The retention mode.
  """

  class RetentionModeValueValuesEnum(_messages.Enum):
    r"""Required. The retention mode.

    Values:
      RETENTION_MODE_UNSPECIFIED: The retention mode isn't specified.
      LOCKED: When the retention mode is `LOCKED`, the `retainUntilTime` can't
        be removed or reduced.
      UNLOCKED: When the retention mode is `UNLOCKED`, the `retainUntilTime`
        can be removed or modified.
    """
    RETENTION_MODE_UNSPECIFIED = 0
    LOCKED = 1
    UNLOCKED = 2

  retainUntilTime = _messages.StringField(1)
  retentionMode = _messages.EnumField('RetentionModeValueValuesEnum', 2)


class Operation(_messages.Message):
  r"""This resource represents a long-running operation that is the result of
  a network API call.

  Messages:
    MetadataValue: Service-specific metadata associated with the operation. It
      typically contains progress information and common metadata such as
      create time. Some services might not provide such metadata. Any method
      that returns a long-running operation should document the metadata type,
      if any.
    ResponseValue: The normal, successful response of the operation. If the
      original method returns no data on success, such as `Delete`, the
      response is `google.protobuf.Empty`. If the original method is standard
      `Get`/`Create`/`Update`, the response should be the resource. For other
      methods, the response should have the type `XxxResponse`, where `Xxx` is
      the original method name. For example, if the original method name is
      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

  Fields:
    done: If the value is `false`, it means the operation is still in
      progress. If `true`, the operation is completed, and either `error` or
      `response` is available.
    error: The error result of the operation in case of failure or
      cancellation.
    metadata: Service-specific metadata associated with the operation. It
      typically contains progress information and common metadata such as
      create time. Some services might not provide such metadata. Any method
      that returns a long-running operation should document the metadata type,
      if any.
    name: The server-assigned name, which is only unique within the same
      service that originally returns it. If you use the default HTTP mapping,
      the `name` should be a resource name ending with
      `operations/{unique_id}`.
    response: The normal, successful response of the operation. If the
      original method returns no data on success, such as `Delete`, the
      response is `google.protobuf.Empty`. If the original method is standard
      `Get`/`Create`/`Update`, the response should be the resource. For other
      methods, the response should have the type `XxxResponse`, where `Xxx` is
      the original method name. For example, if the original method name is
      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Service-specific metadata associated with the operation. It typically
    contains progress information and common metadata such as create time.
    Some services might not provide such metadata. Any method that returns a
    long-running operation should document the metadata type, if any.

    Messages:
      AdditionalProperty: An additional property for a MetadataValue object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a MetadataValue object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ResponseValue(_messages.Message):
    r"""The normal, successful response of the operation. If the original
    method returns no data on success, such as `Delete`, the response is
    `google.protobuf.Empty`. If the original method is standard
    `Get`/`Create`/`Update`, the response should be the resource. For other
    methods, the response should have the type `XxxResponse`, where `Xxx` is
    the original method name. For example, if the original method name is
    `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

    Messages:
      AdditionalProperty: An additional property for a ResponseValue object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ResponseValue object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  done = _messages.BooleanField(1)
  error = _messages.MessageField('Status', 2)
  metadata = _messages.MessageField('MetadataValue', 3)
  name = _messages.StringField(4)
  response = _messages.MessageField('ResponseValue', 5)


class OperationMetadata(_messages.Message):
  r"""Represents the metadata of the long-running operation.

  Fields:
    apiVersion: Output only. API version used to start the operation.
    createTime: Output only. The time the operation was created.
    endTime: Output only. The time the operation finished running.
    job: Output only. The Job associated with the operation.
    operation: Output only. The unique operation resource name. Format:
      projects/{project_id}/locations/global/operations/{operation}.
    requestedCancellation: Output only. Identifies whether the user has
      requested cancellation of the operation. Operations that have been
      cancelled successfully have google.longrunning.Operation.error value
      with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
  """

  apiVersion = _messages.StringField(1)
  createTime = _messages.StringField(2)
  endTime = _messages.StringField(3)
  job = _messages.MessageField('Job', 4)
  operation = _messages.StringField(5)
  requestedCancellation = _messages.BooleanField(6)


class PrefixList(_messages.Message):
  r"""Describes prefixes of objects to be transformed.

  Fields:
    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, `''`
  """

  includedObjectPrefixes = _messages.StringField(1, repeated=True)


class ProjectSource(_messages.Message):
  r"""Describes the project source where the objects satisfying the filters
  will be transformed.

  Fields:
    bucketFilters: Optional. Filters expressed in Common Expression Language
      (CEL) to apply to buckets to identify buckets with objects to be
      transformed.
    dryRunJobId: 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: 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}/datasetConf
      igs/{dataset_config}`.
    objectFilters: Optional. Filters expressed in Common Expression Language
      (CEL) to apply to objects to identify objects to be transformed.
    project: Required. Project name of the objects to be transformed. e.g.
      projects/my-project or projects/123456.
    snapshotTime: 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: 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`.
  """

  bucketFilters = _messages.MessageField('Expr', 1)
  dryRunJobId = _messages.StringField(2)
  insightsDatasetConfig = _messages.StringField(3)
  objectFilters = _messages.MessageField('Expr', 4)
  project = _messages.StringField(5)
  snapshotTime = _messages.StringField(6)
  targetLocations = _messages.MessageField('TargetLocations', 7)


class PutMetadata(_messages.Message):
  r"""Describes options for object metadata update.

  Messages:
    CustomMetadataValue: 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).

  Fields:
    cacheControl: 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: 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: 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: 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: 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).
    customTime: 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: 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).
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class CustomMetadataValue(_messages.Message):
    r"""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).

    Messages:
      AdditionalProperty: An additional property for a CustomMetadataValue
        object.

    Fields:
      additionalProperties: Additional properties of type CustomMetadataValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a CustomMetadataValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  cacheControl = _messages.StringField(1)
  contentDisposition = _messages.StringField(2)
  contentEncoding = _messages.StringField(3)
  contentLanguage = _messages.StringField(4)
  contentType = _messages.StringField(5)
  customMetadata = _messages.MessageField('CustomMetadataValue', 6)
  customTime = _messages.StringField(7)
  objectRetention = _messages.MessageField('ObjectRetention', 8)


class PutObjectHold(_messages.Message):
  r"""Describes options to update object hold.

  Enums:
    EventBasedHoldValueValuesEnum: 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.
    TemporaryHoldValueValuesEnum: Required. Updates object temporary holds
      state. When object temporary hold is set, object can't be deleted or
      replaced.

  Fields:
    eventBasedHold: 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: Required. Updates object temporary holds state. When object
      temporary hold is set, object can't be deleted or replaced.
  """

  class EventBasedHoldValueValuesEnum(_messages.Enum):
    r"""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.

    Values:
      HOLD_STATUS_UNSPECIFIED: Default value, Object hold status isn't
        changed.
      SET: Places the hold.
      UNSET: Releases the hold.
    """
    HOLD_STATUS_UNSPECIFIED = 0
    SET = 1
    UNSET = 2

  class TemporaryHoldValueValuesEnum(_messages.Enum):
    r"""Required. Updates object temporary holds state. When object temporary
    hold is set, object can't be deleted or replaced.

    Values:
      HOLD_STATUS_UNSPECIFIED: Default value, Object hold status isn't
        changed.
      SET: Places the hold.
      UNSET: Releases the hold.
    """
    HOLD_STATUS_UNSPECIFIED = 0
    SET = 1
    UNSET = 2

  eventBasedHold = _messages.EnumField('EventBasedHoldValueValuesEnum', 1)
  temporaryHold = _messages.EnumField('TemporaryHoldValueValuesEnum', 2)


class RewriteObject(_messages.Message):
  r"""Describes options for object rewrite.

  Enums:
    StorageClassValueValuesEnum: 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.

  Fields:
    kmsKey: 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: 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.
  """

  class StorageClassValueValuesEnum(_messages.Enum):
    r"""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.

    Values:
      STORAGE_CLASS_UNSPECIFIED: The storage class is not specified.
      STANDARD: Standard storage class.
      NEARLINE: Nearline storage class.
      COLDLINE: Coldline storage class.
      ARCHIVE: Archive storage class.
    """
    STORAGE_CLASS_UNSPECIFIED = 0
    STANDARD = 1
    NEARLINE = 2
    COLDLINE = 3
    ARCHIVE = 4

  kmsKey = _messages.StringField(1)
  storageClass = _messages.EnumField('StorageClassValueValuesEnum', 2)


class SetObjectAcls(_messages.Message):
  r"""Describes options for setting object ACLs.

  Fields:
    accessControlsUpdates: Required. Add, update, or remove grants from the
      object's existing ACLs.
  """

  accessControlsUpdates = _messages.MessageField('AccessControlsUpdates', 1)


class StandardQueryParameters(_messages.Message):
  r"""Query parameters accepted by all methods.

  Enums:
    FXgafvValueValuesEnum: V1 error format.
    AltValueValuesEnum: Data format for response.

  Fields:
    f__xgafv: V1 error format.
    access_token: OAuth access token.
    alt: Data format for response.
    callback: JSONP
    fields: Selector specifying which fields to include in a partial response.
    key: API key. Your API key identifies your project and provides you with
      API access, quota, and reports. Required unless you provide an OAuth 2.0
      token.
    oauth_token: OAuth 2.0 token for the current user.
    prettyPrint: Returns response with indentations and line breaks.
    quotaUser: Available to use for quota purposes for server-side
      applications. Can be any arbitrary string assigned to a user, but should
      not exceed 40 characters.
    trace: A tracing token of the form "token:<tokenid>" to include in api
      requests.
    uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
    upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
  """

  class AltValueValuesEnum(_messages.Enum):
    r"""Data format for response.

    Values:
      json: Responses with Content-Type of application/json
      media: Media download with context-dependent Content-Type
      proto: Responses with Content-Type of application/x-protobuf
    """
    json = 0
    media = 1
    proto = 2

  class FXgafvValueValuesEnum(_messages.Enum):
    r"""V1 error format.

    Values:
      _1: v1 error format
      _2: v2 error format
    """
    _1 = 0
    _2 = 1

  f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
  access_token = _messages.StringField(2)
  alt = _messages.EnumField('AltValueValuesEnum', 3, default='json')
  callback = _messages.StringField(4)
  fields = _messages.StringField(5)
  key = _messages.StringField(6)
  oauth_token = _messages.StringField(7)
  prettyPrint = _messages.BooleanField(8, default=True)
  quotaUser = _messages.StringField(9)
  trace = _messages.StringField(10)
  uploadType = _messages.StringField(11)
  upload_protocol = _messages.StringField(12)


class Status(_messages.Message):
  r"""The `Status` type defines a logical error model that is suitable for
  different programming environments, including REST APIs and RPC APIs. It is
  used by [gRPC](https://github.com/grpc). Each `Status` message contains
  three pieces of data: error code, error message, and error details. You can
  find out more about this error model and how to work with it in the [API
  Design Guide](https://cloud.google.com/apis/design/errors).

  Messages:
    DetailsValueListEntry: A DetailsValueListEntry object.

  Fields:
    code: The status code, which should be an enum value of google.rpc.Code.
    details: A list of messages that carry the error details. There is a
      common set of message types for APIs to use.
    message: A developer-facing error message, which should be in English. Any
      user-facing error message should be localized and sent in the
      google.rpc.Status.details field, or localized by the client.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DetailsValueListEntry(_messages.Message):
    r"""A DetailsValueListEntry object.

    Messages:
      AdditionalProperty: An additional property for a DetailsValueListEntry
        object.

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DetailsValueListEntry object.

      Fields:
        key: Name of the additional property.
        value: A extra_types.JsonValue attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('extra_types.JsonValue', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  code = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True)
  message = _messages.StringField(3)


class StoragebatchoperationsProjectsLocationsGetRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsGetRequest object.

  Fields:
    name: Resource name for the location.
  """

  name = _messages.StringField(1, required=True)


class StoragebatchoperationsProjectsLocationsJobsBucketOperationsGetRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsJobsBucketOperationsGetRequest
  object.

  Fields:
    name: Required. The `name` of the bucket operation to retrieve. Format: `p
      rojects/{project_id}/locations/global/jobs/{job_id}/bucketOperations/{bu
      cket_operation_id}`.
  """

  name = _messages.StringField(1, required=True)


class StoragebatchoperationsProjectsLocationsJobsBucketOperationsListRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsJobsBucketOperationsListRequest
  object.

  Fields:
    filter: Optional. Filters results as defined by
      https://google.aip.dev/160.
    orderBy: Optional. Field to sort by. Supported fields are `name` and
      `create_time`.
    pageSize: Optional. The list page size. Default page size is 100.
    pageToken: Optional. The list page token.
    parent: Required. Format:
      `projects/{project_id}/locations/global/jobs/{job_id}`.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class StoragebatchoperationsProjectsLocationsJobsCancelRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsJobsCancelRequest object.

  Fields:
    cancelJobRequest: A CancelJobRequest resource to be passed as the request
      body.
    name: Required. The `name` of the job to cancel. Format:
      `projects/{project_id}/locations/global/jobs/{job_id}`.
  """

  cancelJobRequest = _messages.MessageField('CancelJobRequest', 1)
  name = _messages.StringField(2, required=True)


class StoragebatchoperationsProjectsLocationsJobsCreateRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsJobsCreateRequest object.

  Fields:
    job: A Job resource to be passed as the request body.
    jobId: Required. A unique identifier for the job. `job_id` must be up to
      128 characters and must include only characters available in DNS names,
      as defined by RFC-1123.
    parent: Required. The value for parent.
    requestId: Optional. An optional request ID to identify requests. Specify
      a unique request ID in case you need to retry your request. Requests
      with same `request_id` are ignored for at least 60 minutes since the
      first request. The request ID must be a valid UUID with the exception
      that zero UUID isn't supported (00000000-0000-0000-0000-000000000000).
  """

  job = _messages.MessageField('Job', 1)
  jobId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


class StoragebatchoperationsProjectsLocationsJobsDeleteRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsJobsDeleteRequest object.

  Fields:
    force: Optional. If set to true, any child bucket operations of the job
      are deleted. We recommend setting this to `true`. You can't mutate
      bucket operations directly, so only the `jobs.delete` permission is
      required to delete a job (and its child bucket operations).
    name: Required. The `name` of the job to delete. Format:
      `projects/{project_id}/locations/global/jobs/{job_id}`.
    requestId: Optional. An optional request ID to identify requests. Specify
      a unique request ID in case you need to retry your request. Requests
      with same `request_id` are ignored for at least 60 minutes since the
      first request. The request ID must be a valid UUID with the exception
      that zero UUID isn't supported (00000000-0000-0000-0000-000000000000).
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


class StoragebatchoperationsProjectsLocationsJobsGetRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsJobsGetRequest object.

  Fields:
    name: Required. The `name` of the job to retrieve. Format:
      `projects/{project_id}/locations/global/jobs/{job_id}`.
  """

  name = _messages.StringField(1, required=True)


class StoragebatchoperationsProjectsLocationsJobsListRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsJobsListRequest object.

  Fields:
    filter: Optional. Filters results as defined by
      https://google.aip.dev/160.
    orderBy: Optional. Field to sort by. Supported fields are `name` and
      `create_time`.
    pageSize: Optional. The list page size. The default page size is 100.
    pageToken: Optional. The list page token.
    parent: Required. Format: projects/{project_id}/locations/global.
  """

  filter = _messages.StringField(1)
  orderBy = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


class StoragebatchoperationsProjectsLocationsListRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsListRequest object.

  Fields:
    extraLocationTypes: Optional. Do not use this field unless explicitly
      documented otherwise. This is primarily for internal usage.
    filter: A filter to narrow down results to a preferred subset. The
      filtering language accepts strings like `"displayName=tokyo"`, and is
      documented in more detail in [AIP-160](https://google.aip.dev/160).
    name: The resource that owns the locations collection, if applicable.
    pageSize: The maximum number of results to return. If not set, the service
      selects a default.
    pageToken: A page token received from the `next_page_token` field in the
      response. Send that page token to receive the subsequent page.
  """

  extraLocationTypes = _messages.StringField(1, repeated=True)
  filter = _messages.StringField(2)
  name = _messages.StringField(3, required=True)
  pageSize = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(5)


class StoragebatchoperationsProjectsLocationsOperationsCancelRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsOperationsCancelRequest object.

  Fields:
    cancelOperationRequest: A CancelOperationRequest resource to be passed as
      the request body.
    name: The name of the operation resource to be cancelled.
  """

  cancelOperationRequest = _messages.MessageField('CancelOperationRequest', 1)
  name = _messages.StringField(2, required=True)


class StoragebatchoperationsProjectsLocationsOperationsDeleteRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsOperationsDeleteRequest object.

  Fields:
    name: The name of the operation resource to be deleted.
  """

  name = _messages.StringField(1, required=True)


class StoragebatchoperationsProjectsLocationsOperationsGetRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsOperationsGetRequest object.

  Fields:
    name: The name of the operation resource.
  """

  name = _messages.StringField(1, required=True)


class StoragebatchoperationsProjectsLocationsOperationsListRequest(_messages.Message):
  r"""A StoragebatchoperationsProjectsLocationsOperationsListRequest object.

  Fields:
    filter: The standard list filter.
    name: The name of the operation's parent resource.
    pageSize: The standard list page size.
    pageToken: The standard list page token.
    returnPartialSuccess: When set to `true`, operations that are reachable
      are returned as normal, and those that are unreachable are returned in
      the ListOperationsResponse.unreachable field. This can only be `true`
      when reading across collections. For example, when `parent` is set to
      `"projects/example/locations/-"`. This field is not supported by default
      and will result in an `UNIMPLEMENTED` error if set unless explicitly
      documented otherwise in service or product specific documentation.
  """

  filter = _messages.StringField(1)
  name = _messages.StringField(2, required=True)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  returnPartialSuccess = _messages.BooleanField(5)


class TargetLocations(_messages.Message):
  r"""Describes the Cloud Storage locations to include in a ProjectSource job.

  Fields:
    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
    snapshotTime: 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.
  """

  locations = _messages.StringField(1, repeated=True)
  snapshotTime = _messages.StringField(2)


class UpdateObjectCustomContext(_messages.Message):
  r"""Describes options to update object custom contexts.

  Fields:
    clearAll: If set, must be set to true and all existing object custom
      contexts are deleted.
    customContextUpdates: A collection of updates to apply to specific custom
      contexts. Use this to add, update or delete individual contexts by key.
  """

  clearAll = _messages.BooleanField(1)
  customContextUpdates = _messages.MessageField('CustomContextUpdates', 2)


encoding.AddCustomJsonFieldMapping(
    StandardQueryParameters, 'f__xgafv', '$.xgafv')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
