"""Generated message classes for datalineage 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 = 'datalineage'


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

  Fields:
    name: Required. REQUIRED: The resource name of the config to be fetched.
      Format: `organizations/{organization_id}/locations/global/config`
      `folders/{folder_id}/locations/global/config`
      `projects/{project_id}/locations/global/config`
      `projects/{project_number}/locations/global/config`
  """

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


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

  Fields:
    name: Required. REQUIRED: The resource name of the config to be fetched.
      Format: `organizations/{organization_id}/locations/global/config`
      `folders/{folder_id}/locations/global/config`
      `projects/{project_id}/locations/global/config`
      `projects/{project_number}/locations/global/config`
  """

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


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

  Fields:
    googleCloudDatacatalogLineageV1BatchSearchLinkProcessesRequest: A
      GoogleCloudDatacatalogLineageV1BatchSearchLinkProcessesRequest resource
      to be passed as the request body.
    parent: Required. The project and location where you want to search.
  """

  googleCloudDatacatalogLineageV1BatchSearchLinkProcessesRequest = _messages.MessageField('GoogleCloudDatacatalogLineageV1BatchSearchLinkProcessesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. REQUIRED: The resource name of the config to be fetched.
      Format: `organizations/{organization_id}/locations/global/config`
      `folders/{folder_id}/locations/global/config`
      `projects/{project_id}/locations/global/config`
      `projects/{project_number}/locations/global/config`
  """

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


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

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

  googleLongrunningCancelOperationRequest = _messages.MessageField('GoogleLongrunningCancelOperationRequest', 1)
  name = _messages.StringField(2, required=True)


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

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

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


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

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

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


class DatalineageProjectsLocationsOperationsListRequest(_messages.Message):
  r"""A DatalineageProjectsLocationsOperationsListRequest 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 DatalineageProjectsLocationsProcessesCreateRequest(_messages.Message):
  r"""A DatalineageProjectsLocationsProcessesCreateRequest object.

  Fields:
    googleCloudDatacatalogLineageV1Process: A
      GoogleCloudDatacatalogLineageV1Process resource to be passed as the
      request body.
    parent: Required. The name of the project and its location that should own
      the process.
    requestId: Optional. A unique identifier for this request. Restricted to
      36 ASCII characters. A random UUID is recommended. This request is
      idempotent only if a `request_id` is provided.
  """

  googleCloudDatacatalogLineageV1Process = _messages.MessageField('GoogleCloudDatacatalogLineageV1Process', 1)
  parent = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    allowMissing: Optional. If set to true and the process is not found, the
      request succeeds but the server doesn't perform any actions.
    name: Required. The name of the process to delete.
  """

  allowMissing = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the process to get.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of processes to return. The service
      may return fewer than this value. If unspecified, at most 50 processes
      are returned. The maximum value is 100; values greater than 100 are cut
      to 100.
    pageToken: Optional. The page token received from a previous
      `ListProcesses` call. Specify it to get the next page. When paginating,
      all other parameters specified in this call must match the parameters of
      the call that provided the page token.
    parent: Required. The name of the project and its location that owns this
      collection of processes.
  """

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


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

  Fields:
    allowMissing: Optional. If set to true and the process is not found, the
      request inserts it.
    googleCloudDatacatalogLineageV1Process: A
      GoogleCloudDatacatalogLineageV1Process resource to be passed as the
      request body.
    name: Immutable. The resource name of the lineage process. Format:
      `projects/{project}/locations/{location}/processes/{process}`. Can be
      specified or auto-assigned. {process} must be not longer than 200
      characters and only contain characters in a set: `a-zA-Z0-9_-:.`
    requestId: Optional. A unique identifier for this request. Restricted to
      36 ASCII characters. A random UUID is recommended. This request is
      idempotent only if a `request_id` is provided.
    updateMask: Optional. The list of fields to update. Currently not used.
      The whole message is updated.
  """

  allowMissing = _messages.BooleanField(1)
  googleCloudDatacatalogLineageV1Process = _messages.MessageField('GoogleCloudDatacatalogLineageV1Process', 2)
  name = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  updateMask = _messages.StringField(5)


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

  Fields:
    googleCloudDatacatalogLineageV1Run: A GoogleCloudDatacatalogLineageV1Run
      resource to be passed as the request body.
    parent: Required. The name of the process that should own the run.
    requestId: Optional. A unique identifier for this request. Restricted to
      36 ASCII characters. A random UUID is recommended. This request is
      idempotent only if a `request_id` is provided.
  """

  googleCloudDatacatalogLineageV1Run = _messages.MessageField('GoogleCloudDatacatalogLineageV1Run', 1)
  parent = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    allowMissing: Optional. If set to true and the run is not found, the
      request succeeds but the server doesn't perform any actions.
    name: Required. The name of the run to delete.
  """

  allowMissing = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the run to get.
  """

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


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

  Fields:
    googleCloudDatacatalogLineageV1LineageEvent: A
      GoogleCloudDatacatalogLineageV1LineageEvent resource to be passed as the
      request body.
    parent: Required. The name of the run that should own the lineage event.
    requestId: Optional. A unique identifier for this request. Restricted to
      36 ASCII characters. A random UUID is recommended. This request is
      idempotent only if a `request_id` is provided.
  """

  googleCloudDatacatalogLineageV1LineageEvent = _messages.MessageField('GoogleCloudDatacatalogLineageV1LineageEvent', 1)
  parent = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    allowMissing: Optional. If set to true and the lineage event is not found,
      the request succeeds but the server doesn't perform any actions.
    name: Required. The name of the lineage event to delete.
  """

  allowMissing = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the lineage event to get.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of lineage events to return. The
      service may return fewer events than this value. If unspecified, at most
      50 events are returned. The maximum value is 100; values greater than
      100 are cut to 100.
    pageToken: Optional. The page token received from a previous
      `ListLineageEvents` call. Specify it to get the next page. When
      paginating, all other parameters specified in this call must match the
      parameters of the call that provided the page token.
    parent: Required. The name of the run that owns the collection of lineage
      events to get.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of runs to return. The service may
      return fewer than this value. If unspecified, at most 50 runs are
      returned. The maximum value is 100; values greater than 100 are cut to
      100.
    pageToken: Optional. The page token received from a previous `ListRuns`
      call. Specify it to get the next page. When paginating, all other
      parameters specified in this call must match the parameters of the call
      that provided the page token.
    parent: Required. The name of process that owns this collection of runs.
  """

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


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

  Fields:
    allowMissing: Optional. If set to true and the run is not found, the
      request creates it.
    googleCloudDatacatalogLineageV1Run: A GoogleCloudDatacatalogLineageV1Run
      resource to be passed as the request body.
    name: Immutable. The resource name of the run. Format:
      `projects/{project}/locations/{location}/processes/{process}/runs/{run}`
      . Can be specified or auto-assigned. {run} must be not longer than 200
      characters and only contain characters in a set: `a-zA-Z0-9_-:.`
    updateMask: Optional. The list of fields to update. Currently not used.
      The whole message is updated.
  """

  allowMissing = _messages.BooleanField(1)
  googleCloudDatacatalogLineageV1Run = _messages.MessageField('GoogleCloudDatacatalogLineageV1Run', 2)
  name = _messages.StringField(3, required=True)
  updateMask = _messages.StringField(4)


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

  Fields:
    googleCloudDatacatalogLineageV1SearchLineageStreamingRequest: A
      GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequest resource to
      be passed as the request body.
    parent: Required. The project and location to initiate the search from.
  """

  googleCloudDatacatalogLineageV1SearchLineageStreamingRequest = _messages.MessageField('GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDatacatalogLineageV1SearchLinksRequest: A
      GoogleCloudDatacatalogLineageV1SearchLinksRequest resource to be passed
      as the request body.
    parent: Required. The project and location you want search in.
  """

  googleCloudDatacatalogLineageV1SearchLinksRequest = _messages.MessageField('GoogleCloudDatacatalogLineageV1SearchLinksRequest', 1)
  parent = _messages.StringField(2, required=True)


class GoogleCloudDatacatalogLineageConfigmanagementV1Config(_messages.Message):
  r"""Configuration for Data Lineage. Defines different configuration options
  for Lineage customers to control behaviour of lineage systems.

  Fields:
    etag: Optional. `etag` is used for optimistic concurrency control as a way
      to help prevent simultaneous updates of a config from overwriting each
      other. It is required that systems make use of the `etag` in the read-
      modify-write cycle to perform config updates in order to avoid race
      conditions: An `etag` is returned in the response to `GetConfig`, and
      systems are expected to put that etag in the request to `UpdateConfig`
      to ensure that their change will be applied to the same version of the
      config. If an `etag` is not provided in the call to `UpdateConfig`, then
      the existing config, if any, will be overwritten.
    ingestion: Optional. Ingestion rule for Data Lineage ingestion.
    name: Identifier. The resource name of the config. Format:
      `organizations/{organization_id}/locations/global/config`
      `folders/{folder_id}/locations/global/config`
      `projects/{project_id}/locations/global/config`
      `projects/{project_number}/locations/global/config`
  """

  etag = _messages.StringField(1)
  ingestion = _messages.MessageField('GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestion', 2)
  name = _messages.StringField(3)


class GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestion(_messages.Message):
  r"""Defines how Lineage should be ingested for a given resource.

  Fields:
    rules: Optional. List of rules for Data Lineage ingestion.
  """

  rules = _messages.MessageField('GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRule', 1, repeated=True)


class GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRule(_messages.Message):
  r"""Ingestion rule for Data Lineage ingestion.

  Fields:
    integrationSelector: Required. Integration selector of the rule. The rule
      is only applied to the Integration selected by the selector.
    lineageEnablement: Required. Lineage enablement configuration. Defines
      configurations for the ingestion of lineage for the resource and its
      children. If unspecified, the ingestion will be enabled only if it was
      configured in the resource's parent.
  """

  integrationSelector = _messages.MessageField('GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleIntegrationSelector', 1)
  lineageEnablement = _messages.MessageField('GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleLineageEnablement', 2)


class GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleIntegrationSelector(_messages.Message):
  r"""Integration selector of the rule. The rule is only applied to the
  Integration selected by the selector.

  Enums:
    IntegrationValueValuesEnum: Required. Integration to which the rule
      applies. This field can be used to specify the integration against which
      the ingestion rule should be applied.

  Fields:
    integration: Required. Integration to which the rule applies. This field
      can be used to specify the integration against which the ingestion rule
      should be applied.
  """

  class IntegrationValueValuesEnum(_messages.Enum):
    r"""Required. Integration to which the rule applies. This field can be
    used to specify the integration against which the ingestion rule should be
    applied.

    Values:
      INTEGRATION_UNSPECIFIED: Integration is Unspecified
      BIGQUERY: BigQuery
      DATAPROC: Dataproc
      LOOKER_CORE: Looker Core
      MANAGED_AIRFLOW: Managed Service for Apache Airflow (formerly known as
        Cloud Composer)
    """
    INTEGRATION_UNSPECIFIED = 0
    BIGQUERY = 1
    DATAPROC = 2
    LOOKER_CORE = 3
    MANAGED_AIRFLOW = 4

  integration = _messages.EnumField('IntegrationValueValuesEnum', 1)


class GoogleCloudDatacatalogLineageConfigmanagementV1ConfigIngestionIngestionRuleLineageEnablement(_messages.Message):
  r"""Lineage enablement configuration. Defines configurations for the
  ingestion of lineage for the resource and its children.

  Fields:
    enabled: Optional. If true, ingestion of lineage should be enabled. If
      false, it should be disabled. If unspecified, the system default value
      is used.
  """

  enabled = _messages.BooleanField(1)


class GoogleCloudDatacatalogLineageV1BatchSearchLinkProcessesRequest(_messages.Message):
  r"""Request message for BatchSearchLinkProcesses.

  Fields:
    links: Required. An array of links to check for their associated
      LineageProcesses. The maximum number of items in this array is 100. If
      the request contains more than 100 links, it returns the
      `INVALID_ARGUMENT` error. Format:
      `projects/{project}/locations/{location}/links/{link}`.
    pageSize: Optional. The maximum number of processes to return in a single
      page of the response. A page may contain fewer results than this value.
    pageToken: Optional. The page token received from a previous
      `BatchSearchLinkProcesses` call. Use it to get the next page. When
      requesting subsequent pages of a response, remember that all parameters
      must match the values you provided in the original request.
  """

  links = _messages.StringField(1, repeated=True)
  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(3)


class GoogleCloudDatacatalogLineageV1BatchSearchLinkProcessesResponse(_messages.Message):
  r"""Response message for BatchSearchLinkProcesses.

  Fields:
    nextPageToken: The token to specify as `page_token` in the subsequent call
      to get the next page. Omitted if there are no more pages in the
      response.
    processLinks: An array of processes associated with the specified links.
  """

  nextPageToken = _messages.StringField(1)
  processLinks = _messages.MessageField('GoogleCloudDatacatalogLineageV1ProcessLinks', 2, repeated=True)


class GoogleCloudDatacatalogLineageV1DependencyInfo(_messages.Message):
  r"""Dependency info describes how one entity depends on another.

  Enums:
    DependencyTypeValueValuesEnum: Required. Type of dependency.

  Fields:
    dependencyType: Required. Type of dependency.
  """

  class DependencyTypeValueValuesEnum(_messages.Enum):
    r"""Required. Type of dependency.

    Values:
      DEPENDENCY_TYPE_UNSPECIFIED: Dependency type unspecified.
      EXACT_COPY: Exact data copy without any change.
      OTHER: Other types of dependencies like filtering or grouping.
    """
    DEPENDENCY_TYPE_UNSPECIFIED = 0
    EXACT_COPY = 1
    OTHER = 2

  dependencyType = _messages.EnumField('DependencyTypeValueValuesEnum', 1)


class GoogleCloudDatacatalogLineageV1EntityReference(_messages.Message):
  r"""The soft reference to everything you can attach a lineage event to.

  Fields:
    field: Optional. Field path within the entity. Each nesting level should
      be a separate value in the repeated field. The order matters. Must be
      empty for asset level lineage For example to address "salary.net"
      subfield where "salary" is a column and "net" is a proto field two
      values in the `field` should be reported, the first is "salary" and the
      second is "net". Each field length is limited to 500 characters. Maximum
      supported nesting level is 20.
    fullyQualifiedName: Required. [Fully Qualified Name
      (FQN)](https://cloud.google.com/dataplex/docs/fully-qualified-names) of
      the entity.
  """

  field = _messages.StringField(1, repeated=True)
  fullyQualifiedName = _messages.StringField(2)


class GoogleCloudDatacatalogLineageV1EventLink(_messages.Message):
  r"""A lineage between source and target entities.

  Fields:
    dependencyInfo: Optional. Describes how the target depends on the source.
    source: Required. Reference to the source entity
    target: Required. Reference to the target entity
  """

  dependencyInfo = _messages.MessageField('GoogleCloudDatacatalogLineageV1DependencyInfo', 1)
  source = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 2)
  target = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 3)


class GoogleCloudDatacatalogLineageV1LineageEvent(_messages.Message):
  r"""A lineage event represents an operation on assets. Within the operation,
  the data flows from the source to the target defined in the links field.

  Fields:
    endTime: Optional. The end of the transformation which resulted in this
      lineage event. For streaming scenarios, it should be the end of the
      period from which the lineage is being reported.
    links: Optional. List of source-target pairs. Can't contain more than 100
      tuples.
    name: Immutable. The resource name of the lineage event. Format: `projects
      /{project}/locations/{location}/processes/{process}/runs/{run}/lineageEv
      ents/{lineage_event}`. Can be specified or auto-assigned.
      {lineage_event} must be not longer than 200 characters and only contain
      characters in a set: `a-zA-Z0-9_-:.`
    startTime: Required. The beginning of the transformation which resulted in
      this lineage event. For streaming scenarios, it should be the beginning
      of the period from which the lineage is being reported.
  """

  endTime = _messages.StringField(1)
  links = _messages.MessageField('GoogleCloudDatacatalogLineageV1EventLink', 2, repeated=True)
  name = _messages.StringField(3)
  startTime = _messages.StringField(4)


class GoogleCloudDatacatalogLineageV1LineageLink(_messages.Message):
  r"""Lineage link between two entities.

  Fields:
    dependencyInfo: Describes how the target entity is dependent on the source
      entity.
    depth: Depth of the current link in the graph starting from 1.
    location: The location where the LineageEvent that created the link is
      stored.
    processes: Processes metadata associated with the link.
    source: The entity that is the **source** of this link.
    target: The entity that is the **target** of this link.
  """

  dependencyInfo = _messages.MessageField('GoogleCloudDatacatalogLineageV1LineageLinkDependencyInfo', 1, repeated=True)
  depth = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  location = _messages.StringField(3)
  processes = _messages.MessageField('GoogleCloudDatacatalogLineageV1LineageLinkLineageProcess', 4, repeated=True)
  source = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 5)
  target = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 6)


class GoogleCloudDatacatalogLineageV1LineageLinkDependencyInfo(_messages.Message):
  r"""Dependency info describes how one entity is dependent on another.

  Enums:
    DependencyTypeValueValuesEnum: The type of dependency.

  Fields:
    dependencyType: The type of dependency.
  """

  class DependencyTypeValueValuesEnum(_messages.Enum):
    r"""The type of dependency.

    Values:
      DEPENDENCY_TYPE_UNSPECIFIED: Dependency type unspecified.
      EXACT_COPY: Exact data copy without any change.
      OTHER: Other types of dependencies like filtering or grouping.
    """
    DEPENDENCY_TYPE_UNSPECIFIED = 0
    EXACT_COPY = 1
    OTHER = 2

  dependencyType = _messages.EnumField('DependencyTypeValueValuesEnum', 1)


class GoogleCloudDatacatalogLineageV1LineageLinkLineageProcess(_messages.Message):
  r"""Process metadata for the link.

  Fields:
    process: Process that created the link.
  """

  process = _messages.MessageField('GoogleCloudDatacatalogLineageV1Process', 1)


class GoogleCloudDatacatalogLineageV1Link(_messages.Message):
  r"""Links represent the data flow between **source** (upstream) and
  **target** (downstream) assets in transformation pipelines. Links are
  created when LineageEvents record data transformation between related
  assets.

  Fields:
    dependencyInfo: Optional. The dependency info of the link (applies only to
      column level links).
    endTime: The end of the last event establishing this link.
    name: Output only. Immutable. The name of the link. Format:
      `projects/{project}/locations/{location}/links/{link}`.
    source: The pointer to the entity that is the **source** of this link.
    startTime: The start of the first event establishing this link.
    target: The pointer to the entity that is the **target** of this link.
  """

  dependencyInfo = _messages.MessageField('GoogleCloudDatacatalogLineageV1LinkDependencyInfo', 1, repeated=True)
  endTime = _messages.StringField(2)
  name = _messages.StringField(3)
  source = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 4)
  startTime = _messages.StringField(5)
  target = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 6)


class GoogleCloudDatacatalogLineageV1LinkDependencyInfo(_messages.Message):
  r"""Dependency info describes how one entity depends on another.

  Enums:
    DependencyTypeValueValuesEnum: The type of dependency.

  Fields:
    dependencyType: The type of dependency.
  """

  class DependencyTypeValueValuesEnum(_messages.Enum):
    r"""The type of dependency.

    Values:
      DEPENDENCY_TYPE_UNSPECIFIED: Dependency type unspecified.
      EXACT_COPY: Exact data copy without any change.
      OTHER: Other types of dependencies like filtering or grouping.
    """
    DEPENDENCY_TYPE_UNSPECIFIED = 0
    EXACT_COPY = 1
    OTHER = 2

  dependencyType = _messages.EnumField('DependencyTypeValueValuesEnum', 1)


class GoogleCloudDatacatalogLineageV1ListLineageEventsResponse(_messages.Message):
  r"""Response message for ListLineageEvents.

  Fields:
    lineageEvents: Lineage events from the specified project and location.
    nextPageToken: The token to specify as `page_token` in the next call to
      get the next page. If this field is omitted, there are no subsequent
      pages.
  """

  lineageEvents = _messages.MessageField('GoogleCloudDatacatalogLineageV1LineageEvent', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDatacatalogLineageV1ListProcessesResponse(_messages.Message):
  r"""Response message for ListProcesses.

  Fields:
    nextPageToken: The token to specify as `page_token` in the next call to
      get the next page. If this field is omitted, there are no subsequent
      pages.
    processes: The processes from the specified project and location.
  """

  nextPageToken = _messages.StringField(1)
  processes = _messages.MessageField('GoogleCloudDatacatalogLineageV1Process', 2, repeated=True)


class GoogleCloudDatacatalogLineageV1ListRunsResponse(_messages.Message):
  r"""Response message for ListRuns.

  Fields:
    nextPageToken: The token to specify as `page_token` in the next call to
      get the next page. If this field is omitted, there are no subsequent
      pages.
    runs: The runs from the specified project and location.
  """

  nextPageToken = _messages.StringField(1)
  runs = _messages.MessageField('GoogleCloudDatacatalogLineageV1Run', 2, repeated=True)


class GoogleCloudDatacatalogLineageV1MultipleEntityReference(_messages.Message):
  r"""Multiple entity reference for SearchLinksRequest.

  Fields:
    entities: Optional. The list of entities to search for links. The maximum
      number of entities is 20.
  """

  entities = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 1, repeated=True)


class GoogleCloudDatacatalogLineageV1OperationMetadata(_messages.Message):
  r"""Metadata describing the operation.

  Enums:
    OperationTypeValueValuesEnum: Output only. The type of the operation being
      performed.
    StateValueValuesEnum: Output only. The current operation state.

  Fields:
    createTime: Output only. The timestamp of the operation submission to the
      server.
    endTime: Output only. The timestamp of the operation termination,
      regardless of its success. This field is unset if the operation is still
      ongoing.
    operationType: Output only. The type of the operation being performed.
    resource: Output only. The [relative name] (https://cloud.google.com//apis
      /design/resource_names#relative_resource_name) of the resource being
      operated on.
    resourceUuid: Output only. The UUID of the resource being operated on.
    state: Output only. The current operation state.
  """

  class OperationTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The type of the operation being performed.

    Values:
      TYPE_UNSPECIFIED: Unused.
      DELETE: The resource deletion operation.
      CREATE: The resource creation operation.
    """
    TYPE_UNSPECIFIED = 0
    DELETE = 1
    CREATE = 2

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. The current operation state.

    Values:
      STATE_UNSPECIFIED: Unused.
      PENDING: The operation has been created but is not yet started.
      RUNNING: The operation is underway.
      SUCCEEDED: The operation completed successfully.
      FAILED: The operation is no longer running and did not succeed.
    """
    STATE_UNSPECIFIED = 0
    PENDING = 1
    RUNNING = 2
    SUCCEEDED = 3
    FAILED = 4

  createTime = _messages.StringField(1)
  endTime = _messages.StringField(2)
  operationType = _messages.EnumField('OperationTypeValueValuesEnum', 3)
  resource = _messages.StringField(4)
  resourceUuid = _messages.StringField(5)
  state = _messages.EnumField('StateValueValuesEnum', 6)


class GoogleCloudDatacatalogLineageV1Origin(_messages.Message):
  r"""Origin of a process.

  Enums:
    SourceTypeValueValuesEnum: Type of the source. Use of a source_type other
      than `CUSTOM` for process creation or updating is highly discouraged. It
      might be restricted in the future without notice. There will be increase
      in cost if you use any of the source types other than `CUSTOM`.

  Fields:
    name: If the source_type isn't CUSTOM, the value of this field should be a
      Google Cloud resource name of the system, which reports lineage. The
      project and location parts of the resource name must match the project
      and location of the lineage resource being created. Examples: -
      `{source_type: COMPOSER, name:
      "projects/foo/locations/us/environments/bar"}` - `{source_type:
      BIGQUERY, name: "projects/foo/locations/eu"}` - `{source_type: CUSTOM,
      name: "myCustomIntegration"}`
    sourceType: Type of the source. Use of a source_type other than `CUSTOM`
      for process creation or updating is highly discouraged. It might be
      restricted in the future without notice. There will be increase in cost
      if you use any of the source types other than `CUSTOM`.
  """

  class SourceTypeValueValuesEnum(_messages.Enum):
    r"""Type of the source. Use of a source_type other than `CUSTOM` for
    process creation or updating is highly discouraged. It might be restricted
    in the future without notice. There will be increase in cost if you use
    any of the source types other than `CUSTOM`.

    Values:
      SOURCE_TYPE_UNSPECIFIED: Source is Unspecified
      CUSTOM: A custom source
      BIGQUERY: BigQuery
      DATA_FUSION: Data Fusion
      COMPOSER: Composer
      LOOKER_STUDIO: Looker Studio
      DATAPROC: Dataproc
      VERTEX_AI: Vertex AI
      DATAFLOW: Dataflow
      LOOKER_CORE: Looker Core
    """
    SOURCE_TYPE_UNSPECIFIED = 0
    CUSTOM = 1
    BIGQUERY = 2
    DATA_FUSION = 3
    COMPOSER = 4
    LOOKER_STUDIO = 5
    DATAPROC = 6
    VERTEX_AI = 7
    DATAFLOW = 8
    LOOKER_CORE = 9

  name = _messages.StringField(1)
  sourceType = _messages.EnumField('SourceTypeValueValuesEnum', 2)


class GoogleCloudDatacatalogLineageV1Process(_messages.Message):
  r"""A process is the definition of a data transformation operation.

  Messages:
    AttributesValue: Optional. The attributes of the process. Should only be
      used for the purpose of non-semantic management (classifying, describing
      or labeling the process). Up to 100 attributes are allowed.

  Fields:
    attributes: Optional. The attributes of the process. Should only be used
      for the purpose of non-semantic management (classifying, describing or
      labeling the process). Up to 100 attributes are allowed.
    displayName: Optional. A human-readable name you can set to display in a
      user interface. Must be not longer than 200 characters and only contain
      UTF-8 letters or numbers, spaces or characters like `_-:&.`
    name: Immutable. The resource name of the lineage process. Format:
      `projects/{project}/locations/{location}/processes/{process}`. Can be
      specified or auto-assigned. {process} must be not longer than 200
      characters and only contain characters in a set: `a-zA-Z0-9_-:.`
    origin: Optional. The origin of this process and its runs and lineage
      events.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AttributesValue(_messages.Message):
    r"""Optional. The attributes of the process. Should only be used for the
    purpose of non-semantic management (classifying, describing or labeling
    the process). Up to 100 attributes are allowed.

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

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

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AttributesValue 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)

  attributes = _messages.MessageField('AttributesValue', 1)
  displayName = _messages.StringField(2)
  name = _messages.StringField(3)
  origin = _messages.MessageField('GoogleCloudDatacatalogLineageV1Origin', 4)


class GoogleCloudDatacatalogLineageV1ProcessLinkInfo(_messages.Message):
  r"""Link details.

  Fields:
    endTime: The end of the last event establishing this link-process tuple.
    link: The name of the link in the format of
      `projects/{project}/locations/{location}/links/{link}`.
    startTime: The start of the first event establishing this link-process
      tuple.
  """

  endTime = _messages.StringField(1)
  link = _messages.StringField(2)
  startTime = _messages.StringField(3)


class GoogleCloudDatacatalogLineageV1ProcessLinks(_messages.Message):
  r"""Links associated with a specific process.

  Fields:
    links: An array containing link details objects of the links provided in
      the original request. A single process can result in creating multiple
      links. If any of the links you provide in the request are created by the
      same process, they all are included in this array.
    process: The process name in the format of
      `projects/{project}/locations/{location}/processes/{process}`.
  """

  links = _messages.MessageField('GoogleCloudDatacatalogLineageV1ProcessLinkInfo', 1, repeated=True)
  process = _messages.StringField(2)


class GoogleCloudDatacatalogLineageV1ProcessOpenLineageRunEventResponse(_messages.Message):
  r"""Response message for ProcessOpenLineageRunEvent.

  Fields:
    lineageEvents: Created lineage event names. Format: `projects/{project}/lo
      cations/{location}/processes/{process}/runs/{run}/lineageEvents/{lineage
      _event}`.
    process: Created process name. Format:
      `projects/{project}/locations/{location}/processes/{process}`.
    run: Created run name. Format:
      `projects/{project}/locations/{location}/processes/{process}/runs/{run}`
      .
  """

  lineageEvents = _messages.StringField(1, repeated=True)
  process = _messages.StringField(2)
  run = _messages.StringField(3)


class GoogleCloudDatacatalogLineageV1Run(_messages.Message):
  r"""A lineage run represents an execution of a process that creates lineage
  events.

  Enums:
    StateValueValuesEnum: Required. The state of the run.

  Messages:
    AttributesValue: Optional. The attributes of the run. Should only be used
      for the purpose of non-semantic management (classifying, describing or
      labeling the run). Up to 100 attributes are allowed.

  Fields:
    attributes: Optional. The attributes of the run. Should only be used for
      the purpose of non-semantic management (classifying, describing or
      labeling the run). Up to 100 attributes are allowed.
    displayName: Optional. A human-readable name you can set to display in a
      user interface. Must be not longer than 200 characters and only contain
      UTF-8 letters or numbers, spaces or characters like `_-:&.`
    endTime: Optional. The timestamp of the end of the run.
    name: Immutable. The resource name of the run. Format:
      `projects/{project}/locations/{location}/processes/{process}/runs/{run}`
      . Can be specified or auto-assigned. {run} must be not longer than 200
      characters and only contain characters in a set: `a-zA-Z0-9_-:.`
    startTime: Required. The timestamp of the start of the run.
    state: Required. The state of the run.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Required. The state of the run.

    Values:
      UNKNOWN: The state is unknown. The true state may be any of the below or
        a different state that is not supported here explicitly.
      STARTED: The run is still executing.
      COMPLETED: The run completed.
      FAILED: The run failed.
      ABORTED: The run aborted.
    """
    UNKNOWN = 0
    STARTED = 1
    COMPLETED = 2
    FAILED = 3
    ABORTED = 4

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AttributesValue(_messages.Message):
    r"""Optional. The attributes of the run. Should only be used for the
    purpose of non-semantic management (classifying, describing or labeling
    the run). Up to 100 attributes are allowed.

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

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

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AttributesValue 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)

  attributes = _messages.MessageField('AttributesValue', 1)
  displayName = _messages.StringField(2)
  endTime = _messages.StringField(3)
  name = _messages.StringField(4)
  startTime = _messages.StringField(5)
  state = _messages.EnumField('StateValueValuesEnum', 6)


class GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequest(_messages.Message):
  r"""Request message for SearchLineageStreaming.

  Enums:
    DirectionValueValuesEnum: Required. Direction of the search.

  Fields:
    direction: Required. Direction of the search.
    filters: Optional. Filters for the search.
    limits: Optional. Limits for the search.
    locations: Required. The locations to search in. This list should contain
      the location from the `parent` field.
    rootCriteria: Required. Criteria for the root of the search.
  """

  class DirectionValueValuesEnum(_messages.Enum):
    r"""Required. Direction of the search.

    Values:
      SEARCH_DIRECTION_UNSPECIFIED: Direction is unspecified.
      DOWNSTREAM: Retrieve links that lead from the specified asset to
        downstream assets.
      UPSTREAM: Retrieve links that lead from upstream assets to the specified
        asset.
    """
    SEARCH_DIRECTION_UNSPECIFIED = 0
    DOWNSTREAM = 1
    UPSTREAM = 2

  direction = _messages.EnumField('DirectionValueValuesEnum', 1)
  filters = _messages.MessageField('GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequestSearchFilters', 2)
  limits = _messages.MessageField('GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequestSearchLimits', 3)
  locations = _messages.StringField(4, repeated=True)
  rootCriteria = _messages.MessageField('GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequestRootCriteria', 5)


class GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequestRootCriteria(_messages.Message):
  r"""Criteria for the root of the search.

  Fields:
    entities: Optional. The entities to initiate the search from. Entities can
      be specified by FQN only, or by FQN and field. To search by FQN and all
      available fields for that FQN, use the wildcard `*` as the field value.
  """

  entities = _messages.MessageField('GoogleCloudDatacatalogLineageV1MultipleEntityReference', 1)


class GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequestSearchFilters(_messages.Message):
  r"""Filters for the search.

  Enums:
    DependencyTypesValueListEntryValuesEnum:
    EntitySetValueValuesEnum: Optional. Entity set restriction. If
      unspecified, the method returns all entities.

  Fields:
    dependencyTypes: Optional. Types of dependencies between entities to
      retrieve. If unspecified, all dependency types are returned.
    entitySet: Optional. Entity set restriction. If unspecified, the method
      returns all entities.
    timeRange: Optional. Time interval to search for lineage. If unspecified,
      all lineage is returned. Currently, at most one of `start_time` and
      `end_time` can be set.
  """

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

    Values:
      DEPENDENCY_TYPE_UNSPECIFIED: Dependency type unspecified.
      EXACT_COPY: Exact data copy without any change.
      OTHER: Other types of dependencies like filtering or grouping.
    """
    DEPENDENCY_TYPE_UNSPECIFIED = 0
    EXACT_COPY = 1
    OTHER = 2

  class EntitySetValueValuesEnum(_messages.Enum):
    r"""Optional. Entity set restriction. If unspecified, the method returns
    all entities.

    Values:
      ENTITY_SET_UNSPECIFIED: The entity set is unspecified. Returns all the
        data.
      ENTITIES: Returns entities with only FQN specified. For example,
        entities with the `field` field set are not returned.
    """
    ENTITY_SET_UNSPECIFIED = 0
    ENTITIES = 1

  dependencyTypes = _messages.EnumField('DependencyTypesValueListEntryValuesEnum', 1, repeated=True)
  entitySet = _messages.EnumField('EntitySetValueValuesEnum', 2)
  timeRange = _messages.MessageField('GoogleTypeInterval', 3)


class GoogleCloudDatacatalogLineageV1SearchLineageStreamingRequestSearchLimits(_messages.Message):
  r"""Limits for the search results.

  Fields:
    maxDepth: Optional. The maximum depth of the search. The default value is
      5 and maximum value is 100.
    maxProcessPerLink: Optional. The maximum number of processes to return per
      link. The default value is 0 and the maximum value is 100. If this value
      is non-zero, the response will contain process names for the links. To
      retrieve full process details in the response, include
      `links.processes.process` in the
      [FieldMask](https://developers.google.com/workspace/docs/api/how-
      tos/field-masks#read_with_a_field_mask).
    maxResults: Optional. The maximum number of links to return in the
      response. The default value is 1_000 and the maximum value is 10_000.
  """

  maxDepth = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  maxProcessPerLink = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  maxResults = _messages.IntegerField(3, variant=_messages.Variant.INT32)


class GoogleCloudDatacatalogLineageV1SearchLineageStreamingResponse(_messages.Message):
  r"""Response message for SearchLineageStreaming.

  Fields:
    links: Output only. The lineage links that match the search criteria. Can
      be empty if no links match.
    unreachable: Unordered list. Unreachable resources. If non-empty, the
      result set might be incomplete. Currently, only locations are supported.
      Format: `projects/[PROJECT_NUMBER]/locations/[LOCATION]` Example:
      projects/123456789/locations/us-east1
  """

  links = _messages.MessageField('GoogleCloudDatacatalogLineageV1LineageLink', 1, repeated=True)
  unreachable = _messages.StringField(2, repeated=True)


class GoogleCloudDatacatalogLineageV1SearchLinksRequest(_messages.Message):
  r"""Request message for SearchLinks.

  Fields:
    pageSize: Optional. The maximum number of links to return in a single page
      of the response. A page may contain fewer links than this value. If
      unspecified, at most 10 links are returned. Maximum value is 100; values
      greater than 100 are reduced to 100.
    pageToken: Optional. The page token received from a previous
      `SearchLinksRequest` call. Use it to get the next page. When requesting
      subsequent pages of a response, remember that all parameters must match
      the values you provided in the original request.
    source: Optional. Send asset information in the **source** field to
      retrieve all links that lead from the specified asset to downstream
      assets.
    sources: Optional. Send a list of asset information in the **sources**
      field to retrieve all links that lead from the specified assets to
      downstream assets. This field is similar to the `source` source field
      but allows providing multiple entities. All entities within the
      `MultipleEntityReference` must have the same `fully_qualified_name`.
    target: Optional. Send asset information in the **target** field to
      retrieve all links that lead from upstream assets to the specified
      asset.
    targets: Optional. Send a list of asset information in the **targets**
      field to retrieve all links that lead from upstream assets to the
      specified assets. This field is similar to the `target` target field but
      allows providing multiple entities. All entities within the
      `MultipleEntityReference` must have the same `fully_qualified_name`.
  """

  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(2)
  source = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 3)
  sources = _messages.MessageField('GoogleCloudDatacatalogLineageV1MultipleEntityReference', 4)
  target = _messages.MessageField('GoogleCloudDatacatalogLineageV1EntityReference', 5)
  targets = _messages.MessageField('GoogleCloudDatacatalogLineageV1MultipleEntityReference', 6)


class GoogleCloudDatacatalogLineageV1SearchLinksResponse(_messages.Message):
  r"""Response message for SearchLinks.

  Fields:
    links: The list of links for a given asset. Can be empty if the asset has
      no relations of requested type (source or target).
    nextPageToken: The token to specify as `page_token` in the subsequent call
      to get the next page. Omitted if there are no more pages in the
      response.
  """

  links = _messages.MessageField('GoogleCloudDatacatalogLineageV1Link', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


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


class GoogleLongrunningListOperationsResponse(_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('GoogleLongrunningOperation', 2, repeated=True)
  unreachable = _messages.StringField(3, repeated=True)


class GoogleLongrunningOperation(_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('GoogleRpcStatus', 2)
  metadata = _messages.MessageField('MetadataValue', 3)
  name = _messages.StringField(4)
  response = _messages.MessageField('ResponseValue', 5)


class GoogleProtobufEmpty(_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 GoogleRpcStatus(_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 GoogleTypeInterval(_messages.Message):
  r"""Represents a time interval, encoded as a Timestamp start (inclusive) and
  a Timestamp end (exclusive). The start must be less than or equal to the
  end. When the start equals the end, the interval is empty (matches no time).
  When both start and end are unspecified, the interval matches any time.

  Fields:
    endTime: Optional. Exclusive end of the interval. If specified, a
      Timestamp matching this interval will have to be before the end.
    startTime: Optional. Inclusive start of the interval. If specified, a
      Timestamp matching this interval will have to be the same or after the
      start.
  """

  endTime = _messages.StringField(1)
  startTime = _messages.StringField(2)


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)


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