"""Generated message classes for dialogflow version v2.

Builds conversational interfaces (for example, chatbots, and voice-powered
apps and devices).
"""
# NOTE: This file is autogenerated and should not be edited by hand.

from __future__ import absolute_import

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


package = 'dialogflow'


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

  Fields:
    googleCloudDialogflowV2BatchDeleteEntityTypesRequest: A
      GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest resource to be
      passed as the request body.
    parent: Required. The name of the agent to delete all entities types for.
      Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchDeleteEntityTypesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchUpdateEntityTypesRequest: A
      GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest resource to be
      passed as the request body.
    parent: Required. The name of the agent to update or create entity types
      in. Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchUpdateEntityTypesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2EntityType: A GoogleCloudDialogflowV2EntityType
      resource to be passed as the request body.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    parent: Required. The agent to create a entity type for. Format:
      `projects//agent`.
  """

  googleCloudDialogflowV2EntityType = _messages.MessageField('GoogleCloudDialogflowV2EntityType', 1)
  languageCode = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. The name of the entity type to delete. Format:
      `projects//agent/entityTypes/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2BatchCreateEntitiesRequest: A
      GoogleCloudDialogflowV2BatchCreateEntitiesRequest resource to be passed
      as the request body.
    parent: Required. The name of the entity type to create entities in.
      Format: `projects//agent/entityTypes/`.
  """

  googleCloudDialogflowV2BatchCreateEntitiesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchCreateEntitiesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchDeleteEntitiesRequest: A
      GoogleCloudDialogflowV2BatchDeleteEntitiesRequest resource to be passed
      as the request body.
    parent: Required. The name of the entity type to delete entries for.
      Format: `projects//agent/entityTypes/`.
  """

  googleCloudDialogflowV2BatchDeleteEntitiesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchDeleteEntitiesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchUpdateEntitiesRequest: A
      GoogleCloudDialogflowV2BatchUpdateEntitiesRequest resource to be passed
      as the request body.
    parent: Required. The name of the entity type to update or create entities
      in. Format: `projects//agent/entityTypes/`.
  """

  googleCloudDialogflowV2BatchUpdateEntitiesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchUpdateEntitiesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: Required. The name of the entity type. Format:
      `projects//agent/entityTypes/`.
  """

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


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

  Fields:
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all entity types from. Format:
      `projects//agent`.
  """

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


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

  Fields:
    googleCloudDialogflowV2EntityType: A GoogleCloudDialogflowV2EntityType
      resource to be passed as the request body.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: The unique identifier of the entity type. Required for
      EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes
      methods. Format: `projects//agent/entityTypes/`.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2EntityType = _messages.MessageField('GoogleCloudDialogflowV2EntityType', 1)
  languageCode = _messages.StringField(2)
  name = _messages.StringField(3, required=True)
  updateMask = _messages.StringField(4)


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

  Fields:
    environmentId: Required. The unique id of the new environment.
    googleCloudDialogflowV2Environment: A GoogleCloudDialogflowV2Environment
      resource to be passed as the request body.
    parent: Required. The agent to create an environment for. Supported
      formats: - `projects//agent` - `projects//locations//agent`
  """

  environmentId = _messages.StringField(1)
  googleCloudDialogflowV2Environment = _messages.MessageField('GoogleCloudDialogflowV2Environment', 2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. The name of the environment to delete. / Format: -
      `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The name of the environment to retrieve history for.
      Supported formats: - `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
  """

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


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

  Fields:
    name: Required. The name of the environment. Supported formats: -
      `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
  """

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


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all intents from. Format:
      `projects//agent` or `projects//locations//agent`. Alternatively, you
      can specify the environment to list intents for. Format:
      `projects//agent/environments/` or
      `projects//locations//agent/environments/`. Note: training phrases of
      the intents will not be returned for non-draft environment.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  intentView = _messages.EnumField('IntentViewValueValuesEnum', 1)
  languageCode = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all environments from. Format: -
      `projects//agent` - `projects//locations//agent`
  """

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


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

  Fields:
    allowLoadToDraftAndDiscardChanges: Optional. This field is used to prevent
      accidental overwrite of the default environment, which is an operation
      that cannot be undone. To confirm that the caller desires this
      overwrite, this field must be explicitly set to true when updating the
      default environment (environment ID = `-`).
    googleCloudDialogflowV2Environment: A GoogleCloudDialogflowV2Environment
      resource to be passed as the request body.
    name: Output only. The unique identifier of this agent environment.
      Supported formats: - `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
    updateMask: Required. The mask to control which fields get updated.
  """

  allowLoadToDraftAndDiscardChanges = _messages.BooleanField(1)
  googleCloudDialogflowV2Environment = _messages.MessageField('GoogleCloudDialogflowV2Environment', 2)
  name = _messages.StringField(3, required=True)
  updateMask = _messages.StringField(4)


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

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    parent: Required. The session to create a context for. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the context to delete. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    name: Required. The name of the context. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all contexts from. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    name: Required. The unique identifier of the context. Format:
      `projects//agent/sessions//contexts/`, or
      `projects//agent/environments//users//sessions//contexts/`. The `Context
      ID` is always converted to lowercase, may only contain characters in
      `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user. The following context names
      are reserved for internal use by Dialogflow. You should not use these
      contexts or create contexts with these names: * `__system_counters__` *
      `*_id_dialog_context` * `*_dialog_params_size`
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    parent: Required. The name of the session to delete all contexts from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified we assume default 'draft' environment. If `User ID` is not
      specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2DetectIntentRequest: A
      GoogleCloudDialogflowV2DetectIntentRequest resource to be passed as the
      request body.
    session: Required. The name of the session this query is sent to. Format:
      `projects//agent/sessions/`, or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment (`Environment ID`
      might be referred to as environment name at some places). If `User ID`
      is not specified, we are using "-". It's up to the API caller to choose
      an appropriate `Session ID` and `User Id`. They can be a random number
      or some type of user and session identifiers (preferably hashed). The
      length of the `Session ID` and `User ID` must not exceed 36 characters.
      For more information, see the [API interactions
      guide](https://cloud.google.com/dialogflow/docs/api-overview). Note:
      Always use agent versions for production traffic. See [Versions and
      environments](https://cloud.google.com/dialogflow/es/docs/agents-
      versions).
  """

  googleCloudDialogflowV2DetectIntentRequest = _messages.MessageField('GoogleCloudDialogflowV2DetectIntentRequest', 1)
  session = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    parent: Required. The session to create a session entity type for. Format:
      `projects//agent/sessions/` or `projects//agent/environments//users//
      sessions/`. If `Environment ID` is not specified, we assume default
      'draft' environment. If `User ID` is not specified, we assume default
      '-' user.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the entity type to delete. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    name: Required. The name of the session entity type. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all session entity types from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users// sessions/`. If `Environment ID`
      is not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    name: Required. The unique identifier of this session entity type. Format:
      `projects//agent/sessions//entityTypes/`, or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
      `` must be the display name of an existing entity type in the same agent
      that will be overridden or supplemented.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2ExportAgentRequest: A
      GoogleCloudDialogflowV2ExportAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to export is associated with.
      Format: `projects/`.
  """

  googleCloudDialogflowV2ExportAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2ExportAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the fulfillment. Format:
      `projects//agent/fulfillment`.
  """

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


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

  Fields:
    languageCode: Optional. The language for which you want a validation
      result. If not specified, the agent's default language is used. [Many
      languages](https://cloud.google.com/dialogflow/docs/reference/language)
      are supported. Note: languages must be enabled in the agent before they
      can be used.
    parent: Required. The project that the agent is associated with. Format:
      `projects/`.
  """

  languageCode = _messages.StringField(1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2ImportAgentRequest: A
      GoogleCloudDialogflowV2ImportAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to import is associated with.
      Format: `projects/`.
  """

  googleCloudDialogflowV2ImportAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2ImportAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchDeleteIntentsRequest: A
      GoogleCloudDialogflowV2BatchDeleteIntentsRequest resource to be passed
      as the request body.
    parent: Required. The name of the agent to delete all entities types for.
      Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchDeleteIntentsRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchDeleteIntentsRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchUpdateIntentsRequest: A
      GoogleCloudDialogflowV2BatchUpdateIntentsRequest resource to be passed
      as the request body.
    parent: Required. The name of the agent to update or create intents in.
      Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchUpdateIntentsRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchUpdateIntentsRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    googleCloudDialogflowV2Intent: A GoogleCloudDialogflowV2Intent resource to
      be passed as the request body.
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    parent: Required. The agent to create a intent for. Format:
      `projects//agent`.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  googleCloudDialogflowV2Intent = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1)
  intentView = _messages.EnumField('IntentViewValueValuesEnum', 2)
  languageCode = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)


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

  Fields:
    name: Required. The name of the intent to delete. If this intent has
      direct or indirect followup intents, we also delete them. Format:
      `projects//agent/intents/`.
  """

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


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: Required. The name of the intent. Format:
      `projects//agent/intents/`.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  intentView = _messages.EnumField('IntentViewValueValuesEnum', 1)
  languageCode = _messages.StringField(2)
  name = _messages.StringField(3, required=True)


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all intents from. Format:
      `projects//agent` or `projects//locations//agent`. Alternatively, you
      can specify the environment to list intents for. Format:
      `projects//agent/environments/` or
      `projects//locations//agent/environments/`. Note: training phrases of
      the intents will not be returned for non-draft environment.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  intentView = _messages.EnumField('IntentViewValueValuesEnum', 1)
  languageCode = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    googleCloudDialogflowV2Intent: A GoogleCloudDialogflowV2Intent resource to
      be passed as the request body.
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: Optional. The unique identifier of this intent. Required for
      Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format:
      `projects//agent/intents/`.
    updateMask: Optional. The mask to control which fields get updated.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  googleCloudDialogflowV2Intent = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1)
  intentView = _messages.EnumField('IntentViewValueValuesEnum', 2)
  languageCode = _messages.StringField(3)
  name = _messages.StringField(4, required=True)
  updateMask = _messages.StringField(5)


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

  Fields:
    googleCloudDialogflowV2KnowledgeBase: A
      GoogleCloudDialogflowV2KnowledgeBase resource to be passed as the
      request body.
    parent: Required. The project to create a knowledge base for. Format:
      `projects//locations/`.
  """

  googleCloudDialogflowV2KnowledgeBase = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeBase', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    force: Optional. Force deletes the knowledge base. When set to true, any
      documents in the knowledge base are also deleted.
    name: Required. The name of the knowledge base to delete. Format:
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Document: A GoogleCloudDialogflowV2Document
      resource to be passed as the request body.
    parent: Required. The knowledge base to create a document for. Format:
      `projects//locations//knowledgeBases/`.
  """

  googleCloudDialogflowV2Document = _messages.MessageField('GoogleCloudDialogflowV2Document', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the document to delete. Format:
      `projects//locations//knowledgeBases//documents/`.
  """

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


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

  Fields:
    name: Required. The name of the document to retrieve. Format
      `projects//locations//knowledgeBases//documents/`.
  """

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


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

  Fields:
    filter: The filter expression used to filter documents returned by the
      list method. The expression has the following syntax: [AND ] ... The
      following fields and operators are supported: * knowledge_types with
      has(:) operator * display_name with has(:) operator * state with
      equals(=) operator Examples: * "knowledge_types:FAQ" matches documents
      with FAQ knowledge type. * "display_name:customer" matches documents
      whose display name contains "customer". * "state=ACTIVE" matches
      documents with ACTIVE state. * "knowledge_types:FAQ AND state=ACTIVE"
      matches all active FAQ documents. For more information about filtering,
      see [API Filtering](https://aip.dev/160).
    pageSize: The maximum number of items to return in a single page. By
      default 10 and at most 100.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The knowledge base to list all documents for. Format:
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Document: A GoogleCloudDialogflowV2Document
      resource to be passed as the request body.
    name: Optional. The document resource name. The name must be empty when
      creating a document. Format:
      `projects//locations//knowledgeBases//documents/`.
    updateMask: Optional. Not specified means `update all`. Currently, only
      `display_name` can be updated, an InvalidArgument will be returned for
      attempting to update other fields.
  """

  googleCloudDialogflowV2Document = _messages.MessageField('GoogleCloudDialogflowV2Document', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2ReloadDocumentRequest: A
      GoogleCloudDialogflowV2ReloadDocumentRequest resource to be passed as
      the request body.
    name: Required. The name of the document to reload. Format:
      `projects//locations//knowledgeBases//documents/`
  """

  googleCloudDialogflowV2ReloadDocumentRequest = _messages.MessageField('GoogleCloudDialogflowV2ReloadDocumentRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the knowledge base to retrieve. Format
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    filter: The filter expression used to filter knowledge bases returned by
      the list method. The expression has the following syntax: [AND ] ... The
      following fields and operators are supported: * display_name with has(:)
      operator * language_code with equals(=) operator Examples: *
      'language_code=en-us' matches knowledge bases with en-us language code.
      * 'display_name:articles' matches knowledge bases whose display name
      contains "articles". * 'display_name:"Best Articles"' matches knowledge
      bases whose display name contains "Best Articles". * 'language_code=en-
      gb AND display_name=articles' matches all knowledge bases whose display
      name contains "articles" and whose language code is "en-gb". Note: An
      empty filter string (i.e. "") is a no-op and will result in no
      filtering. For more information about filtering, see [API
      Filtering](https://aip.dev/160).
    pageSize: The maximum number of items to return in a single page. By
      default 10 and at most 100.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The project to list of knowledge bases for. Format:
      `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2KnowledgeBase: A
      GoogleCloudDialogflowV2KnowledgeBase resource to be passed as the
      request body.
    name: The knowledge base resource name. The name must be empty when
      creating a knowledge base. Format:
      `projects//locations//knowledgeBases/`.
    updateMask: Optional. Not specified means `update all`. Currently, only
      `display_name` can be updated, an InvalidArgument will be returned for
      attempting to update other fields.
  """

  googleCloudDialogflowV2KnowledgeBase = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeBase', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2RestoreAgentRequest: A
      GoogleCloudDialogflowV2RestoreAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to restore is associated
      with. Format: `projects/`.
  """

  googleCloudDialogflowV2RestoreAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2RestoreAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The project to list agents from. Format: `projects/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    parent: Required. The session to create a context for. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the context to delete. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    name: Required. The name of the context. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all contexts from. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    name: Required. The unique identifier of the context. Format:
      `projects//agent/sessions//contexts/`, or
      `projects//agent/environments//users//sessions//contexts/`. The `Context
      ID` is always converted to lowercase, may only contain characters in
      `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user. The following context names
      are reserved for internal use by Dialogflow. You should not use these
      contexts or create contexts with these names: * `__system_counters__` *
      `*_id_dialog_context` * `*_dialog_params_size`
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    parent: Required. The name of the session to delete all contexts from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified we assume default 'draft' environment. If `User ID` is not
      specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2DetectIntentRequest: A
      GoogleCloudDialogflowV2DetectIntentRequest resource to be passed as the
      request body.
    session: Required. The name of the session this query is sent to. Format:
      `projects//agent/sessions/`, or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment (`Environment ID`
      might be referred to as environment name at some places). If `User ID`
      is not specified, we are using "-". It's up to the API caller to choose
      an appropriate `Session ID` and `User Id`. They can be a random number
      or some type of user and session identifiers (preferably hashed). The
      length of the `Session ID` and `User ID` must not exceed 36 characters.
      For more information, see the [API interactions
      guide](https://cloud.google.com/dialogflow/docs/api-overview). Note:
      Always use agent versions for production traffic. See [Versions and
      environments](https://cloud.google.com/dialogflow/es/docs/agents-
      versions).
  """

  googleCloudDialogflowV2DetectIntentRequest = _messages.MessageField('GoogleCloudDialogflowV2DetectIntentRequest', 1)
  session = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    parent: Required. The session to create a session entity type for. Format:
      `projects//agent/sessions/` or `projects//agent/environments//users//
      sessions/`. If `Environment ID` is not specified, we assume default
      'draft' environment. If `User ID` is not specified, we assume default
      '-' user.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the entity type to delete. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    name: Required. The name of the session entity type. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all session entity types from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users// sessions/`. If `Environment ID`
      is not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    name: Required. The unique identifier of this session entity type. Format:
      `projects//agent/sessions//entityTypes/`, or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
      `` must be the display name of an existing entity type in the same agent
      that will be overridden or supplemented.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2TrainAgentRequest: A
      GoogleCloudDialogflowV2TrainAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to train is associated with.
      Format: `projects/`.
  """

  googleCloudDialogflowV2TrainAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2TrainAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2Fulfillment: A GoogleCloudDialogflowV2Fulfillment
      resource to be passed as the request body.
    name: Required. The unique identifier of the fulfillment. Supported
      formats: - `projects//agent/fulfillment` -
      `projects//locations//agent/fulfillment` This field is not used for
      Fulfillment in an Environment.
    updateMask: Required. The mask to control which fields get updated. If the
      mask is not present, all fields will be updated.
  """

  googleCloudDialogflowV2Fulfillment = _messages.MessageField('GoogleCloudDialogflowV2Fulfillment', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2Version: A GoogleCloudDialogflowV2Version resource
      to be passed as the request body.
    parent: Required. The agent to create a version for. Supported formats: -
      `projects//agent` - `projects//locations//agent`
  """

  googleCloudDialogflowV2Version = _messages.MessageField('GoogleCloudDialogflowV2Version', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the version to delete. Supported formats: -
      `projects//agent/versions/` - `projects//locations//agent/versions/`
  """

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


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

  Fields:
    name: Required. The name of the version. Supported formats: -
      `projects//agent/versions/` - `projects//locations//agent/versions/`
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all versions from. Supported formats:
      - `projects//agent` - `projects//locations//agent`
  """

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


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

  Fields:
    googleCloudDialogflowV2Version: A GoogleCloudDialogflowV2Version resource
      to be passed as the request body.
    name: Output only. The unique identifier of this agent version. Supported
      formats: - `projects//agent/versions/` -
      `projects//locations//agent/versions/`
    updateMask: Required. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Version = _messages.MessageField('GoogleCloudDialogflowV2Version', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    filter: Optional. Filters to restrict results to specific answer records.
      The expression has the following syntax: [AND ] ... The following fields
      and operators are supported: * conversation_id with equals(=) operator
      Examples: * `conversation_id=bar` matches answer records in the
      `projects/foo/locations/global/conversations/bar` conversation (assuming
      the parent is `projects/foo/locations/global`). For more information
      about filtering, see [API Filtering](https://aip.dev/160).
    pageSize: Optional. The maximum number of records to return in a single
      page. The server may return fewer records than this. If unspecified, we
      use 10. The maximum is 100.
    pageToken: Optional. The ListAnswerRecordsResponse.next_page_token value
      returned from a previous list request used to continue listing on the
      next page.
    parent: Required. The project to list all answer records for in reverse
      chronological order. Format: `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2AnswerRecord: A GoogleCloudDialogflowV2AnswerRecord
      resource to be passed as the request body.
    name: The unique identifier of this answer record. Format:
      `projects//locations//answerRecords/`.
    updateMask: Required. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2AnswerRecord = _messages.MessageField('GoogleCloudDialogflowV2AnswerRecord', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    name: Required. The conversation dataset to retrieve. Format:
      `projects//locations//conversationDatasets/`
  """

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


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

  Fields:
    googleCloudDialogflowV2ImportConversationDataRequest: A
      GoogleCloudDialogflowV2ImportConversationDataRequest resource to be
      passed as the request body.
    name: Required. Dataset resource name. Format:
      `projects//locations//conversationDatasets/`
  """

  googleCloudDialogflowV2ImportConversationDataRequest = _messages.MessageField('GoogleCloudDialogflowV2ImportConversationDataRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    pageSize: Optional. Maximum number of conversation datasets to return in a
      single page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project and location name to list all conversation
      datasets for. Format: `projects//locations/`
  """

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


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

  Fields:
    googleCloudDialogflowV2ConversationModel: A
      GoogleCloudDialogflowV2ConversationModel resource to be passed as the
      request body.
    parent: The project to create conversation model for. Format: `projects/`
  """

  googleCloudDialogflowV2ConversationModel = _messages.MessageField('GoogleCloudDialogflowV2ConversationModel', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The conversation model to delete. Format:
      `projects//conversationModels/`
  """

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


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

  Fields:
    googleCloudDialogflowV2DeployConversationModelRequest: A
      GoogleCloudDialogflowV2DeployConversationModelRequest resource to be
      passed as the request body.
    name: Required. The conversation model to deploy. Format:
      `projects//conversationModels/`
  """

  googleCloudDialogflowV2DeployConversationModelRequest = _messages.MessageField('GoogleCloudDialogflowV2DeployConversationModelRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The conversation model evaluation resource name. Format:
      `projects//conversationModels//evaluations/`
  """

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


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

  Fields:
    pageSize: Optional. Maximum number of evaluations to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The conversation model resource name. Format:
      `projects//conversationModels/`
  """

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


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

  Fields:
    name: Required. The conversation model to retrieve. Format:
      `projects//conversationModels/`
  """

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


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

  Fields:
    pageSize: Optional. Maximum number of conversation models to return in a
      single page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project to list all conversation models for. Format:
      `projects/`
  """

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


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

  Fields:
    googleCloudDialogflowV2UndeployConversationModelRequest: A
      GoogleCloudDialogflowV2UndeployConversationModelRequest resource to be
      passed as the request body.
    name: Required. The conversation model to undeploy. Format:
      `projects//conversationModels/`
  """

  googleCloudDialogflowV2UndeployConversationModelRequest = _messages.MessageField('GoogleCloudDialogflowV2UndeployConversationModelRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    conversationProfile: Required. The Conversation Profile to add or update
      the suggestion feature config. Format:
      `projects//locations//conversationProfiles/`.
    googleCloudDialogflowV2ClearSuggestionFeatureConfigRequest: A
      GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest resource to
      be passed as the request body.
  """

  conversationProfile = _messages.StringField(1, required=True)
  googleCloudDialogflowV2ClearSuggestionFeatureConfigRequest = _messages.MessageField('GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest', 2)


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

  Fields:
    googleCloudDialogflowV2ConversationProfile: A
      GoogleCloudDialogflowV2ConversationProfile resource to be passed as the
      request body.
    parent: Required. The project to create a conversation profile for.
      Format: `projects//locations/`.
  """

  googleCloudDialogflowV2ConversationProfile = _messages.MessageField('GoogleCloudDialogflowV2ConversationProfile', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the conversation profile to delete. Format:
      `projects//locations//conversationProfiles/`.
  """

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


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

  Fields:
    name: Required. The resource name of the conversation profile. Format:
      `projects//locations//conversationProfiles/`.
  """

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


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

  Fields:
    pageSize: The maximum number of items to return in a single page. By
      default 100 and at most 1000.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The project to list all conversation profiles from.
      Format: `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2ConversationProfile: A
      GoogleCloudDialogflowV2ConversationProfile resource to be passed as the
      request body.
    name: The unique identifier of this conversation profile. Format:
      `projects//locations//conversationProfiles/`.
    updateMask: Required. The mask to control which fields to update.
  """

  googleCloudDialogflowV2ConversationProfile = _messages.MessageField('GoogleCloudDialogflowV2ConversationProfile', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    conversationProfile: Required. The Conversation Profile to add or update
      the suggestion feature config. Format:
      `projects//locations//conversationProfiles/`.
    googleCloudDialogflowV2SetSuggestionFeatureConfigRequest: A
      GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest resource to be
      passed as the request body.
  """

  conversationProfile = _messages.StringField(1, required=True)
  googleCloudDialogflowV2SetSuggestionFeatureConfigRequest = _messages.MessageField('GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest', 2)


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

  Fields:
    googleCloudDialogflowV2CompleteConversationRequest: A
      GoogleCloudDialogflowV2CompleteConversationRequest resource to be passed
      as the request body.
    name: Required. Resource identifier of the conversation to close. Format:
      `projects//locations//conversations/`.
  """

  googleCloudDialogflowV2CompleteConversationRequest = _messages.MessageField('GoogleCloudDialogflowV2CompleteConversationRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    conversationId: Optional. Identifier of the conversation. Generally it's
      auto generated by Google. Only set it if you cannot wait for the
      response to return a auto-generated one to you. The conversation ID must
      be compliant with the regression formula `a-zA-Z*` with the characters
      length in range of [3,64]. If the field is provided, the caller is
      responsible for 1. the uniqueness of the ID, otherwise the request will
      be rejected. 2. the consistency for whether to use custom ID or not
      under a project to better ensure uniqueness.
    googleCloudDialogflowV2Conversation: A GoogleCloudDialogflowV2Conversation
      resource to be passed as the request body.
    parent: Required. Resource identifier of the project creating the
      conversation. Format: `projects//locations/`.
  """

  conversationId = _messages.StringField(1)
  googleCloudDialogflowV2Conversation = _messages.MessageField('GoogleCloudDialogflowV2Conversation', 2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. The name of the conversation. Format:
      `projects//locations//conversations/`.
  """

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


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

  Fields:
    filter: Optional. A filter expression that filters conversations listed in
      the response. Only `lifecycle_state` can be filtered on in this way. For
      example, the following expression only returns `COMPLETED`
      conversations: `lifecycle_state = "COMPLETED"` For more information
      about filtering, see [API Filtering](https://aip.dev/160).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project from which to list all conversation. Format:
      `projects//locations/`.
  """

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


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

  Fields:
    filter: Optional. Filter on message fields. Currently predicates on
      `create_time` and `create_time_epoch_microseconds` are supported.
      `create_time` only support milliseconds accuracy. E.g.,
      `create_time_epoch_microseconds > 1551790877964485` or `create_time >
      2017-01-15T01:30:15.01Z`. For more information about filtering, see [API
      Filtering](https://aip.dev/160).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The name of the conversation to list messages for.
      Format: `projects//locations//conversations/`
  """

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


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

  Fields:
    googleCloudDialogflowV2AnalyzeContentRequest: A
      GoogleCloudDialogflowV2AnalyzeContentRequest resource to be passed as
      the request body.
    participant: Required. The name of the participant this text comes from.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2AnalyzeContentRequest = _messages.MessageField('GoogleCloudDialogflowV2AnalyzeContentRequest', 1)
  participant = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2Participant: A GoogleCloudDialogflowV2Participant
      resource to be passed as the request body.
    parent: Required. Resource identifier of the conversation adding the
      participant. Format: `projects//locations//conversations/`.
  """

  googleCloudDialogflowV2Participant = _messages.MessageField('GoogleCloudDialogflowV2Participant', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the participant. Format:
      `projects//locations//conversations//participants/`.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The conversation to list all participants from. Format:
      `projects//locations//conversations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Participant: A GoogleCloudDialogflowV2Participant
      resource to be passed as the request body.
    name: Optional. The unique identifier of this participant. Format:
      `projects//locations//conversations//participants/`.
    updateMask: Required. The mask to specify which fields to update.
  """

  googleCloudDialogflowV2Participant = _messages.MessageField('GoogleCloudDialogflowV2Participant', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2SuggestArticlesRequest: A
      GoogleCloudDialogflowV2SuggestArticlesRequest resource to be passed as
      the request body.
    parent: Required. The name of the participant to fetch suggestion for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestArticlesRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestArticlesRequest', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsConversationsParticipantsSuggestionsSuggestFaqAnswersRequest(_messages.Message):
  r"""A DialogflowProjectsConversationsParticipantsSuggestionsSuggestFaqAnswer
  sRequest object.

  Fields:
    googleCloudDialogflowV2SuggestFaqAnswersRequest: A
      GoogleCloudDialogflowV2SuggestFaqAnswersRequest resource to be passed as
      the request body.
    parent: Required. The name of the participant to fetch suggestion for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestFaqAnswersRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestFaqAnswersRequest', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsConversationsParticipantsSuggestionsSuggestKnowledgeAssistRequest(_messages.Message):
  r"""A DialogflowProjectsConversationsParticipantsSuggestionsSuggestKnowledge
  AssistRequest object.

  Fields:
    googleCloudDialogflowV2SuggestKnowledgeAssistRequest: A
      GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest resource to be
      passed as the request body.
    parent: Required. The name of the participant to fetch suggestions for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestKnowledgeAssistRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsConversationsParticipantsSuggestionsSuggestSmartRepliesRequest(_messages.Message):
  r"""A DialogflowProjectsConversationsParticipantsSuggestionsSuggestSmartRepl
  iesRequest object.

  Fields:
    googleCloudDialogflowV2SuggestSmartRepliesRequest: A
      GoogleCloudDialogflowV2SuggestSmartRepliesRequest resource to be passed
      as the request body.
    parent: Required. The name of the participant to fetch suggestion for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestSmartRepliesRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestSmartRepliesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    conversation: Required. The conversation for which the suggestions are
      generated. Format: `projects//locations//conversations/`. The
      conversation must be created with a conversation profile which has
      generators configured in it to be able to get suggestions.
    googleCloudDialogflowV2GenerateSuggestionsRequest: A
      GoogleCloudDialogflowV2GenerateSuggestionsRequest resource to be passed
      as the request body.
  """

  conversation = _messages.StringField(1, required=True)
  googleCloudDialogflowV2GenerateSuggestionsRequest = _messages.MessageField('GoogleCloudDialogflowV2GenerateSuggestionsRequest', 2)


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

  Fields:
    conversation: Required. The conversation to fetch suggestion for. Format:
      `projects//locations//conversations/`.
    googleCloudDialogflowV2SuggestConversationSummaryRequest: A
      GoogleCloudDialogflowV2SuggestConversationSummaryRequest resource to be
      passed as the request body.
  """

  conversation = _messages.StringField(1, required=True)
  googleCloudDialogflowV2SuggestConversationSummaryRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestConversationSummaryRequest', 2)


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

  Fields:
    parent: Required. The project that the agent to delete is associated with.
      Format: `projects/`.
  """

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


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

  Fields:
    generatorId: Optional. The ID to use for the generator, which will become
      the final component of the generator's resource name. The generator ID
      must be compliant with the regression formula `a-zA-Z*` with the
      characters length in range of [3,64]. If the field is not provided, an
      Id will be auto-generated. If the field is provided, the caller is
      responsible for 1. the uniqueness of the ID, otherwise the request will
      be rejected. 2. the consistency for whether to use custom ID or not
      under a project to better ensure uniqueness.
    googleCloudDialogflowV2Generator: A GoogleCloudDialogflowV2Generator
      resource to be passed as the request body.
    parent: Required. The project/location to create generator for. Format:
      `projects//locations/`
  """

  generatorId = _messages.StringField(1)
  googleCloudDialogflowV2Generator = _messages.MessageField('GoogleCloudDialogflowV2Generator', 2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    pageSize: Optional. Maximum number of conversation models to return in a
      single page. Default to 10.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project/location to list generators for. Format:
      `projects//locations/`
  """

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


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

  Fields:
    parent: Required. The project that the agent to fetch is associated with.
      Format: `projects/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2KnowledgeBase: A
      GoogleCloudDialogflowV2KnowledgeBase resource to be passed as the
      request body.
    parent: Required. The project to create a knowledge base for. Format:
      `projects//locations/`.
  """

  googleCloudDialogflowV2KnowledgeBase = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeBase', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    force: Optional. Force deletes the knowledge base. When set to true, any
      documents in the knowledge base are also deleted.
    name: Required. The name of the knowledge base to delete. Format:
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Document: A GoogleCloudDialogflowV2Document
      resource to be passed as the request body.
    parent: Required. The knowledge base to create a document for. Format:
      `projects//locations//knowledgeBases/`.
  """

  googleCloudDialogflowV2Document = _messages.MessageField('GoogleCloudDialogflowV2Document', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the document to delete. Format:
      `projects//locations//knowledgeBases//documents/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2ExportDocumentRequest: A
      GoogleCloudDialogflowV2ExportDocumentRequest resource to be passed as
      the request body.
    name: Required. The name of the document to export. Format:
      `projects//locations//knowledgeBases//documents/`.
  """

  googleCloudDialogflowV2ExportDocumentRequest = _messages.MessageField('GoogleCloudDialogflowV2ExportDocumentRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the document to retrieve. Format
      `projects//locations//knowledgeBases//documents/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2ImportDocumentsRequest: A
      GoogleCloudDialogflowV2ImportDocumentsRequest resource to be passed as
      the request body.
    parent: Required. The knowledge base to import documents into. Format:
      `projects//locations//knowledgeBases/`.
  """

  googleCloudDialogflowV2ImportDocumentsRequest = _messages.MessageField('GoogleCloudDialogflowV2ImportDocumentsRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    filter: The filter expression used to filter documents returned by the
      list method. The expression has the following syntax: [AND ] ... The
      following fields and operators are supported: * knowledge_types with
      has(:) operator * display_name with has(:) operator * state with
      equals(=) operator Examples: * "knowledge_types:FAQ" matches documents
      with FAQ knowledge type. * "display_name:customer" matches documents
      whose display name contains "customer". * "state=ACTIVE" matches
      documents with ACTIVE state. * "knowledge_types:FAQ AND state=ACTIVE"
      matches all active FAQ documents. For more information about filtering,
      see [API Filtering](https://aip.dev/160).
    pageSize: The maximum number of items to return in a single page. By
      default 10 and at most 100.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The knowledge base to list all documents for. Format:
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Document: A GoogleCloudDialogflowV2Document
      resource to be passed as the request body.
    name: Optional. The document resource name. The name must be empty when
      creating a document. Format:
      `projects//locations//knowledgeBases//documents/`.
    updateMask: Optional. Not specified means `update all`. Currently, only
      `display_name` can be updated, an InvalidArgument will be returned for
      attempting to update other fields.
  """

  googleCloudDialogflowV2Document = _messages.MessageField('GoogleCloudDialogflowV2Document', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2ReloadDocumentRequest: A
      GoogleCloudDialogflowV2ReloadDocumentRequest resource to be passed as
      the request body.
    name: Required. The name of the document to reload. Format:
      `projects//locations//knowledgeBases//documents/`
  """

  googleCloudDialogflowV2ReloadDocumentRequest = _messages.MessageField('GoogleCloudDialogflowV2ReloadDocumentRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the knowledge base to retrieve. Format
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    filter: The filter expression used to filter knowledge bases returned by
      the list method. The expression has the following syntax: [AND ] ... The
      following fields and operators are supported: * display_name with has(:)
      operator * language_code with equals(=) operator Examples: *
      'language_code=en-us' matches knowledge bases with en-us language code.
      * 'display_name:articles' matches knowledge bases whose display name
      contains "articles". * 'display_name:"Best Articles"' matches knowledge
      bases whose display name contains "Best Articles". * 'language_code=en-
      gb AND display_name=articles' matches all knowledge bases whose display
      name contains "articles" and whose language code is "en-gb". Note: An
      empty filter string (i.e. "") is a no-op and will result in no
      filtering. For more information about filtering, see [API
      Filtering](https://aip.dev/160).
    pageSize: The maximum number of items to return in a single page. By
      default 10 and at most 100.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The project to list of knowledge bases for. Format:
      `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2KnowledgeBase: A
      GoogleCloudDialogflowV2KnowledgeBase resource to be passed as the
      request body.
    name: The knowledge base resource name. The name must be empty when
      creating a knowledge base. Format:
      `projects//locations//knowledgeBases/`.
    updateMask: Optional. Not specified means `update all`. Currently, only
      `display_name` can be updated, an InvalidArgument will be returned for
      attempting to update other fields.
  """

  googleCloudDialogflowV2KnowledgeBase = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeBase', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2BatchDeleteEntityTypesRequest: A
      GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest resource to be
      passed as the request body.
    parent: Required. The name of the agent to delete all entities types for.
      Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchDeleteEntityTypesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchUpdateEntityTypesRequest: A
      GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest resource to be
      passed as the request body.
    parent: Required. The name of the agent to update or create entity types
      in. Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchUpdateEntityTypesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2EntityType: A GoogleCloudDialogflowV2EntityType
      resource to be passed as the request body.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    parent: Required. The agent to create a entity type for. Format:
      `projects//agent`.
  """

  googleCloudDialogflowV2EntityType = _messages.MessageField('GoogleCloudDialogflowV2EntityType', 1)
  languageCode = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. The name of the entity type to delete. Format:
      `projects//agent/entityTypes/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2BatchCreateEntitiesRequest: A
      GoogleCloudDialogflowV2BatchCreateEntitiesRequest resource to be passed
      as the request body.
    parent: Required. The name of the entity type to create entities in.
      Format: `projects//agent/entityTypes/`.
  """

  googleCloudDialogflowV2BatchCreateEntitiesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchCreateEntitiesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchDeleteEntitiesRequest: A
      GoogleCloudDialogflowV2BatchDeleteEntitiesRequest resource to be passed
      as the request body.
    parent: Required. The name of the entity type to delete entries for.
      Format: `projects//agent/entityTypes/`.
  """

  googleCloudDialogflowV2BatchDeleteEntitiesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchDeleteEntitiesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchUpdateEntitiesRequest: A
      GoogleCloudDialogflowV2BatchUpdateEntitiesRequest resource to be passed
      as the request body.
    parent: Required. The name of the entity type to update or create entities
      in. Format: `projects//agent/entityTypes/`.
  """

  googleCloudDialogflowV2BatchUpdateEntitiesRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchUpdateEntitiesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: Required. The name of the entity type. Format:
      `projects//agent/entityTypes/`.
  """

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


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

  Fields:
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all entity types from. Format:
      `projects//agent`.
  """

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


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

  Fields:
    googleCloudDialogflowV2EntityType: A GoogleCloudDialogflowV2EntityType
      resource to be passed as the request body.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: The unique identifier of the entity type. Required for
      EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes
      methods. Format: `projects//agent/entityTypes/`.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2EntityType = _messages.MessageField('GoogleCloudDialogflowV2EntityType', 1)
  languageCode = _messages.StringField(2)
  name = _messages.StringField(3, required=True)
  updateMask = _messages.StringField(4)


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

  Fields:
    environmentId: Required. The unique id of the new environment.
    googleCloudDialogflowV2Environment: A GoogleCloudDialogflowV2Environment
      resource to be passed as the request body.
    parent: Required. The agent to create an environment for. Supported
      formats: - `projects//agent` - `projects//locations//agent`
  """

  environmentId = _messages.StringField(1)
  googleCloudDialogflowV2Environment = _messages.MessageField('GoogleCloudDialogflowV2Environment', 2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. The name of the environment to delete. / Format: -
      `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The name of the environment to retrieve history for.
      Supported formats: - `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
  """

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


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

  Fields:
    name: Required. The name of the environment. Supported formats: -
      `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
  """

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


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all intents from. Format:
      `projects//agent` or `projects//locations//agent`. Alternatively, you
      can specify the environment to list intents for. Format:
      `projects//agent/environments/` or
      `projects//locations//agent/environments/`. Note: training phrases of
      the intents will not be returned for non-draft environment.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  intentView = _messages.EnumField('IntentViewValueValuesEnum', 1)
  languageCode = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all environments from. Format: -
      `projects//agent` - `projects//locations//agent`
  """

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


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

  Fields:
    allowLoadToDraftAndDiscardChanges: Optional. This field is used to prevent
      accidental overwrite of the default environment, which is an operation
      that cannot be undone. To confirm that the caller desires this
      overwrite, this field must be explicitly set to true when updating the
      default environment (environment ID = `-`).
    googleCloudDialogflowV2Environment: A GoogleCloudDialogflowV2Environment
      resource to be passed as the request body.
    name: Output only. The unique identifier of this agent environment.
      Supported formats: - `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
    updateMask: Required. The mask to control which fields get updated.
  """

  allowLoadToDraftAndDiscardChanges = _messages.BooleanField(1)
  googleCloudDialogflowV2Environment = _messages.MessageField('GoogleCloudDialogflowV2Environment', 2)
  name = _messages.StringField(3, required=True)
  updateMask = _messages.StringField(4)


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsContextsCreateRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsContextsCreat
  eRequest object.

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    parent: Required. The session to create a context for. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsContextsDeleteRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsContextsDelet
  eRequest object.

  Fields:
    name: Required. The name of the context to delete. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    name: Required. The name of the context. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all contexts from. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsContextsPatchRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsContextsPatch
  Request object.

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    name: Required. The unique identifier of the context. Format:
      `projects//agent/sessions//contexts/`, or
      `projects//agent/environments//users//sessions//contexts/`. The `Context
      ID` is always converted to lowercase, may only contain characters in
      `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user. The following context names
      are reserved for internal use by Dialogflow. You should not use these
      contexts or create contexts with these names: * `__system_counters__` *
      `*_id_dialog_context` * `*_dialog_params_size`
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsDeleteContextsRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsDeleteContext
  sRequest object.

  Fields:
    parent: Required. The name of the session to delete all contexts from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified we assume default 'draft' environment. If `User ID` is not
      specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2DetectIntentRequest: A
      GoogleCloudDialogflowV2DetectIntentRequest resource to be passed as the
      request body.
    session: Required. The name of the session this query is sent to. Format:
      `projects//agent/sessions/`, or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment (`Environment ID`
      might be referred to as environment name at some places). If `User ID`
      is not specified, we are using "-". It's up to the API caller to choose
      an appropriate `Session ID` and `User Id`. They can be a random number
      or some type of user and session identifiers (preferably hashed). The
      length of the `Session ID` and `User ID` must not exceed 36 characters.
      For more information, see the [API interactions
      guide](https://cloud.google.com/dialogflow/docs/api-overview). Note:
      Always use agent versions for production traffic. See [Versions and
      environments](https://cloud.google.com/dialogflow/es/docs/agents-
      versions).
  """

  googleCloudDialogflowV2DetectIntentRequest = _messages.MessageField('GoogleCloudDialogflowV2DetectIntentRequest', 1)
  session = _messages.StringField(2, required=True)


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesCreateRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesCr
  eateRequest object.

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    parent: Required. The session to create a session entity type for. Format:
      `projects//agent/sessions/` or `projects//agent/environments//users//
      sessions/`. If `Environment ID` is not specified, we assume default
      'draft' environment. If `User ID` is not specified, we assume default
      '-' user.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesDeleteRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesDe
  leteRequest object.

  Fields:
    name: Required. The name of the entity type to delete. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesGetRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesGe
  tRequest object.

  Fields:
    name: Required. The name of the session entity type. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesListRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesLi
  stRequest object.

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all session entity types from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users// sessions/`. If `Environment ID`
      is not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


class DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesPatchRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsAgentEnvironmentsUsersSessionsEntityTypesPa
  tchRequest object.

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    name: Required. The unique identifier of this session entity type. Format:
      `projects//agent/sessions//entityTypes/`, or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
      `` must be the display name of an existing entity type in the same agent
      that will be overridden or supplemented.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2ExportAgentRequest: A
      GoogleCloudDialogflowV2ExportAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to export is associated with.
      Format: `projects/`.
  """

  googleCloudDialogflowV2ExportAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2ExportAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the fulfillment. Format:
      `projects//agent/fulfillment`.
  """

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


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

  Fields:
    languageCode: Optional. The language for which you want a validation
      result. If not specified, the agent's default language is used. [Many
      languages](https://cloud.google.com/dialogflow/docs/reference/language)
      are supported. Note: languages must be enabled in the agent before they
      can be used.
    parent: Required. The project that the agent is associated with. Format:
      `projects/`.
  """

  languageCode = _messages.StringField(1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2ImportAgentRequest: A
      GoogleCloudDialogflowV2ImportAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to import is associated with.
      Format: `projects/`.
  """

  googleCloudDialogflowV2ImportAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2ImportAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchDeleteIntentsRequest: A
      GoogleCloudDialogflowV2BatchDeleteIntentsRequest resource to be passed
      as the request body.
    parent: Required. The name of the agent to delete all entities types for.
      Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchDeleteIntentsRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchDeleteIntentsRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2BatchUpdateIntentsRequest: A
      GoogleCloudDialogflowV2BatchUpdateIntentsRequest resource to be passed
      as the request body.
    parent: Required. The name of the agent to update or create intents in.
      Format: `projects//agent`.
  """

  googleCloudDialogflowV2BatchUpdateIntentsRequest = _messages.MessageField('GoogleCloudDialogflowV2BatchUpdateIntentsRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    googleCloudDialogflowV2Intent: A GoogleCloudDialogflowV2Intent resource to
      be passed as the request body.
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    parent: Required. The agent to create a intent for. Format:
      `projects//agent`.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  googleCloudDialogflowV2Intent = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1)
  intentView = _messages.EnumField('IntentViewValueValuesEnum', 2)
  languageCode = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)


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

  Fields:
    name: Required. The name of the intent to delete. If this intent has
      direct or indirect followup intents, we also delete them. Format:
      `projects//agent/intents/`.
  """

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


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: Required. The name of the intent. Format:
      `projects//agent/intents/`.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  intentView = _messages.EnumField('IntentViewValueValuesEnum', 1)
  languageCode = _messages.StringField(2)
  name = _messages.StringField(3, required=True)


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all intents from. Format:
      `projects//agent` or `projects//locations//agent`. Alternatively, you
      can specify the environment to list intents for. Format:
      `projects//agent/environments/` or
      `projects//locations//agent/environments/`. Note: training phrases of
      the intents will not be returned for non-draft environment.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  intentView = _messages.EnumField('IntentViewValueValuesEnum', 1)
  languageCode = _messages.StringField(2)
  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(4)
  parent = _messages.StringField(5, required=True)


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    googleCloudDialogflowV2Intent: A GoogleCloudDialogflowV2Intent resource to
      be passed as the request body.
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    name: Optional. The unique identifier of this intent. Required for
      Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format:
      `projects//agent/intents/`.
    updateMask: Optional. The mask to control which fields get updated.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  googleCloudDialogflowV2Intent = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1)
  intentView = _messages.EnumField('IntentViewValueValuesEnum', 2)
  languageCode = _messages.StringField(3)
  name = _messages.StringField(4, required=True)
  updateMask = _messages.StringField(5)


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

  Fields:
    googleCloudDialogflowV2RestoreAgentRequest: A
      GoogleCloudDialogflowV2RestoreAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to restore is associated
      with. Format: `projects/`.
  """

  googleCloudDialogflowV2RestoreAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2RestoreAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The project to list agents from. Format: `projects/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    parent: Required. The session to create a context for. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the context to delete. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    name: Required. The name of the context. Format:
      `projects//agent/sessions//contexts/` or
      `projects//agent/environments//users//sessions//contexts/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all contexts from. Format:
      `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2Context: A GoogleCloudDialogflowV2Context resource
      to be passed as the request body.
    name: Required. The unique identifier of the context. Format:
      `projects//agent/sessions//contexts/`, or
      `projects//agent/environments//users//sessions//contexts/`. The `Context
      ID` is always converted to lowercase, may only contain characters in
      `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user. The following context names
      are reserved for internal use by Dialogflow. You should not use these
      contexts or create contexts with these names: * `__system_counters__` *
      `*_id_dialog_context` * `*_dialog_params_size`
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Context = _messages.MessageField('GoogleCloudDialogflowV2Context', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    parent: Required. The name of the session to delete all contexts from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified we assume default 'draft' environment. If `User ID` is not
      specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2DetectIntentRequest: A
      GoogleCloudDialogflowV2DetectIntentRequest resource to be passed as the
      request body.
    session: Required. The name of the session this query is sent to. Format:
      `projects//agent/sessions/`, or
      `projects//agent/environments//users//sessions/`. If `Environment ID` is
      not specified, we assume default 'draft' environment (`Environment ID`
      might be referred to as environment name at some places). If `User ID`
      is not specified, we are using "-". It's up to the API caller to choose
      an appropriate `Session ID` and `User Id`. They can be a random number
      or some type of user and session identifiers (preferably hashed). The
      length of the `Session ID` and `User ID` must not exceed 36 characters.
      For more information, see the [API interactions
      guide](https://cloud.google.com/dialogflow/docs/api-overview). Note:
      Always use agent versions for production traffic. See [Versions and
      environments](https://cloud.google.com/dialogflow/es/docs/agents-
      versions).
  """

  googleCloudDialogflowV2DetectIntentRequest = _messages.MessageField('GoogleCloudDialogflowV2DetectIntentRequest', 1)
  session = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    parent: Required. The session to create a session entity type for. Format:
      `projects//agent/sessions/` or `projects//agent/environments//users//
      sessions/`. If `Environment ID` is not specified, we assume default
      'draft' environment. If `User ID` is not specified, we assume default
      '-' user.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the entity type to delete. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    name: Required. The name of the session entity type. Format:
      `projects//agent/sessions//entityTypes/` or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The session to list all session entity types from.
      Format: `projects//agent/sessions/` or
      `projects//agent/environments//users// sessions/`. If `Environment ID`
      is not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user.
  """

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


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

  Fields:
    googleCloudDialogflowV2SessionEntityType: A
      GoogleCloudDialogflowV2SessionEntityType resource to be passed as the
      request body.
    name: Required. The unique identifier of this session entity type. Format:
      `projects//agent/sessions//entityTypes/`, or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
      `` must be the display name of an existing entity type in the same agent
      that will be overridden or supplemented.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2SessionEntityType = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2TrainAgentRequest: A
      GoogleCloudDialogflowV2TrainAgentRequest resource to be passed as the
      request body.
    parent: Required. The project that the agent to train is associated with.
      Format: `projects/`.
  """

  googleCloudDialogflowV2TrainAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2TrainAgentRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2Fulfillment: A GoogleCloudDialogflowV2Fulfillment
      resource to be passed as the request body.
    name: Required. The unique identifier of the fulfillment. Supported
      formats: - `projects//agent/fulfillment` -
      `projects//locations//agent/fulfillment` This field is not used for
      Fulfillment in an Environment.
    updateMask: Required. The mask to control which fields get updated. If the
      mask is not present, all fields will be updated.
  """

  googleCloudDialogflowV2Fulfillment = _messages.MessageField('GoogleCloudDialogflowV2Fulfillment', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2Version: A GoogleCloudDialogflowV2Version resource
      to be passed as the request body.
    parent: Required. The agent to create a version for. Supported formats: -
      `projects//agent` - `projects//locations//agent`
  """

  googleCloudDialogflowV2Version = _messages.MessageField('GoogleCloudDialogflowV2Version', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the version to delete. Supported formats: -
      `projects//agent/versions/` - `projects//locations//agent/versions/`
  """

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


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

  Fields:
    name: Required. The name of the version. Supported formats: -
      `projects//agent/versions/` - `projects//locations//agent/versions/`
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The agent to list all versions from. Supported formats:
      - `projects//agent` - `projects//locations//agent`
  """

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


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

  Fields:
    googleCloudDialogflowV2Version: A GoogleCloudDialogflowV2Version resource
      to be passed as the request body.
    name: Output only. The unique identifier of this agent version. Supported
      formats: - `projects//agent/versions/` -
      `projects//locations//agent/versions/`
    updateMask: Required. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Version = _messages.MessageField('GoogleCloudDialogflowV2Version', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    filter: Optional. Filters to restrict results to specific answer records.
      The expression has the following syntax: [AND ] ... The following fields
      and operators are supported: * conversation_id with equals(=) operator
      Examples: * `conversation_id=bar` matches answer records in the
      `projects/foo/locations/global/conversations/bar` conversation (assuming
      the parent is `projects/foo/locations/global`). For more information
      about filtering, see [API Filtering](https://aip.dev/160).
    pageSize: Optional. The maximum number of records to return in a single
      page. The server may return fewer records than this. If unspecified, we
      use 10. The maximum is 100.
    pageToken: Optional. The ListAnswerRecordsResponse.next_page_token value
      returned from a previous list request used to continue listing on the
      next page.
    parent: Required. The project to list all answer records for in reverse
      chronological order. Format: `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2AnswerRecord: A GoogleCloudDialogflowV2AnswerRecord
      resource to be passed as the request body.
    name: The unique identifier of this answer record. Format:
      `projects//locations//answerRecords/`.
    updateMask: Required. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2AnswerRecord = _messages.MessageField('GoogleCloudDialogflowV2AnswerRecord', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2ConversationDataset: A
      GoogleCloudDialogflowV2ConversationDataset resource to be passed as the
      request body.
    parent: Required. The project to create conversation dataset for. Format:
      `projects//locations/`
  """

  googleCloudDialogflowV2ConversationDataset = _messages.MessageField('GoogleCloudDialogflowV2ConversationDataset', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The conversation dataset to delete. Format:
      `projects//locations//conversationDatasets/`
  """

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


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

  Fields:
    name: Required. The conversation dataset to retrieve. Format:
      `projects//locations//conversationDatasets/`
  """

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


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

  Fields:
    googleCloudDialogflowV2ImportConversationDataRequest: A
      GoogleCloudDialogflowV2ImportConversationDataRequest resource to be
      passed as the request body.
    name: Required. Dataset resource name. Format:
      `projects//locations//conversationDatasets/`
  """

  googleCloudDialogflowV2ImportConversationDataRequest = _messages.MessageField('GoogleCloudDialogflowV2ImportConversationDataRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    pageSize: Optional. Maximum number of conversation datasets to return in a
      single page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project and location name to list all conversation
      datasets for. Format: `projects//locations/`
  """

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


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

  Fields:
    googleCloudDialogflowV2ConversationModel: A
      GoogleCloudDialogflowV2ConversationModel resource to be passed as the
      request body.
    parent: The project to create conversation model for. Format: `projects/`
  """

  googleCloudDialogflowV2ConversationModel = _messages.MessageField('GoogleCloudDialogflowV2ConversationModel', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The conversation model to delete. Format:
      `projects//conversationModels/`
  """

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


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

  Fields:
    googleCloudDialogflowV2DeployConversationModelRequest: A
      GoogleCloudDialogflowV2DeployConversationModelRequest resource to be
      passed as the request body.
    name: Required. The conversation model to deploy. Format:
      `projects//conversationModels/`
  """

  googleCloudDialogflowV2DeployConversationModelRequest = _messages.MessageField('GoogleCloudDialogflowV2DeployConversationModelRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2CreateConversationModelEvaluationRequest: A
      GoogleCloudDialogflowV2CreateConversationModelEvaluationRequest resource
      to be passed as the request body.
    parent: Required. The conversation model resource name. Format:
      `projects//locations//conversationModels/`
  """

  googleCloudDialogflowV2CreateConversationModelEvaluationRequest = _messages.MessageField('GoogleCloudDialogflowV2CreateConversationModelEvaluationRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The conversation model evaluation resource name. Format:
      `projects//conversationModels//evaluations/`
  """

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


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

  Fields:
    pageSize: Optional. Maximum number of evaluations to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The conversation model resource name. Format:
      `projects//conversationModels/`
  """

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


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

  Fields:
    name: Required. The conversation model to retrieve. Format:
      `projects//conversationModels/`
  """

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


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

  Fields:
    pageSize: Optional. Maximum number of conversation models to return in a
      single page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project to list all conversation models for. Format:
      `projects/`
  """

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


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

  Fields:
    googleCloudDialogflowV2UndeployConversationModelRequest: A
      GoogleCloudDialogflowV2UndeployConversationModelRequest resource to be
      passed as the request body.
    name: Required. The conversation model to undeploy. Format:
      `projects//conversationModels/`
  """

  googleCloudDialogflowV2UndeployConversationModelRequest = _messages.MessageField('GoogleCloudDialogflowV2UndeployConversationModelRequest', 1)
  name = _messages.StringField(2, required=True)


class DialogflowProjectsLocationsConversationProfilesClearSuggestionFeatureConfigRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsConversationProfilesClearSuggestionFeatureC
  onfigRequest object.

  Fields:
    conversationProfile: Required. The Conversation Profile to add or update
      the suggestion feature config. Format:
      `projects//locations//conversationProfiles/`.
    googleCloudDialogflowV2ClearSuggestionFeatureConfigRequest: A
      GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest resource to
      be passed as the request body.
  """

  conversationProfile = _messages.StringField(1, required=True)
  googleCloudDialogflowV2ClearSuggestionFeatureConfigRequest = _messages.MessageField('GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest', 2)


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

  Fields:
    googleCloudDialogflowV2ConversationProfile: A
      GoogleCloudDialogflowV2ConversationProfile resource to be passed as the
      request body.
    parent: Required. The project to create a conversation profile for.
      Format: `projects//locations/`.
  """

  googleCloudDialogflowV2ConversationProfile = _messages.MessageField('GoogleCloudDialogflowV2ConversationProfile', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the conversation profile to delete. Format:
      `projects//locations//conversationProfiles/`.
  """

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


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

  Fields:
    name: Required. The resource name of the conversation profile. Format:
      `projects//locations//conversationProfiles/`.
  """

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


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

  Fields:
    pageSize: The maximum number of items to return in a single page. By
      default 100 and at most 1000.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The project to list all conversation profiles from.
      Format: `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2ConversationProfile: A
      GoogleCloudDialogflowV2ConversationProfile resource to be passed as the
      request body.
    name: The unique identifier of this conversation profile. Format:
      `projects//locations//conversationProfiles/`.
    updateMask: Required. The mask to control which fields to update.
  """

  googleCloudDialogflowV2ConversationProfile = _messages.MessageField('GoogleCloudDialogflowV2ConversationProfile', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DialogflowProjectsLocationsConversationProfilesSetSuggestionFeatureConfigRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsConversationProfilesSetSuggestionFeatureCon
  figRequest object.

  Fields:
    conversationProfile: Required. The Conversation Profile to add or update
      the suggestion feature config. Format:
      `projects//locations//conversationProfiles/`.
    googleCloudDialogflowV2SetSuggestionFeatureConfigRequest: A
      GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest resource to be
      passed as the request body.
  """

  conversationProfile = _messages.StringField(1, required=True)
  googleCloudDialogflowV2SetSuggestionFeatureConfigRequest = _messages.MessageField('GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest', 2)


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

  Fields:
    googleCloudDialogflowV2CompleteConversationRequest: A
      GoogleCloudDialogflowV2CompleteConversationRequest resource to be passed
      as the request body.
    name: Required. Resource identifier of the conversation to close. Format:
      `projects//locations//conversations/`.
  """

  googleCloudDialogflowV2CompleteConversationRequest = _messages.MessageField('GoogleCloudDialogflowV2CompleteConversationRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    conversationId: Optional. Identifier of the conversation. Generally it's
      auto generated by Google. Only set it if you cannot wait for the
      response to return a auto-generated one to you. The conversation ID must
      be compliant with the regression formula `a-zA-Z*` with the characters
      length in range of [3,64]. If the field is provided, the caller is
      responsible for 1. the uniqueness of the ID, otherwise the request will
      be rejected. 2. the consistency for whether to use custom ID or not
      under a project to better ensure uniqueness.
    googleCloudDialogflowV2Conversation: A GoogleCloudDialogflowV2Conversation
      resource to be passed as the request body.
    parent: Required. Resource identifier of the project creating the
      conversation. Format: `projects//locations/`.
  """

  conversationId = _messages.StringField(1)
  googleCloudDialogflowV2Conversation = _messages.MessageField('GoogleCloudDialogflowV2Conversation', 2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. The name of the conversation. Format:
      `projects//locations//conversations/`.
  """

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


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

  Fields:
    conversation: Required. Resource identifier of the conversation to ingest
      context information for. Format: `projects//locations//conversations/`.
    googleCloudDialogflowV2IngestContextReferencesRequest: A
      GoogleCloudDialogflowV2IngestContextReferencesRequest resource to be
      passed as the request body.
  """

  conversation = _messages.StringField(1, required=True)
  googleCloudDialogflowV2IngestContextReferencesRequest = _messages.MessageField('GoogleCloudDialogflowV2IngestContextReferencesRequest', 2)


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

  Fields:
    filter: Optional. A filter expression that filters conversations listed in
      the response. Only `lifecycle_state` can be filtered on in this way. For
      example, the following expression only returns `COMPLETED`
      conversations: `lifecycle_state = "COMPLETED"` For more information
      about filtering, see [API Filtering](https://aip.dev/160).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project from which to list all conversation. Format:
      `projects//locations/`.
  """

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


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

  Fields:
    filter: Optional. Filter on message fields. Currently predicates on
      `create_time` and `create_time_epoch_microseconds` are supported.
      `create_time` only support milliseconds accuracy. E.g.,
      `create_time_epoch_microseconds > 1551790877964485` or `create_time >
      2017-01-15T01:30:15.01Z`. For more information about filtering, see [API
      Filtering](https://aip.dev/160).
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The name of the conversation to list messages for.
      Format: `projects//locations//conversations/`
  """

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


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

  Fields:
    googleCloudDialogflowV2AnalyzeContentRequest: A
      GoogleCloudDialogflowV2AnalyzeContentRequest resource to be passed as
      the request body.
    participant: Required. The name of the participant this text comes from.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2AnalyzeContentRequest = _messages.MessageField('GoogleCloudDialogflowV2AnalyzeContentRequest', 1)
  participant = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2Participant: A GoogleCloudDialogflowV2Participant
      resource to be passed as the request body.
    parent: Required. Resource identifier of the conversation adding the
      participant. Format: `projects//locations//conversations/`.
  """

  googleCloudDialogflowV2Participant = _messages.MessageField('GoogleCloudDialogflowV2Participant', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the participant. Format:
      `projects//locations//conversations//participants/`.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The conversation to list all participants from. Format:
      `projects//locations//conversations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Participant: A GoogleCloudDialogflowV2Participant
      resource to be passed as the request body.
    name: Optional. The unique identifier of this participant. Format:
      `projects//locations//conversations//participants/`.
    updateMask: Required. The mask to specify which fields to update.
  """

  googleCloudDialogflowV2Participant = _messages.MessageField('GoogleCloudDialogflowV2Participant', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggestArticlesRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggest
  ArticlesRequest object.

  Fields:
    googleCloudDialogflowV2SuggestArticlesRequest: A
      GoogleCloudDialogflowV2SuggestArticlesRequest resource to be passed as
      the request body.
    parent: Required. The name of the participant to fetch suggestion for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestArticlesRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestArticlesRequest', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggestFaqAnswersRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggest
  FaqAnswersRequest object.

  Fields:
    googleCloudDialogflowV2SuggestFaqAnswersRequest: A
      GoogleCloudDialogflowV2SuggestFaqAnswersRequest resource to be passed as
      the request body.
    parent: Required. The name of the participant to fetch suggestion for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestFaqAnswersRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestFaqAnswersRequest', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggestKnowledgeAssistRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggest
  KnowledgeAssistRequest object.

  Fields:
    googleCloudDialogflowV2SuggestKnowledgeAssistRequest: A
      GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest resource to be
      passed as the request body.
    parent: Required. The name of the participant to fetch suggestions for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestKnowledgeAssistRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest', 1)
  parent = _messages.StringField(2, required=True)


class DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggestSmartRepliesRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsConversationsParticipantsSuggestionsSuggest
  SmartRepliesRequest object.

  Fields:
    googleCloudDialogflowV2SuggestSmartRepliesRequest: A
      GoogleCloudDialogflowV2SuggestSmartRepliesRequest resource to be passed
      as the request body.
    parent: Required. The name of the participant to fetch suggestion for.
      Format: `projects//locations//conversations//participants/`.
  """

  googleCloudDialogflowV2SuggestSmartRepliesRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestSmartRepliesRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    conversation: Required. The conversation for which the suggestions are
      generated. Format: `projects//locations//conversations/`. The
      conversation must be created with a conversation profile which has
      generators configured in it to be able to get suggestions.
    googleCloudDialogflowV2GenerateSuggestionsRequest: A
      GoogleCloudDialogflowV2GenerateSuggestionsRequest resource to be passed
      as the request body.
  """

  conversation = _messages.StringField(1, required=True)
  googleCloudDialogflowV2GenerateSuggestionsRequest = _messages.MessageField('GoogleCloudDialogflowV2GenerateSuggestionsRequest', 2)


class DialogflowProjectsLocationsConversationsSuggestionsSuggestConversationSummaryRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsConversationsSuggestionsSuggestConversation
  SummaryRequest object.

  Fields:
    conversation: Required. The conversation to fetch suggestion for. Format:
      `projects//locations//conversations/`.
    googleCloudDialogflowV2SuggestConversationSummaryRequest: A
      GoogleCloudDialogflowV2SuggestConversationSummaryRequest resource to be
      passed as the request body.
  """

  conversation = _messages.StringField(1, required=True)
  googleCloudDialogflowV2SuggestConversationSummaryRequest = _messages.MessageField('GoogleCloudDialogflowV2SuggestConversationSummaryRequest', 2)


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

  Fields:
    parent: Required. The project that the agent to delete is associated with.
      Format: `projects/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2InitializeEncryptionSpecRequest: A
      GoogleCloudDialogflowV2InitializeEncryptionSpecRequest resource to be
      passed as the request body.
    name: Immutable. The resource name of the encryption key specification
      resource. Format: projects/{project}/locations/{location}/encryptionSpec
  """

  googleCloudDialogflowV2InitializeEncryptionSpecRequest = _messages.MessageField('GoogleCloudDialogflowV2InitializeEncryptionSpecRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    generatorId: Optional. The ID to use for the generator, which will become
      the final component of the generator's resource name. The generator ID
      must be compliant with the regression formula `a-zA-Z*` with the
      characters length in range of [3,64]. If the field is not provided, an
      Id will be auto-generated. If the field is provided, the caller is
      responsible for 1. the uniqueness of the ID, otherwise the request will
      be rejected. 2. the consistency for whether to use custom ID or not
      under a project to better ensure uniqueness.
    googleCloudDialogflowV2Generator: A GoogleCloudDialogflowV2Generator
      resource to be passed as the request body.
    parent: Required. The project/location to create generator for. Format:
      `projects//locations/`
  """

  generatorId = _messages.StringField(1)
  googleCloudDialogflowV2Generator = _messages.MessageField('GoogleCloudDialogflowV2Generator', 2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. The generator resource name to delete. Format:
      `projects//locations//generators/`
  """

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


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

  Fields:
    googleCloudDialogflowV2GeneratorEvaluation: A
      GoogleCloudDialogflowV2GeneratorEvaluation resource to be passed as the
      request body.
    parent: Required. The generator resource name. Format:
      `projects//locations//generators/`
  """

  googleCloudDialogflowV2GeneratorEvaluation = _messages.MessageField('GoogleCloudDialogflowV2GeneratorEvaluation', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The generator evaluation resource name. Format:
      `projects//locations//generators// evaluations/`
  """

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


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

  Fields:
    name: Required. The generator evaluation resource name. Format:
      `projects//locations//generators//evaluations/`
  """

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


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

  Fields:
    pageSize: Optional. Maximum number of evaluations to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The generator resource name. Format:
      `projects//locations//generators/` Wildcard value `-` is supported on
      generator_id to list evaluations across all generators under same
      project.
  """

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


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

  Fields:
    name: Required. The generator resource name to retrieve. Format:
      `projects//locations//generators/`
  """

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


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

  Fields:
    pageSize: Optional. Maximum number of conversation models to return in a
      single page. Default to 10.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project/location to list generators for. Format:
      `projects//locations/`
  """

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


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

  Fields:
    googleCloudDialogflowV2Generator: A GoogleCloudDialogflowV2Generator
      resource to be passed as the request body.
    name: Output only. Identifier. The resource name of the generator. Format:
      `projects//locations//generators/`
    updateMask: Optional. The list of fields to update.
  """

  googleCloudDialogflowV2Generator = _messages.MessageField('GoogleCloudDialogflowV2Generator', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    parent: Required. The project that the agent to fetch is associated with.
      Format: `projects/`.
  """

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


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

  Fields:
    name: Required. The name of the encryption spec resource to get.
  """

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


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

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

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


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

  Fields:
    googleCloudDialogflowV2KnowledgeBase: A
      GoogleCloudDialogflowV2KnowledgeBase resource to be passed as the
      request body.
    parent: Required. The project to create a knowledge base for. Format:
      `projects//locations/`.
  """

  googleCloudDialogflowV2KnowledgeBase = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeBase', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    force: Optional. Force deletes the knowledge base. When set to true, any
      documents in the knowledge base are also deleted.
    name: Required. The name of the knowledge base to delete. Format:
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Document: A GoogleCloudDialogflowV2Document
      resource to be passed as the request body.
    parent: Required. The knowledge base to create a document for. Format:
      `projects//locations//knowledgeBases/`.
  """

  googleCloudDialogflowV2Document = _messages.MessageField('GoogleCloudDialogflowV2Document', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the document to delete. Format:
      `projects//locations//knowledgeBases//documents/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2ExportDocumentRequest: A
      GoogleCloudDialogflowV2ExportDocumentRequest resource to be passed as
      the request body.
    name: Required. The name of the document to export. Format:
      `projects//locations//knowledgeBases//documents/`.
  """

  googleCloudDialogflowV2ExportDocumentRequest = _messages.MessageField('GoogleCloudDialogflowV2ExportDocumentRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the document to retrieve. Format
      `projects//locations//knowledgeBases//documents/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2ImportDocumentsRequest: A
      GoogleCloudDialogflowV2ImportDocumentsRequest resource to be passed as
      the request body.
    parent: Required. The knowledge base to import documents into. Format:
      `projects//locations//knowledgeBases/`.
  """

  googleCloudDialogflowV2ImportDocumentsRequest = _messages.MessageField('GoogleCloudDialogflowV2ImportDocumentsRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    filter: The filter expression used to filter documents returned by the
      list method. The expression has the following syntax: [AND ] ... The
      following fields and operators are supported: * knowledge_types with
      has(:) operator * display_name with has(:) operator * state with
      equals(=) operator Examples: * "knowledge_types:FAQ" matches documents
      with FAQ knowledge type. * "display_name:customer" matches documents
      whose display name contains "customer". * "state=ACTIVE" matches
      documents with ACTIVE state. * "knowledge_types:FAQ AND state=ACTIVE"
      matches all active FAQ documents. For more information about filtering,
      see [API Filtering](https://aip.dev/160).
    pageSize: The maximum number of items to return in a single page. By
      default 10 and at most 100.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The knowledge base to list all documents for. Format:
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2Document: A GoogleCloudDialogflowV2Document
      resource to be passed as the request body.
    name: Optional. The document resource name. The name must be empty when
      creating a document. Format:
      `projects//locations//knowledgeBases//documents/`.
    updateMask: Optional. Not specified means `update all`. Currently, only
      `display_name` can be updated, an InvalidArgument will be returned for
      attempting to update other fields.
  """

  googleCloudDialogflowV2Document = _messages.MessageField('GoogleCloudDialogflowV2Document', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2ReloadDocumentRequest: A
      GoogleCloudDialogflowV2ReloadDocumentRequest resource to be passed as
      the request body.
    name: Required. The name of the document to reload. Format:
      `projects//locations//knowledgeBases//documents/`
  """

  googleCloudDialogflowV2ReloadDocumentRequest = _messages.MessageField('GoogleCloudDialogflowV2ReloadDocumentRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the knowledge base to retrieve. Format
      `projects//locations//knowledgeBases/`.
  """

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


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

  Fields:
    filter: The filter expression used to filter knowledge bases returned by
      the list method. The expression has the following syntax: [AND ] ... The
      following fields and operators are supported: * display_name with has(:)
      operator * language_code with equals(=) operator Examples: *
      'language_code=en-us' matches knowledge bases with en-us language code.
      * 'display_name:articles' matches knowledge bases whose display name
      contains "articles". * 'display_name:"Best Articles"' matches knowledge
      bases whose display name contains "Best Articles". * 'language_code=en-
      gb AND display_name=articles' matches all knowledge bases whose display
      name contains "articles" and whose language code is "en-gb". Note: An
      empty filter string (i.e. "") is a no-op and will result in no
      filtering. For more information about filtering, see [API
      Filtering](https://aip.dev/160).
    pageSize: The maximum number of items to return in a single page. By
      default 10 and at most 100.
    pageToken: The next_page_token value returned from a previous list
      request.
    parent: Required. The project to list of knowledge bases for. Format:
      `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2KnowledgeBase: A
      GoogleCloudDialogflowV2KnowledgeBase resource to be passed as the
      request body.
    name: The knowledge base resource name. The name must be empty when
      creating a knowledge base. Format:
      `projects//locations//knowledgeBases/`.
    updateMask: Optional. Not specified means `update all`. Currently, only
      `display_name` can be updated, an InvalidArgument will be returned for
      attempting to update other fields.
  """

  googleCloudDialogflowV2KnowledgeBase = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeBase', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    extraLocationTypes: Optional. Do not use this field. It is unsupported and
      is ignored 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 DialogflowProjectsLocationsOperationsCancelRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsOperationsCancelRequest object.

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

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


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

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

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


class DialogflowProjectsLocationsOperationsListRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsOperationsListRequest 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 e.g. when `parent` is set to
      `"projects/example/locations/-"`. This field is not by default supported
      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 DialogflowProjectsLocationsSetAgentRequest(_messages.Message):
  r"""A DialogflowProjectsLocationsSetAgentRequest object.

  Fields:
    googleCloudDialogflowV2Agent: A GoogleCloudDialogflowV2Agent resource to
      be passed as the request body.
    parent: Required. The project of this agent. Format: `projects/`.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Agent = _messages.MessageField('GoogleCloudDialogflowV2Agent', 1)
  parent = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2SipTrunk: A GoogleCloudDialogflowV2SipTrunk
      resource to be passed as the request body.
    parent: Required. The location to create a SIP trunk for. Format:
      `projects//locations/`.
  """

  googleCloudDialogflowV2SipTrunk = _messages.MessageField('GoogleCloudDialogflowV2SipTrunk', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    name: Required. The name of the SIP trunk to delete. Format:
      `projects//locations//sipTrunks/`.
  """

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


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

  Fields:
    name: Required. The name of the SIP trunk to delete. Format:
      `projects//locations//sipTrunks/`.
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of items to return in a single
      page. By default 100 and at most 1000.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The location to list SIP trunks from. Format:
      `projects//locations/`.
  """

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


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

  Fields:
    googleCloudDialogflowV2SipTrunk: A GoogleCloudDialogflowV2SipTrunk
      resource to be passed as the request body.
    name: Identifier. The unique identifier of the SIP trunk. Format:
      `projects//locations//sipTrunks/`.
    updateMask: Optional. The mask to control which fields get updated. If the
      mask is not present, all fields will be updated.
  """

  googleCloudDialogflowV2SipTrunk = _messages.MessageField('GoogleCloudDialogflowV2SipTrunk', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2GenerateStatelessSuggestionRequest: A
      GoogleCloudDialogflowV2GenerateStatelessSuggestionRequest resource to be
      passed as the request body.
    parent: Required. The parent resource to charge for the Suggestion's
      generation. Format: `projects//locations/`.
  """

  googleCloudDialogflowV2GenerateStatelessSuggestionRequest = _messages.MessageField('GoogleCloudDialogflowV2GenerateStatelessSuggestionRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2GenerateStatelessSummaryRequest: A
      GoogleCloudDialogflowV2GenerateStatelessSummaryRequest resource to be
      passed as the request body.
    parent: Required. The parent resource to charge for the Summary's
      generation. Format: `projects//locations/`.
  """

  googleCloudDialogflowV2GenerateStatelessSummaryRequest = _messages.MessageField('GoogleCloudDialogflowV2GenerateStatelessSummaryRequest', 1)
  parent = _messages.StringField(2, required=True)


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

  Fields:
    googleCloudDialogflowV2Tool: A GoogleCloudDialogflowV2Tool resource to be
      passed as the request body.
    parent: Required. The project/location to create tool for. Format:
      `projects//locations/`
    toolId: Optional. The ID to use for the tool, which will become the final
      component of the tool's resource name. The tool ID must be compliant
      with the regression formula `a-zA-Z*` with the characters length in
      range of [3,64]. If the field is not provide, an Id will be auto-
      generated. If the field is provided, the caller is responsible for 1.
      the uniqueness of the ID, otherwise the request will be rejected. 2. the
      consistency for whether to use custom ID or not under a project to
      better ensure uniqueness.
  """

  googleCloudDialogflowV2Tool = _messages.MessageField('GoogleCloudDialogflowV2Tool', 1)
  parent = _messages.StringField(2, required=True)
  toolId = _messages.StringField(3)


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

  Fields:
    name: Required. The tool resource name to delete. Format:
      `projects//locations//tools/`
  """

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


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

  Fields:
    name: Required. The tool resource name to retrieve. Format:
      `projects//locations//tools/`
  """

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


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

  Fields:
    pageSize: Optional. Maximum number of conversation models to return in a
      single page. Default to 10.
    pageToken: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project/location to list tools for. Format:
      `projects//locations/`
  """

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


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

  Fields:
    googleCloudDialogflowV2Tool: A GoogleCloudDialogflowV2Tool resource to be
      passed as the request body.
    name: Output only. Identifier. The resource name of the tool. Format:
      `projects//locations//tools/`.
    updateMask: Optional. The list of fields to update.
  """

  googleCloudDialogflowV2Tool = _messages.MessageField('GoogleCloudDialogflowV2Tool', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

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

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


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

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

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


class DialogflowProjectsOperationsListRequest(_messages.Message):
  r"""A DialogflowProjectsOperationsListRequest 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 e.g. when `parent` is set to
      `"projects/example/locations/-"`. This field is not by default supported
      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 DialogflowProjectsSetAgentRequest(_messages.Message):
  r"""A DialogflowProjectsSetAgentRequest object.

  Fields:
    googleCloudDialogflowV2Agent: A GoogleCloudDialogflowV2Agent resource to
      be passed as the request body.
    parent: Required. The project of this agent. Format: `projects/`.
    updateMask: Optional. The mask to control which fields get updated.
  """

  googleCloudDialogflowV2Agent = _messages.MessageField('GoogleCloudDialogflowV2Agent', 1)
  parent = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


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

  Fields:
    googleCloudDialogflowV2GenerateStatelessSummaryRequest: A
      GoogleCloudDialogflowV2GenerateStatelessSummaryRequest resource to be
      passed as the request body.
    parent: Required. The parent resource to charge for the Summary's
      generation. Format: `projects//locations/`.
  """

  googleCloudDialogflowV2GenerateStatelessSummaryRequest = _messages.MessageField('GoogleCloudDialogflowV2GenerateStatelessSummaryRequest', 1)
  parent = _messages.StringField(2, required=True)


class GoogleCloudDialogflowCxV3AdvancedSettings(_messages.Message):
  r"""Hierarchical advanced settings for
  agent/flow/page/fulfillment/parameter. Settings exposed at lower level
  overrides the settings exposed at higher level. Overriding occurs at the
  sub-setting level. For example, the playback_interruption_settings at
  fulfillment level only overrides the playback_interruption_settings at the
  agent level, leaving other settings at the agent level unchanged. DTMF
  settings does not override each other. DTMF settings set at different levels
  define DTMF detections running in parallel. Hierarchy:
  Agent->Flow->Page->Fulfillment/Parameter.

  Fields:
    audioExportGcsDestination: If present, incoming audio is exported by
      Dialogflow to the configured Google Cloud Storage destination. Exposed
      at the following levels: - Agent level - Flow level
    dtmfSettings: Settings for DTMF. Exposed at the following levels: - Agent
      level - Flow level - Page level - Parameter level.
    loggingSettings: Settings for logging. Settings for Dialogflow History,
      Contact Center messages, StackDriver logs, and speech logging. Exposed
      at the following levels: - Agent level.
    speechSettings: Settings for speech to text detection. Exposed at the
      following levels: - Agent level - Flow level - Page level - Parameter
      level
  """

  audioExportGcsDestination = _messages.MessageField('GoogleCloudDialogflowCxV3GcsDestination', 1)
  dtmfSettings = _messages.MessageField('GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings', 2)
  loggingSettings = _messages.MessageField('GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings', 3)
  speechSettings = _messages.MessageField('GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings', 4)


class GoogleCloudDialogflowCxV3AdvancedSettingsDtmfSettings(_messages.Message):
  r"""Define behaviors for DTMF (dual tone multi frequency).

  Fields:
    enabled: If true, incoming audio is processed for DTMF (dual tone multi
      frequency) events. For example, if the caller presses a button on their
      telephone keypad and DTMF processing is enabled, Dialogflow will detect
      the event (e.g. a "3" was pressed) in the incoming audio and pass the
      event to the bot to drive business logic (e.g. when 3 is pressed, return
      the account balance).
    endpointingTimeoutDuration: Endpoint timeout setting for matching dtmf
      input to regex.
    finishDigit: The digit that terminates a DTMF digit sequence.
    interdigitTimeoutDuration: Interdigit timeout setting for matching dtmf
      input to regex.
    maxDigits: Max length of DTMF digits.
  """

  enabled = _messages.BooleanField(1)
  endpointingTimeoutDuration = _messages.StringField(2)
  finishDigit = _messages.StringField(3)
  interdigitTimeoutDuration = _messages.StringField(4)
  maxDigits = _messages.IntegerField(5, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowCxV3AdvancedSettingsLoggingSettings(_messages.Message):
  r"""Define behaviors on logging.

  Fields:
    enableConsentBasedRedaction: Enables consent-based end-user input
      redaction, if true, a pre-defined session parameter
      `$session.params.conversation-redaction` will be used to determine if
      the utterance should be redacted.
    enableInteractionLogging: Enables DF Interaction logging.
    enableStackdriverLogging: Enables Google Cloud Logging.
  """

  enableConsentBasedRedaction = _messages.BooleanField(1)
  enableInteractionLogging = _messages.BooleanField(2)
  enableStackdriverLogging = _messages.BooleanField(3)


class GoogleCloudDialogflowCxV3AdvancedSettingsSpeechSettings(_messages.Message):
  r"""Define behaviors of speech to text detection.

  Messages:
    ModelsValue: Mapping from language to Speech-to-Text model. The mapped
      Speech-to-Text model will be selected for requests from its
      corresponding language. For more information, see [Speech
      models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      models).

  Fields:
    endpointerSensitivity: Sensitivity of the speech model that detects the
      end of speech. Scale from 0 to 100.
    models: Mapping from language to Speech-to-Text model. The mapped Speech-
      to-Text model will be selected for requests from its corresponding
      language. For more information, see [Speech
      models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      models).
    noSpeechTimeout: Timeout before detecting no speech.
    useTimeoutBasedEndpointing: Use timeout based endpointing, interpreting
      endpointer sensitivity as seconds of timeout value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ModelsValue(_messages.Message):
    r"""Mapping from language to Speech-to-Text model. The mapped Speech-to-
    Text model will be selected for requests from its corresponding language.
    For more information, see [Speech
    models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
    models).

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

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

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

  endpointerSensitivity = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  models = _messages.MessageField('ModelsValue', 2)
  noSpeechTimeout = _messages.StringField(3)
  useTimeoutBasedEndpointing = _messages.BooleanField(4)


class GoogleCloudDialogflowCxV3AudioInput(_messages.Message):
  r"""Represents the natural speech audio to be processed.

  Fields:
    audio: The natural language speech audio to be processed. A single request
      can contain up to 2 minutes of speech audio data. The transcribed text
      cannot contain more than 256 bytes. For non-streaming audio detect
      intent, both `config` and `audio` must be provided. For streaming audio
      detect intent, `config` must be provided in the first request and
      `audio` must be provided in all following requests.
    config: Required. Instructs the speech recognizer how to process the
      speech audio.
  """

  audio = _messages.BytesField(1)
  config = _messages.MessageField('GoogleCloudDialogflowCxV3InputAudioConfig', 2)


class GoogleCloudDialogflowCxV3BargeInConfig(_messages.Message):
  r"""Configuration of the barge-in behavior. Barge-in instructs the API to
  return a detected utterance at a proper time while the client is playing
  back the response audio from a previous request. When the client sees the
  utterance, it should stop the playback and immediately get ready for
  receiving the responses for the current request. The barge-in handling
  requires the client to start streaming audio input as soon as it starts
  playing back the audio from the previous response. The playback is modeled
  into two phases: * No barge-in phase: which goes first and during which
  speech detection should not be carried out. * Barge-in phase: which follows
  the no barge-in phase and during which the API starts speech detection and
  may inform the client that an utterance has been detected. Note that no-
  speech event is not expected in this phase. The client provides this
  configuration in terms of the durations of those two phases. The durations
  are measured in terms of the audio length from the start of the input audio.
  No-speech event is a response with END_OF_UTTERANCE without any transcript
  following up.

  Fields:
    noBargeInDuration: Duration that is not eligible for barge-in at the
      beginning of the input audio.
    totalDuration: Total duration for the playback at the beginning of the
      input audio.
  """

  noBargeInDuration = _messages.StringField(1)
  totalDuration = _messages.StringField(2)


class GoogleCloudDialogflowCxV3BatchRunTestCasesMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.BatchRunTestCases long running
  operation.

  Fields:
    errors: The test errors.
  """

  errors = _messages.MessageField('GoogleCloudDialogflowCxV3TestError', 1, repeated=True)


class GoogleCloudDialogflowCxV3BatchRunTestCasesResponse(_messages.Message):
  r"""The response message for TestCases.BatchRunTestCases.

  Fields:
    results: The test case results. The detailed conversation turns are empty
      in this response.
  """

  results = _messages.MessageField('GoogleCloudDialogflowCxV3TestCaseResult', 1, repeated=True)


class GoogleCloudDialogflowCxV3ContinuousTestResult(_messages.Message):
  r"""Represents a result from running a test case in an agent environment.

  Enums:
    ResultValueValuesEnum: The result of this continuous test run, i.e.
      whether all the tests in this continuous test run pass or not.

  Fields:
    name: The resource name for the continuous test result. Format:
      `projects//locations//agents//environments//continuousTestResults/`.
    result: The result of this continuous test run, i.e. whether all the tests
      in this continuous test run pass or not.
    runTime: Time when the continuous testing run starts.
    testCaseResults: A list of individual test case results names in this
      continuous test run.
  """

  class ResultValueValuesEnum(_messages.Enum):
    r"""The result of this continuous test run, i.e. whether all the tests in
    this continuous test run pass or not.

    Values:
      AGGREGATED_TEST_RESULT_UNSPECIFIED: Not specified. Should never be used.
      PASSED: All the tests passed.
      FAILED: At least one test did not pass.
    """
    AGGREGATED_TEST_RESULT_UNSPECIFIED = 0
    PASSED = 1
    FAILED = 2

  name = _messages.StringField(1)
  result = _messages.EnumField('ResultValueValuesEnum', 2)
  runTime = _messages.StringField(3)
  testCaseResults = _messages.StringField(4, repeated=True)


class GoogleCloudDialogflowCxV3ConversationSignals(_messages.Message):
  r"""This message is used to hold all the Conversation Signals data, which
  will be converted to JSON and exported to BigQuery.

  Fields:
    turnSignals: Required. Turn signals for the current turn.
  """

  turnSignals = _messages.MessageField('GoogleCloudDialogflowCxV3TurnSignals', 1)


class GoogleCloudDialogflowCxV3ConversationTurn(_messages.Message):
  r"""One interaction between a human and virtual agent. The human provides
  some input and the virtual agent provides a response.

  Fields:
    userInput: The user input.
    virtualAgentOutput: The virtual agent output.
  """

  userInput = _messages.MessageField('GoogleCloudDialogflowCxV3ConversationTurnUserInput', 1)
  virtualAgentOutput = _messages.MessageField('GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput', 2)


class GoogleCloudDialogflowCxV3ConversationTurnUserInput(_messages.Message):
  r"""The input from the human user.

  Messages:
    InjectedParametersValue: Parameters that need to be injected into the
      conversation during intent detection.

  Fields:
    enableSentimentAnalysis: Whether sentiment analysis is enabled.
    injectedParameters: Parameters that need to be injected into the
      conversation during intent detection.
    input: Supports text input, event input, dtmf input in the test case.
    isWebhookEnabled: If webhooks should be allowed to trigger in response to
      the user utterance. Often if parameters are injected, webhooks should
      not be enabled.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InjectedParametersValue(_messages.Message):
    r"""Parameters that need to be injected into the conversation during
    intent detection.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  enableSentimentAnalysis = _messages.BooleanField(1)
  injectedParameters = _messages.MessageField('InjectedParametersValue', 2)
  input = _messages.MessageField('GoogleCloudDialogflowCxV3QueryInput', 3)
  isWebhookEnabled = _messages.BooleanField(4)


class GoogleCloudDialogflowCxV3ConversationTurnVirtualAgentOutput(_messages.Message):
  r"""The output from the virtual agent.

  Messages:
    DiagnosticInfoValue: Required. Input only. The diagnostic info output for
      the turn. Required to calculate the testing coverage.
    SessionParametersValue: The session parameters available to the bot at
      this point.

  Fields:
    currentPage: The Page on which the utterance was spoken. Only name and
      displayName will be set.
    diagnosticInfo: Required. Input only. The diagnostic info output for the
      turn. Required to calculate the testing coverage.
    differences: Output only. If this is part of a result conversation turn,
      the list of differences between the original run and the replay for this
      output, if any.
    sessionParameters: The session parameters available to the bot at this
      point.
    status: Response error from the agent in the test result. If set, other
      output is empty.
    textResponses: The text responses from the agent for the turn.
    triggeredIntent: The Intent that triggered the response. Only name and
      displayName will be set.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DiagnosticInfoValue(_messages.Message):
    r"""Required. Input only. The diagnostic info output for the turn.
    Required to calculate the testing coverage.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DiagnosticInfoValue 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 SessionParametersValue(_messages.Message):
    r"""The session parameters available to the bot at this point.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  currentPage = _messages.MessageField('GoogleCloudDialogflowCxV3Page', 1)
  diagnosticInfo = _messages.MessageField('DiagnosticInfoValue', 2)
  differences = _messages.MessageField('GoogleCloudDialogflowCxV3TestRunDifference', 3, repeated=True)
  sessionParameters = _messages.MessageField('SessionParametersValue', 4)
  status = _messages.MessageField('GoogleRpcStatus', 5)
  textResponses = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageText', 6, repeated=True)
  triggeredIntent = _messages.MessageField('GoogleCloudDialogflowCxV3Intent', 7)


class GoogleCloudDialogflowCxV3CreateVersionOperationMetadata(_messages.Message):
  r"""Metadata associated with the long running operation for
  Versions.CreateVersion.

  Fields:
    version: Name of the created version. Format:
      `projects//locations//agents//flows//versions/`.
  """

  version = _messages.StringField(1)


class GoogleCloudDialogflowCxV3DataStoreConnection(_messages.Message):
  r"""A data store connection. It represents a data store in Discovery Engine
  and the type of the contents it contains.

  Enums:
    DataStoreTypeValueValuesEnum: The type of the connected data store.
    DocumentProcessingModeValueValuesEnum: The document processing mode for
      the data store connection. Should only be set for PUBLIC_WEB and
      UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as
      this is the legacy mode.

  Fields:
    dataStore: The full name of the referenced data store. Formats: `projects/
      {project}/locations/{location}/collections/{collection}/dataStores/{data
      _store}`
      `projects/{project}/locations/{location}/dataStores/{data_store}`
    dataStoreType: The type of the connected data store.
    documentProcessingMode: The document processing mode for the data store
      connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data
      stores. If not set it is considered as DOCUMENTS, as this is the legacy
      mode.
  """

  class DataStoreTypeValueValuesEnum(_messages.Enum):
    r"""The type of the connected data store.

    Values:
      DATA_STORE_TYPE_UNSPECIFIED: Not specified. This value indicates that
        the data store type is not specified, so it will not be used during
        search.
      PUBLIC_WEB: A data store that contains public web content.
      UNSTRUCTURED: A data store that contains unstructured private data.
      STRUCTURED: A data store that contains structured data (for example
        FAQ).
    """
    DATA_STORE_TYPE_UNSPECIFIED = 0
    PUBLIC_WEB = 1
    UNSTRUCTURED = 2
    STRUCTURED = 3

  class DocumentProcessingModeValueValuesEnum(_messages.Enum):
    r"""The document processing mode for the data store connection. Should
    only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is
    considered as DOCUMENTS, as this is the legacy mode.

    Values:
      DOCUMENT_PROCESSING_MODE_UNSPECIFIED: Not specified. This should be set
        for STRUCTURED type data stores. Due to legacy reasons this is
        considered as DOCUMENTS for STRUCTURED and PUBLIC_WEB data stores.
      DOCUMENTS: Documents are processed as documents.
      CHUNKS: Documents are converted to chunks.
    """
    DOCUMENT_PROCESSING_MODE_UNSPECIFIED = 0
    DOCUMENTS = 1
    CHUNKS = 2

  dataStore = _messages.StringField(1)
  dataStoreType = _messages.EnumField('DataStoreTypeValueValuesEnum', 2)
  documentProcessingMode = _messages.EnumField('DocumentProcessingModeValueValuesEnum', 3)


class GoogleCloudDialogflowCxV3DeployFlowMetadata(_messages.Message):
  r"""Metadata returned for the Environments.DeployFlow long running
  operation.

  Fields:
    testErrors: Errors of running deployment tests.
  """

  testErrors = _messages.MessageField('GoogleCloudDialogflowCxV3TestError', 1, repeated=True)


class GoogleCloudDialogflowCxV3DeployFlowResponse(_messages.Message):
  r"""The response message for Environments.DeployFlow.

  Fields:
    deployment: The name of the flow version Deployment. Format:
      `projects//locations//agents//environments//deployments/`.
    environment: The updated environment where the flow is deployed.
  """

  deployment = _messages.StringField(1)
  environment = _messages.MessageField('GoogleCloudDialogflowCxV3Environment', 2)


class GoogleCloudDialogflowCxV3DtmfInput(_messages.Message):
  r"""Represents the input for dtmf event.

  Fields:
    digits: The dtmf digits.
    finishDigit: The finish digit (if any).
  """

  digits = _messages.StringField(1)
  finishDigit = _messages.StringField(2)


class GoogleCloudDialogflowCxV3Environment(_messages.Message):
  r"""Represents an environment for an agent. You can create multiple versions
  of your agent and publish them to separate environments. When you edit an
  agent, you are editing the draft agent. At any point, you can save the draft
  agent as an agent version, which is an immutable snapshot of your agent.
  When you save the draft agent, it is published to the default environment.
  When you create agent versions, you can publish them to custom environments.
  You can create a variety of custom environments for testing, development,
  production, etc.

  Fields:
    description: The human-readable description of the environment. The
      maximum length is 500 characters. If exceeded, the request is rejected.
    displayName: Required. The human-readable name of the environment (unique
      in an agent). Limit of 64 characters.
    name: The name of the environment. Format:
      `projects//locations//agents//environments/`.
    testCasesConfig: The test cases config for continuous tests of this
      environment.
    updateTime: Output only. Update time of this environment.
    versionConfigs: A list of configurations for flow versions. You should
      include version configs for all flows that are reachable from `Start
      Flow` in the agent. Otherwise, an error will be returned.
    webhookConfig: The webhook configuration for this environment.
  """

  description = _messages.StringField(1)
  displayName = _messages.StringField(2)
  name = _messages.StringField(3)
  testCasesConfig = _messages.MessageField('GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig', 4)
  updateTime = _messages.StringField(5)
  versionConfigs = _messages.MessageField('GoogleCloudDialogflowCxV3EnvironmentVersionConfig', 6, repeated=True)
  webhookConfig = _messages.MessageField('GoogleCloudDialogflowCxV3EnvironmentWebhookConfig', 7)


class GoogleCloudDialogflowCxV3EnvironmentTestCasesConfig(_messages.Message):
  r"""The configuration for continuous tests.

  Fields:
    enableContinuousRun: Whether to run test cases in
      TestCasesConfig.test_cases periodically. Default false. If set to true,
      run once a day.
    enablePredeploymentRun: Whether to run test cases in
      TestCasesConfig.test_cases before deploying a flow version to the
      environment. Default false.
    testCases: A list of test case names to run. They should be under the same
      agent. Format of each test case name:
      `projects//locations//agents//testCases/`
  """

  enableContinuousRun = _messages.BooleanField(1)
  enablePredeploymentRun = _messages.BooleanField(2)
  testCases = _messages.StringField(3, repeated=True)


class GoogleCloudDialogflowCxV3EnvironmentVersionConfig(_messages.Message):
  r"""Configuration for the version.

  Fields:
    version: Required. Flow, playbook and tool versions are supported. Format
      for flow version: projects//locations//agents//flows//versions/. Format
      for playbook version: projects//locations//agents//playbooks//versions/.
      Format for tool version: projects//locations//agents//tools//versions/.
  """

  version = _messages.StringField(1)


class GoogleCloudDialogflowCxV3EnvironmentWebhookConfig(_messages.Message):
  r"""Configuration for webhooks.

  Fields:
    webhookOverrides: The list of webhooks to override for the agent
      environment. The webhook must exist in the agent. You can override
      fields in `generic_web_service` and `service_directory`.
  """

  webhookOverrides = _messages.MessageField('GoogleCloudDialogflowCxV3Webhook', 1, repeated=True)


class GoogleCloudDialogflowCxV3EventHandler(_messages.Message):
  r"""An event handler specifies an event that can be handled during a
  session. When the specified event happens, the following actions are taken
  in order: * If there is a `trigger_fulfillment` associated with the event,
  it will be called. * If there is a `target_page` associated with the event,
  the session will transition into the specified page. * If there is a
  `target_flow` associated with the event, the session will transition into
  the specified flow.

  Fields:
    event: Required. The name of the event to handle.
    name: Output only. The unique identifier of this event handler.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
    targetPlaybook: The target playbook to transition to. Format:
      `projects//locations//agents//playbooks/`.
    triggerFulfillment: The fulfillment to call when the event occurs.
      Handling webhook errors with a fulfillment enabled with webhook could
      cause infinite loop. It is invalid to specify such fulfillment for a
      handler handling webhooks.
  """

  event = _messages.StringField(1)
  name = _messages.StringField(2)
  targetFlow = _messages.StringField(3)
  targetPage = _messages.StringField(4)
  targetPlaybook = _messages.StringField(5)
  triggerFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3Fulfillment', 6)


class GoogleCloudDialogflowCxV3EventInput(_messages.Message):
  r"""Represents the event to trigger.

  Fields:
    event: Name of the event.
  """

  event = _messages.StringField(1)


class GoogleCloudDialogflowCxV3ExportAgentResponse(_messages.Message):
  r"""The response message for Agents.ExportAgent.

  Fields:
    agentContent: Uncompressed raw byte content for agent. This field is
      populated if none of `agent_uri` and `git_destination` are specified in
      ExportAgentRequest.
    agentUri: The URI to a file containing the exported agent. This field is
      populated if `agent_uri` is specified in ExportAgentRequest.
    commitSha: Commit SHA of the git push. This field is populated if
      `git_destination` is specified in ExportAgentRequest.
  """

  agentContent = _messages.BytesField(1)
  agentUri = _messages.StringField(2)
  commitSha = _messages.StringField(3)


class GoogleCloudDialogflowCxV3ExportEntityTypesMetadata(_messages.Message):
  r"""Metadata returned for the EntityTypes.ExportEntityTypes long running
  operation.
  """



class GoogleCloudDialogflowCxV3ExportEntityTypesResponse(_messages.Message):
  r"""The response message for EntityTypes.ExportEntityTypes.

  Fields:
    entityTypesContent: Uncompressed byte content for entity types. This field
      is populated only if `entity_types_content_inline` is set to true in
      ExportEntityTypesRequest.
    entityTypesUri: The URI to a file containing the exported entity types.
      This field is populated only if `entity_types_uri` is specified in
      ExportEntityTypesRequest.
  """

  entityTypesContent = _messages.MessageField('GoogleCloudDialogflowCxV3InlineDestination', 1)
  entityTypesUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3ExportFlowResponse(_messages.Message):
  r"""The response message for Flows.ExportFlow.

  Fields:
    flowContent: Uncompressed raw byte content for flow.
    flowUri: The URI to a file containing the exported flow. This field is
      populated only if `flow_uri` is specified in ExportFlowRequest.
  """

  flowContent = _messages.BytesField(1)
  flowUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3ExportIntentsMetadata(_messages.Message):
  r"""Metadata returned for the Intents.ExportIntents long running operation.
  """



class GoogleCloudDialogflowCxV3ExportIntentsResponse(_messages.Message):
  r"""The response message for Intents.ExportIntents.

  Fields:
    intentsContent: Uncompressed byte content for intents. This field is
      populated only if `intents_content_inline` is set to true in
      ExportIntentsRequest.
    intentsUri: The URI to a file containing the exported intents. This field
      is populated only if `intents_uri` is specified in ExportIntentsRequest.
  """

  intentsContent = _messages.MessageField('GoogleCloudDialogflowCxV3InlineDestination', 1)
  intentsUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3ExportTestCasesMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.ExportTestCases long running
  operation. This message currently has no fields.
  """



class GoogleCloudDialogflowCxV3ExportTestCasesResponse(_messages.Message):
  r"""The response message for TestCases.ExportTestCases.

  Fields:
    content: Uncompressed raw byte content for test cases.
    gcsUri: The URI to a file containing the exported test cases. This field
      is populated only if `gcs_uri` is specified in ExportTestCasesRequest.
  """

  content = _messages.BytesField(1)
  gcsUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3Form(_messages.Message):
  r"""A form is a data model that groups related parameters that can be
  collected from the user. The process in which the agent prompts the user and
  collects parameter values from the user is called form filling. A form can
  be added to a page. When form filling is done, the filled parameters will be
  written to the session.

  Fields:
    parameters: Parameters to collect from the user.
  """

  parameters = _messages.MessageField('GoogleCloudDialogflowCxV3FormParameter', 1, repeated=True)


class GoogleCloudDialogflowCxV3FormParameter(_messages.Message):
  r"""Represents a form parameter.

  Fields:
    advancedSettings: Hierarchical advanced settings for this parameter. The
      settings exposed at the lower level overrides the settings exposed at
      the higher level.
    defaultValue: The default value of an optional parameter. If the parameter
      is required, the default value will be ignored.
    displayName: Required. The human-readable name of the parameter, unique
      within the form.
    entityType: Required. The entity type of the parameter. Format:
      `projects/-/locations/-/agents/-/entityTypes/` for system entity types
      (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`),
      or `projects//locations//agents//entityTypes/` for developer entity
      types.
    fillBehavior: Required. Defines fill behavior for the parameter.
    isList: Indicates whether the parameter represents a list of values.
    redact: Indicates whether the parameter content should be redacted in log.
      If redaction is enabled, the parameter content will be replaced by
      parameter name during logging. Note: the parameter content is subject to
      redaction if either parameter level redaction or entity type level
      redaction is enabled.
    required: Indicates whether the parameter is required. Optional parameters
      will not trigger prompts; however, they are filled if the user specifies
      them. Required parameters must be filled before form filling concludes.
  """

  advancedSettings = _messages.MessageField('GoogleCloudDialogflowCxV3AdvancedSettings', 1)
  defaultValue = _messages.MessageField('extra_types.JsonValue', 2)
  displayName = _messages.StringField(3)
  entityType = _messages.StringField(4)
  fillBehavior = _messages.MessageField('GoogleCloudDialogflowCxV3FormParameterFillBehavior', 5)
  isList = _messages.BooleanField(6)
  redact = _messages.BooleanField(7)
  required = _messages.BooleanField(8)


class GoogleCloudDialogflowCxV3FormParameterFillBehavior(_messages.Message):
  r"""Configuration for how the filling of a parameter should be handled.

  Fields:
    initialPromptFulfillment: Required. The fulfillment to provide the initial
      prompt that the agent can present to the user in order to fill the
      parameter.
    repromptEventHandlers: The handlers for parameter-level events, used to
      provide reprompt for the parameter or transition to a different
      page/flow. The supported events are: * `sys.no-match-`, where N can be
      from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be
      from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter`
      `initial_prompt_fulfillment` provides the first prompt for the
      parameter. If the user's response does not fill the parameter, a no-
      match/no-input event will be triggered, and the fulfillment associated
      with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be
      called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2`
      handler (if defined) will respond to the next no-match/no-input event,
      and so on. A `sys.no-match-default` or `sys.no-input-default` handler
      will be used to handle all following no-match/no-input events after all
      numbered no-match/no-input handlers for the parameter are consumed. A
      `sys.invalid-parameter` handler can be defined to handle the case where
      the parameter values have been `invalidated` by webhook. For example, if
      the user's response fill the parameter, however the parameter was
      invalidated by webhook, the fulfillment associated with the
      `sys.invalid-parameter` handler (if defined) will be called to provide a
      prompt. If the event handler for the corresponding event can't be found
      on the parameter, `initial_prompt_fulfillment` will be re-prompted.
  """

  initialPromptFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3Fulfillment', 1)
  repromptEventHandlers = _messages.MessageField('GoogleCloudDialogflowCxV3EventHandler', 2, repeated=True)


class GoogleCloudDialogflowCxV3Fulfillment(_messages.Message):
  r"""A fulfillment can do one or more of the following actions at the same
  time: * Generate rich message responses. * Set parameter values. * Call the
  webhook. Fulfillments can be called at various stages in the Page or Form
  lifecycle. For example, when a DetectIntentRequest drives a session to enter
  a new page, the page's entry fulfillment can add a static response to the
  QueryResult in the returning DetectIntentResponse, call the webhook (for
  example, to load user data from a database), or both.

  Fields:
    advancedSettings: Hierarchical advanced settings for this fulfillment. The
      settings exposed at the lower level overrides the settings exposed at
      the higher level.
    conditionalCases: Conditional cases for this fulfillment.
    enableGenerativeFallback: If the flag is true, the agent will utilize LLM
      to generate a text response. If LLM generation fails, the defined
      responses in the fulfillment will be respected. This flag is only useful
      for fulfillments associated with no-match event handlers.
    generators: A list of Generators to be called during this fulfillment.
    messages: The list of rich message responses to present to the user.
    returnPartialResponses: Whether Dialogflow should return currently queued
      fulfillment response messages in streaming APIs. If a webhook is
      specified, it happens before Dialogflow invokes webhook. Warning: 1)
      This flag only affects streaming API. Responses are still queued and
      returned once in non-streaming API. 2) The flag can be enabled in any
      fulfillment but only the first 3 partial responses will be returned. You
      may only want to apply it to fulfillments that have slow webhooks.
    setParameterActions: Set parameter values before executing the webhook.
    tag: The value of this field will be populated in the WebhookRequest
      `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is
      called. The tag is typically used by the webhook service to identify
      which fulfillment is being called, but it could be used for other
      purposes. This field is required if `webhook` is specified.
    webhook: The webhook to call. Format:
      `projects//locations//agents//webhooks/`.
  """

  advancedSettings = _messages.MessageField('GoogleCloudDialogflowCxV3AdvancedSettings', 1)
  conditionalCases = _messages.MessageField('GoogleCloudDialogflowCxV3FulfillmentConditionalCases', 2, repeated=True)
  enableGenerativeFallback = _messages.BooleanField(3)
  generators = _messages.MessageField('GoogleCloudDialogflowCxV3FulfillmentGeneratorSettings', 4, repeated=True)
  messages = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessage', 5, repeated=True)
  returnPartialResponses = _messages.BooleanField(6)
  setParameterActions = _messages.MessageField('GoogleCloudDialogflowCxV3FulfillmentSetParameterAction', 7, repeated=True)
  tag = _messages.StringField(8)
  webhook = _messages.StringField(9)


class GoogleCloudDialogflowCxV3FulfillmentConditionalCases(_messages.Message):
  r"""A list of cascading if-else conditions. Cases are mutually exclusive.
  The first one with a matching condition is selected, all the rest ignored.

  Fields:
    cases: A list of cascading if-else conditions.
  """

  cases = _messages.MessageField('GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase', 1, repeated=True)


class GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCase(_messages.Message):
  r"""Each case has a Boolean condition. When it is evaluated to be True, the
  corresponding messages will be selected and evaluated recursively.

  Fields:
    caseContent: A list of case content.
    condition: The condition to activate and select this case. Empty means the
      condition is always true. The condition is evaluated against form
      parameters or session parameters. See the [conditions reference](https:/
      /cloud.google.com/dialogflow/cx/docs/reference/condition).
  """

  caseContent = _messages.MessageField('GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent', 1, repeated=True)
  condition = _messages.StringField(2)


class GoogleCloudDialogflowCxV3FulfillmentConditionalCasesCaseCaseContent(_messages.Message):
  r"""The list of messages or conditional cases to activate for this case.

  Fields:
    additionalCases: Additional cases to be evaluated.
    message: Returned message.
  """

  additionalCases = _messages.MessageField('GoogleCloudDialogflowCxV3FulfillmentConditionalCases', 1)
  message = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessage', 2)


class GoogleCloudDialogflowCxV3FulfillmentGeneratorSettings(_messages.Message):
  r"""Generator settings used by the LLM to generate a text response.

  Messages:
    InputParametersValue: Map from placeholder parameter in the Generator to
      corresponding session parameters. By default, Dialogflow uses the
      session parameter with the same name to fill in the generator template.
      e.g. If there is a placeholder parameter `city` in the Generator,
      Dialogflow default to fill in the `$city` with `$session.params.city`.
      However, you may choose to fill `$city` with
      `$session.params.desination-city`. - Map key: parameter ID - Map value:
      session parameter name

  Fields:
    generator: Required. The generator to call. Format:
      `projects//locations//agents//generators/`.
    inputParameters: Map from placeholder parameter in the Generator to
      corresponding session parameters. By default, Dialogflow uses the
      session parameter with the same name to fill in the generator template.
      e.g. If there is a placeholder parameter `city` in the Generator,
      Dialogflow default to fill in the `$city` with `$session.params.city`.
      However, you may choose to fill `$city` with
      `$session.params.desination-city`. - Map key: parameter ID - Map value:
      session parameter name
    outputParameter: Required. Output parameter which should contain the
      generator response.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InputParametersValue(_messages.Message):
    r"""Map from placeholder parameter in the Generator to corresponding
    session parameters. By default, Dialogflow uses the session parameter with
    the same name to fill in the generator template. e.g. If there is a
    placeholder parameter `city` in the Generator, Dialogflow default to fill
    in the `$city` with `$session.params.city`. However, you may choose to
    fill `$city` with `$session.params.desination-city`. - Map key: parameter
    ID - Map value: session parameter name

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

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

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

  generator = _messages.StringField(1)
  inputParameters = _messages.MessageField('InputParametersValue', 2)
  outputParameter = _messages.StringField(3)


class GoogleCloudDialogflowCxV3FulfillmentSetParameterAction(_messages.Message):
  r"""Setting a parameter value.

  Fields:
    parameter: Display name of the parameter.
    value: The new value of the parameter. A null value clears the parameter.
  """

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


class GoogleCloudDialogflowCxV3GcsDestination(_messages.Message):
  r"""Google Cloud Storage location for a Dialogflow operation that writes or
  exports objects (e.g. exported agent or transcripts) outside of Dialogflow.

  Fields:
    uri: Required. The Google Cloud Storage URI for the exported objects. A
      URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full
      object name, or just a prefix, its usage depends on the Dialogflow
      operation.
  """

  uri = _messages.StringField(1)


class GoogleCloudDialogflowCxV3ImportEntityTypesMetadata(_messages.Message):
  r"""Metadata returned for the EntityTypes.ImportEntityTypes long running
  operation.
  """



class GoogleCloudDialogflowCxV3ImportEntityTypesResponse(_messages.Message):
  r"""The response message for EntityTypes.ImportEntityTypes.

  Fields:
    conflictingResources: Info which resources have conflicts when
      REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest.
    entityTypes: The unique identifier of the imported entity types. Format:
      `projects//locations//agents//entity_types/`.
  """

  conflictingResources = _messages.MessageField('GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources', 1)
  entityTypes = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources(_messages.Message):
  r"""Conflicting resources detected during the import process. Only filled
  when REPORT_CONFLICT is set in the request and there are conflicts in the
  display names.

  Fields:
    entityDisplayNames: Display names of conflicting entities.
    entityTypeDisplayNames: Display names of conflicting entity types.
  """

  entityDisplayNames = _messages.StringField(1, repeated=True)
  entityTypeDisplayNames = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3ImportFlowResponse(_messages.Message):
  r"""The response message for Flows.ImportFlow.

  Fields:
    flow: The unique identifier of the new flow. Format:
      `projects//locations//agents//flows/`.
  """

  flow = _messages.StringField(1)


class GoogleCloudDialogflowCxV3ImportIntentsMetadata(_messages.Message):
  r"""Metadata returned for the Intents.ImportIntents long running operation.
  """



class GoogleCloudDialogflowCxV3ImportIntentsResponse(_messages.Message):
  r"""The response message for Intents.ImportIntents.

  Fields:
    conflictingResources: Info which resources have conflicts when
      REPORT_CONFLICT merge_option is set in ImportIntentsRequest.
    intents: The unique identifier of the imported intents. Format:
      `projects//locations//agents//intents/`.
  """

  conflictingResources = _messages.MessageField('GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources', 1)
  intents = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3ImportIntentsResponseConflictingResources(_messages.Message):
  r"""Conflicting resources detected during the import process. Only filled
  when REPORT_CONFLICT is set in the request and there are conflicts in the
  display names.

  Fields:
    entityDisplayNames: Display names of conflicting entities.
    intentDisplayNames: Display names of conflicting intents.
  """

  entityDisplayNames = _messages.StringField(1, repeated=True)
  intentDisplayNames = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3ImportTestCasesMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.ImportTestCases long running
  operation.

  Fields:
    errors: Errors for failed test cases.
  """

  errors = _messages.MessageField('GoogleCloudDialogflowCxV3TestCaseError', 1, repeated=True)


class GoogleCloudDialogflowCxV3ImportTestCasesResponse(_messages.Message):
  r"""The response message for TestCases.ImportTestCases.

  Fields:
    names: The unique identifiers of the new test cases. Format:
      `projects//locations//agents//testCases/`.
  """

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


class GoogleCloudDialogflowCxV3InlineDestination(_messages.Message):
  r"""Inline destination for a Dialogflow operation that writes or exports
  objects (e.g. intents) outside of Dialogflow.

  Fields:
    content: Output only. The uncompressed byte content for the objects. Only
      populated in responses.
  """

  content = _messages.BytesField(1)


class GoogleCloudDialogflowCxV3InputAudioConfig(_messages.Message):
  r"""Instructs the speech recognizer on how to process the audio content.

  Enums:
    AudioEncodingValueValuesEnum: Required. Audio encoding of the audio
      content to process.
    ModelVariantValueValuesEnum: Optional. Which variant of the Speech model
      to use.

  Fields:
    audioEncoding: Required. Audio encoding of the audio content to process.
    bargeInConfig: Configuration of barge-in behavior during the streaming of
      input audio.
    enableWordInfo: Optional. If `true`, Dialogflow returns SpeechWordInfo in
      StreamingRecognitionResult with information about the recognized speech
      words, e.g. start and end time offsets. If false or unspecified, Speech
      doesn't return any word-level information.
    model: Optional. Which Speech model to select for the given request. For
      more information, see [Speech
      models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      models).
    modelVariant: Optional. Which variant of the Speech model to use.
    optOutConformerModelMigration: If `true`, the request will opt out for STT
      conformer model migration. This field will be deprecated once force
      migration takes place in June 2024. Please refer to [Dialogflow CX
      Speech model
      migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      model-migration).
    phraseHints: Optional. A list of strings containing words and phrases that
      the speech recognizer should recognize with higher likelihood. See [the
      Cloud Speech documentation](https://cloud.google.com/speech-to-
      text/docs/basics#phrase-hints) for more details.
    sampleRateHertz: Sample rate (in Hertz) of the audio content sent in the
      query. Refer to [Cloud Speech API
      documentation](https://cloud.google.com/speech-to-text/docs/basics) for
      more details.
    singleUtterance: Optional. If `false` (default), recognition does not
      cease until the client closes the stream. If `true`, the recognizer will
      detect a single spoken utterance in input audio. Recognition ceases when
      it detects the audio's voice has stopped or paused. In this case, once a
      detected intent is received, the client should close the stream and
      start a new request with a new stream as needed. Note: This setting is
      relevant only for streaming methods.
  """

  class AudioEncodingValueValuesEnum(_messages.Enum):
    r"""Required. Audio encoding of the audio content to process.

    Values:
      AUDIO_ENCODING_UNSPECIFIED: Not specified.
      AUDIO_ENCODING_LINEAR_16: Uncompressed 16-bit signed little-endian
        samples (Linear PCM). LINT: LEGACY_NAMES
      AUDIO_ENCODING_FLAC: [`FLAC`](https://xiph.org/flac/documentation.html)
        (Free Lossless Audio Codec) is the recommended encoding because it is
        lossless (therefore recognition is not compromised) and requires only
        about half the bandwidth of `LINEAR16`. `FLAC` stream encoding
        supports 16-bit and 24-bit samples, however, not all fields in
        `STREAMINFO` are supported.
      AUDIO_ENCODING_MULAW: 8-bit samples that compand 14-bit audio samples
        using G.711 PCMU/mu-law.
      AUDIO_ENCODING_AMR: Adaptive Multi-Rate Narrowband codec.
        `sample_rate_hertz` must be 8000.
      AUDIO_ENCODING_AMR_WB: Adaptive Multi-Rate Wideband codec.
        `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_OGG_OPUS: Opus encoded audio frames in Ogg container
        ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must
        be 16000.
      AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE: Although the use of lossy
        encodings is not recommended, if a very low bitrate encoding is
        required, `OGG_OPUS` is highly preferred over Speex encoding. The
        [Speex](https://speex.org/) encoding supported by Dialogflow API has a
        header byte in each block, as in MIME type `audio/x-speex-with-header-
        byte`. It is a variant of the RTP Speex encoding defined in [RFC
        5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence
        of blocks, one block per RTP packet. Each block starts with a byte
        containing the length of the block, in bytes, followed by one or more
        frames of Speex data, padded to an integral number of bytes (octets)
        as specified in RFC 5574. In other words, each RTP header is replaced
        with a single byte containing the block length. Only Speex wideband is
        supported. `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_ALAW: 8-bit samples that compand 13-bit audio samples
        using G.711 PCMU/a-law.
    """
    AUDIO_ENCODING_UNSPECIFIED = 0
    AUDIO_ENCODING_LINEAR_16 = 1
    AUDIO_ENCODING_FLAC = 2
    AUDIO_ENCODING_MULAW = 3
    AUDIO_ENCODING_AMR = 4
    AUDIO_ENCODING_AMR_WB = 5
    AUDIO_ENCODING_OGG_OPUS = 6
    AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7
    AUDIO_ENCODING_ALAW = 8

  class ModelVariantValueValuesEnum(_messages.Enum):
    r"""Optional. Which variant of the Speech model to use.

    Values:
      SPEECH_MODEL_VARIANT_UNSPECIFIED: No model variant specified. In this
        case Dialogflow defaults to USE_BEST_AVAILABLE.
      USE_BEST_AVAILABLE: Use the best available variant of the Speech model
        that the caller is eligible for.
      USE_STANDARD: Use standard model variant even if an enhanced model is
        available. See the [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) for details about enhanced models.
      USE_ENHANCED: Use an enhanced model variant: * If an enhanced variant
        does not exist for the given model and request language, Dialogflow
        falls back to the standard variant. The [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) describes which models have enhanced variants.
    """
    SPEECH_MODEL_VARIANT_UNSPECIFIED = 0
    USE_BEST_AVAILABLE = 1
    USE_STANDARD = 2
    USE_ENHANCED = 3

  audioEncoding = _messages.EnumField('AudioEncodingValueValuesEnum', 1)
  bargeInConfig = _messages.MessageField('GoogleCloudDialogflowCxV3BargeInConfig', 2)
  enableWordInfo = _messages.BooleanField(3)
  model = _messages.StringField(4)
  modelVariant = _messages.EnumField('ModelVariantValueValuesEnum', 5)
  optOutConformerModelMigration = _messages.BooleanField(6)
  phraseHints = _messages.StringField(7, repeated=True)
  sampleRateHertz = _messages.IntegerField(8, variant=_messages.Variant.INT32)
  singleUtterance = _messages.BooleanField(9)


class GoogleCloudDialogflowCxV3Intent(_messages.Message):
  r"""An intent represents a user's intent to interact with a conversational
  agent. You can provide information for the Dialogflow API to use to match
  user input to an intent by adding training phrases (i.e., examples of user
  input) to your intent.

  Messages:
    LabelsValue: The key/value metadata to label an intent. Labels can contain
      lowercase letters, digits and the symbols '-' and '_'. International
      characters are allowed, including letters from unicase alphabets. Keys
      must start with a letter. Keys and values can be no longer than 63
      characters and no more than 128 bytes. Prefix "sys-" is reserved for
      Dialogflow defined labels. Currently allowed Dialogflow defined labels
      include: * sys-head * sys-contextual The above labels do not require
      value. "sys-head" means the intent is a head intent. "sys.contextual"
      means the intent is a contextual intent.

  Fields:
    description: Human readable description for better understanding an intent
      like its scope, content, result etc. Maximum character limit: 140
      characters.
    displayName: Required. The human-readable name of the intent, unique
      within the agent.
    isFallback: Indicates whether this is a fallback intent. Currently only
      default fallback intent is allowed in the agent, which is added upon
      agent creation. Adding training phrases to fallback intent is useful in
      the case of requests that are mistakenly matched, since training phrases
      assigned to fallback intents act as negative examples that triggers no-
      match event.
    labels: The key/value metadata to label an intent. Labels can contain
      lowercase letters, digits and the symbols '-' and '_'. International
      characters are allowed, including letters from unicase alphabets. Keys
      must start with a letter. Keys and values can be no longer than 63
      characters and no more than 128 bytes. Prefix "sys-" is reserved for
      Dialogflow defined labels. Currently allowed Dialogflow defined labels
      include: * sys-head * sys-contextual The above labels do not require
      value. "sys-head" means the intent is a head intent. "sys.contextual"
      means the intent is a contextual intent.
    name: The unique identifier of the intent. Required for the
      Intents.UpdateIntent method. Intents.CreateIntent populates the name
      automatically. Format: `projects//locations//agents//intents/`.
    parameters: The collection of parameters associated with the intent.
    priority: The priority of this intent. Higher numbers represent higher
      priorities. - If the supplied value is unspecified or 0, the service
      translates the value to 500,000, which corresponds to the `Normal`
      priority in the console. - If the supplied value is negative, the intent
      is ignored in runtime detect intent requests.
    trainingPhrases: The collection of training phrases the agent is trained
      on to identify the intent.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""The key/value metadata to label an intent. Labels can contain
    lowercase letters, digits and the symbols '-' and '_'. International
    characters are allowed, including letters from unicase alphabets. Keys
    must start with a letter. Keys and values can be no longer than 63
    characters and no more than 128 bytes. Prefix "sys-" is reserved for
    Dialogflow defined labels. Currently allowed Dialogflow defined labels
    include: * sys-head * sys-contextual The above labels do not require
    value. "sys-head" means the intent is a head intent. "sys.contextual"
    means the intent is a contextual intent.

    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)

  description = _messages.StringField(1)
  displayName = _messages.StringField(2)
  isFallback = _messages.BooleanField(3)
  labels = _messages.MessageField('LabelsValue', 4)
  name = _messages.StringField(5)
  parameters = _messages.MessageField('GoogleCloudDialogflowCxV3IntentParameter', 6, repeated=True)
  priority = _messages.IntegerField(7, variant=_messages.Variant.INT32)
  trainingPhrases = _messages.MessageField('GoogleCloudDialogflowCxV3IntentTrainingPhrase', 8, repeated=True)


class GoogleCloudDialogflowCxV3IntentInput(_messages.Message):
  r"""Represents the intent to trigger programmatically rather than as a
  result of natural language processing.

  Fields:
    intent: Required. The unique identifier of the intent. Format:
      `projects//locations//agents//intents/`.
  """

  intent = _messages.StringField(1)


class GoogleCloudDialogflowCxV3IntentParameter(_messages.Message):
  r"""Represents an intent parameter.

  Fields:
    entityType: Required. The entity type of the parameter. Format:
      `projects/-/locations/-/agents/-/entityTypes/` for system entity types
      (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`),
      or `projects//locations//agents//entityTypes/` for developer entity
      types.
    id: Required. The unique identifier of the parameter. This field is used
      by training phrases to annotate their parts.
    isList: Indicates whether the parameter represents a list of values.
    redact: Indicates whether the parameter content should be redacted in log.
      If redaction is enabled, the parameter content will be replaced by
      parameter name during logging. Note: the parameter content is subject to
      redaction if either parameter level redaction or entity type level
      redaction is enabled.
  """

  entityType = _messages.StringField(1)
  id = _messages.StringField(2)
  isList = _messages.BooleanField(3)
  redact = _messages.BooleanField(4)


class GoogleCloudDialogflowCxV3IntentTrainingPhrase(_messages.Message):
  r"""Represents an example that the agent is trained on to identify the
  intent.

  Fields:
    id: Output only. The unique identifier of the training phrase.
    parts: Required. The ordered list of training phrase parts. The parts are
      concatenated in order to form the training phrase. Note: The API does
      not automatically annotate training phrases like the Dialogflow Console
      does. Note: Do not forget to include whitespace at part boundaries, so
      the training phrase is well formatted when the parts are concatenated.
      If the training phrase does not need to be annotated with parameters,
      you just need a single part with only the Part.text field set. If you
      want to annotate the training phrase, you must create multiple parts,
      where the fields of each part are populated in one of two ways: -
      `Part.text` is set to a part of the phrase that has no parameters. -
      `Part.text` is set to a part of the phrase that you want to annotate,
      and the `parameter_id` field is set.
    repeatCount: Indicates how many times this example was added to the
      intent.
  """

  id = _messages.StringField(1)
  parts = _messages.MessageField('GoogleCloudDialogflowCxV3IntentTrainingPhrasePart', 2, repeated=True)
  repeatCount = _messages.IntegerField(3, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowCxV3IntentTrainingPhrasePart(_messages.Message):
  r"""Represents a part of a training phrase.

  Fields:
    parameterId: The parameter used to annotate this part of the training
      phrase. This field is required for annotated parts of the training
      phrase.
    text: Required. The text for this part.
  """

  parameterId = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowCxV3KnowledgeConnectorSettings(_messages.Message):
  r"""The Knowledge Connector settings for this page or flow. This includes
  information such as the attached Knowledge Bases, and the way to execute
  fulfillment.

  Fields:
    dataStoreConnections: Optional. List of related data store connections.
    enabled: Whether Knowledge Connector is enabled or not.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
    triggerFulfillment: The fulfillment to be triggered. When the answers from
      the Knowledge Connector are selected by Dialogflow, you can utitlize the
      request scoped parameter `$request.knowledge.answers` (contains up to
      the 5 highest confidence answers) and `$request.knowledge.questions`
      (contains the corresponding questions) to construct the fulfillment.
  """

  dataStoreConnections = _messages.MessageField('GoogleCloudDialogflowCxV3DataStoreConnection', 1, repeated=True)
  enabled = _messages.BooleanField(2)
  targetFlow = _messages.StringField(3)
  targetPage = _messages.StringField(4)
  triggerFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3Fulfillment', 5)


class GoogleCloudDialogflowCxV3LanguageInfo(_messages.Message):
  r"""Represents the language information of the request.

  Fields:
    confidenceScore: The confidence score of the detected language between 0
      and 1.
    inputLanguageCode: The language code specified in the original request.
    resolvedLanguageCode: The language code detected for this request based on
      the user conversation.
  """

  confidenceScore = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  inputLanguageCode = _messages.StringField(2)
  resolvedLanguageCode = _messages.StringField(3)


class GoogleCloudDialogflowCxV3Page(_messages.Message):
  r"""A Dialogflow CX conversation (session) can be described and visualized
  as a state machine. The states of a CX session are represented by pages. For
  each flow, you define many pages, where your combined pages can handle a
  complete conversation on the topics the flow is designed for. At any given
  moment, exactly one page is the current page, the current page is considered
  active, and the flow associated with that page is considered active. Every
  flow has a special start page. When a flow initially becomes active, the
  start page page becomes the current page. For each conversational turn, the
  current page will either stay the same or transition to another page. You
  configure each page to collect information from the end-user that is
  relevant for the conversational state represented by the page. For more
  information, see the [Page
  guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).

  Fields:
    advancedSettings: Hierarchical advanced settings for this page. The
      settings exposed at the lower level overrides the settings exposed at
      the higher level.
    description: The description of the page. The maximum length is 500
      characters.
    displayName: Required. The human-readable name of the page, unique within
      the flow.
    entryFulfillment: The fulfillment to call when the session is entering the
      page.
    eventHandlers: Handlers associated with the page to handle events such as
      webhook errors, no match or no input.
    form: The form associated with the page, used for collecting parameters
      relevant to the page.
    knowledgeConnectorSettings: Optional. Knowledge connector configuration.
    name: The unique identifier of the page. Required for the Pages.UpdatePage
      method. Pages.CreatePage populates the name automatically. Format:
      `projects//locations//agents//flows//pages/`.
    transitionRouteGroups: Ordered list of `TransitionRouteGroups` added to
      the page. Transition route groups must be unique within a page. If the
      page links both flow-level transition route groups and agent-level
      transition route groups, the flow-level ones will have higher priority
      and will be put before the agent-level ones. * If multiple transition
      routes within a page scope refer to the same intent, then the precedence
      order is: page's transition route -> page's transition route group ->
      flow's transition routes. * If multiple transition route groups within a
      page contain the same intent, then the first group in the ordered list
      takes precedence.
      Format:`projects//locations//agents//flows//transitionRouteGroups/` or
      `projects//locations//agents//transitionRouteGroups/` for agent-level
      groups.
    transitionRoutes: A list of transitions for the transition rules of this
      page. They route the conversation to another page in the same flow, or
      another flow. When we are in a certain page, the TransitionRoutes are
      evaluated in the following order: * TransitionRoutes defined in the page
      with intent specified. * TransitionRoutes defined in the transition
      route groups with intent specified. * TransitionRoutes defined in flow
      with intent specified. * TransitionRoutes defined in the transition
      route groups with intent specified. * TransitionRoutes defined in the
      page with only condition specified. * TransitionRoutes defined in the
      transition route groups with only condition specified.
  """

  advancedSettings = _messages.MessageField('GoogleCloudDialogflowCxV3AdvancedSettings', 1)
  description = _messages.StringField(2)
  displayName = _messages.StringField(3)
  entryFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3Fulfillment', 4)
  eventHandlers = _messages.MessageField('GoogleCloudDialogflowCxV3EventHandler', 5, repeated=True)
  form = _messages.MessageField('GoogleCloudDialogflowCxV3Form', 6)
  knowledgeConnectorSettings = _messages.MessageField('GoogleCloudDialogflowCxV3KnowledgeConnectorSettings', 7)
  name = _messages.StringField(8)
  transitionRouteGroups = _messages.StringField(9, repeated=True)
  transitionRoutes = _messages.MessageField('GoogleCloudDialogflowCxV3TransitionRoute', 10, repeated=True)


class GoogleCloudDialogflowCxV3PageInfo(_messages.Message):
  r"""Represents page information communicated to and from the webhook.

  Fields:
    currentPage: Always present for WebhookRequest. Ignored for
      WebhookResponse. The unique identifier of the current page. Format:
      `projects//locations//agents//flows//pages/`.
    displayName: Always present for WebhookRequest. Ignored for
      WebhookResponse. The display name of the current page.
    formInfo: Optional for both WebhookRequest and WebhookResponse.
      Information about the form.
  """

  currentPage = _messages.StringField(1)
  displayName = _messages.StringField(2)
  formInfo = _messages.MessageField('GoogleCloudDialogflowCxV3PageInfoFormInfo', 3)


class GoogleCloudDialogflowCxV3PageInfoFormInfo(_messages.Message):
  r"""Represents form information.

  Fields:
    parameterInfo: Optional for both WebhookRequest and WebhookResponse. The
      parameters contained in the form. Note that the webhook cannot add or
      remove any form parameter.
  """

  parameterInfo = _messages.MessageField('GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo', 1, repeated=True)


class GoogleCloudDialogflowCxV3PageInfoFormInfoParameterInfo(_messages.Message):
  r"""Represents parameter information.

  Enums:
    StateValueValuesEnum: Always present for WebhookRequest. Required for
      WebhookResponse. The state of the parameter. This field can be set to
      INVALID by the webhook to invalidate the parameter; other values set by
      the webhook will be ignored.

  Fields:
    displayName: Always present for WebhookRequest. Required for
      WebhookResponse. The human-readable name of the parameter, unique within
      the form. This field cannot be modified by the webhook.
    justCollected: Optional for WebhookRequest. Ignored for WebhookResponse.
      Indicates if the parameter value was just collected on the last
      conversation turn.
    required: Optional for both WebhookRequest and WebhookResponse. Indicates
      whether the parameter is required. Optional parameters will not trigger
      prompts; however, they are filled if the user specifies them. Required
      parameters must be filled before form filling concludes.
    state: Always present for WebhookRequest. Required for WebhookResponse.
      The state of the parameter. This field can be set to INVALID by the
      webhook to invalidate the parameter; other values set by the webhook
      will be ignored.
    value: Optional for both WebhookRequest and WebhookResponse. The value of
      the parameter. This field can be set by the webhook to change the
      parameter value.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Always present for WebhookRequest. Required for WebhookResponse. The
    state of the parameter. This field can be set to INVALID by the webhook to
    invalidate the parameter; other values set by the webhook will be ignored.

    Values:
      PARAMETER_STATE_UNSPECIFIED: Not specified. This value should be never
        used.
      EMPTY: Indicates that the parameter does not have a value.
      INVALID: Indicates that the parameter value is invalid. This field can
        be used by the webhook to invalidate the parameter and ask the server
        to collect it from the user again.
      FILLED: Indicates that the parameter has a value.
    """
    PARAMETER_STATE_UNSPECIFIED = 0
    EMPTY = 1
    INVALID = 2
    FILLED = 3

  displayName = _messages.StringField(1)
  justCollected = _messages.BooleanField(2)
  required = _messages.BooleanField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)
  value = _messages.MessageField('extra_types.JsonValue', 5)


class GoogleCloudDialogflowCxV3QueryInput(_messages.Message):
  r"""Represents the query input. It can contain one of: 1. A conversational
  query in the form of text. 2. An intent query that specifies which intent to
  trigger. 3. Natural language speech audio to be processed. 4. An event to be
  triggered. 5. DTMF digits to invoke an intent and fill in parameter value.
  6. The results of a tool executed by the client.

  Fields:
    audio: The natural language speech audio to be processed.
    dtmf: The DTMF event to be handled.
    event: The event to be triggered.
    intent: The intent to be triggered.
    languageCode: Required. The language of the input. See [Language
      Support](https://cloud.google.com/dialogflow/cx/docs/reference/language)
      for a list of the currently supported language codes. Note that queries
      in the same session do not necessarily need to specify the same
      language.
    text: The natural language text to be processed.
    toolCallResult: The results of a tool executed by the client.
  """

  audio = _messages.MessageField('GoogleCloudDialogflowCxV3AudioInput', 1)
  dtmf = _messages.MessageField('GoogleCloudDialogflowCxV3DtmfInput', 2)
  event = _messages.MessageField('GoogleCloudDialogflowCxV3EventInput', 3)
  intent = _messages.MessageField('GoogleCloudDialogflowCxV3IntentInput', 4)
  languageCode = _messages.StringField(5)
  text = _messages.MessageField('GoogleCloudDialogflowCxV3TextInput', 6)
  toolCallResult = _messages.MessageField('GoogleCloudDialogflowCxV3ToolCallResult', 7)


class GoogleCloudDialogflowCxV3ResponseMessage(_messages.Message):
  r"""Represents a response message that can be returned by a conversational
  agent. Response messages are also used for output audio synthesis. The
  approach is as follows: * If at least one OutputAudioText response is
  present, then all OutputAudioText responses are linearly concatenated, and
  the result is used for output audio synthesis. * If the OutputAudioText
  responses are a mixture of text and SSML, then the concatenated result is
  treated as SSML; otherwise, the result is treated as either text or SSML as
  appropriate. The agent designer should ideally use either text or SSML
  consistently throughout the bot design. * Otherwise, all Text responses are
  linearly concatenated, and the result is used for output audio synthesis.
  This approach allows for more sophisticated user experience scenarios, where
  the text displayed to the user may differ from what is heard.

  Enums:
    ResponseTypeValueValuesEnum: Response type.

  Messages:
    PayloadValue: Returns a response containing a custom, platform-specific
      payload.

  Fields:
    channel: The channel which the response is associated with. Clients can
      specify the channel via QueryParameters.channel, and only associated
      channel response will be returned.
    conversationSuccess: Indicates that the conversation succeeded.
    endInteraction: Output only. A signal that indicates the interaction with
      the Dialogflow agent has ended. This message is generated by Dialogflow
      only when the conversation reaches `END_SESSION` page. It is not
      supposed to be defined by the user. It's guaranteed that there is at
      most one such message in each response.
    knowledgeInfoCard: Represents info card for knowledge answers, to be
      better rendered in Dialogflow Messenger.
    liveAgentHandoff: Hands off conversation to a human agent.
    mixedAudio: Output only. An audio response message composed of both the
      synthesized Dialogflow agent responses and responses defined via
      play_audio. This message is generated by Dialogflow only and not
      supposed to be defined by the user.
    outputAudioText: A text or ssml response that is preferentially used for
      TTS output audio synthesis, as described in the comment on the
      ResponseMessage message.
    payload: Returns a response containing a custom, platform-specific
      payload.
    playAudio: Signal that the client should play an audio clip hosted at a
      client-specific URI. Dialogflow uses this to construct mixed_audio.
      However, Dialogflow itself does not try to read or process the URI in
      any way.
    responseType: Response type.
    telephonyTransferCall: A signal that the client should transfer the phone
      call connected to this agent to a third-party endpoint.
    text: Returns a text response.
    toolCall: Returns the definition of a tool call that should be executed by
      the client.
  """

  class ResponseTypeValueValuesEnum(_messages.Enum):
    r"""Response type.

    Values:
      RESPONSE_TYPE_UNSPECIFIED: Not specified.
      ENTRY_PROMPT: The response is from an entry prompt in the page.
      PARAMETER_PROMPT: The response is from form-filling prompt in the page.
      HANDLER_PROMPT: The response is from a transition route or an event
        handler in the page or flow or transition route group.
    """
    RESPONSE_TYPE_UNSPECIFIED = 0
    ENTRY_PROMPT = 1
    PARAMETER_PROMPT = 2
    HANDLER_PROMPT = 3

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Returns a response containing a custom, platform-specific payload.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  channel = _messages.StringField(1)
  conversationSuccess = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess', 2)
  endInteraction = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageEndInteraction', 3)
  knowledgeInfoCard = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard', 4)
  liveAgentHandoff = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff', 5)
  mixedAudio = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageMixedAudio', 6)
  outputAudioText = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText', 7)
  payload = _messages.MessageField('PayloadValue', 8)
  playAudio = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessagePlayAudio', 9)
  responseType = _messages.EnumField('ResponseTypeValueValuesEnum', 10)
  telephonyTransferCall = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall', 11)
  text = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageText', 12)
  toolCall = _messages.MessageField('GoogleCloudDialogflowCxV3ToolCall', 13)


class GoogleCloudDialogflowCxV3ResponseMessageConversationSuccess(_messages.Message):
  r"""Indicates that the conversation succeeded, i.e., the bot handled the
  issue that the customer talked to it about. Dialogflow only uses this to
  determine which conversations should be counted as successful and doesn't
  process the metadata in this message in any way. Note that Dialogflow also
  considers conversations that get to the conversation end page as successful
  even if they don't return ConversationSuccess. You may set this, for
  example: * In the entry_fulfillment of a Page if entering the page indicates
  that the conversation succeeded. * In a webhook response when you determine
  that you handled the customer issue.

  Messages:
    MetadataValue: Custom metadata. Dialogflow doesn't impose any structure on
      this.

  Fields:
    metadata: Custom metadata. Dialogflow doesn't impose any structure on
      this.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Custom metadata. Dialogflow doesn't impose any structure on this.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)


class GoogleCloudDialogflowCxV3ResponseMessageEndInteraction(_messages.Message):
  r"""Indicates that interaction with the Dialogflow agent has ended. This
  message is generated by Dialogflow only and not supposed to be defined by
  the user.
  """



class GoogleCloudDialogflowCxV3ResponseMessageKnowledgeInfoCard(_messages.Message):
  r"""Represents info card response. If the response contains generative
  knowledge prediction, Dialogflow will return a payload with Infobot
  Messenger compatible info card. Otherwise, the info card response is
  skipped.
  """



class GoogleCloudDialogflowCxV3ResponseMessageLiveAgentHandoff(_messages.Message):
  r"""Indicates that the conversation should be handed off to a live agent.
  Dialogflow only uses this to determine which conversations were handed off
  to a human agent for measurement purposes. What else to do with this signal
  is up to you and your handoff procedures. You may set this, for example: *
  In the entry_fulfillment of a Page if entering the page indicates something
  went extremely wrong in the conversation. * In a webhook response when you
  determine that the customer issue can only be handled by a human.

  Messages:
    MetadataValue: Custom metadata for your handoff procedure. Dialogflow
      doesn't impose any structure on this.

  Fields:
    metadata: Custom metadata for your handoff procedure. Dialogflow doesn't
      impose any structure on this.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Custom metadata for your handoff procedure. Dialogflow doesn't impose
    any structure on this.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)


class GoogleCloudDialogflowCxV3ResponseMessageMixedAudio(_messages.Message):
  r"""Represents an audio message that is composed of both segments
  synthesized from the Dialogflow agent prompts and ones hosted externally at
  the specified URIs. The external URIs are specified via play_audio. This
  message is generated by Dialogflow only and not supposed to be defined by
  the user.

  Fields:
    segments: Segments this audio response is composed of.
  """

  segments = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment', 1, repeated=True)


class GoogleCloudDialogflowCxV3ResponseMessageMixedAudioSegment(_messages.Message):
  r"""Represents one segment of audio.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      segment can be interrupted by the end user's speech and the client
      should then start the next Dialogflow request.
    audio: Raw audio synthesized from the Dialogflow agent's response using
      the output config specified in the request.
    uri: Client-specific URI that points to an audio clip accessible to the
      client. Dialogflow does not impose any validation on it.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  audio = _messages.BytesField(2)
  uri = _messages.StringField(3)


class GoogleCloudDialogflowCxV3ResponseMessageOutputAudioText(_messages.Message):
  r"""A text or ssml response that is preferentially used for TTS output audio
  synthesis, as described in the comment on the ResponseMessage message.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      message can be interrupted by the end user's speech and the client can
      then starts the next Dialogflow request.
    ssml: The SSML text to be synthesized. For more information, see
      [SSML](/speech/text-to-speech/docs/ssml).
    text: The raw text to be synthesized.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  ssml = _messages.StringField(2)
  text = _messages.StringField(3)


class GoogleCloudDialogflowCxV3ResponseMessagePlayAudio(_messages.Message):
  r"""Specifies an audio clip to be played by the client as part of the
  response.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      message can be interrupted by the end user's speech and the client can
      then starts the next Dialogflow request.
    audioUri: Required. URI of the audio clip. Dialogflow does not impose any
      validation on this value. It is specific to the client that reads it.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  audioUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3ResponseMessageTelephonyTransferCall(_messages.Message):
  r"""Represents the signal that telles the client to transfer the phone call
  connected to the agent to a third-party endpoint.

  Fields:
    phoneNumber: Transfer the call to a phone number in [E.164
      format](https://en.wikipedia.org/wiki/E.164).
  """

  phoneNumber = _messages.StringField(1)


class GoogleCloudDialogflowCxV3ResponseMessageText(_messages.Message):
  r"""The text response message.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      message can be interrupted by the end user's speech and the client can
      then starts the next Dialogflow request.
    text: Required. A collection of text response variants. If multiple
      variants are defined, only one text response variant is returned at
      runtime.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  text = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3RunContinuousTestMetadata(_messages.Message):
  r"""Metadata returned for the Environments.RunContinuousTest long running
  operation.

  Fields:
    errors: The test errors.
  """

  errors = _messages.MessageField('GoogleCloudDialogflowCxV3TestError', 1, repeated=True)


class GoogleCloudDialogflowCxV3RunContinuousTestResponse(_messages.Message):
  r"""The response message for Environments.RunContinuousTest.

  Fields:
    continuousTestResult: The result for a continuous test run.
  """

  continuousTestResult = _messages.MessageField('GoogleCloudDialogflowCxV3ContinuousTestResult', 1)


class GoogleCloudDialogflowCxV3RunTestCaseMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.RunTestCase long running operation.
  This message currently has no fields.
  """



class GoogleCloudDialogflowCxV3RunTestCaseResponse(_messages.Message):
  r"""The response message for TestCases.RunTestCase.

  Fields:
    result: The result.
  """

  result = _messages.MessageField('GoogleCloudDialogflowCxV3TestCaseResult', 1)


class GoogleCloudDialogflowCxV3SessionInfo(_messages.Message):
  r"""Represents session information communicated to and from the webhook.

  Messages:
    ParametersValue: Optional for WebhookRequest. Optional for
      WebhookResponse. All parameters collected from forms and intents during
      the session. Parameters can be created, updated, or removed by the
      webhook. To remove a parameter from the session, the webhook should
      explicitly set the parameter value to null in WebhookResponse. The map
      is keyed by parameters' display names.

  Fields:
    parameters: Optional for WebhookRequest. Optional for WebhookResponse. All
      parameters collected from forms and intents during the session.
      Parameters can be created, updated, or removed by the webhook. To remove
      a parameter from the session, the webhook should explicitly set the
      parameter value to null in WebhookResponse. The map is keyed by
      parameters' display names.
    session: Always present for WebhookRequest. Ignored for WebhookResponse.
      The unique identifier of the session. This field can be used by the
      webhook to identify a session. Format:
      `projects//locations//agents//sessions/` or
      `projects//locations//agents//environments//sessions/` if environment is
      specified.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional for WebhookRequest. Optional for WebhookResponse. All
    parameters collected from forms and intents during the session. Parameters
    can be created, updated, or removed by the webhook. To remove a parameter
    from the session, the webhook should explicitly set the parameter value to
    null in WebhookResponse. The map is keyed by parameters' display names.

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

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

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

  parameters = _messages.MessageField('ParametersValue', 1)
  session = _messages.StringField(2)


class GoogleCloudDialogflowCxV3TestCase(_messages.Message):
  r"""Represents a test case.

  Fields:
    creationTime: Output only. When the test was created.
    displayName: Required. The human-readable name of the test case, unique
      within the agent. Limit of 200 characters.
    lastTestResult: The latest test result.
    name: The unique identifier of the test case. TestCases.CreateTestCase
      will populate the name automatically. Otherwise use format:
      `projects//locations//agents//testCases/`.
    notes: Additional freeform notes about the test case. Limit of 400
      characters.
    tags: Tags are short descriptions that users may apply to test cases for
      organizational and filtering purposes. Each tag should start with "#"
      and has a limit of 30 characters.
    testCaseConversationTurns: The conversation turns uttered when the test
      case was created, in chronological order. These include the canonical
      set of agent utterances that should occur when the agent is working
      properly.
    testConfig: Config for the test case.
  """

  creationTime = _messages.StringField(1)
  displayName = _messages.StringField(2)
  lastTestResult = _messages.MessageField('GoogleCloudDialogflowCxV3TestCaseResult', 3)
  name = _messages.StringField(4)
  notes = _messages.StringField(5)
  tags = _messages.StringField(6, repeated=True)
  testCaseConversationTurns = _messages.MessageField('GoogleCloudDialogflowCxV3ConversationTurn', 7, repeated=True)
  testConfig = _messages.MessageField('GoogleCloudDialogflowCxV3TestConfig', 8)


class GoogleCloudDialogflowCxV3TestCaseError(_messages.Message):
  r"""Error info for importing a test.

  Fields:
    status: The status associated with the test case.
    testCase: The test case.
  """

  status = _messages.MessageField('GoogleRpcStatus', 1)
  testCase = _messages.MessageField('GoogleCloudDialogflowCxV3TestCase', 2)


class GoogleCloudDialogflowCxV3TestCaseResult(_messages.Message):
  r"""Represents a result from running a test case in an agent environment.

  Enums:
    TestResultValueValuesEnum: Whether the test case passed in the agent
      environment.

  Fields:
    conversationTurns: The conversation turns uttered during the test case
      replay in chronological order.
    environment: Environment where the test was run. If not set, it indicates
      the draft environment.
    name: The resource name for the test case result. Format:
      `projects//locations//agents//testCases//results/`.
    testResult: Whether the test case passed in the agent environment.
    testTime: The time that the test was run.
  """

  class TestResultValueValuesEnum(_messages.Enum):
    r"""Whether the test case passed in the agent environment.

    Values:
      TEST_RESULT_UNSPECIFIED: Not specified. Should never be used.
      PASSED: The test passed.
      FAILED: The test did not pass.
    """
    TEST_RESULT_UNSPECIFIED = 0
    PASSED = 1
    FAILED = 2

  conversationTurns = _messages.MessageField('GoogleCloudDialogflowCxV3ConversationTurn', 1, repeated=True)
  environment = _messages.StringField(2)
  name = _messages.StringField(3)
  testResult = _messages.EnumField('TestResultValueValuesEnum', 4)
  testTime = _messages.StringField(5)


class GoogleCloudDialogflowCxV3TestConfig(_messages.Message):
  r"""Represents configurations for a test case.

  Fields:
    flow: Flow name to start the test case with. Format:
      `projects//locations//agents//flows/`. Only one of `flow` and `page`
      should be set to indicate the starting point of the test case. If
      neither is set, the test case will start with start page on the default
      start flow.
    page: The page to start the test case with. Format:
      `projects//locations//agents//flows//pages/`. Only one of `flow` and
      `page` should be set to indicate the starting point of the test case. If
      neither is set, the test case will start with start page on the default
      start flow.
    trackingParameters: Session parameters to be compared when calculating
      differences.
  """

  flow = _messages.StringField(1)
  page = _messages.StringField(2)
  trackingParameters = _messages.StringField(3, repeated=True)


class GoogleCloudDialogflowCxV3TestError(_messages.Message):
  r"""Error info for running a test.

  Fields:
    status: The status associated with the test.
    testCase: The test case resource name.
    testTime: The timestamp when the test was completed.
  """

  status = _messages.MessageField('GoogleRpcStatus', 1)
  testCase = _messages.StringField(2)
  testTime = _messages.StringField(3)


class GoogleCloudDialogflowCxV3TestRunDifference(_messages.Message):
  r"""The description of differences between original and replayed agent
  output.

  Enums:
    TypeValueValuesEnum: The type of diff.

  Fields:
    description: A human readable description of the diff, showing the actual
      output vs expected output.
    type: The type of diff.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The type of diff.

    Values:
      DIFF_TYPE_UNSPECIFIED: Should never be used.
      INTENT: The intent.
      PAGE: The page.
      PARAMETERS: The parameters.
      UTTERANCE: The message utterance.
      FLOW: The flow.
    """
    DIFF_TYPE_UNSPECIFIED = 0
    INTENT = 1
    PAGE = 2
    PARAMETERS = 3
    UTTERANCE = 4
    FLOW = 5

  description = _messages.StringField(1)
  type = _messages.EnumField('TypeValueValuesEnum', 2)


class GoogleCloudDialogflowCxV3TextInput(_messages.Message):
  r"""Represents the natural language text to be processed.

  Fields:
    text: Required. The UTF-8 encoded natural language text to be processed.
  """

  text = _messages.StringField(1)


class GoogleCloudDialogflowCxV3ToolCall(_messages.Message):
  r"""Represents a call of a specific tool's action with the specified inputs.

  Messages:
    InputParametersValue: Optional. The action's input parameters.

  Fields:
    action: Required. The name of the tool's action associated with this call.
    inputParameters: Optional. The action's input parameters.
    tool: Required. The tool associated with this call. Format:
      `projects//locations//agents//tools/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InputParametersValue(_messages.Message):
    r"""Optional. The action's input parameters.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  inputParameters = _messages.MessageField('InputParametersValue', 2)
  tool = _messages.StringField(3)


class GoogleCloudDialogflowCxV3ToolCallResult(_messages.Message):
  r"""The result of calling a tool's action that has been executed by the
  client.

  Messages:
    OutputParametersValue: The tool call's output parameters.

  Fields:
    action: Required. The name of the tool's action associated with this call.
    error: The tool call's error.
    outputParameters: The tool call's output parameters.
    tool: Required. The tool associated with this call. Format:
      `projects//locations//agents//tools/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class OutputParametersValue(_messages.Message):
    r"""The tool call's output parameters.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  error = _messages.MessageField('GoogleCloudDialogflowCxV3ToolCallResultError', 2)
  outputParameters = _messages.MessageField('OutputParametersValue', 3)
  tool = _messages.StringField(4)


class GoogleCloudDialogflowCxV3ToolCallResultError(_messages.Message):
  r"""An error produced by the tool call.

  Fields:
    message: Optional. The error message of the function.
  """

  message = _messages.StringField(1)


class GoogleCloudDialogflowCxV3TransitionRoute(_messages.Message):
  r"""A transition route specifies a intent that can be matched and/or a data
  condition that can be evaluated during a session. When a specified
  transition is matched, the following actions are taken in order: * If there
  is a `trigger_fulfillment` associated with the transition, it will be
  called. * If there is a `target_page` associated with the transition, the
  session will transition into the specified page. * If there is a
  `target_flow` associated with the transition, the session will transition
  into the specified flow.

  Fields:
    condition: The condition to evaluate against form parameters or session
      parameters. See the [conditions reference](https://cloud.google.com/dial
      ogflow/cx/docs/reference/condition). At least one of `intent` or
      `condition` must be specified. When both `intent` and `condition` are
      specified, the transition can only happen when both are fulfilled.
    description: Optional. The description of the transition route. The
      maximum length is 500 characters.
    intent: The unique identifier of an Intent. Format:
      `projects//locations//agents//intents/`. Indicates that the transition
      can only happen when the given intent is matched. At least one of
      `intent` or `condition` must be specified. When both `intent` and
      `condition` are specified, the transition can only happen when both are
      fulfilled.
    name: Output only. The unique identifier of this transition route.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
    triggerFulfillment: The fulfillment to call when the condition is
      satisfied. At least one of `trigger_fulfillment` and `target` must be
      specified. When both are defined, `trigger_fulfillment` is executed
      first.
  """

  condition = _messages.StringField(1)
  description = _messages.StringField(2)
  intent = _messages.StringField(3)
  name = _messages.StringField(4)
  targetFlow = _messages.StringField(5)
  targetPage = _messages.StringField(6)
  triggerFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3Fulfillment', 7)


class GoogleCloudDialogflowCxV3TurnSignals(_messages.Message):
  r"""Collection of all signals that were extracted for a single turn of the
  conversation.

  Enums:
    FailureReasonsValueListEntryValuesEnum:

  Fields:
    agentEscalated: Whether agent responded with LiveAgentHandoff fulfillment.
    dtmfUsed: Whether user was using DTMF input.
    failureReasons: Failure reasons of the turn.
    noMatch: Whether NLU predicted NO_MATCH.
    noUserInput: Whether user provided no input.
    reachedEndPage: Whether turn resulted in End Session page.
    sentimentMagnitude: Sentiment magnitude of the user utterance if
      [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentimen
      t) was enabled.
    sentimentScore: Sentiment score of the user utterance if
      [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentimen
      t) was enabled.
    userEscalated: Whether user was specifically asking for a live agent.
    webhookStatuses: Human-readable statuses of the webhooks triggered during
      this turn.
  """

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

    Values:
      FAILURE_REASON_UNSPECIFIED: Failure reason is not assigned.
      FAILED_INTENT: Whether NLU failed to recognize user intent.
      FAILED_WEBHOOK: Whether webhook failed during the turn.
    """
    FAILURE_REASON_UNSPECIFIED = 0
    FAILED_INTENT = 1
    FAILED_WEBHOOK = 2

  agentEscalated = _messages.BooleanField(1)
  dtmfUsed = _messages.BooleanField(2)
  failureReasons = _messages.EnumField('FailureReasonsValueListEntryValuesEnum', 3, repeated=True)
  noMatch = _messages.BooleanField(4)
  noUserInput = _messages.BooleanField(5)
  reachedEndPage = _messages.BooleanField(6)
  sentimentMagnitude = _messages.FloatField(7, variant=_messages.Variant.FLOAT)
  sentimentScore = _messages.FloatField(8, variant=_messages.Variant.FLOAT)
  userEscalated = _messages.BooleanField(9)
  webhookStatuses = _messages.StringField(10, repeated=True)


class GoogleCloudDialogflowCxV3Webhook(_messages.Message):
  r"""Webhooks host the developer's business logic. During a session, webhooks
  allow the developer to use the data extracted by Dialogflow's natural
  language processing to generate dynamic responses, validate collected data,
  or trigger actions on the backend.

  Fields:
    disabled: Indicates whether the webhook is disabled.
    displayName: Required. The human-readable name of the webhook, unique
      within the agent.
    genericWebService: Configuration for a generic web service.
    name: The unique identifier of the webhook. Required for the
      Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name
      automatically. Format: `projects//locations//agents//webhooks/`.
    serviceDirectory: Configuration for a [Service
      Directory](https://cloud.google.com/service-directory) service.
    timeout: Webhook execution timeout. Execution is considered failed if
      Dialogflow doesn't receive a response from webhook at the end of the
      timeout period. Defaults to 5 seconds, maximum allowed timeout is 30
      seconds.
  """

  disabled = _messages.BooleanField(1)
  displayName = _messages.StringField(2)
  genericWebService = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookGenericWebService', 3)
  name = _messages.StringField(4)
  serviceDirectory = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig', 5)
  timeout = _messages.StringField(6)


class GoogleCloudDialogflowCxV3WebhookGenericWebService(_messages.Message):
  r"""Represents configuration for a generic web service.

  Enums:
    HttpMethodValueValuesEnum: Optional. HTTP method for the flexible webhook
      calls. Standard webhook always uses POST.
    ServiceAgentAuthValueValuesEnum: Optional. Indicate the auth token type
      generated from the [Diglogflow service
      agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-
      service-agent). The generated token is sent in the Authorization header.
    WebhookTypeValueValuesEnum: Optional. Type of the webhook.

  Messages:
    ParameterMappingValue: Optional. Maps the values extracted from specific
      fields of the flexible webhook response into session parameters. - Key:
      session parameter name - Value: field path in the webhook response
    RequestHeadersValue: The HTTP request headers to send together with
      webhook requests.
    SecretVersionsForRequestHeadersValue: Optional. The HTTP request headers
      to send together with webhook requests. Header values are stored in
      SecretManager secret versions. When the same header name is specified in
      both `request_headers` and `secret_versions_for_request_headers`, the
      value in `secret_versions_for_request_headers` will be used.

  Fields:
    allowedCaCerts: Optional. Specifies a list of allowed custom CA
      certificates (in DER format) for HTTPS verification. This overrides the
      default SSL trust store. If this is empty or unspecified, Dialogflow
      will use Google's default trust store to verify certificates. N.B. Make
      sure the HTTPS server certificates are signed with "subject alt name".
      For instance a certificate can be self-signed using the following
      command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey
      example.com.key \ -out example.com.crt \ -extfile <(printf
      "\nsubjectAltName='DNS:www.example.com'") ```
    httpMethod: Optional. HTTP method for the flexible webhook calls. Standard
      webhook always uses POST.
    oauthConfig: Optional. The OAuth configuration of the webhook. If
      specified, Dialogflow will initiate the OAuth client credential flow to
      exchange an access token from the 3rd party platform and put it in the
      auth header.
    parameterMapping: Optional. Maps the values extracted from specific fields
      of the flexible webhook response into session parameters. - Key: session
      parameter name - Value: field path in the webhook response
    password: The password for HTTP Basic authentication.
    requestBody: Optional. Defines a custom JSON object as request body to
      send to flexible webhook.
    requestHeaders: The HTTP request headers to send together with webhook
      requests.
    secretVersionForUsernamePassword: Optional. The SecretManager secret
      version resource storing the username:password pair for HTTP Basic
      authentication. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
    secretVersionsForRequestHeaders: Optional. The HTTP request headers to
      send together with webhook requests. Header values are stored in
      SecretManager secret versions. When the same header name is specified in
      both `request_headers` and `secret_versions_for_request_headers`, the
      value in `secret_versions_for_request_headers` will be used.
    serviceAccountAuthConfig: Optional. Configuration for service account
      authentication.
    serviceAgentAuth: Optional. Indicate the auth token type generated from
      the [Diglogflow service
      agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-
      service-agent). The generated token is sent in the Authorization header.
    uri: Required. The webhook URI for receiving POST requests. It must use
      https protocol.
    username: The user name for HTTP Basic authentication.
    webhookType: Optional. Type of the webhook.
  """

  class HttpMethodValueValuesEnum(_messages.Enum):
    r"""Optional. HTTP method for the flexible webhook calls. Standard webhook
    always uses POST.

    Values:
      HTTP_METHOD_UNSPECIFIED: HTTP method not specified.
      POST: HTTP POST Method.
      GET: HTTP GET Method.
      HEAD: HTTP HEAD Method.
      PUT: HTTP PUT Method.
      DELETE: HTTP DELETE Method.
      PATCH: HTTP PATCH Method.
      OPTIONS: HTTP OPTIONS Method.
    """
    HTTP_METHOD_UNSPECIFIED = 0
    POST = 1
    GET = 2
    HEAD = 3
    PUT = 4
    DELETE = 5
    PATCH = 6
    OPTIONS = 7

  class ServiceAgentAuthValueValuesEnum(_messages.Enum):
    r"""Optional. Indicate the auth token type generated from the [Diglogflow
    service agent](https://cloud.google.com/iam/docs/service-
    agents#dialogflow-service-agent). The generated token is sent in the
    Authorization header.

    Values:
      SERVICE_AGENT_AUTH_UNSPECIFIED: Service agent auth type unspecified.
        Default to ID_TOKEN.
      NONE: No token used.
      ID_TOKEN: Use [ID
        token](https://cloud.google.com/docs/authentication/token-types#id)
        generated from service agent. This can be used to access Cloud
        Function and Cloud Run after you grant Invoker role to `service-@gcp-
        sa-dialogflow.iam.gserviceaccount.com`.
      ACCESS_TOKEN: Use [access
        token](https://cloud.google.com/docs/authentication/token-
        types#access) generated from service agent. This can be used to access
        other Google Cloud APIs after you grant required roles to
        `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`.
    """
    SERVICE_AGENT_AUTH_UNSPECIFIED = 0
    NONE = 1
    ID_TOKEN = 2
    ACCESS_TOKEN = 3

  class WebhookTypeValueValuesEnum(_messages.Enum):
    r"""Optional. Type of the webhook.

    Values:
      WEBHOOK_TYPE_UNSPECIFIED: Default value. This value is unused.
      STANDARD: Represents a standard webhook.
      FLEXIBLE: Represents a flexible webhook.
    """
    WEBHOOK_TYPE_UNSPECIFIED = 0
    STANDARD = 1
    FLEXIBLE = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParameterMappingValue(_messages.Message):
    r"""Optional. Maps the values extracted from specific fields of the
    flexible webhook response into session parameters. - Key: session
    parameter name - Value: field path in the webhook response

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

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

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ParameterMappingValue 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 RequestHeadersValue(_messages.Message):
    r"""The HTTP request headers to send together with webhook requests.

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

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

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a RequestHeadersValue 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 SecretVersionsForRequestHeadersValue(_messages.Message):
    r"""Optional. The HTTP request headers to send together with webhook
    requests. Header values are stored in SecretManager secret versions. When
    the same header name is specified in both `request_headers` and
    `secret_versions_for_request_headers`, the value in
    `secret_versions_for_request_headers` will be used.

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

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

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

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

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

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

  allowedCaCerts = _messages.BytesField(1, repeated=True)
  httpMethod = _messages.EnumField('HttpMethodValueValuesEnum', 2)
  oauthConfig = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig', 3)
  parameterMapping = _messages.MessageField('ParameterMappingValue', 4)
  password = _messages.StringField(5)
  requestBody = _messages.StringField(6)
  requestHeaders = _messages.MessageField('RequestHeadersValue', 7)
  secretVersionForUsernamePassword = _messages.StringField(8)
  secretVersionsForRequestHeaders = _messages.MessageField('SecretVersionsForRequestHeadersValue', 9)
  serviceAccountAuthConfig = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookGenericWebServiceServiceAccountAuthConfig', 10)
  serviceAgentAuth = _messages.EnumField('ServiceAgentAuthValueValuesEnum', 11)
  uri = _messages.StringField(12)
  username = _messages.StringField(13)
  webhookType = _messages.EnumField('WebhookTypeValueValuesEnum', 14)


class GoogleCloudDialogflowCxV3WebhookGenericWebServiceOAuthConfig(_messages.Message):
  r"""Represents configuration of OAuth client credential flow for 3rd party
  API authentication.

  Fields:
    clientId: Required. The client ID provided by the 3rd party platform.
    clientSecret: Optional. The client secret provided by the 3rd party
      platform.
    scopes: Optional. The OAuth scopes to grant.
    secretVersionForClientSecret: Optional. The name of the SecretManager
      secret version resource storing the client secret. If this field is set,
      the `client_secret` field will be ignored. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
    tokenEndpoint: Required. The token endpoint provided by the 3rd party
      platform to exchange an access token.
  """

  clientId = _messages.StringField(1)
  clientSecret = _messages.StringField(2)
  scopes = _messages.StringField(3, repeated=True)
  secretVersionForClientSecret = _messages.StringField(4)
  tokenEndpoint = _messages.StringField(5)


class GoogleCloudDialogflowCxV3WebhookGenericWebServiceSecretVersionHeaderValue(_messages.Message):
  r"""Represents the value of an HTTP header stored in a SecretManager secret
  version.

  Fields:
    secretVersion: Required. The SecretManager secret version resource storing
      the header value. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
  """

  secretVersion = _messages.StringField(1)


class GoogleCloudDialogflowCxV3WebhookGenericWebServiceServiceAccountAuthConfig(_messages.Message):
  r"""Configuration for authentication using a service account.

  Fields:
    serviceAccount: Required. The email address of the service account used to
      authenticate the webhook call. Dialogflow uses this service account to
      exchange an access token and the access token is then sent in the
      `Authorization` header of the webhook request. The service account must
      have the `roles/iam.serviceAccountTokenCreator` role granted to the
      [Dialogflow service agent](https://cloud.google.com/iam/docs/service-
      agents#dialogflow-service-agent).
  """

  serviceAccount = _messages.StringField(1)


class GoogleCloudDialogflowCxV3WebhookRequest(_messages.Message):
  r"""The request message for a webhook call. The request is sent as a JSON
  object and the field names will be presented in camel cases. You may see
  undocumented fields in an actual request. These fields are used internally
  by Dialogflow and should be ignored.

  Messages:
    PayloadValue: Custom data set in QueryParameters.payload.

  Fields:
    detectIntentResponseId: Always present. The unique identifier of the
      DetectIntentResponse that will be returned to the API caller.
    dtmfDigits: If DTMF was provided as input, this field will contain the
      DTMF digits.
    fulfillmentInfo: Always present. Information about the fulfillment that
      triggered this webhook call.
    intentInfo: Information about the last matched intent.
    languageCode: The language code specified in the original request.
    languageInfo: Information about the language of the request.
    messages: The list of rich message responses to present to the user.
      Webhook can choose to append or replace this list in
      WebhookResponse.fulfillment_response;
    pageInfo: Information about page status.
    payload: Custom data set in QueryParameters.payload.
    sentimentAnalysisResult: The sentiment analysis result of the current user
      request. The field is filled when sentiment analysis is configured to be
      enabled for the request.
    sessionInfo: Information about session status.
    text: If natural language text was provided as input, this field will
      contain a copy of the text.
    transcript: If natural language speech audio was provided as input, this
      field will contain the transcript for the audio.
    triggerEvent: If an event was provided as input, this field will contain
      the name of the event.
    triggerIntent: If an intent was provided as input, this field will contain
      a copy of the intent identifier. Format:
      `projects//locations//agents//intents/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Custom data set in QueryParameters.payload.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  detectIntentResponseId = _messages.StringField(1)
  dtmfDigits = _messages.StringField(2)
  fulfillmentInfo = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo', 3)
  intentInfo = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookRequestIntentInfo', 4)
  languageCode = _messages.StringField(5)
  languageInfo = _messages.MessageField('GoogleCloudDialogflowCxV3LanguageInfo', 6)
  messages = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessage', 7, repeated=True)
  pageInfo = _messages.MessageField('GoogleCloudDialogflowCxV3PageInfo', 8)
  payload = _messages.MessageField('PayloadValue', 9)
  sentimentAnalysisResult = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult', 10)
  sessionInfo = _messages.MessageField('GoogleCloudDialogflowCxV3SessionInfo', 11)
  text = _messages.StringField(12)
  transcript = _messages.StringField(13)
  triggerEvent = _messages.StringField(14)
  triggerIntent = _messages.StringField(15)


class GoogleCloudDialogflowCxV3WebhookRequestFulfillmentInfo(_messages.Message):
  r"""Represents fulfillment information communicated to the webhook.

  Fields:
    tag: Always present. The value of the Fulfillment.tag field will be
      populated in this field by Dialogflow when the associated webhook is
      called. The tag is typically used by the webhook service to identify
      which fulfillment is being called, but it could be used for other
      purposes.
  """

  tag = _messages.StringField(1)


class GoogleCloudDialogflowCxV3WebhookRequestIntentInfo(_messages.Message):
  r"""Represents intent information communicated to the webhook.

  Messages:
    ParametersValue: Parameters identified as a result of intent matching.
      This is a map of the name of the identified parameter to the value of
      the parameter identified from the user's utterance. All parameters
      defined in the matched intent that are identified will be surfaced here.

  Fields:
    confidence: The confidence of the matched intent. Values range from 0.0
      (completely uncertain) to 1.0 (completely certain).
    displayName: Always present. The display name of the last matched intent.
    lastMatchedIntent: Always present. The unique identifier of the last
      matched intent. Format: `projects//locations//agents//intents/`.
    parameters: Parameters identified as a result of intent matching. This is
      a map of the name of the identified parameter to the value of the
      parameter identified from the user's utterance. All parameters defined
      in the matched intent that are identified will be surfaced here.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Parameters identified as a result of intent matching. This is a map of
    the name of the identified parameter to the value of the parameter
    identified from the user's utterance. All parameters defined in the
    matched intent that are identified will be surfaced here.

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

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

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

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

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

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

  confidence = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  displayName = _messages.StringField(2)
  lastMatchedIntent = _messages.StringField(3)
  parameters = _messages.MessageField('ParametersValue', 4)


class GoogleCloudDialogflowCxV3WebhookRequestIntentInfoIntentParameterValue(_messages.Message):
  r"""Represents a value for an intent parameter.

  Fields:
    originalValue: Always present. Original text value extracted from user
      utterance.
    resolvedValue: Always present. Structured value for the parameter
      extracted from user utterance.
  """

  originalValue = _messages.StringField(1)
  resolvedValue = _messages.MessageField('extra_types.JsonValue', 2)


class GoogleCloudDialogflowCxV3WebhookRequestSentimentAnalysisResult(_messages.Message):
  r"""Represents the result of sentiment analysis.

  Fields:
    magnitude: A non-negative number in the [0, +inf) range, which represents
      the absolute magnitude of sentiment, regardless of score (positive or
      negative).
    score: Sentiment score between -1.0 (negative sentiment) and 1.0 (positive
      sentiment).
  """

  magnitude = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  score = _messages.FloatField(2, variant=_messages.Variant.FLOAT)


class GoogleCloudDialogflowCxV3WebhookResponse(_messages.Message):
  r"""The response message for a webhook call.

  Messages:
    PayloadValue: Value to append directly to QueryResult.webhook_payloads.

  Fields:
    fulfillmentResponse: The fulfillment response to send to the user. This
      field can be omitted by the webhook if it does not intend to send any
      response to the user.
    pageInfo: Information about page status. This field can be omitted by the
      webhook if it does not intend to modify page status.
    payload: Value to append directly to QueryResult.webhook_payloads.
    sessionInfo: Information about session status. This field can be omitted
      by the webhook if it does not intend to modify session status.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Value to append directly to QueryResult.webhook_payloads.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  fulfillmentResponse = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse', 1)
  pageInfo = _messages.MessageField('GoogleCloudDialogflowCxV3PageInfo', 2)
  payload = _messages.MessageField('PayloadValue', 3)
  sessionInfo = _messages.MessageField('GoogleCloudDialogflowCxV3SessionInfo', 4)
  targetFlow = _messages.StringField(5)
  targetPage = _messages.StringField(6)


class GoogleCloudDialogflowCxV3WebhookResponseFulfillmentResponse(_messages.Message):
  r"""Represents a fulfillment response to the user.

  Enums:
    MergeBehaviorValueValuesEnum: Merge behavior for `messages`.

  Fields:
    mergeBehavior: Merge behavior for `messages`.
    messages: The list of rich message responses to present to the user.
  """

  class MergeBehaviorValueValuesEnum(_messages.Enum):
    r"""Merge behavior for `messages`.

    Values:
      MERGE_BEHAVIOR_UNSPECIFIED: Not specified. `APPEND` will be used.
      APPEND: `messages` will be appended to the list of messages waiting to
        be sent to the user.
      REPLACE: `messages` will replace the list of messages waiting to be sent
        to the user.
    """
    MERGE_BEHAVIOR_UNSPECIFIED = 0
    APPEND = 1
    REPLACE = 2

  mergeBehavior = _messages.EnumField('MergeBehaviorValueValuesEnum', 1)
  messages = _messages.MessageField('GoogleCloudDialogflowCxV3ResponseMessage', 2, repeated=True)


class GoogleCloudDialogflowCxV3WebhookServiceDirectoryConfig(_messages.Message):
  r"""Represents configuration for a [Service
  Directory](https://cloud.google.com/service-directory) service.

  Fields:
    genericWebService: Generic Service configuration of this webhook.
    service: Required. The name of [Service
      Directory](https://cloud.google.com/service-directory) service. Format:
      `projects//locations//namespaces//services/`. `Location ID` of the
      service directory must be the same as the location of the agent.
  """

  genericWebService = _messages.MessageField('GoogleCloudDialogflowCxV3WebhookGenericWebService', 1)
  service = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1AdvancedSettings(_messages.Message):
  r"""Hierarchical advanced settings for
  agent/flow/page/fulfillment/parameter. Settings exposed at lower level
  overrides the settings exposed at higher level. Overriding occurs at the
  sub-setting level. For example, the playback_interruption_settings at
  fulfillment level only overrides the playback_interruption_settings at the
  agent level, leaving other settings at the agent level unchanged. DTMF
  settings does not override each other. DTMF settings set at different levels
  define DTMF detections running in parallel. Hierarchy:
  Agent->Flow->Page->Fulfillment/Parameter.

  Fields:
    audioExportGcsDestination: If present, incoming audio is exported by
      Dialogflow to the configured Google Cloud Storage destination. Exposed
      at the following levels: - Agent level - Flow level
    dtmfSettings: Settings for DTMF. Exposed at the following levels: - Agent
      level - Flow level - Page level - Parameter level.
    loggingSettings: Settings for logging. Settings for Dialogflow History,
      Contact Center messages, StackDriver logs, and speech logging. Exposed
      at the following levels: - Agent level.
    speechSettings: Settings for speech to text detection. Exposed at the
      following levels: - Agent level - Flow level - Page level - Parameter
      level
  """

  audioExportGcsDestination = _messages.MessageField('GoogleCloudDialogflowCxV3beta1GcsDestination', 1)
  dtmfSettings = _messages.MessageField('GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings', 2)
  loggingSettings = _messages.MessageField('GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings', 3)
  speechSettings = _messages.MessageField('GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings', 4)


class GoogleCloudDialogflowCxV3beta1AdvancedSettingsDtmfSettings(_messages.Message):
  r"""Define behaviors for DTMF (dual tone multi frequency).

  Fields:
    enabled: If true, incoming audio is processed for DTMF (dual tone multi
      frequency) events. For example, if the caller presses a button on their
      telephone keypad and DTMF processing is enabled, Dialogflow will detect
      the event (e.g. a "3" was pressed) in the incoming audio and pass the
      event to the bot to drive business logic (e.g. when 3 is pressed, return
      the account balance).
    endpointingTimeoutDuration: Endpoint timeout setting for matching dtmf
      input to regex.
    finishDigit: The digit that terminates a DTMF digit sequence.
    interdigitTimeoutDuration: Interdigit timeout setting for matching dtmf
      input to regex.
    maxDigits: Max length of DTMF digits.
  """

  enabled = _messages.BooleanField(1)
  endpointingTimeoutDuration = _messages.StringField(2)
  finishDigit = _messages.StringField(3)
  interdigitTimeoutDuration = _messages.StringField(4)
  maxDigits = _messages.IntegerField(5, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowCxV3beta1AdvancedSettingsLoggingSettings(_messages.Message):
  r"""Define behaviors on logging.

  Fields:
    enableConsentBasedRedaction: Enables consent-based end-user input
      redaction, if true, a pre-defined session parameter
      `$session.params.conversation-redaction` will be used to determine if
      the utterance should be redacted.
    enableInteractionLogging: Enables DF Interaction logging.
    enableStackdriverLogging: Enables Google Cloud Logging.
  """

  enableConsentBasedRedaction = _messages.BooleanField(1)
  enableInteractionLogging = _messages.BooleanField(2)
  enableStackdriverLogging = _messages.BooleanField(3)


class GoogleCloudDialogflowCxV3beta1AdvancedSettingsSpeechSettings(_messages.Message):
  r"""Define behaviors of speech to text detection.

  Messages:
    ModelsValue: Mapping from language to Speech-to-Text model. The mapped
      Speech-to-Text model will be selected for requests from its
      corresponding language. For more information, see [Speech
      models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      models).

  Fields:
    endpointerSensitivity: Sensitivity of the speech model that detects the
      end of speech. Scale from 0 to 100.
    models: Mapping from language to Speech-to-Text model. The mapped Speech-
      to-Text model will be selected for requests from its corresponding
      language. For more information, see [Speech
      models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      models).
    noSpeechTimeout: Timeout before detecting no speech.
    useTimeoutBasedEndpointing: Use timeout based endpointing, interpreting
      endpointer sensitivity as seconds of timeout value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ModelsValue(_messages.Message):
    r"""Mapping from language to Speech-to-Text model. The mapped Speech-to-
    Text model will be selected for requests from its corresponding language.
    For more information, see [Speech
    models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
    models).

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

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

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

  endpointerSensitivity = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  models = _messages.MessageField('ModelsValue', 2)
  noSpeechTimeout = _messages.StringField(3)
  useTimeoutBasedEndpointing = _messages.BooleanField(4)


class GoogleCloudDialogflowCxV3beta1AudioInput(_messages.Message):
  r"""Represents the natural speech audio to be processed.

  Fields:
    audio: The natural language speech audio to be processed. A single request
      can contain up to 2 minutes of speech audio data. The transcribed text
      cannot contain more than 256 bytes. For non-streaming audio detect
      intent, both `config` and `audio` must be provided. For streaming audio
      detect intent, `config` must be provided in the first request and
      `audio` must be provided in all following requests.
    config: Required. Instructs the speech recognizer how to process the
      speech audio.
  """

  audio = _messages.BytesField(1)
  config = _messages.MessageField('GoogleCloudDialogflowCxV3beta1InputAudioConfig', 2)


class GoogleCloudDialogflowCxV3beta1BargeInConfig(_messages.Message):
  r"""Configuration of the barge-in behavior. Barge-in instructs the API to
  return a detected utterance at a proper time while the client is playing
  back the response audio from a previous request. When the client sees the
  utterance, it should stop the playback and immediately get ready for
  receiving the responses for the current request. The barge-in handling
  requires the client to start streaming audio input as soon as it starts
  playing back the audio from the previous response. The playback is modeled
  into two phases: * No barge-in phase: which goes first and during which
  speech detection should not be carried out. * Barge-in phase: which follows
  the no barge-in phase and during which the API starts speech detection and
  may inform the client that an utterance has been detected. Note that no-
  speech event is not expected in this phase. The client provides this
  configuration in terms of the durations of those two phases. The durations
  are measured in terms of the audio length from the start of the input audio.
  No-speech event is a response with END_OF_UTTERANCE without any transcript
  following up.

  Fields:
    noBargeInDuration: Duration that is not eligible for barge-in at the
      beginning of the input audio.
    totalDuration: Total duration for the playback at the beginning of the
      input audio.
  """

  noBargeInDuration = _messages.StringField(1)
  totalDuration = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1BatchRunTestCasesMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.BatchRunTestCases long running
  operation.

  Fields:
    errors: The test errors.
  """

  errors = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestError', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1BatchRunTestCasesResponse(_messages.Message):
  r"""The response message for TestCases.BatchRunTestCases.

  Fields:
    results: The test case results. The detailed conversation turns are empty
      in this response.
  """

  results = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestCaseResult', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1ContinuousTestResult(_messages.Message):
  r"""Represents a result from running a test case in an agent environment.

  Enums:
    ResultValueValuesEnum: The result of this continuous test run, i.e.
      whether all the tests in this continuous test run pass or not.

  Fields:
    name: The resource name for the continuous test result. Format:
      `projects//locations//agents//environments//continuousTestResults/`.
    result: The result of this continuous test run, i.e. whether all the tests
      in this continuous test run pass or not.
    runTime: Time when the continuous testing run starts.
    testCaseResults: A list of individual test case results names in this
      continuous test run.
  """

  class ResultValueValuesEnum(_messages.Enum):
    r"""The result of this continuous test run, i.e. whether all the tests in
    this continuous test run pass or not.

    Values:
      AGGREGATED_TEST_RESULT_UNSPECIFIED: Not specified. Should never be used.
      PASSED: All the tests passed.
      FAILED: At least one test did not pass.
    """
    AGGREGATED_TEST_RESULT_UNSPECIFIED = 0
    PASSED = 1
    FAILED = 2

  name = _messages.StringField(1)
  result = _messages.EnumField('ResultValueValuesEnum', 2)
  runTime = _messages.StringField(3)
  testCaseResults = _messages.StringField(4, repeated=True)


class GoogleCloudDialogflowCxV3beta1ConversationSignals(_messages.Message):
  r"""This message is used to hold all the Conversation Signals data, which
  will be converted to JSON and exported to BigQuery.

  Fields:
    turnSignals: Required. Turn signals for the current turn.
  """

  turnSignals = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TurnSignals', 1)


class GoogleCloudDialogflowCxV3beta1ConversationTurn(_messages.Message):
  r"""One interaction between a human and virtual agent. The human provides
  some input and the virtual agent provides a response.

  Fields:
    userInput: The user input.
    virtualAgentOutput: The virtual agent output.
  """

  userInput = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput', 1)
  virtualAgentOutput = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput', 2)


class GoogleCloudDialogflowCxV3beta1ConversationTurnUserInput(_messages.Message):
  r"""The input from the human user.

  Messages:
    InjectedParametersValue: Parameters that need to be injected into the
      conversation during intent detection.

  Fields:
    enableSentimentAnalysis: Whether sentiment analysis is enabled.
    injectedParameters: Parameters that need to be injected into the
      conversation during intent detection.
    input: Supports text input, event input, dtmf input in the test case.
    isWebhookEnabled: If webhooks should be allowed to trigger in response to
      the user utterance. Often if parameters are injected, webhooks should
      not be enabled.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InjectedParametersValue(_messages.Message):
    r"""Parameters that need to be injected into the conversation during
    intent detection.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  enableSentimentAnalysis = _messages.BooleanField(1)
  injectedParameters = _messages.MessageField('InjectedParametersValue', 2)
  input = _messages.MessageField('GoogleCloudDialogflowCxV3beta1QueryInput', 3)
  isWebhookEnabled = _messages.BooleanField(4)


class GoogleCloudDialogflowCxV3beta1ConversationTurnVirtualAgentOutput(_messages.Message):
  r"""The output from the virtual agent.

  Messages:
    DiagnosticInfoValue: Required. Input only. The diagnostic info output for
      the turn. Required to calculate the testing coverage.
    SessionParametersValue: The session parameters available to the bot at
      this point.

  Fields:
    currentPage: The Page on which the utterance was spoken. Only name and
      displayName will be set.
    diagnosticInfo: Required. Input only. The diagnostic info output for the
      turn. Required to calculate the testing coverage.
    differences: Output only. If this is part of a result conversation turn,
      the list of differences between the original run and the replay for this
      output, if any.
    sessionParameters: The session parameters available to the bot at this
      point.
    status: Response error from the agent in the test result. If set, other
      output is empty.
    textResponses: The text responses from the agent for the turn.
    triggeredIntent: The Intent that triggered the response. Only name and
      displayName will be set.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DiagnosticInfoValue(_messages.Message):
    r"""Required. Input only. The diagnostic info output for the turn.
    Required to calculate the testing coverage.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DiagnosticInfoValue 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 SessionParametersValue(_messages.Message):
    r"""The session parameters available to the bot at this point.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  currentPage = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Page', 1)
  diagnosticInfo = _messages.MessageField('DiagnosticInfoValue', 2)
  differences = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestRunDifference', 3, repeated=True)
  sessionParameters = _messages.MessageField('SessionParametersValue', 4)
  status = _messages.MessageField('GoogleRpcStatus', 5)
  textResponses = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageText', 6, repeated=True)
  triggeredIntent = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Intent', 7)


class GoogleCloudDialogflowCxV3beta1CreateVersionOperationMetadata(_messages.Message):
  r"""Metadata associated with the long running operation for
  Versions.CreateVersion.

  Fields:
    version: Name of the created version. Format:
      `projects//locations//agents//flows//versions/`.
  """

  version = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1DataStoreConnection(_messages.Message):
  r"""A data store connection. It represents a data store in Discovery Engine
  and the type of the contents it contains.

  Enums:
    DataStoreTypeValueValuesEnum: The type of the connected data store.
    DocumentProcessingModeValueValuesEnum: The document processing mode for
      the data store connection. Should only be set for PUBLIC_WEB and
      UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as
      this is the legacy mode.

  Fields:
    dataStore: The full name of the referenced data store. Formats: `projects/
      {project}/locations/{location}/collections/{collection}/dataStores/{data
      _store}`
      `projects/{project}/locations/{location}/dataStores/{data_store}`
    dataStoreType: The type of the connected data store.
    documentProcessingMode: The document processing mode for the data store
      connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data
      stores. If not set it is considered as DOCUMENTS, as this is the legacy
      mode.
  """

  class DataStoreTypeValueValuesEnum(_messages.Enum):
    r"""The type of the connected data store.

    Values:
      DATA_STORE_TYPE_UNSPECIFIED: Not specified. This value indicates that
        the data store type is not specified, so it will not be used during
        search.
      PUBLIC_WEB: A data store that contains public web content.
      UNSTRUCTURED: A data store that contains unstructured private data.
      STRUCTURED: A data store that contains structured data (for example
        FAQ).
    """
    DATA_STORE_TYPE_UNSPECIFIED = 0
    PUBLIC_WEB = 1
    UNSTRUCTURED = 2
    STRUCTURED = 3

  class DocumentProcessingModeValueValuesEnum(_messages.Enum):
    r"""The document processing mode for the data store connection. Should
    only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is
    considered as DOCUMENTS, as this is the legacy mode.

    Values:
      DOCUMENT_PROCESSING_MODE_UNSPECIFIED: Not specified. This should be set
        for STRUCTURED type data stores. Due to legacy reasons this is
        considered as DOCUMENTS for STRUCTURED and PUBLIC_WEB data stores.
      DOCUMENTS: Documents are processed as documents.
      CHUNKS: Documents are converted to chunks.
    """
    DOCUMENT_PROCESSING_MODE_UNSPECIFIED = 0
    DOCUMENTS = 1
    CHUNKS = 2

  dataStore = _messages.StringField(1)
  dataStoreType = _messages.EnumField('DataStoreTypeValueValuesEnum', 2)
  documentProcessingMode = _messages.EnumField('DocumentProcessingModeValueValuesEnum', 3)


class GoogleCloudDialogflowCxV3beta1DeployFlowMetadata(_messages.Message):
  r"""Metadata returned for the Environments.DeployFlow long running
  operation.

  Fields:
    testErrors: Errors of running deployment tests.
  """

  testErrors = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestError', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1DeployFlowResponse(_messages.Message):
  r"""The response message for Environments.DeployFlow.

  Fields:
    deployment: The name of the flow version deployment. Format:
      `projects//locations//agents//environments//deployments/`.
    environment: The updated environment where the flow is deployed.
  """

  deployment = _messages.StringField(1)
  environment = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Environment', 2)


class GoogleCloudDialogflowCxV3beta1DtmfInput(_messages.Message):
  r"""Represents the input for dtmf event.

  Fields:
    digits: The dtmf digits.
    finishDigit: The finish digit (if any).
  """

  digits = _messages.StringField(1)
  finishDigit = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1Environment(_messages.Message):
  r"""Represents an environment for an agent. You can create multiple versions
  of your agent and publish them to separate environments. When you edit an
  agent, you are editing the draft agent. At any point, you can save the draft
  agent as an agent version, which is an immutable snapshot of your agent.
  When you save the draft agent, it is published to the default environment.
  When you create agent versions, you can publish them to custom environments.
  You can create a variety of custom environments for testing, development,
  production, etc.

  Fields:
    description: The human-readable description of the environment. The
      maximum length is 500 characters. If exceeded, the request is rejected.
    displayName: Required. The human-readable name of the environment (unique
      in an agent). Limit of 64 characters.
    name: The name of the environment. Format:
      `projects//locations//agents//environments/`.
    testCasesConfig: The test cases config for continuous tests of this
      environment.
    updateTime: Output only. Update time of this environment.
    versionConfigs: A list of configurations for flow versions. You should
      include version configs for all flows that are reachable from `Start
      Flow` in the agent. Otherwise, an error will be returned.
    webhookConfig: The webhook configuration for this environment.
  """

  description = _messages.StringField(1)
  displayName = _messages.StringField(2)
  name = _messages.StringField(3)
  testCasesConfig = _messages.MessageField('GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig', 4)
  updateTime = _messages.StringField(5)
  versionConfigs = _messages.MessageField('GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig', 6, repeated=True)
  webhookConfig = _messages.MessageField('GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig', 7)


class GoogleCloudDialogflowCxV3beta1EnvironmentTestCasesConfig(_messages.Message):
  r"""The configuration for continuous tests.

  Fields:
    enableContinuousRun: Whether to run test cases in
      TestCasesConfig.test_cases periodically. Default false. If set to true,
      run once a day.
    enablePredeploymentRun: Whether to run test cases in
      TestCasesConfig.test_cases before deploying a flow version to the
      environment. Default false.
    testCases: A list of test case names to run. They should be under the same
      agent. Format of each test case name:
      `projects//locations//agents//testCases/`
  """

  enableContinuousRun = _messages.BooleanField(1)
  enablePredeploymentRun = _messages.BooleanField(2)
  testCases = _messages.StringField(3, repeated=True)


class GoogleCloudDialogflowCxV3beta1EnvironmentVersionConfig(_messages.Message):
  r"""Configuration for the version.

  Fields:
    version: Required. Flow, playbook and tool versions are supported. Format
      for flow version: projects//locations//agents//flows//versions/. Format
      for playbook version: projects//locations//agents//playbooks//versions/.
      Format for tool version: projects//locations//agents//tools//versions/.
  """

  version = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1EnvironmentWebhookConfig(_messages.Message):
  r"""Configuration for webhooks.

  Fields:
    webhookOverrides: The list of webhooks to override for the agent
      environment. The webhook must exist in the agent. You can override
      fields in `generic_web_service` and `service_directory`.
  """

  webhookOverrides = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Webhook', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1EventHandler(_messages.Message):
  r"""An event handler specifies an event that can be handled during a
  session. When the specified event happens, the following actions are taken
  in order: * If there is a `trigger_fulfillment` associated with the event,
  it will be called. * If there is a `target_page` associated with the event,
  the session will transition into the specified page. * If there is a
  `target_flow` associated with the event, the session will transition into
  the specified flow.

  Fields:
    event: Required. The name of the event to handle.
    name: Output only. The unique identifier of this event handler.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
    targetPlaybook: The target playbook to transition to. Format:
      `projects//locations//agents//playbooks/`.
    triggerFulfillment: The fulfillment to call when the event occurs.
      Handling webhook errors with a fulfillment enabled with webhook could
      cause infinite loop. It is invalid to specify such fulfillment for a
      handler handling webhooks.
  """

  event = _messages.StringField(1)
  name = _messages.StringField(2)
  targetFlow = _messages.StringField(3)
  targetPage = _messages.StringField(4)
  targetPlaybook = _messages.StringField(5)
  triggerFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Fulfillment', 6)


class GoogleCloudDialogflowCxV3beta1EventInput(_messages.Message):
  r"""Represents the event to trigger.

  Fields:
    event: Name of the event.
  """

  event = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1ExportAgentResponse(_messages.Message):
  r"""The response message for Agents.ExportAgent.

  Fields:
    agentContent: Uncompressed raw byte content for agent. This field is
      populated if none of `agent_uri` and `git_destination` are specified in
      ExportAgentRequest.
    agentUri: The URI to a file containing the exported agent. This field is
      populated if `agent_uri` is specified in ExportAgentRequest.
    commitSha: Commit SHA of the git push. This field is populated if
      `git_destination` is specified in ExportAgentRequest.
  """

  agentContent = _messages.BytesField(1)
  agentUri = _messages.StringField(2)
  commitSha = _messages.StringField(3)


class GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata(_messages.Message):
  r"""Metadata returned for the EntityTypes.ExportEntityTypes long running
  operation.
  """



class GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse(_messages.Message):
  r"""The response message for EntityTypes.ExportEntityTypes.

  Fields:
    entityTypesContent: Uncompressed byte content for entity types. This field
      is populated only if `entity_types_content_inline` is set to true in
      ExportEntityTypesRequest.
    entityTypesUri: The URI to a file containing the exported entity types.
      This field is populated only if `entity_types_uri` is specified in
      ExportEntityTypesRequest.
  """

  entityTypesContent = _messages.MessageField('GoogleCloudDialogflowCxV3beta1InlineDestination', 1)
  entityTypesUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1ExportFlowResponse(_messages.Message):
  r"""The response message for Flows.ExportFlow.

  Fields:
    flowContent: Uncompressed raw byte content for flow.
    flowUri: The URI to a file containing the exported flow. This field is
      populated only if `flow_uri` is specified in ExportFlowRequest.
  """

  flowContent = _messages.BytesField(1)
  flowUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1ExportIntentsMetadata(_messages.Message):
  r"""Metadata returned for the Intents.ExportIntents long running operation.
  """



class GoogleCloudDialogflowCxV3beta1ExportIntentsResponse(_messages.Message):
  r"""The response message for Intents.ExportIntents.

  Fields:
    intentsContent: Uncompressed byte content for intents. This field is
      populated only if `intents_content_inline` is set to true in
      ExportIntentsRequest.
    intentsUri: The URI to a file containing the exported intents. This field
      is populated only if `intents_uri` is specified in ExportIntentsRequest.
  """

  intentsContent = _messages.MessageField('GoogleCloudDialogflowCxV3beta1InlineDestination', 1)
  intentsUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1ExportTestCasesMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.ExportTestCases long running
  operation. This message currently has no fields.
  """



class GoogleCloudDialogflowCxV3beta1ExportTestCasesResponse(_messages.Message):
  r"""The response message for TestCases.ExportTestCases.

  Fields:
    content: Uncompressed raw byte content for test cases.
    gcsUri: The URI to a file containing the exported test cases. This field
      is populated only if `gcs_uri` is specified in ExportTestCasesRequest.
  """

  content = _messages.BytesField(1)
  gcsUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1Form(_messages.Message):
  r"""A form is a data model that groups related parameters that can be
  collected from the user. The process in which the agent prompts the user and
  collects parameter values from the user is called form filling. A form can
  be added to a page. When form filling is done, the filled parameters will be
  written to the session.

  Fields:
    parameters: Parameters to collect from the user.
  """

  parameters = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FormParameter', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1FormParameter(_messages.Message):
  r"""Represents a form parameter.

  Fields:
    advancedSettings: Hierarchical advanced settings for this parameter. The
      settings exposed at the lower level overrides the settings exposed at
      the higher level.
    defaultValue: The default value of an optional parameter. If the parameter
      is required, the default value will be ignored.
    displayName: Required. The human-readable name of the parameter, unique
      within the form.
    entityType: Required. The entity type of the parameter. Format:
      `projects/-/locations/-/agents/-/entityTypes/` for system entity types
      (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`),
      or `projects//locations//agents//entityTypes/` for developer entity
      types.
    fillBehavior: Required. Defines fill behavior for the parameter.
    isList: Indicates whether the parameter represents a list of values.
    redact: Indicates whether the parameter content should be redacted in log.
      If redaction is enabled, the parameter content will be replaced by
      parameter name during logging. Note: the parameter content is subject to
      redaction if either parameter level redaction or entity type level
      redaction is enabled.
    required: Indicates whether the parameter is required. Optional parameters
      will not trigger prompts; however, they are filled if the user specifies
      them. Required parameters must be filled before form filling concludes.
  """

  advancedSettings = _messages.MessageField('GoogleCloudDialogflowCxV3beta1AdvancedSettings', 1)
  defaultValue = _messages.MessageField('extra_types.JsonValue', 2)
  displayName = _messages.StringField(3)
  entityType = _messages.StringField(4)
  fillBehavior = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior', 5)
  isList = _messages.BooleanField(6)
  redact = _messages.BooleanField(7)
  required = _messages.BooleanField(8)


class GoogleCloudDialogflowCxV3beta1FormParameterFillBehavior(_messages.Message):
  r"""Configuration for how the filling of a parameter should be handled.

  Fields:
    initialPromptFulfillment: Required. The fulfillment to provide the initial
      prompt that the agent can present to the user in order to fill the
      parameter.
    repromptEventHandlers: The handlers for parameter-level events, used to
      provide reprompt for the parameter or transition to a different
      page/flow. The supported events are: * `sys.no-match-`, where N can be
      from 1 to 6 * `sys.no-match-default` * `sys.no-input-`, where N can be
      from 1 to 6 * `sys.no-input-default` * `sys.invalid-parameter`
      `initial_prompt_fulfillment` provides the first prompt for the
      parameter. If the user's response does not fill the parameter, a no-
      match/no-input event will be triggered, and the fulfillment associated
      with the `sys.no-match-1`/`sys.no-input-1` handler (if defined) will be
      called to provide a prompt. The `sys.no-match-2`/`sys.no-input-2`
      handler (if defined) will respond to the next no-match/no-input event,
      and so on. A `sys.no-match-default` or `sys.no-input-default` handler
      will be used to handle all following no-match/no-input events after all
      numbered no-match/no-input handlers for the parameter are consumed. A
      `sys.invalid-parameter` handler can be defined to handle the case where
      the parameter values have been `invalidated` by webhook. For example, if
      the user's response fill the parameter, however the parameter was
      invalidated by webhook, the fulfillment associated with the
      `sys.invalid-parameter` handler (if defined) will be called to provide a
      prompt. If the event handler for the corresponding event can't be found
      on the parameter, `initial_prompt_fulfillment` will be re-prompted.
  """

  initialPromptFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Fulfillment', 1)
  repromptEventHandlers = _messages.MessageField('GoogleCloudDialogflowCxV3beta1EventHandler', 2, repeated=True)


class GoogleCloudDialogflowCxV3beta1Fulfillment(_messages.Message):
  r"""A fulfillment can do one or more of the following actions at the same
  time: * Generate rich message responses. * Set parameter values. * Call the
  webhook. Fulfillments can be called at various stages in the Page or Form
  lifecycle. For example, when a DetectIntentRequest drives a session to enter
  a new page, the page's entry fulfillment can add a static response to the
  QueryResult in the returning DetectIntentResponse, call the webhook (for
  example, to load user data from a database), or both.

  Fields:
    advancedSettings: Hierarchical advanced settings for this fulfillment. The
      settings exposed at the lower level overrides the settings exposed at
      the higher level.
    conditionalCases: Conditional cases for this fulfillment.
    enableGenerativeFallback: If the flag is true, the agent will utilize LLM
      to generate a text response. If LLM generation fails, the defined
      responses in the fulfillment will be respected. This flag is only useful
      for fulfillments associated with no-match event handlers.
    generators: A list of Generators to be called during this fulfillment.
    messages: The list of rich message responses to present to the user.
    returnPartialResponses: Whether Dialogflow should return currently queued
      fulfillment response messages in streaming APIs. If a webhook is
      specified, it happens before Dialogflow invokes webhook. Warning: 1)
      This flag only affects streaming API. Responses are still queued and
      returned once in non-streaming API. 2) The flag can be enabled in any
      fulfillment but only the first 3 partial responses will be returned. You
      may only want to apply it to fulfillments that have slow webhooks.
    setParameterActions: Set parameter values before executing the webhook.
    tag: The value of this field will be populated in the WebhookRequest
      `fulfillmentInfo.tag` field by Dialogflow when the associated webhook is
      called. The tag is typically used by the webhook service to identify
      which fulfillment is being called, but it could be used for other
      purposes. This field is required if `webhook` is specified.
    webhook: The webhook to call. Format:
      `projects//locations//agents//webhooks/`.
  """

  advancedSettings = _messages.MessageField('GoogleCloudDialogflowCxV3beta1AdvancedSettings', 1)
  conditionalCases = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases', 2, repeated=True)
  enableGenerativeFallback = _messages.BooleanField(3)
  generators = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FulfillmentGeneratorSettings', 4, repeated=True)
  messages = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessage', 5, repeated=True)
  returnPartialResponses = _messages.BooleanField(6)
  setParameterActions = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction', 7, repeated=True)
  tag = _messages.StringField(8)
  webhook = _messages.StringField(9)


class GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases(_messages.Message):
  r"""A list of cascading if-else conditions. Cases are mutually exclusive.
  The first one with a matching condition is selected, all the rest ignored.

  Fields:
    cases: A list of cascading if-else conditions.
  """

  cases = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCase(_messages.Message):
  r"""Each case has a Boolean condition. When it is evaluated to be True, the
  corresponding messages will be selected and evaluated recursively.

  Fields:
    caseContent: A list of case content.
    condition: The condition to activate and select this case. Empty means the
      condition is always true. The condition is evaluated against form
      parameters or session parameters. See the [conditions reference](https:/
      /cloud.google.com/dialogflow/cx/docs/reference/condition).
  """

  caseContent = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent', 1, repeated=True)
  condition = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCasesCaseCaseContent(_messages.Message):
  r"""The list of messages or conditional cases to activate for this case.

  Fields:
    additionalCases: Additional cases to be evaluated.
    message: Returned message.
  """

  additionalCases = _messages.MessageField('GoogleCloudDialogflowCxV3beta1FulfillmentConditionalCases', 1)
  message = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessage', 2)


class GoogleCloudDialogflowCxV3beta1FulfillmentGeneratorSettings(_messages.Message):
  r"""Generator settings used by the LLM to generate a text response.

  Messages:
    InputParametersValue: Map from placeholder parameter in the Generator to
      corresponding session parameters. By default, Dialogflow uses the
      session parameter with the same name to fill in the generator template.
      e.g. If there is a placeholder parameter `city` in the Generator,
      Dialogflow default to fill in the `$city` with `$session.params.city`.
      However, you may choose to fill `$city` with
      `$session.params.desination-city`. - Map key: parameter ID - Map value:
      session parameter name

  Fields:
    generator: Required. The generator to call. Format:
      `projects//locations//agents//generators/`.
    inputParameters: Map from placeholder parameter in the Generator to
      corresponding session parameters. By default, Dialogflow uses the
      session parameter with the same name to fill in the generator template.
      e.g. If there is a placeholder parameter `city` in the Generator,
      Dialogflow default to fill in the `$city` with `$session.params.city`.
      However, you may choose to fill `$city` with
      `$session.params.desination-city`. - Map key: parameter ID - Map value:
      session parameter name
    outputParameter: Required. Output parameter which should contain the
      generator response.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InputParametersValue(_messages.Message):
    r"""Map from placeholder parameter in the Generator to corresponding
    session parameters. By default, Dialogflow uses the session parameter with
    the same name to fill in the generator template. e.g. If there is a
    placeholder parameter `city` in the Generator, Dialogflow default to fill
    in the `$city` with `$session.params.city`. However, you may choose to
    fill `$city` with `$session.params.desination-city`. - Map key: parameter
    ID - Map value: session parameter name

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

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

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

  generator = _messages.StringField(1)
  inputParameters = _messages.MessageField('InputParametersValue', 2)
  outputParameter = _messages.StringField(3)


class GoogleCloudDialogflowCxV3beta1FulfillmentSetParameterAction(_messages.Message):
  r"""Setting a parameter value.

  Fields:
    parameter: Display name of the parameter.
    value: The new value of the parameter. A null value clears the parameter.
  """

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


class GoogleCloudDialogflowCxV3beta1GcsDestination(_messages.Message):
  r"""Google Cloud Storage location for a Dialogflow operation that writes or
  exports objects (e.g. exported agent or transcripts) outside of Dialogflow.

  Fields:
    uri: Required. The Google Cloud Storage URI for the exported objects. A
      URI is of the form: `gs://bucket/object-name-or-prefix` Whether a full
      object name, or just a prefix, its usage depends on the Dialogflow
      operation.
  """

  uri = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata(_messages.Message):
  r"""Metadata returned for the EntityTypes.ImportEntityTypes long running
  operation.
  """



class GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse(_messages.Message):
  r"""The response message for EntityTypes.ImportEntityTypes.

  Fields:
    conflictingResources: Info which resources have conflicts when
      REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest.
    entityTypes: The unique identifier of the imported entity types. Format:
      `projects//locations//agents//entity_types/`.
  """

  conflictingResources = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources', 1)
  entityTypes = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources(_messages.Message):
  r"""Conflicting resources detected during the import process. Only filled
  when REPORT_CONFLICT is set in the request and there are conflicts in the
  display names.

  Fields:
    entityDisplayNames: Display names of conflicting entities.
    entityTypeDisplayNames: Display names of conflicting entity types.
  """

  entityDisplayNames = _messages.StringField(1, repeated=True)
  entityTypeDisplayNames = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3beta1ImportFlowResponse(_messages.Message):
  r"""The response message for Flows.ImportFlow.

  Fields:
    flow: The unique identifier of the new flow. Format:
      `projects//locations//agents//flows/`.
  """

  flow = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1ImportIntentsMetadata(_messages.Message):
  r"""Metadata returned for the Intents.ImportIntents long running operation.
  """



class GoogleCloudDialogflowCxV3beta1ImportIntentsResponse(_messages.Message):
  r"""The response message for Intents.ImportIntents.

  Fields:
    conflictingResources: Info which resources have conflicts when
      REPORT_CONFLICT merge_option is set in ImportIntentsRequest.
    intents: The unique identifier of the imported intents. Format:
      `projects//locations//agents//intents/`.
  """

  conflictingResources = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources', 1)
  intents = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3beta1ImportIntentsResponseConflictingResources(_messages.Message):
  r"""Conflicting resources detected during the import process. Only filled
  when REPORT_CONFLICT is set in the request and there are conflicts in the
  display names.

  Fields:
    entityDisplayNames: Display names of conflicting entities.
    intentDisplayNames: Display names of conflicting intents.
  """

  entityDisplayNames = _messages.StringField(1, repeated=True)
  intentDisplayNames = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3beta1ImportTestCasesMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.ImportTestCases long running
  operation.

  Fields:
    errors: Errors for failed test cases.
  """

  errors = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestCaseError', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1ImportTestCasesResponse(_messages.Message):
  r"""The response message for TestCases.ImportTestCases.

  Fields:
    names: The unique identifiers of the new test cases. Format:
      `projects//locations//agents//testCases/`.
  """

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


class GoogleCloudDialogflowCxV3beta1InlineDestination(_messages.Message):
  r"""Inline destination for a Dialogflow operation that writes or exports
  objects (e.g. intents) outside of Dialogflow.

  Fields:
    content: Output only. The uncompressed byte content for the objects. Only
      populated in responses.
  """

  content = _messages.BytesField(1)


class GoogleCloudDialogflowCxV3beta1InputAudioConfig(_messages.Message):
  r"""Instructs the speech recognizer on how to process the audio content.

  Enums:
    AudioEncodingValueValuesEnum: Required. Audio encoding of the audio
      content to process.
    ModelVariantValueValuesEnum: Optional. Which variant of the Speech model
      to use.

  Fields:
    audioEncoding: Required. Audio encoding of the audio content to process.
    bargeInConfig: Configuration of barge-in behavior during the streaming of
      input audio.
    enableWordInfo: Optional. If `true`, Dialogflow returns SpeechWordInfo in
      StreamingRecognitionResult with information about the recognized speech
      words, e.g. start and end time offsets. If false or unspecified, Speech
      doesn't return any word-level information.
    model: Optional. Which Speech model to select for the given request. For
      more information, see [Speech
      models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      models).
    modelVariant: Optional. Which variant of the Speech model to use.
    optOutConformerModelMigration: If `true`, the request will opt out for STT
      conformer model migration. This field will be deprecated once force
      migration takes place in June 2024. Please refer to [Dialogflow CX
      Speech model
      migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-
      model-migration).
    phraseHints: Optional. A list of strings containing words and phrases that
      the speech recognizer should recognize with higher likelihood. See [the
      Cloud Speech documentation](https://cloud.google.com/speech-to-
      text/docs/basics#phrase-hints) for more details.
    sampleRateHertz: Sample rate (in Hertz) of the audio content sent in the
      query. Refer to [Cloud Speech API
      documentation](https://cloud.google.com/speech-to-text/docs/basics) for
      more details.
    singleUtterance: Optional. If `false` (default), recognition does not
      cease until the client closes the stream. If `true`, the recognizer will
      detect a single spoken utterance in input audio. Recognition ceases when
      it detects the audio's voice has stopped or paused. In this case, once a
      detected intent is received, the client should close the stream and
      start a new request with a new stream as needed. Note: This setting is
      relevant only for streaming methods.
  """

  class AudioEncodingValueValuesEnum(_messages.Enum):
    r"""Required. Audio encoding of the audio content to process.

    Values:
      AUDIO_ENCODING_UNSPECIFIED: Not specified.
      AUDIO_ENCODING_LINEAR_16: Uncompressed 16-bit signed little-endian
        samples (Linear PCM). LINT: LEGACY_NAMES
      AUDIO_ENCODING_FLAC: [`FLAC`](https://xiph.org/flac/documentation.html)
        (Free Lossless Audio Codec) is the recommended encoding because it is
        lossless (therefore recognition is not compromised) and requires only
        about half the bandwidth of `LINEAR16`. `FLAC` stream encoding
        supports 16-bit and 24-bit samples, however, not all fields in
        `STREAMINFO` are supported.
      AUDIO_ENCODING_MULAW: 8-bit samples that compand 14-bit audio samples
        using G.711 PCMU/mu-law.
      AUDIO_ENCODING_AMR: Adaptive Multi-Rate Narrowband codec.
        `sample_rate_hertz` must be 8000.
      AUDIO_ENCODING_AMR_WB: Adaptive Multi-Rate Wideband codec.
        `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_OGG_OPUS: Opus encoded audio frames in Ogg container
        ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must
        be 16000.
      AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE: Although the use of lossy
        encodings is not recommended, if a very low bitrate encoding is
        required, `OGG_OPUS` is highly preferred over Speex encoding. The
        [Speex](https://speex.org/) encoding supported by Dialogflow API has a
        header byte in each block, as in MIME type `audio/x-speex-with-header-
        byte`. It is a variant of the RTP Speex encoding defined in [RFC
        5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence
        of blocks, one block per RTP packet. Each block starts with a byte
        containing the length of the block, in bytes, followed by one or more
        frames of Speex data, padded to an integral number of bytes (octets)
        as specified in RFC 5574. In other words, each RTP header is replaced
        with a single byte containing the block length. Only Speex wideband is
        supported. `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_ALAW: 8-bit samples that compand 13-bit audio samples
        using G.711 PCMU/a-law.
    """
    AUDIO_ENCODING_UNSPECIFIED = 0
    AUDIO_ENCODING_LINEAR_16 = 1
    AUDIO_ENCODING_FLAC = 2
    AUDIO_ENCODING_MULAW = 3
    AUDIO_ENCODING_AMR = 4
    AUDIO_ENCODING_AMR_WB = 5
    AUDIO_ENCODING_OGG_OPUS = 6
    AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7
    AUDIO_ENCODING_ALAW = 8

  class ModelVariantValueValuesEnum(_messages.Enum):
    r"""Optional. Which variant of the Speech model to use.

    Values:
      SPEECH_MODEL_VARIANT_UNSPECIFIED: No model variant specified. In this
        case Dialogflow defaults to USE_BEST_AVAILABLE.
      USE_BEST_AVAILABLE: Use the best available variant of the Speech model
        that the caller is eligible for.
      USE_STANDARD: Use standard model variant even if an enhanced model is
        available. See the [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) for details about enhanced models.
      USE_ENHANCED: Use an enhanced model variant: * If an enhanced variant
        does not exist for the given model and request language, Dialogflow
        falls back to the standard variant. The [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) describes which models have enhanced variants.
    """
    SPEECH_MODEL_VARIANT_UNSPECIFIED = 0
    USE_BEST_AVAILABLE = 1
    USE_STANDARD = 2
    USE_ENHANCED = 3

  audioEncoding = _messages.EnumField('AudioEncodingValueValuesEnum', 1)
  bargeInConfig = _messages.MessageField('GoogleCloudDialogflowCxV3beta1BargeInConfig', 2)
  enableWordInfo = _messages.BooleanField(3)
  model = _messages.StringField(4)
  modelVariant = _messages.EnumField('ModelVariantValueValuesEnum', 5)
  optOutConformerModelMigration = _messages.BooleanField(6)
  phraseHints = _messages.StringField(7, repeated=True)
  sampleRateHertz = _messages.IntegerField(8, variant=_messages.Variant.INT32)
  singleUtterance = _messages.BooleanField(9)


class GoogleCloudDialogflowCxV3beta1Intent(_messages.Message):
  r"""An intent represents a user's intent to interact with a conversational
  agent. You can provide information for the Dialogflow API to use to match
  user input to an intent by adding training phrases (i.e., examples of user
  input) to your intent.

  Messages:
    LabelsValue: The key/value metadata to label an intent. Labels can contain
      lowercase letters, digits and the symbols '-' and '_'. International
      characters are allowed, including letters from unicase alphabets. Keys
      must start with a letter. Keys and values can be no longer than 63
      characters and no more than 128 bytes. Prefix "sys-" is reserved for
      Dialogflow defined labels. Currently allowed Dialogflow defined labels
      include: * sys-head * sys-contextual The above labels do not require
      value. "sys-head" means the intent is a head intent. "sys-contextual"
      means the intent is a contextual intent.

  Fields:
    description: Human readable description for better understanding an intent
      like its scope, content, result etc. Maximum character limit: 140
      characters.
    displayName: Required. The human-readable name of the intent, unique
      within the agent.
    isFallback: Indicates whether this is a fallback intent. Currently only
      default fallback intent is allowed in the agent, which is added upon
      agent creation. Adding training phrases to fallback intent is useful in
      the case of requests that are mistakenly matched, since training phrases
      assigned to fallback intents act as negative examples that triggers no-
      match event.
    labels: The key/value metadata to label an intent. Labels can contain
      lowercase letters, digits and the symbols '-' and '_'. International
      characters are allowed, including letters from unicase alphabets. Keys
      must start with a letter. Keys and values can be no longer than 63
      characters and no more than 128 bytes. Prefix "sys-" is reserved for
      Dialogflow defined labels. Currently allowed Dialogflow defined labels
      include: * sys-head * sys-contextual The above labels do not require
      value. "sys-head" means the intent is a head intent. "sys-contextual"
      means the intent is a contextual intent.
    name: The unique identifier of the intent. Required for the
      Intents.UpdateIntent method. Intents.CreateIntent populates the name
      automatically. Format: `projects//locations//agents//intents/`.
    parameters: The collection of parameters associated with the intent.
    priority: The priority of this intent. Higher numbers represent higher
      priorities. - If the supplied value is unspecified or 0, the service
      translates the value to 500,000, which corresponds to the `Normal`
      priority in the console. - If the supplied value is negative, the intent
      is ignored in runtime detect intent requests.
    trainingPhrases: The collection of training phrases the agent is trained
      on to identify the intent.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""The key/value metadata to label an intent. Labels can contain
    lowercase letters, digits and the symbols '-' and '_'. International
    characters are allowed, including letters from unicase alphabets. Keys
    must start with a letter. Keys and values can be no longer than 63
    characters and no more than 128 bytes. Prefix "sys-" is reserved for
    Dialogflow defined labels. Currently allowed Dialogflow defined labels
    include: * sys-head * sys-contextual The above labels do not require
    value. "sys-head" means the intent is a head intent. "sys-contextual"
    means the intent is a contextual intent.

    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)

  description = _messages.StringField(1)
  displayName = _messages.StringField(2)
  isFallback = _messages.BooleanField(3)
  labels = _messages.MessageField('LabelsValue', 4)
  name = _messages.StringField(5)
  parameters = _messages.MessageField('GoogleCloudDialogflowCxV3beta1IntentParameter', 6, repeated=True)
  priority = _messages.IntegerField(7, variant=_messages.Variant.INT32)
  trainingPhrases = _messages.MessageField('GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase', 8, repeated=True)


class GoogleCloudDialogflowCxV3beta1IntentInput(_messages.Message):
  r"""Represents the intent to trigger programmatically rather than as a
  result of natural language processing.

  Fields:
    intent: Required. The unique identifier of the intent. Format:
      `projects//locations//agents//intents/`.
  """

  intent = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1IntentParameter(_messages.Message):
  r"""Represents an intent parameter.

  Fields:
    entityType: Required. The entity type of the parameter. Format:
      `projects/-/locations/-/agents/-/entityTypes/` for system entity types
      (for example, `projects/-/locations/-/agents/-/entityTypes/sys.date`),
      or `projects//locations//agents//entityTypes/` for developer entity
      types.
    id: Required. The unique identifier of the parameter. This field is used
      by training phrases to annotate their parts.
    isList: Indicates whether the parameter represents a list of values.
    redact: Indicates whether the parameter content should be redacted in log.
      If redaction is enabled, the parameter content will be replaced by
      parameter name during logging. Note: the parameter content is subject to
      redaction if either parameter level redaction or entity type level
      redaction is enabled.
  """

  entityType = _messages.StringField(1)
  id = _messages.StringField(2)
  isList = _messages.BooleanField(3)
  redact = _messages.BooleanField(4)


class GoogleCloudDialogflowCxV3beta1IntentTrainingPhrase(_messages.Message):
  r"""Represents an example that the agent is trained on to identify the
  intent.

  Fields:
    id: Output only. The unique identifier of the training phrase.
    parts: Required. The ordered list of training phrase parts. The parts are
      concatenated in order to form the training phrase. Note: The API does
      not automatically annotate training phrases like the Dialogflow Console
      does. Note: Do not forget to include whitespace at part boundaries, so
      the training phrase is well formatted when the parts are concatenated.
      If the training phrase does not need to be annotated with parameters,
      you just need a single part with only the Part.text field set. If you
      want to annotate the training phrase, you must create multiple parts,
      where the fields of each part are populated in one of two ways: -
      `Part.text` is set to a part of the phrase that has no parameters. -
      `Part.text` is set to a part of the phrase that you want to annotate,
      and the `parameter_id` field is set.
    repeatCount: Indicates how many times this example was added to the
      intent.
  """

  id = _messages.StringField(1)
  parts = _messages.MessageField('GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart', 2, repeated=True)
  repeatCount = _messages.IntegerField(3, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowCxV3beta1IntentTrainingPhrasePart(_messages.Message):
  r"""Represents a part of a training phrase.

  Fields:
    parameterId: The parameter used to annotate this part of the training
      phrase. This field is required for annotated parts of the training
      phrase.
    text: Required. The text for this part.
  """

  parameterId = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings(_messages.Message):
  r"""The Knowledge Connector settings for this page or flow. This includes
  information such as the attached Knowledge Bases, and the way to execute
  fulfillment.

  Fields:
    dataStoreConnections: Optional. List of related data store connections.
    enabled: Whether Knowledge Connector is enabled or not.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
    triggerFulfillment: The fulfillment to be triggered. When the answers from
      the Knowledge Connector are selected by Dialogflow, you can utitlize the
      request scoped parameter `$request.knowledge.answers` (contains up to
      the 5 highest confidence answers) and `$request.knowledge.questions`
      (contains the corresponding questions) to construct the fulfillment.
  """

  dataStoreConnections = _messages.MessageField('GoogleCloudDialogflowCxV3beta1DataStoreConnection', 1, repeated=True)
  enabled = _messages.BooleanField(2)
  targetFlow = _messages.StringField(3)
  targetPage = _messages.StringField(4)
  triggerFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Fulfillment', 5)


class GoogleCloudDialogflowCxV3beta1LanguageInfo(_messages.Message):
  r"""Represents the language information of the request.

  Fields:
    confidenceScore: The confidence score of the detected language between 0
      and 1.
    inputLanguageCode: The language code specified in the original request.
    resolvedLanguageCode: The language code detected for this request based on
      the user conversation.
  """

  confidenceScore = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  inputLanguageCode = _messages.StringField(2)
  resolvedLanguageCode = _messages.StringField(3)


class GoogleCloudDialogflowCxV3beta1Page(_messages.Message):
  r"""A Dialogflow CX conversation (session) can be described and visualized
  as a state machine. The states of a CX session are represented by pages. For
  each flow, you define many pages, where your combined pages can handle a
  complete conversation on the topics the flow is designed for. At any given
  moment, exactly one page is the current page, the current page is considered
  active, and the flow associated with that page is considered active. Every
  flow has a special start page. When a flow initially becomes active, the
  start page page becomes the current page. For each conversational turn, the
  current page will either stay the same or transition to another page. You
  configure each page to collect information from the end-user that is
  relevant for the conversational state represented by the page. For more
  information, see the [Page
  guide](https://cloud.google.com/dialogflow/cx/docs/concept/page).

  Fields:
    advancedSettings: Hierarchical advanced settings for this page. The
      settings exposed at the lower level overrides the settings exposed at
      the higher level.
    description: The description of the page. The maximum length is 500
      characters.
    displayName: Required. The human-readable name of the page, unique within
      the flow.
    entryFulfillment: The fulfillment to call when the session is entering the
      page.
    eventHandlers: Handlers associated with the page to handle events such as
      webhook errors, no match or no input.
    form: The form associated with the page, used for collecting parameters
      relevant to the page.
    knowledgeConnectorSettings: Optional. Knowledge connector configuration.
    name: The unique identifier of the page. Required for the Pages.UpdatePage
      method. Pages.CreatePage populates the name automatically. Format:
      `projects//locations//agents//flows//pages/`.
    transitionRouteGroups: Ordered list of `TransitionRouteGroups` added to
      the page. Transition route groups must be unique within a page. If the
      page links both flow-level transition route groups and agent-level
      transition route groups, the flow-level ones will have higher priority
      and will be put before the agent-level ones. * If multiple transition
      routes within a page scope refer to the same intent, then the precedence
      order is: page's transition route -> page's transition route group ->
      flow's transition routes. * If multiple transition route groups within a
      page contain the same intent, then the first group in the ordered list
      takes precedence.
      Format:`projects//locations//agents//flows//transitionRouteGroups/` or
      `projects//locations//agents//transitionRouteGroups/` for agent-level
      groups.
    transitionRoutes: A list of transitions for the transition rules of this
      page. They route the conversation to another page in the same flow, or
      another flow. When we are in a certain page, the TransitionRoutes are
      evaluated in the following order: * TransitionRoutes defined in the page
      with intent specified. * TransitionRoutes defined in the transition
      route groups with intent specified. * TransitionRoutes defined in flow
      with intent specified. * TransitionRoutes defined in the transition
      route groups with intent specified. * TransitionRoutes defined in the
      page with only condition specified. * TransitionRoutes defined in the
      transition route groups with only condition specified.
  """

  advancedSettings = _messages.MessageField('GoogleCloudDialogflowCxV3beta1AdvancedSettings', 1)
  description = _messages.StringField(2)
  displayName = _messages.StringField(3)
  entryFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Fulfillment', 4)
  eventHandlers = _messages.MessageField('GoogleCloudDialogflowCxV3beta1EventHandler', 5, repeated=True)
  form = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Form', 6)
  knowledgeConnectorSettings = _messages.MessageField('GoogleCloudDialogflowCxV3beta1KnowledgeConnectorSettings', 7)
  name = _messages.StringField(8)
  transitionRouteGroups = _messages.StringField(9, repeated=True)
  transitionRoutes = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TransitionRoute', 10, repeated=True)


class GoogleCloudDialogflowCxV3beta1PageInfo(_messages.Message):
  r"""Represents page information communicated to and from the webhook.

  Fields:
    currentPage: Always present for WebhookRequest. Ignored for
      WebhookResponse. The unique identifier of the current page. Format:
      `projects//locations//agents//flows//pages/`.
    displayName: Always present for WebhookRequest. Ignored for
      WebhookResponse. The display name of the current page.
    formInfo: Optional for both WebhookRequest and WebhookResponse.
      Information about the form.
  """

  currentPage = _messages.StringField(1)
  displayName = _messages.StringField(2)
  formInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1PageInfoFormInfo', 3)


class GoogleCloudDialogflowCxV3beta1PageInfoFormInfo(_messages.Message):
  r"""Represents form information.

  Fields:
    parameterInfo: Optional for both WebhookRequest and WebhookResponse. The
      parameters contained in the form. Note that the webhook cannot add or
      remove any form parameter.
  """

  parameterInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1PageInfoFormInfoParameterInfo(_messages.Message):
  r"""Represents parameter information.

  Enums:
    StateValueValuesEnum: Always present for WebhookRequest. Required for
      WebhookResponse. The state of the parameter. This field can be set to
      INVALID by the webhook to invalidate the parameter; other values set by
      the webhook will be ignored.

  Fields:
    displayName: Always present for WebhookRequest. Required for
      WebhookResponse. The human-readable name of the parameter, unique within
      the form. This field cannot be modified by the webhook.
    justCollected: Optional for WebhookRequest. Ignored for WebhookResponse.
      Indicates if the parameter value was just collected on the last
      conversation turn.
    required: Optional for both WebhookRequest and WebhookResponse. Indicates
      whether the parameter is required. Optional parameters will not trigger
      prompts; however, they are filled if the user specifies them. Required
      parameters must be filled before form filling concludes.
    state: Always present for WebhookRequest. Required for WebhookResponse.
      The state of the parameter. This field can be set to INVALID by the
      webhook to invalidate the parameter; other values set by the webhook
      will be ignored.
    value: Optional for both WebhookRequest and WebhookResponse. The value of
      the parameter. This field can be set by the webhook to change the
      parameter value.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Always present for WebhookRequest. Required for WebhookResponse. The
    state of the parameter. This field can be set to INVALID by the webhook to
    invalidate the parameter; other values set by the webhook will be ignored.

    Values:
      PARAMETER_STATE_UNSPECIFIED: Not specified. This value should be never
        used.
      EMPTY: Indicates that the parameter does not have a value.
      INVALID: Indicates that the parameter value is invalid. This field can
        be used by the webhook to invalidate the parameter and ask the server
        to collect it from the user again.
      FILLED: Indicates that the parameter has a value.
    """
    PARAMETER_STATE_UNSPECIFIED = 0
    EMPTY = 1
    INVALID = 2
    FILLED = 3

  displayName = _messages.StringField(1)
  justCollected = _messages.BooleanField(2)
  required = _messages.BooleanField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)
  value = _messages.MessageField('extra_types.JsonValue', 5)


class GoogleCloudDialogflowCxV3beta1QueryInput(_messages.Message):
  r"""Represents the query input. It can contain one of: 1. A conversational
  query in the form of text. 2. An intent query that specifies which intent to
  trigger. 3. Natural language speech audio to be processed. 4. An event to be
  triggered. 5. DTMF digits to invoke an intent and fill in parameter value.
  6. The results of a tool executed by the client.

  Fields:
    audio: The natural language speech audio to be processed.
    dtmf: The DTMF event to be handled.
    event: The event to be triggered.
    intent: The intent to be triggered.
    languageCode: Required. The language of the input. See [Language
      Support](https://cloud.google.com/dialogflow/cx/docs/reference/language)
      for a list of the currently supported language codes. Note that queries
      in the same session do not necessarily need to specify the same
      language.
    text: The natural language text to be processed.
    toolCallResult: The results of a tool executed by the client.
  """

  audio = _messages.MessageField('GoogleCloudDialogflowCxV3beta1AudioInput', 1)
  dtmf = _messages.MessageField('GoogleCloudDialogflowCxV3beta1DtmfInput', 2)
  event = _messages.MessageField('GoogleCloudDialogflowCxV3beta1EventInput', 3)
  intent = _messages.MessageField('GoogleCloudDialogflowCxV3beta1IntentInput', 4)
  languageCode = _messages.StringField(5)
  text = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TextInput', 6)
  toolCallResult = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ToolCallResult', 7)


class GoogleCloudDialogflowCxV3beta1ResponseMessage(_messages.Message):
  r"""Represents a response message that can be returned by a conversational
  agent. Response messages are also used for output audio synthesis. The
  approach is as follows: * If at least one OutputAudioText response is
  present, then all OutputAudioText responses are linearly concatenated, and
  the result is used for output audio synthesis. * If the OutputAudioText
  responses are a mixture of text and SSML, then the concatenated result is
  treated as SSML; otherwise, the result is treated as either text or SSML as
  appropriate. The agent designer should ideally use either text or SSML
  consistently throughout the bot design. * Otherwise, all Text responses are
  linearly concatenated, and the result is used for output audio synthesis.
  This approach allows for more sophisticated user experience scenarios, where
  the text displayed to the user may differ from what is heard.

  Messages:
    PayloadValue: Returns a response containing a custom, platform-specific
      payload.

  Fields:
    channel: The channel which the response is associated with. Clients can
      specify the channel via QueryParameters.channel, and only associated
      channel response will be returned.
    conversationSuccess: Indicates that the conversation succeeded.
    endInteraction: Output only. A signal that indicates the interaction with
      the Dialogflow agent has ended. This message is generated by Dialogflow
      only when the conversation reaches `END_SESSION` page. It is not
      supposed to be defined by the user. It's guaranteed that there is at
      most one such message in each response.
    knowledgeInfoCard: Represents info card for knowledge answers, to be
      better rendered in Dialogflow Messenger.
    liveAgentHandoff: Hands off conversation to a human agent.
    mixedAudio: Output only. An audio response message composed of both the
      synthesized Dialogflow agent responses and responses defined via
      play_audio. This message is generated by Dialogflow only and not
      supposed to be defined by the user.
    outputAudioText: A text or ssml response that is preferentially used for
      TTS output audio synthesis, as described in the comment on the
      ResponseMessage message.
    payload: Returns a response containing a custom, platform-specific
      payload.
    playAudio: Signal that the client should play an audio clip hosted at a
      client-specific URI. Dialogflow uses this to construct mixed_audio.
      However, Dialogflow itself does not try to read or process the URI in
      any way.
    telephonyTransferCall: A signal that the client should transfer the phone
      call connected to this agent to a third-party endpoint.
    text: Returns a text response.
    toolCall: Returns the definition of a tool call that should be executed by
      the client.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Returns a response containing a custom, platform-specific payload.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  channel = _messages.StringField(1)
  conversationSuccess = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess', 2)
  endInteraction = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction', 3)
  knowledgeInfoCard = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard', 4)
  liveAgentHandoff = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff', 5)
  mixedAudio = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio', 6)
  outputAudioText = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText', 7)
  payload = _messages.MessageField('PayloadValue', 8)
  playAudio = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio', 9)
  telephonyTransferCall = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall', 10)
  text = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageText', 11)
  toolCall = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ToolCall', 12)


class GoogleCloudDialogflowCxV3beta1ResponseMessageConversationSuccess(_messages.Message):
  r"""Indicates that the conversation succeeded, i.e., the bot handled the
  issue that the customer talked to it about. Dialogflow only uses this to
  determine which conversations should be counted as successful and doesn't
  process the metadata in this message in any way. Note that Dialogflow also
  considers conversations that get to the conversation end page as successful
  even if they don't return ConversationSuccess. You may set this, for
  example: * In the entry_fulfillment of a Page if entering the page indicates
  that the conversation succeeded. * In a webhook response when you determine
  that you handled the customer issue.

  Messages:
    MetadataValue: Custom metadata. Dialogflow doesn't impose any structure on
      this.

  Fields:
    metadata: Custom metadata. Dialogflow doesn't impose any structure on
      this.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Custom metadata. Dialogflow doesn't impose any structure on this.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)


class GoogleCloudDialogflowCxV3beta1ResponseMessageEndInteraction(_messages.Message):
  r"""Indicates that interaction with the Dialogflow agent has ended. This
  message is generated by Dialogflow only and not supposed to be defined by
  the user.
  """



class GoogleCloudDialogflowCxV3beta1ResponseMessageKnowledgeInfoCard(_messages.Message):
  r"""Represents info card response. If the response contains generative
  knowledge prediction, Dialogflow will return a payload with Infobot
  Messenger compatible info card. Otherwise, the info card response is
  skipped.
  """



class GoogleCloudDialogflowCxV3beta1ResponseMessageLiveAgentHandoff(_messages.Message):
  r"""Indicates that the conversation should be handed off to a live agent.
  Dialogflow only uses this to determine which conversations were handed off
  to a human agent for measurement purposes. What else to do with this signal
  is up to you and your handoff procedures. You may set this, for example: *
  In the entry_fulfillment of a Page if entering the page indicates something
  went extremely wrong in the conversation. * In a webhook response when you
  determine that the customer issue can only be handled by a human.

  Messages:
    MetadataValue: Custom metadata for your handoff procedure. Dialogflow
      doesn't impose any structure on this.

  Fields:
    metadata: Custom metadata for your handoff procedure. Dialogflow doesn't
      impose any structure on this.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Custom metadata for your handoff procedure. Dialogflow doesn't impose
    any structure on this.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)


class GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudio(_messages.Message):
  r"""Represents an audio message that is composed of both segments
  synthesized from the Dialogflow agent prompts and ones hosted externally at
  the specified URIs. The external URIs are specified via play_audio. This
  message is generated by Dialogflow only and not supposed to be defined by
  the user.

  Fields:
    segments: Segments this audio response is composed of.
  """

  segments = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1ResponseMessageMixedAudioSegment(_messages.Message):
  r"""Represents one segment of audio.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      segment can be interrupted by the end user's speech and the client
      should then start the next Dialogflow request.
    audio: Raw audio synthesized from the Dialogflow agent's response using
      the output config specified in the request.
    uri: Client-specific URI that points to an audio clip accessible to the
      client. Dialogflow does not impose any validation on it.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  audio = _messages.BytesField(2)
  uri = _messages.StringField(3)


class GoogleCloudDialogflowCxV3beta1ResponseMessageOutputAudioText(_messages.Message):
  r"""A text or ssml response that is preferentially used for TTS output audio
  synthesis, as described in the comment on the ResponseMessage message.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      message can be interrupted by the end user's speech and the client can
      then starts the next Dialogflow request.
    ssml: The SSML text to be synthesized. For more information, see
      [SSML](/speech/text-to-speech/docs/ssml).
    text: The raw text to be synthesized.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  ssml = _messages.StringField(2)
  text = _messages.StringField(3)


class GoogleCloudDialogflowCxV3beta1ResponseMessagePlayAudio(_messages.Message):
  r"""Specifies an audio clip to be played by the client as part of the
  response.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      message can be interrupted by the end user's speech and the client can
      then starts the next Dialogflow request.
    audioUri: Required. URI of the audio clip. Dialogflow does not impose any
      validation on this value. It is specific to the client that reads it.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  audioUri = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1ResponseMessageTelephonyTransferCall(_messages.Message):
  r"""Represents the signal that telles the client to transfer the phone call
  connected to the agent to a third-party endpoint.

  Fields:
    phoneNumber: Transfer the call to a phone number in [E.164
      format](https://en.wikipedia.org/wiki/E.164).
  """

  phoneNumber = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1ResponseMessageText(_messages.Message):
  r"""The text response message.

  Fields:
    allowPlaybackInterruption: Output only. Whether the playback of this
      message can be interrupted by the end user's speech and the client can
      then starts the next Dialogflow request.
    text: Required. A collection of text response variants. If multiple
      variants are defined, only one text response variant is returned at
      runtime.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  text = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowCxV3beta1RunContinuousTestMetadata(_messages.Message):
  r"""Metadata returned for the Environments.RunContinuousTest long running
  operation.

  Fields:
    errors: The test errors.
  """

  errors = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestError', 1, repeated=True)


class GoogleCloudDialogflowCxV3beta1RunContinuousTestResponse(_messages.Message):
  r"""The response message for Environments.RunContinuousTest.

  Fields:
    continuousTestResult: The result for a continuous test run.
  """

  continuousTestResult = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ContinuousTestResult', 1)


class GoogleCloudDialogflowCxV3beta1RunTestCaseMetadata(_messages.Message):
  r"""Metadata returned for the TestCases.RunTestCase long running operation.
  This message currently has no fields.
  """



class GoogleCloudDialogflowCxV3beta1RunTestCaseResponse(_messages.Message):
  r"""The response message for TestCases.RunTestCase.

  Fields:
    result: The result.
  """

  result = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestCaseResult', 1)


class GoogleCloudDialogflowCxV3beta1SessionInfo(_messages.Message):
  r"""Represents session information communicated to and from the webhook.

  Messages:
    ParametersValue: Optional for WebhookRequest. Optional for
      WebhookResponse. All parameters collected from forms and intents during
      the session. Parameters can be created, updated, or removed by the
      webhook. To remove a parameter from the session, the webhook should
      explicitly set the parameter value to null in WebhookResponse. The map
      is keyed by parameters' display names.

  Fields:
    parameters: Optional for WebhookRequest. Optional for WebhookResponse. All
      parameters collected from forms and intents during the session.
      Parameters can be created, updated, or removed by the webhook. To remove
      a parameter from the session, the webhook should explicitly set the
      parameter value to null in WebhookResponse. The map is keyed by
      parameters' display names.
    session: Always present for WebhookRequest. Ignored for WebhookResponse.
      The unique identifier of the session. This field can be used by the
      webhook to identify a session. Format:
      `projects//locations//agents//sessions/` or
      `projects//locations//agents//environments//sessions/` if environment is
      specified.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional for WebhookRequest. Optional for WebhookResponse. All
    parameters collected from forms and intents during the session. Parameters
    can be created, updated, or removed by the webhook. To remove a parameter
    from the session, the webhook should explicitly set the parameter value to
    null in WebhookResponse. The map is keyed by parameters' display names.

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

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

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

  parameters = _messages.MessageField('ParametersValue', 1)
  session = _messages.StringField(2)


class GoogleCloudDialogflowCxV3beta1TestCase(_messages.Message):
  r"""Represents a test case.

  Fields:
    creationTime: Output only. When the test was created.
    displayName: Required. The human-readable name of the test case, unique
      within the agent. Limit of 200 characters.
    lastTestResult: The latest test result.
    name: The unique identifier of the test case. TestCases.CreateTestCase
      will populate the name automatically. Otherwise use format:
      `projects//locations//agents//testCases/`.
    notes: Additional freeform notes about the test case. Limit of 400
      characters.
    tags: Tags are short descriptions that users may apply to test cases for
      organizational and filtering purposes. Each tag should start with "#"
      and has a limit of 30 characters.
    testCaseConversationTurns: The conversation turns uttered when the test
      case was created, in chronological order. These include the canonical
      set of agent utterances that should occur when the agent is working
      properly.
    testConfig: Config for the test case.
  """

  creationTime = _messages.StringField(1)
  displayName = _messages.StringField(2)
  lastTestResult = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestCaseResult', 3)
  name = _messages.StringField(4)
  notes = _messages.StringField(5)
  tags = _messages.StringField(6, repeated=True)
  testCaseConversationTurns = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ConversationTurn', 7, repeated=True)
  testConfig = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestConfig', 8)


class GoogleCloudDialogflowCxV3beta1TestCaseError(_messages.Message):
  r"""Error info for importing a test.

  Fields:
    status: The status associated with the test case.
    testCase: The test case.
  """

  status = _messages.MessageField('GoogleRpcStatus', 1)
  testCase = _messages.MessageField('GoogleCloudDialogflowCxV3beta1TestCase', 2)


class GoogleCloudDialogflowCxV3beta1TestCaseResult(_messages.Message):
  r"""Represents a result from running a test case in an agent environment.

  Enums:
    TestResultValueValuesEnum: Whether the test case passed in the agent
      environment.

  Fields:
    conversationTurns: The conversation turns uttered during the test case
      replay in chronological order.
    environment: Environment where the test was run. If not set, it indicates
      the draft environment.
    name: The resource name for the test case result. Format:
      `projects//locations//agents//testCases//results/`.
    testResult: Whether the test case passed in the agent environment.
    testTime: The time that the test was run.
  """

  class TestResultValueValuesEnum(_messages.Enum):
    r"""Whether the test case passed in the agent environment.

    Values:
      TEST_RESULT_UNSPECIFIED: Not specified. Should never be used.
      PASSED: The test passed.
      FAILED: The test did not pass.
    """
    TEST_RESULT_UNSPECIFIED = 0
    PASSED = 1
    FAILED = 2

  conversationTurns = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ConversationTurn', 1, repeated=True)
  environment = _messages.StringField(2)
  name = _messages.StringField(3)
  testResult = _messages.EnumField('TestResultValueValuesEnum', 4)
  testTime = _messages.StringField(5)


class GoogleCloudDialogflowCxV3beta1TestConfig(_messages.Message):
  r"""Represents configurations for a test case.

  Fields:
    flow: Flow name to start the test case with. Format:
      `projects//locations//agents//flows/`. Only one of `flow` and `page`
      should be set to indicate the starting point of the test case. If
      neither is set, the test case will start with start page on the default
      start flow.
    page: The page to start the test case with. Format:
      `projects//locations//agents//flows//pages/`. Only one of `flow` and
      `page` should be set to indicate the starting point of the test case. If
      neither is set, the test case will start with start page on the default
      start flow.
    trackingParameters: Session parameters to be compared when calculating
      differences.
  """

  flow = _messages.StringField(1)
  page = _messages.StringField(2)
  trackingParameters = _messages.StringField(3, repeated=True)


class GoogleCloudDialogflowCxV3beta1TestError(_messages.Message):
  r"""Error info for running a test.

  Fields:
    status: The status associated with the test.
    testCase: The test case resource name.
    testTime: The timestamp when the test was completed.
  """

  status = _messages.MessageField('GoogleRpcStatus', 1)
  testCase = _messages.StringField(2)
  testTime = _messages.StringField(3)


class GoogleCloudDialogflowCxV3beta1TestRunDifference(_messages.Message):
  r"""The description of differences between original and replayed agent
  output.

  Enums:
    TypeValueValuesEnum: The type of diff.

  Fields:
    description: A human readable description of the diff, showing the actual
      output vs expected output.
    type: The type of diff.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The type of diff.

    Values:
      DIFF_TYPE_UNSPECIFIED: Should never be used.
      INTENT: The intent.
      PAGE: The page.
      PARAMETERS: The parameters.
      UTTERANCE: The message utterance.
      FLOW: The flow.
    """
    DIFF_TYPE_UNSPECIFIED = 0
    INTENT = 1
    PAGE = 2
    PARAMETERS = 3
    UTTERANCE = 4
    FLOW = 5

  description = _messages.StringField(1)
  type = _messages.EnumField('TypeValueValuesEnum', 2)


class GoogleCloudDialogflowCxV3beta1TextInput(_messages.Message):
  r"""Represents the natural language text to be processed.

  Fields:
    text: Required. The UTF-8 encoded natural language text to be processed.
  """

  text = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1ToolCall(_messages.Message):
  r"""Represents a call of a specific tool's action with the specified inputs.

  Messages:
    InputParametersValue: Optional. The action's input parameters.

  Fields:
    action: Required. The name of the tool's action associated with this call.
    inputParameters: Optional. The action's input parameters.
    tool: Required. The tool associated with this call. Format:
      `projects//locations//agents//tools/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InputParametersValue(_messages.Message):
    r"""Optional. The action's input parameters.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  inputParameters = _messages.MessageField('InputParametersValue', 2)
  tool = _messages.StringField(3)


class GoogleCloudDialogflowCxV3beta1ToolCallResult(_messages.Message):
  r"""The result of calling a tool's action that has been executed by the
  client.

  Messages:
    OutputParametersValue: The tool call's output parameters.

  Fields:
    action: Required. The name of the tool's action associated with this call.
    error: The tool call's error.
    outputParameters: The tool call's output parameters.
    tool: Required. The tool associated with this call. Format:
      `projects//locations//agents//tools/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class OutputParametersValue(_messages.Message):
    r"""The tool call's output parameters.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  error = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ToolCallResultError', 2)
  outputParameters = _messages.MessageField('OutputParametersValue', 3)
  tool = _messages.StringField(4)


class GoogleCloudDialogflowCxV3beta1ToolCallResultError(_messages.Message):
  r"""An error produced by the tool call.

  Fields:
    message: Optional. The error message of the function.
  """

  message = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1TransitionRoute(_messages.Message):
  r"""A transition route specifies a intent that can be matched and/or a data
  condition that can be evaluated during a session. When a specified
  transition is matched, the following actions are taken in order: * If there
  is a `trigger_fulfillment` associated with the transition, it will be
  called. * If there is a `target_page` associated with the transition, the
  session will transition into the specified page. * If there is a
  `target_flow` associated with the transition, the session will transition
  into the specified flow.

  Fields:
    condition: The condition to evaluate against form parameters or session
      parameters. See the [conditions reference](https://cloud.google.com/dial
      ogflow/cx/docs/reference/condition). At least one of `intent` or
      `condition` must be specified. When both `intent` and `condition` are
      specified, the transition can only happen when both are fulfilled.
    description: Optional. The description of the transition route. The
      maximum length is 500 characters.
    intent: The unique identifier of an Intent. Format:
      `projects//locations//agents//intents/`. Indicates that the transition
      can only happen when the given intent is matched. At least one of
      `intent` or `condition` must be specified. When both `intent` and
      `condition` are specified, the transition can only happen when both are
      fulfilled.
    name: Output only. The unique identifier of this transition route.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
    triggerFulfillment: The fulfillment to call when the condition is
      satisfied. At least one of `trigger_fulfillment` and `target` must be
      specified. When both are defined, `trigger_fulfillment` is executed
      first.
  """

  condition = _messages.StringField(1)
  description = _messages.StringField(2)
  intent = _messages.StringField(3)
  name = _messages.StringField(4)
  targetFlow = _messages.StringField(5)
  targetPage = _messages.StringField(6)
  triggerFulfillment = _messages.MessageField('GoogleCloudDialogflowCxV3beta1Fulfillment', 7)


class GoogleCloudDialogflowCxV3beta1TurnSignals(_messages.Message):
  r"""Collection of all signals that were extracted for a single turn of the
  conversation.

  Enums:
    FailureReasonsValueListEntryValuesEnum:

  Fields:
    agentEscalated: Whether agent responded with LiveAgentHandoff fulfillment.
    dtmfUsed: Whether user was using DTMF input.
    failureReasons: Failure reasons of the turn.
    noMatch: Whether NLU predicted NO_MATCH.
    noUserInput: Whether user provided no input.
    reachedEndPage: Whether turn resulted in End Session page.
    sentimentMagnitude: Sentiment magnitude of the user utterance if
      [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentimen
      t) was enabled.
    sentimentScore: Sentiment score of the user utterance if
      [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentimen
      t) was enabled.
    userEscalated: Whether user was specifically asking for a live agent.
    webhookStatuses: Human-readable statuses of the webhooks triggered during
      this turn.
  """

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

    Values:
      FAILURE_REASON_UNSPECIFIED: Failure reason is not assigned.
      FAILED_INTENT: Whether NLU failed to recognize user intent.
      FAILED_WEBHOOK: Whether webhook failed during the turn.
    """
    FAILURE_REASON_UNSPECIFIED = 0
    FAILED_INTENT = 1
    FAILED_WEBHOOK = 2

  agentEscalated = _messages.BooleanField(1)
  dtmfUsed = _messages.BooleanField(2)
  failureReasons = _messages.EnumField('FailureReasonsValueListEntryValuesEnum', 3, repeated=True)
  noMatch = _messages.BooleanField(4)
  noUserInput = _messages.BooleanField(5)
  reachedEndPage = _messages.BooleanField(6)
  sentimentMagnitude = _messages.FloatField(7, variant=_messages.Variant.FLOAT)
  sentimentScore = _messages.FloatField(8, variant=_messages.Variant.FLOAT)
  userEscalated = _messages.BooleanField(9)
  webhookStatuses = _messages.StringField(10, repeated=True)


class GoogleCloudDialogflowCxV3beta1Webhook(_messages.Message):
  r"""Webhooks host the developer's business logic. During a session, webhooks
  allow the developer to use the data extracted by Dialogflow's natural
  language processing to generate dynamic responses, validate collected data,
  or trigger actions on the backend.

  Fields:
    disabled: Indicates whether the webhook is disabled.
    displayName: Required. The human-readable name of the webhook, unique
      within the agent.
    genericWebService: Configuration for a generic web service.
    name: The unique identifier of the webhook. Required for the
      Webhooks.UpdateWebhook method. Webhooks.CreateWebhook populates the name
      automatically. Format: `projects//locations//agents//webhooks/`.
    serviceDirectory: Configuration for a [Service
      Directory](https://cloud.google.com/service-directory) service.
    timeout: Webhook execution timeout. Execution is considered failed if
      Dialogflow doesn't receive a response from webhook at the end of the
      timeout period. Defaults to 5 seconds, maximum allowed timeout is 30
      seconds.
  """

  disabled = _messages.BooleanField(1)
  displayName = _messages.StringField(2)
  genericWebService = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookGenericWebService', 3)
  name = _messages.StringField(4)
  serviceDirectory = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig', 5)
  timeout = _messages.StringField(6)


class GoogleCloudDialogflowCxV3beta1WebhookGenericWebService(_messages.Message):
  r"""Represents configuration for a generic web service.

  Enums:
    HttpMethodValueValuesEnum: Optional. HTTP method for the flexible webhook
      calls. Standard webhook always uses POST.
    ServiceAgentAuthValueValuesEnum: Optional. Indicate the auth token type
      generated from the [Diglogflow service
      agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-
      service-agent). The generated token is sent in the Authorization header.
    WebhookTypeValueValuesEnum: Optional. Type of the webhook.

  Messages:
    ParameterMappingValue: Optional. Maps the values extracted from specific
      fields of the flexible webhook response into session parameters. - Key:
      session parameter name - Value: field path in the webhook response
    RequestHeadersValue: The HTTP request headers to send together with
      webhook requests.
    SecretVersionsForRequestHeadersValue: Optional. The HTTP request headers
      to send together with webhook requests. Header values are stored in
      SecretManager secret versions. When the same header name is specified in
      both `request_headers` and `secret_versions_for_request_headers`, the
      value in `secret_versions_for_request_headers` will be used.

  Fields:
    allowedCaCerts: Optional. Specifies a list of allowed custom CA
      certificates (in DER format) for HTTPS verification. This overrides the
      default SSL trust store. If this is empty or unspecified, Dialogflow
      will use Google's default trust store to verify certificates. N.B. Make
      sure the HTTPS server certificates are signed with "subject alt name".
      For instance a certificate can be self-signed using the following
      command, ``` openssl x509 -req -days 200 -in example.com.csr \ -signkey
      example.com.key \ -out example.com.crt \ -extfile <(printf
      "\nsubjectAltName='DNS:www.example.com'") ```
    httpMethod: Optional. HTTP method for the flexible webhook calls. Standard
      webhook always uses POST.
    oauthConfig: Optional. The OAuth configuration of the webhook. If
      specified, Dialogflow will initiate the OAuth client credential flow to
      exchange an access token from the 3rd party platform and put it in the
      auth header.
    parameterMapping: Optional. Maps the values extracted from specific fields
      of the flexible webhook response into session parameters. - Key: session
      parameter name - Value: field path in the webhook response
    password: The password for HTTP Basic authentication.
    requestBody: Optional. Defines a custom JSON object as request body to
      send to flexible webhook.
    requestHeaders: The HTTP request headers to send together with webhook
      requests.
    secretVersionForUsernamePassword: Optional. The SecretManager secret
      version resource storing the username:password pair for HTTP Basic
      authentication. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
    secretVersionsForRequestHeaders: Optional. The HTTP request headers to
      send together with webhook requests. Header values are stored in
      SecretManager secret versions. When the same header name is specified in
      both `request_headers` and `secret_versions_for_request_headers`, the
      value in `secret_versions_for_request_headers` will be used.
    serviceAccountAuthConfig: Optional. Configuration for service account
      authentication.
    serviceAgentAuth: Optional. Indicate the auth token type generated from
      the [Diglogflow service
      agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-
      service-agent). The generated token is sent in the Authorization header.
    uri: Required. The webhook URI for receiving POST requests. It must use
      https protocol.
    username: The user name for HTTP Basic authentication.
    webhookType: Optional. Type of the webhook.
  """

  class HttpMethodValueValuesEnum(_messages.Enum):
    r"""Optional. HTTP method for the flexible webhook calls. Standard webhook
    always uses POST.

    Values:
      HTTP_METHOD_UNSPECIFIED: HTTP method not specified.
      POST: HTTP POST Method.
      GET: HTTP GET Method.
      HEAD: HTTP HEAD Method.
      PUT: HTTP PUT Method.
      DELETE: HTTP DELETE Method.
      PATCH: HTTP PATCH Method.
      OPTIONS: HTTP OPTIONS Method.
    """
    HTTP_METHOD_UNSPECIFIED = 0
    POST = 1
    GET = 2
    HEAD = 3
    PUT = 4
    DELETE = 5
    PATCH = 6
    OPTIONS = 7

  class ServiceAgentAuthValueValuesEnum(_messages.Enum):
    r"""Optional. Indicate the auth token type generated from the [Diglogflow
    service agent](https://cloud.google.com/iam/docs/service-
    agents#dialogflow-service-agent). The generated token is sent in the
    Authorization header.

    Values:
      SERVICE_AGENT_AUTH_UNSPECIFIED: Service agent auth type unspecified.
        Default to ID_TOKEN.
      NONE: No token used.
      ID_TOKEN: Use [ID
        token](https://cloud.google.com/docs/authentication/token-types#id)
        generated from service agent. This can be used to access Cloud
        Function and Cloud Run after you grant Invoker role to `service-@gcp-
        sa-dialogflow.iam.gserviceaccount.com`.
      ACCESS_TOKEN: Use [access
        token](https://cloud.google.com/docs/authentication/token-
        types#access) generated from service agent. This can be used to access
        other Google Cloud APIs after you grant required roles to
        `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`.
    """
    SERVICE_AGENT_AUTH_UNSPECIFIED = 0
    NONE = 1
    ID_TOKEN = 2
    ACCESS_TOKEN = 3

  class WebhookTypeValueValuesEnum(_messages.Enum):
    r"""Optional. Type of the webhook.

    Values:
      WEBHOOK_TYPE_UNSPECIFIED: Default value. This value is unused.
      STANDARD: Represents a standard webhook.
      FLEXIBLE: Represents a flexible webhook.
    """
    WEBHOOK_TYPE_UNSPECIFIED = 0
    STANDARD = 1
    FLEXIBLE = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParameterMappingValue(_messages.Message):
    r"""Optional. Maps the values extracted from specific fields of the
    flexible webhook response into session parameters. - Key: session
    parameter name - Value: field path in the webhook response

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

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

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ParameterMappingValue 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 RequestHeadersValue(_messages.Message):
    r"""The HTTP request headers to send together with webhook requests.

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

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

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a RequestHeadersValue 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 SecretVersionsForRequestHeadersValue(_messages.Message):
    r"""Optional. The HTTP request headers to send together with webhook
    requests. Header values are stored in SecretManager secret versions. When
    the same header name is specified in both `request_headers` and
    `secret_versions_for_request_headers`, the value in
    `secret_versions_for_request_headers` will be used.

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

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

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

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

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

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

  allowedCaCerts = _messages.BytesField(1, repeated=True)
  httpMethod = _messages.EnumField('HttpMethodValueValuesEnum', 2)
  oauthConfig = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig', 3)
  parameterMapping = _messages.MessageField('ParameterMappingValue', 4)
  password = _messages.StringField(5)
  requestBody = _messages.StringField(6)
  requestHeaders = _messages.MessageField('RequestHeadersValue', 7)
  secretVersionForUsernamePassword = _messages.StringField(8)
  secretVersionsForRequestHeaders = _messages.MessageField('SecretVersionsForRequestHeadersValue', 9)
  serviceAccountAuthConfig = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceServiceAccountAuthConfig', 10)
  serviceAgentAuth = _messages.EnumField('ServiceAgentAuthValueValuesEnum', 11)
  uri = _messages.StringField(12)
  username = _messages.StringField(13)
  webhookType = _messages.EnumField('WebhookTypeValueValuesEnum', 14)


class GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceOAuthConfig(_messages.Message):
  r"""Represents configuration of OAuth client credential flow for 3rd party
  API authentication.

  Fields:
    clientId: Required. The client ID provided by the 3rd party platform.
    clientSecret: Optional. The client secret provided by the 3rd party
      platform.
    scopes: Optional. The OAuth scopes to grant.
    secretVersionForClientSecret: Optional. The name of the SecretManager
      secret version resource storing the client secret. If this field is set,
      the `client_secret` field will be ignored. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
    tokenEndpoint: Required. The token endpoint provided by the 3rd party
      platform to exchange an access token.
  """

  clientId = _messages.StringField(1)
  clientSecret = _messages.StringField(2)
  scopes = _messages.StringField(3, repeated=True)
  secretVersionForClientSecret = _messages.StringField(4)
  tokenEndpoint = _messages.StringField(5)


class GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceSecretVersionHeaderValue(_messages.Message):
  r"""Represents the value of an HTTP header stored in a SecretManager secret
  version.

  Fields:
    secretVersion: Required. The SecretManager secret version resource storing
      the header value. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
  """

  secretVersion = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1WebhookGenericWebServiceServiceAccountAuthConfig(_messages.Message):
  r"""Configuration for authentication using a service account.

  Fields:
    serviceAccount: Required. The email address of the service account used to
      authenticate the webhook call. Dialogflow uses this service account to
      exchange an access token and the access token is then sent in the
      `Authorization` header of the webhook request. The service account must
      have the `roles/iam.serviceAccountTokenCreator` role granted to the
      [Dialogflow service agent](https://cloud.google.com/iam/docs/service-
      agents#dialogflow-service-agent).
  """

  serviceAccount = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1WebhookRequest(_messages.Message):
  r"""The request message for a webhook call. The request is sent as a JSON
  object and the field names will be presented in camel cases. You may see
  undocumented fields in an actual request. These fields are used internally
  by Dialogflow and should be ignored.

  Messages:
    PayloadValue: Custom data set in QueryParameters.payload.

  Fields:
    detectIntentResponseId: Always present. The unique identifier of the
      DetectIntentResponse that will be returned to the API caller.
    dtmfDigits: If DTMF was provided as input, this field will contain the
      DTMF digits.
    fulfillmentInfo: Always present. Information about the fulfillment that
      triggered this webhook call.
    intentInfo: Information about the last matched intent.
    languageCode: The language code specified in the original request.
    languageInfo: Information about the language of the request.
    messages: The list of rich message responses to present to the user.
      Webhook can choose to append or replace this list in
      WebhookResponse.fulfillment_response;
    pageInfo: Information about page status.
    payload: Custom data set in QueryParameters.payload.
    sentimentAnalysisResult: The sentiment analysis result of the current user
      request. The field is filled when sentiment analysis is configured to be
      enabled for the request.
    sessionInfo: Information about session status.
    text: If natural language text was provided as input, this field will
      contain a copy of the text.
    transcript: If natural language speech audio was provided as input, this
      field will contain the transcript for the audio.
    triggerEvent: If an event was provided as input, this field will contain
      the name of the event.
    triggerIntent: If an intent was provided as input, this field will contain
      a copy of the intent identifier. Format:
      `projects//locations//agents//intents/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Custom data set in QueryParameters.payload.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  detectIntentResponseId = _messages.StringField(1)
  dtmfDigits = _messages.StringField(2)
  fulfillmentInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo', 3)
  intentInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo', 4)
  languageCode = _messages.StringField(5)
  languageInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1LanguageInfo', 6)
  messages = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessage', 7, repeated=True)
  pageInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1PageInfo', 8)
  payload = _messages.MessageField('PayloadValue', 9)
  sentimentAnalysisResult = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult', 10)
  sessionInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1SessionInfo', 11)
  text = _messages.StringField(12)
  transcript = _messages.StringField(13)
  triggerEvent = _messages.StringField(14)
  triggerIntent = _messages.StringField(15)


class GoogleCloudDialogflowCxV3beta1WebhookRequestFulfillmentInfo(_messages.Message):
  r"""Represents fulfillment information communicated to the webhook.

  Fields:
    tag: Always present. The value of the Fulfillment.tag field will be
      populated in this field by Dialogflow when the associated webhook is
      called. The tag is typically used by the webhook service to identify
      which fulfillment is being called, but it could be used for other
      purposes.
  """

  tag = _messages.StringField(1)


class GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfo(_messages.Message):
  r"""Represents intent information communicated to the webhook.

  Messages:
    ParametersValue: Parameters identified as a result of intent matching.
      This is a map of the name of the identified parameter to the value of
      the parameter identified from the user's utterance. All parameters
      defined in the matched intent that are identified will be surfaced here.

  Fields:
    confidence: The confidence of the matched intent. Values range from 0.0
      (completely uncertain) to 1.0 (completely certain).
    displayName: Always present. The display name of the last matched intent.
    lastMatchedIntent: Always present. The unique identifier of the last
      matched intent. Format: `projects//locations//agents//intents/`.
    parameters: Parameters identified as a result of intent matching. This is
      a map of the name of the identified parameter to the value of the
      parameter identified from the user's utterance. All parameters defined
      in the matched intent that are identified will be surfaced here.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Parameters identified as a result of intent matching. This is a map of
    the name of the identified parameter to the value of the parameter
    identified from the user's utterance. All parameters defined in the
    matched intent that are identified will be surfaced here.

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

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

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

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

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

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

  confidence = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  displayName = _messages.StringField(2)
  lastMatchedIntent = _messages.StringField(3)
  parameters = _messages.MessageField('ParametersValue', 4)


class GoogleCloudDialogflowCxV3beta1WebhookRequestIntentInfoIntentParameterValue(_messages.Message):
  r"""Represents a value for an intent parameter.

  Fields:
    originalValue: Always present. Original text value extracted from user
      utterance.
    resolvedValue: Always present. Structured value for the parameter
      extracted from user utterance.
  """

  originalValue = _messages.StringField(1)
  resolvedValue = _messages.MessageField('extra_types.JsonValue', 2)


class GoogleCloudDialogflowCxV3beta1WebhookRequestSentimentAnalysisResult(_messages.Message):
  r"""Represents the result of sentiment analysis.

  Fields:
    magnitude: A non-negative number in the [0, +inf) range, which represents
      the absolute magnitude of sentiment, regardless of score (positive or
      negative).
    score: Sentiment score between -1.0 (negative sentiment) and 1.0 (positive
      sentiment).
  """

  magnitude = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  score = _messages.FloatField(2, variant=_messages.Variant.FLOAT)


class GoogleCloudDialogflowCxV3beta1WebhookResponse(_messages.Message):
  r"""The response message for a webhook call.

  Messages:
    PayloadValue: Value to append directly to QueryResult.webhook_payloads.

  Fields:
    fulfillmentResponse: The fulfillment response to send to the user. This
      field can be omitted by the webhook if it does not intend to send any
      response to the user.
    pageInfo: Information about page status. This field can be omitted by the
      webhook if it does not intend to modify page status.
    payload: Value to append directly to QueryResult.webhook_payloads.
    sessionInfo: Information about session status. This field can be omitted
      by the webhook if it does not intend to modify session status.
    targetFlow: The target flow to transition to. Format:
      `projects//locations//agents//flows/`.
    targetPage: The target page to transition to. Format:
      `projects//locations//agents//flows//pages/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Value to append directly to QueryResult.webhook_payloads.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  fulfillmentResponse = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse', 1)
  pageInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1PageInfo', 2)
  payload = _messages.MessageField('PayloadValue', 3)
  sessionInfo = _messages.MessageField('GoogleCloudDialogflowCxV3beta1SessionInfo', 4)
  targetFlow = _messages.StringField(5)
  targetPage = _messages.StringField(6)


class GoogleCloudDialogflowCxV3beta1WebhookResponseFulfillmentResponse(_messages.Message):
  r"""Represents a fulfillment response to the user.

  Enums:
    MergeBehaviorValueValuesEnum: Merge behavior for `messages`.

  Fields:
    mergeBehavior: Merge behavior for `messages`.
    messages: The list of rich message responses to present to the user.
  """

  class MergeBehaviorValueValuesEnum(_messages.Enum):
    r"""Merge behavior for `messages`.

    Values:
      MERGE_BEHAVIOR_UNSPECIFIED: Not specified. `APPEND` will be used.
      APPEND: `messages` will be appended to the list of messages waiting to
        be sent to the user.
      REPLACE: `messages` will replace the list of messages waiting to be sent
        to the user.
    """
    MERGE_BEHAVIOR_UNSPECIFIED = 0
    APPEND = 1
    REPLACE = 2

  mergeBehavior = _messages.EnumField('MergeBehaviorValueValuesEnum', 1)
  messages = _messages.MessageField('GoogleCloudDialogflowCxV3beta1ResponseMessage', 2, repeated=True)


class GoogleCloudDialogflowCxV3beta1WebhookServiceDirectoryConfig(_messages.Message):
  r"""Represents configuration for a [Service
  Directory](https://cloud.google.com/service-directory) service.

  Fields:
    genericWebService: Generic Service configuration of this webhook.
    service: Required. The name of [Service
      Directory](https://cloud.google.com/service-directory) service. Format:
      `projects//locations//namespaces//services/`. `Location ID` of the
      service directory must be the same as the location of the agent.
  """

  genericWebService = _messages.MessageField('GoogleCloudDialogflowCxV3beta1WebhookGenericWebService', 1)
  service = _messages.StringField(2)


class GoogleCloudDialogflowV2Agent(_messages.Message):
  r"""A Dialogflow agent is a virtual agent that handles conversations with
  your end-users. It is a natural language understanding module that
  understands the nuances of human language. Dialogflow translates end-user
  text or audio during a conversation to structured data that your apps and
  services can understand. You design and build a Dialogflow agent to handle
  the types of conversations required for your system. For more information
  about agents, see the [Agent
  guide](https://cloud.google.com/dialogflow/docs/agents-overview).

  Enums:
    ApiVersionValueValuesEnum: Optional. API version displayed in Dialogflow
      console. If not specified, V2 API is assumed. Clients are free to query
      different service endpoints for different API versions. However, bots
      connectors and webhook calls will follow the specified API version.
    MatchModeValueValuesEnum: Optional. Determines how intents are detected
      from user queries.
    TierValueValuesEnum: Optional. The agent tier. If not specified,
      TIER_STANDARD is assumed.

  Fields:
    apiVersion: Optional. API version displayed in Dialogflow console. If not
      specified, V2 API is assumed. Clients are free to query different
      service endpoints for different API versions. However, bots connectors
      and webhook calls will follow the specified API version.
    avatarUri: Optional. The URI of the agent's avatar. Avatars are used
      throughout the Dialogflow console and in the self-hosted [Web
      Demo](https://cloud.google.com/dialogflow/docs/integrations/web-demo)
      integration.
    classificationThreshold: Optional. To filter out false positive results
      and still get variety in matched natural language inputs for your agent,
      you can tune the machine learning classification threshold. If the
      returned score value is less than the threshold value, then a fallback
      intent will be triggered or, if there are no fallback intents defined,
      no intent will be triggered. The score values range from 0.0 (completely
      uncertain) to 1.0 (completely certain). If set to 0.0, the default of
      0.3 is used.
    defaultLanguageCode: Required. The default language of the agent as a
      language tag. See [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes. This field cannot
      be set by the `Update` method.
    description: Optional. The description of this agent. The maximum length
      is 500 characters. If exceeded, the request is rejected.
    displayName: Required. The name of this agent.
    enableLogging: Optional. Determines whether this agent should log
      conversation queries.
    matchMode: Optional. Determines how intents are detected from user
      queries.
    parent: Required. The project of this agent. Format: `projects/`.
    supportedLanguageCodes: Optional. The list of all languages supported by
      this agent (except for the `default_language_code`).
    tier: Optional. The agent tier. If not specified, TIER_STANDARD is
      assumed.
    timeZone: Required. The time zone of this agent from the [time zone
      database](https://www.iana.org/time-zones), e.g., America/New_York,
      Europe/Paris.
  """

  class ApiVersionValueValuesEnum(_messages.Enum):
    r"""Optional. API version displayed in Dialogflow console. If not
    specified, V2 API is assumed. Clients are free to query different service
    endpoints for different API versions. However, bots connectors and webhook
    calls will follow the specified API version.

    Values:
      API_VERSION_UNSPECIFIED: Not specified.
      API_VERSION_V1: Legacy V1 API.
      API_VERSION_V2: V2 API.
      API_VERSION_V2_BETA_1: V2beta1 API.
    """
    API_VERSION_UNSPECIFIED = 0
    API_VERSION_V1 = 1
    API_VERSION_V2 = 2
    API_VERSION_V2_BETA_1 = 3

  class MatchModeValueValuesEnum(_messages.Enum):
    r"""Optional. Determines how intents are detected from user queries.

    Values:
      MATCH_MODE_UNSPECIFIED: Not specified.
      MATCH_MODE_HYBRID: Best for agents with a small number of examples in
        intents and/or wide use of templates syntax and composite entities.
      MATCH_MODE_ML_ONLY: Can be used for agents with a large number of
        examples in intents, especially the ones using @sys.any or very large
        custom entities.
    """
    MATCH_MODE_UNSPECIFIED = 0
    MATCH_MODE_HYBRID = 1
    MATCH_MODE_ML_ONLY = 2

  class TierValueValuesEnum(_messages.Enum):
    r"""Optional. The agent tier. If not specified, TIER_STANDARD is assumed.

    Values:
      TIER_UNSPECIFIED: Not specified. This value should never be used.
      TIER_STANDARD: Trial Edition, previously known as Standard Edition.
      TIER_ENTERPRISE: Essentials Edition, previously known as Enterprise
        Essential Edition.
      TIER_ENTERPRISE_PLUS: Essentials Edition (same as TIER_ENTERPRISE),
        previously known as Enterprise Plus Edition.
    """
    TIER_UNSPECIFIED = 0
    TIER_STANDARD = 1
    TIER_ENTERPRISE = 2
    TIER_ENTERPRISE_PLUS = 3

  apiVersion = _messages.EnumField('ApiVersionValueValuesEnum', 1)
  avatarUri = _messages.StringField(2)
  classificationThreshold = _messages.FloatField(3, variant=_messages.Variant.FLOAT)
  defaultLanguageCode = _messages.StringField(4)
  description = _messages.StringField(5)
  displayName = _messages.StringField(6)
  enableLogging = _messages.BooleanField(7)
  matchMode = _messages.EnumField('MatchModeValueValuesEnum', 8)
  parent = _messages.StringField(9)
  supportedLanguageCodes = _messages.StringField(10, repeated=True)
  tier = _messages.EnumField('TierValueValuesEnum', 11)
  timeZone = _messages.StringField(12)


class GoogleCloudDialogflowV2AgentAssistantFeedback(_messages.Message):
  r"""Detail feedback of Agent Assist result.

  Enums:
    AnswerRelevanceValueValuesEnum: Optional. Whether or not the suggested
      answer is relevant. For example: * Query: "Can I change my mailing
      address?" * Suggested document says: "Items must be returned/exchanged
      within 60 days of the purchase date." * answer_relevance:
      AnswerRelevance.IRRELEVANT
    DocumentCorrectnessValueValuesEnum: Optional. Whether or not the
      information in the document is correct. For example: * Query: "Can I
      return the package in 2 days once received?" * Suggested document says:
      "Items must be returned/exchanged within 60 days of the purchase date."
      * Ground truth: "No return or exchange is allowed." *
      document_correctness: INCORRECT
    DocumentEfficiencyValueValuesEnum: Optional. Whether or not the suggested
      document is efficient. For example, if the document is poorly written,
      hard to understand, hard to use or too long to find useful information,
      document_efficiency is DocumentEfficiency.INEFFICIENT.

  Fields:
    answerRelevance: Optional. Whether or not the suggested answer is
      relevant. For example: * Query: "Can I change my mailing address?" *
      Suggested document says: "Items must be returned/exchanged within 60
      days of the purchase date." * answer_relevance:
      AnswerRelevance.IRRELEVANT
    documentCorrectness: Optional. Whether or not the information in the
      document is correct. For example: * Query: "Can I return the package in
      2 days once received?" * Suggested document says: "Items must be
      returned/exchanged within 60 days of the purchase date." * Ground truth:
      "No return or exchange is allowed." * document_correctness: INCORRECT
    documentEfficiency: Optional. Whether or not the suggested document is
      efficient. For example, if the document is poorly written, hard to
      understand, hard to use or too long to find useful information,
      document_efficiency is DocumentEfficiency.INEFFICIENT.
    knowledgeAssistFeedback: Optional. Feedback for knowledge assist.
    knowledgeSearchFeedback: Optional. Feedback for knowledge search.
    summarizationFeedback: Optional. Feedback for conversation summarization.
  """

  class AnswerRelevanceValueValuesEnum(_messages.Enum):
    r"""Optional. Whether or not the suggested answer is relevant. For
    example: * Query: "Can I change my mailing address?" * Suggested document
    says: "Items must be returned/exchanged within 60 days of the purchase
    date." * answer_relevance: AnswerRelevance.IRRELEVANT

    Values:
      ANSWER_RELEVANCE_UNSPECIFIED: Answer relevance unspecified.
      IRRELEVANT: Answer is irrelevant to query.
      RELEVANT: Answer is relevant to query.
    """
    ANSWER_RELEVANCE_UNSPECIFIED = 0
    IRRELEVANT = 1
    RELEVANT = 2

  class DocumentCorrectnessValueValuesEnum(_messages.Enum):
    r"""Optional. Whether or not the information in the document is correct.
    For example: * Query: "Can I return the package in 2 days once received?"
    * Suggested document says: "Items must be returned/exchanged within 60
    days of the purchase date." * Ground truth: "No return or exchange is
    allowed." * document_correctness: INCORRECT

    Values:
      DOCUMENT_CORRECTNESS_UNSPECIFIED: Document correctness unspecified.
      INCORRECT: Information in document is incorrect.
      CORRECT: Information in document is correct.
    """
    DOCUMENT_CORRECTNESS_UNSPECIFIED = 0
    INCORRECT = 1
    CORRECT = 2

  class DocumentEfficiencyValueValuesEnum(_messages.Enum):
    r"""Optional. Whether or not the suggested document is efficient. For
    example, if the document is poorly written, hard to understand, hard to
    use or too long to find useful information, document_efficiency is
    DocumentEfficiency.INEFFICIENT.

    Values:
      DOCUMENT_EFFICIENCY_UNSPECIFIED: Document efficiency unspecified.
      INEFFICIENT: Document is inefficient.
      EFFICIENT: Document is efficient.
    """
    DOCUMENT_EFFICIENCY_UNSPECIFIED = 0
    INEFFICIENT = 1
    EFFICIENT = 2

  answerRelevance = _messages.EnumField('AnswerRelevanceValueValuesEnum', 1)
  documentCorrectness = _messages.EnumField('DocumentCorrectnessValueValuesEnum', 2)
  documentEfficiency = _messages.EnumField('DocumentEfficiencyValueValuesEnum', 3)
  knowledgeAssistFeedback = _messages.MessageField('GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeAssistFeedback', 4)
  knowledgeSearchFeedback = _messages.MessageField('GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback', 5)
  summarizationFeedback = _messages.MessageField('GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback', 6)


class GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeAssistFeedback(_messages.Message):
  r"""Feedback for knowledge assist.

  Fields:
    answerCopied: Whether the suggested answer was copied by the human agent.
      If the value is set to be true, AnswerFeedback.clicked will be updated
      to be true.
    clickedUris: The URIs clicked by the human agent. The value is appended
      for each UpdateAnswerRecordRequest. If the value is not empty,
      AnswerFeedback.clicked will be updated to be true.
  """

  answerCopied = _messages.BooleanField(1)
  clickedUris = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowV2AgentAssistantFeedbackKnowledgeSearchFeedback(_messages.Message):
  r"""Feedback for knowledge search.

  Fields:
    answerCopied: Whether the answer was copied by the human agent or not. If
      the value is set to be true, AnswerFeedback.clicked will be updated to
      be true.
    clickedUris: The URIs clicked by the human agent. The value is appended
      for each UpdateAnswerRecordRequest. If the value is not empty,
      AnswerFeedback.clicked will be updated to be true.
  """

  answerCopied = _messages.BooleanField(1)
  clickedUris = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback(_messages.Message):
  r"""Feedback for conversation summarization.

  Messages:
    TextSectionsValue: Optional. Actual text sections of submitted summary.

  Fields:
    startTime: Timestamp when composing of the summary starts.
    submitTime: Timestamp when the summary was submitted.
    summaryText: Text of actual submitted summary.
    textSections: Optional. Actual text sections of submitted summary.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class TextSectionsValue(_messages.Message):
    r"""Optional. Actual text sections of submitted summary.

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

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

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

  startTime = _messages.StringField(1)
  submitTime = _messages.StringField(2)
  summaryText = _messages.StringField(3)
  textSections = _messages.MessageField('TextSectionsValue', 4)


class GoogleCloudDialogflowV2AgentAssistantRecord(_messages.Message):
  r"""Represents a record of a human agent assist answer.

  Fields:
    articleSuggestionAnswer: Output only. The article suggestion answer.
    dialogflowAssistAnswer: Output only. Dialogflow assist answer.
    faqAnswer: Output only. The FAQ answer.
    generatorSuggestion: Output only. The generator suggestion.
  """

  articleSuggestionAnswer = _messages.MessageField('GoogleCloudDialogflowV2ArticleAnswer', 1)
  dialogflowAssistAnswer = _messages.MessageField('GoogleCloudDialogflowV2DialogflowAssistAnswer', 2)
  faqAnswer = _messages.MessageField('GoogleCloudDialogflowV2FaqAnswer', 3)
  generatorSuggestion = _messages.MessageField('GoogleCloudDialogflowV2GeneratorSuggestion', 4)


class GoogleCloudDialogflowV2AgentCoachingContext(_messages.Message):
  r"""Agent Coaching context that customer can configure.

  Fields:
    instructions: Optional. Customized instructions for agent coaching.
    outputLanguageCode: Optional. Output language code.
    overarchingGuidance: Optional. The overarching guidance for the agent
      coaching. This should be set only for v1.5 and later versions.
    version: Optional. Version of the feature. If not set, default to latest
      version. Current candidates are ["1.2"].
  """

  instructions = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingInstruction', 1, repeated=True)
  outputLanguageCode = _messages.StringField(2)
  overarchingGuidance = _messages.StringField(3)
  version = _messages.StringField(4)


class GoogleCloudDialogflowV2AgentCoachingInstruction(_messages.Message):
  r"""Agent Coaching instructions that customer can configure.

  Fields:
    agentAction: Optional. The action that human agent should take. For
      example, "apologize for the slow shipping". If the users only want to
      use agent coaching for intent detection, agent_action can be empty
    condition: Optional. The condition of the instruction. For example, "the
      customer wants to cancel an order". If the users want the instruction to
      be triggered unconditionally, the condition can be empty.
    displayDetails: Optional. The detailed description of this instruction.
    displayName: Optional. Display name for the instruction.
    duplicateCheckResult: Output only. Duplication check for the
      AgentCoachingInstruction.
    systemAction: Optional. The action that system should take. For example,
      "call GetOrderTime with order_number={order number provided by the
      customer}". If the users don't have plugins or don't want to trigger
      plugins, the system_action can be empty
  """

  agentAction = _messages.StringField(1)
  condition = _messages.StringField(2)
  displayDetails = _messages.StringField(3)
  displayName = _messages.StringField(4)
  duplicateCheckResult = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingInstructionDuplicateCheckResult', 5)
  systemAction = _messages.StringField(6)


class GoogleCloudDialogflowV2AgentCoachingInstructionDuplicateCheckResult(_messages.Message):
  r"""Duplication check for the suggestion.

  Fields:
    duplicateSuggestions: Output only. The duplicate suggestions.
  """

  duplicateSuggestions = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingInstructionDuplicateCheckResultDuplicateSuggestion', 1, repeated=True)


class GoogleCloudDialogflowV2AgentCoachingInstructionDuplicateCheckResultDuplicateSuggestion(_messages.Message):
  r"""The duplicate suggestion details.

  Fields:
    answerRecord: Output only. The answer record id of the past duplicate
      suggestion.
    similarityScore: Output only. The similarity score of between the past and
      current suggestion.
    suggestionIndex: Output only. The index of the duplicate suggestion in the
      past suggestion list.
  """

  answerRecord = _messages.StringField(1)
  similarityScore = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  suggestionIndex = _messages.IntegerField(3, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2AgentCoachingSuggestion(_messages.Message):
  r"""Suggestion for coaching agents.

  Fields:
    agentActionSuggestions: Optional. Suggested actions for the agent to take.
    applicableInstructions: Optional. Instructions applicable based on the
      current context.
    sampleResponses: Optional. Sample response for the Agent.
  """

  agentActionSuggestions = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionAgentActionSuggestion', 1, repeated=True)
  applicableInstructions = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingInstruction', 2, repeated=True)
  sampleResponses = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionSampleResponse', 3, repeated=True)


class GoogleCloudDialogflowV2AgentCoachingSuggestionAgentActionSuggestion(_messages.Message):
  r"""Actions suggested for the agent. This is based on applicable
  instructions.

  Fields:
    agentAction: Optional. The suggested action for the agent.
    duplicateCheckResult: Output only. Duplicate check result for the agent
      action suggestion.
    sources: Output only. Sources for the agent action suggestion.
  """

  agentAction = _messages.StringField(1)
  duplicateCheckResult = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionDuplicateCheckResult', 2)
  sources = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionSources', 3)


class GoogleCloudDialogflowV2AgentCoachingSuggestionDuplicateCheckResult(_messages.Message):
  r"""Duplication check for the suggestion.

  Fields:
    duplicateSuggestions: Output only. The duplicate suggestions.
  """

  duplicateSuggestions = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionDuplicateCheckResultDuplicateSuggestion', 1, repeated=True)


class GoogleCloudDialogflowV2AgentCoachingSuggestionDuplicateCheckResultDuplicateSuggestion(_messages.Message):
  r"""The duplicate suggestion details. Keeping answer_record and sources
  together as they are identifiers for duplicate suggestions.

  Fields:
    answerRecord: Output only. The answer record id of the past duplicate
      suggestion.
    similarityScore: Output only. The similarity score of between the past and
      current suggestion.
    sources: Output only. Sources for the suggestion.
    suggestionIndex: Output only. The index of the duplicate suggestion in the
      past suggestion list.
  """

  answerRecord = _messages.StringField(1)
  similarityScore = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  sources = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionSources', 3)
  suggestionIndex = _messages.IntegerField(4, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2AgentCoachingSuggestionSampleResponse(_messages.Message):
  r"""Sample response that the agent can use. This could be based on
  applicable instructions and ingested data from other systems.

  Fields:
    duplicateCheckResult: Output only. Duplicate check result for the sample
      response.
    responseText: Optional. Sample response for Agent in text.
    sources: Output only. Sources for the Sample Response.
  """

  duplicateCheckResult = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionDuplicateCheckResult', 1)
  responseText = _messages.StringField(2)
  sources = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestionSources', 3)


class GoogleCloudDialogflowV2AgentCoachingSuggestionSources(_messages.Message):
  r"""Sources for the suggestion.

  Fields:
    instructionIndexes: Output only. Source instruction indexes for the
      suggestion. This is the index of the applicable_instructions field.
  """

  instructionIndexes = _messages.IntegerField(1, repeated=True, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2AnalyzeContentRequest(_messages.Message):
  r"""The request message for Participants.AnalyzeContent.

  Messages:
    CxParametersValue: Additional parameters to be put into Dialogflow CX
      session parameters. To remove a parameter from the session, clients
      should explicitly set the parameter value to null. Note: this field
      should only be used if you are connecting to a Dialogflow CX agent.

  Fields:
    assistQueryParams: Parameters for a human assist query.
    audioInput: The natural language speech audio to be processed.
    cxParameters: Additional parameters to be put into Dialogflow CX session
      parameters. To remove a parameter from the session, clients should
      explicitly set the parameter value to null. Note: this field should only
      be used if you are connecting to a Dialogflow CX agent.
    eventInput: An input event to send to Dialogflow.
    queryParams: Parameters for a Dialogflow virtual-agent query.
    replyAudioConfig: Speech synthesis configuration. The speech synthesis
      settings for a virtual agent that may be configured for the associated
      conversation profile are not used when calling AnalyzeContent. If this
      configuration is not supplied, speech synthesis is disabled.
    requestId: A unique identifier for this request. Restricted to 36 ASCII
      characters. A random UUID is recommended. This request is only
      idempotent if a `request_id` is provided.
    suggestionInput: An input representing the selection of a suggestion.
    textInput: The natural language text to be processed.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class CxParametersValue(_messages.Message):
    r"""Additional parameters to be put into Dialogflow CX session parameters.
    To remove a parameter from the session, clients should explicitly set the
    parameter value to null. Note: this field should only be used if you are
    connecting to a Dialogflow CX agent.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  assistQueryParams = _messages.MessageField('GoogleCloudDialogflowV2AssistQueryParameters', 1)
  audioInput = _messages.MessageField('GoogleCloudDialogflowV2AudioInput', 2)
  cxParameters = _messages.MessageField('CxParametersValue', 3)
  eventInput = _messages.MessageField('GoogleCloudDialogflowV2EventInput', 4)
  queryParams = _messages.MessageField('GoogleCloudDialogflowV2QueryParameters', 5)
  replyAudioConfig = _messages.MessageField('GoogleCloudDialogflowV2OutputAudioConfig', 6)
  requestId = _messages.StringField(7)
  suggestionInput = _messages.MessageField('GoogleCloudDialogflowV2SuggestionInput', 8)
  textInput = _messages.MessageField('GoogleCloudDialogflowV2TextInput', 9)


class GoogleCloudDialogflowV2AnalyzeContentResponse(_messages.Message):
  r"""The response message for Participants.AnalyzeContent.

  Fields:
    automatedAgentReply: Only set if a Dialogflow automated agent has
      responded. Note that in AutomatedAgentReply.DetectIntentResponse,
      Sessions.DetectIntentResponse.output_audio and
      Sessions.DetectIntentResponse.output_audio_config are always empty, use
      reply_audio instead.
    dtmfParameters: Indicates the parameters of DTMF.
    endUserSuggestionResults: The suggestions for end user. The order is the
      same as HumanAgentAssistantConfig.SuggestionConfig.feature_configs of
      HumanAgentAssistantConfig.end_user_suggestion_config. Same as
      human_agent_suggestion_results, any failure of Agent Assist features
      will not lead to the overall failure of an AnalyzeContent API call.
      Instead, the features will fail silently with the error field set in the
      corresponding SuggestionResult.
    humanAgentSuggestionResults: The suggestions for most recent human agent.
      The order is the same as
      HumanAgentAssistantConfig.SuggestionConfig.feature_configs of
      HumanAgentAssistantConfig.human_agent_suggestion_config. Note that any
      failure of Agent Assist features will not lead to the overall failure of
      an AnalyzeContent API call. Instead, the features will fail silently
      with the error field set in the corresponding SuggestionResult.
    message: Message analyzed by CCAI.
    replyAudio: The audio data bytes encoded as specified in the request. This
      field is set if: - `reply_audio_config` was specified in the request, or
      - The automated agent responded with audio to play to the user. In such
      case, `reply_audio.config` contains settings used to synthesize the
      speech. In some scenarios, multiple output audio fields may be present
      in the response structure. In these cases, only the top-most-level audio
      output has content.
    replyText: The output text content. This field is set if the automated
      agent responded with text to show to the user.
  """

  automatedAgentReply = _messages.MessageField('GoogleCloudDialogflowV2AutomatedAgentReply', 1)
  dtmfParameters = _messages.MessageField('GoogleCloudDialogflowV2DtmfParameters', 2)
  endUserSuggestionResults = _messages.MessageField('GoogleCloudDialogflowV2SuggestionResult', 3, repeated=True)
  humanAgentSuggestionResults = _messages.MessageField('GoogleCloudDialogflowV2SuggestionResult', 4, repeated=True)
  message = _messages.MessageField('GoogleCloudDialogflowV2Message', 5)
  replyAudio = _messages.MessageField('GoogleCloudDialogflowV2OutputAudio', 6)
  replyText = _messages.StringField(7)


class GoogleCloudDialogflowV2AnnotatedMessagePart(_messages.Message):
  r"""Represents a part of a message possibly annotated with an entity. The
  part can be an entity or purely a part of the message between two entities
  or message start/end.

  Fields:
    entityType: The [Dialogflow system entity
      type](https://cloud.google.com/dialogflow/docs/reference/system-
      entities) of this message part. If this is empty, Dialogflow could not
      annotate the phrase part with a system entity.
    formattedValue: The [Dialogflow system entity formatted value
      ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of
      this message part. For example for a system entity of type `@sys.unit-
      currency`, this may contain: { "amount": 5, "currency": "USD" }
    text: A part of a message possibly annotated with an entity.
  """

  entityType = _messages.StringField(1)
  formattedValue = _messages.MessageField('extra_types.JsonValue', 2)
  text = _messages.StringField(3)


class GoogleCloudDialogflowV2AnswerFeedback(_messages.Message):
  r"""Represents feedback the customer has about the quality & correctness of
  a certain answer in a conversation.

  Enums:
    CorrectnessLevelValueValuesEnum: The correctness level of the specific
      answer.

  Fields:
    agentAssistantDetailFeedback: Detail feedback of agent assist suggestions.
    clickTime: Time when the answer/item was clicked.
    clicked: Indicates whether the answer/item was clicked by the human agent
      or not. Default to false. For knowledge search and knowledge assist, the
      answer record is considered to be clicked if the answer was copied or
      any URI was clicked.
    correctnessLevel: The correctness level of the specific answer.
    displayTime: Time when the answer/item was displayed.
    displayed: Indicates whether the answer/item was displayed to the human
      agent in the agent desktop UI. Default to false.
  """

  class CorrectnessLevelValueValuesEnum(_messages.Enum):
    r"""The correctness level of the specific answer.

    Values:
      CORRECTNESS_LEVEL_UNSPECIFIED: Correctness level unspecified.
      NOT_CORRECT: Answer is totally wrong.
      PARTIALLY_CORRECT: Answer is partially correct.
      FULLY_CORRECT: Answer is fully correct.
    """
    CORRECTNESS_LEVEL_UNSPECIFIED = 0
    NOT_CORRECT = 1
    PARTIALLY_CORRECT = 2
    FULLY_CORRECT = 3

  agentAssistantDetailFeedback = _messages.MessageField('GoogleCloudDialogflowV2AgentAssistantFeedback', 1)
  clickTime = _messages.StringField(2)
  clicked = _messages.BooleanField(3)
  correctnessLevel = _messages.EnumField('CorrectnessLevelValueValuesEnum', 4)
  displayTime = _messages.StringField(5)
  displayed = _messages.BooleanField(6)


class GoogleCloudDialogflowV2AnswerRecord(_messages.Message):
  r"""Answer records are records to manage answer history and feedbacks for
  Dialogflow. Currently, answer record includes: - human agent assistant
  article suggestion - human agent assistant faq article It doesn't include: -
  `DetectIntent` intent matching - `DetectIntent` knowledge Answer records are
  not related to the conversation history in the Dialogflow Console. A Record
  is generated even when the end-user disables conversation history in the
  console. Records are created when there's a human agent assistant suggestion
  generated. A typical workflow for customers provide feedback to an answer
  is: 1. For human agent assistant, customers get suggestion via
  ListSuggestions API. Together with the answers, AnswerRecord.name are
  returned to the customers. 2. The customer uses the AnswerRecord.name to
  call the AnswerRecords.UpdateAnswerRecord method to send feedback about a
  specific answer that they believe is wrong.

  Fields:
    agentAssistantRecord: Output only. The record for human agent assistant.
    answerFeedback: Required. The AnswerFeedback for this record. You can set
      this with AnswerRecords.UpdateAnswerRecord in order to give us feedback
      about this answer.
    name: The unique identifier of this answer record. Format:
      `projects//locations//answerRecords/`.
  """

  agentAssistantRecord = _messages.MessageField('GoogleCloudDialogflowV2AgentAssistantRecord', 1)
  answerFeedback = _messages.MessageField('GoogleCloudDialogflowV2AnswerFeedback', 2)
  name = _messages.StringField(3)


class GoogleCloudDialogflowV2ArticleAnswer(_messages.Message):
  r"""Represents article answer.

  Messages:
    MetadataValue: A map that contains metadata about the answer and the
      document from which it originates.

  Fields:
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    confidence: Article match confidence. The system's confidence score that
      this article is a good match for this conversation, as a value from 0.0
      (completely uncertain) to 1.0 (completely certain).
    metadata: A map that contains metadata about the answer and the document
      from which it originates.
    snippets: Article snippets.
    title: The article title.
    uri: The article URI.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""A map that contains metadata about the answer and the document from
    which it originates.

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

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

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

  answerRecord = _messages.StringField(1)
  confidence = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  metadata = _messages.MessageField('MetadataValue', 3)
  snippets = _messages.StringField(4, repeated=True)
  title = _messages.StringField(5)
  uri = _messages.StringField(6)


class GoogleCloudDialogflowV2ArticleSuggestionModelMetadata(_messages.Message):
  r"""Metadata for article suggestion models.

  Enums:
    TrainingModelTypeValueValuesEnum: Optional. Type of the article suggestion
      model. If not provided, model_type is used.

  Fields:
    trainingModelType: Optional. Type of the article suggestion model. If not
      provided, model_type is used.
  """

  class TrainingModelTypeValueValuesEnum(_messages.Enum):
    r"""Optional. Type of the article suggestion model. If not provided,
    model_type is used.

    Values:
      MODEL_TYPE_UNSPECIFIED: ModelType unspecified.
      SMART_REPLY_DUAL_ENCODER_MODEL: ModelType smart reply dual encoder
        model.
      SMART_REPLY_BERT_MODEL: ModelType smart reply bert model.
    """
    MODEL_TYPE_UNSPECIFIED = 0
    SMART_REPLY_DUAL_ENCODER_MODEL = 1
    SMART_REPLY_BERT_MODEL = 2

  trainingModelType = _messages.EnumField('TrainingModelTypeValueValuesEnum', 1)


class GoogleCloudDialogflowV2AssistQueryParameters(_messages.Message):
  r"""Represents the parameters of human assist query.

  Messages:
    DocumentsMetadataFiltersValue: Key-value filters on the metadata of
      documents returned by article suggestion. If specified, article
      suggestion only returns suggested documents that match all filters in
      their Document.metadata. Multiple values for a metadata key should be
      concatenated by comma. For example, filters to match all documents that
      have 'US' or 'CA' in their market metadata values and 'agent' in their
      user metadata values will be ``` documents_metadata_filters { key:
      "market" value: "US,CA" } documents_metadata_filters { key: "user"
      value: "agent" } ```

  Fields:
    documentsMetadataFilters: Key-value filters on the metadata of documents
      returned by article suggestion. If specified, article suggestion only
      returns suggested documents that match all filters in their
      Document.metadata. Multiple values for a metadata key should be
      concatenated by comma. For example, filters to match all documents that
      have 'US' or 'CA' in their market metadata values and 'agent' in their
      user metadata values will be ``` documents_metadata_filters { key:
      "market" value: "US,CA" } documents_metadata_filters { key: "user"
      value: "agent" } ```
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DocumentsMetadataFiltersValue(_messages.Message):
    r"""Key-value filters on the metadata of documents returned by article
    suggestion. If specified, article suggestion only returns suggested
    documents that match all filters in their Document.metadata. Multiple
    values for a metadata key should be concatenated by comma. For example,
    filters to match all documents that have 'US' or 'CA' in their market
    metadata values and 'agent' in their user metadata values will be ```
    documents_metadata_filters { key: "market" value: "US,CA" }
    documents_metadata_filters { key: "user" value: "agent" } ```

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

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

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

  documentsMetadataFilters = _messages.MessageField('DocumentsMetadataFiltersValue', 1)


class GoogleCloudDialogflowV2AudioInput(_messages.Message):
  r"""Represents the natural language speech audio to be processed.

  Fields:
    audio: Required. The natural language speech audio to be processed. A
      single request can contain up to 2 minutes of speech audio data. The
      transcribed text cannot contain more than 256 bytes for virtual agent
      interactions.
    config: Required. Instructs the speech recognizer how to process the
      speech audio.
  """

  audio = _messages.BytesField(1)
  config = _messages.MessageField('GoogleCloudDialogflowV2InputAudioConfig', 2)


class GoogleCloudDialogflowV2AutomatedAgentConfig(_messages.Message):
  r"""Defines the Automated Agent to connect to a conversation.

  Fields:
    agent: Required. ID of the Dialogflow agent environment to use. This
      project needs to either be the same project as the conversation or you
      need to grant `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the
      `Dialogflow API Service Agent` role in this project. - For ES agents,
      use format: `projects//locations//agent/environments/`. If environment
      is not specified, the default `draft` environment is used. Refer to [Det
      ectIntentRequest](/dialogflow/docs/reference/rpc/google.cloud.dialogflow
      .v2#google.cloud.dialogflow.v2.DetectIntentRequest) for more details. -
      For CX agents, use format `projects//locations//agents//environments/`.
      If environment is not specified, the default `draft` environment is
      used.
    sessionTtl: Optional. Configure lifetime of the Dialogflow session. By
      default, a Dialogflow CX session remains active and its data is stored
      for 30 minutes after the last request is sent for the session. This
      value should be no longer than 1 day.
  """

  agent = _messages.StringField(1)
  sessionTtl = _messages.StringField(2)


class GoogleCloudDialogflowV2AutomatedAgentReply(_messages.Message):
  r"""Represents a response from an automated agent.

  Enums:
    AutomatedAgentReplyTypeValueValuesEnum: AutomatedAgentReply type.

  Fields:
    allowCancellation: Indicates whether the partial automated agent reply is
      interruptible when a later reply message arrives. e.g. if the agent
      specified some music as partial response, it can be cancelled.
    automatedAgentReplyType: AutomatedAgentReply type.
    cxCurrentPage: The unique identifier of the current Dialogflow CX
      conversation page. Format: `projects//locations//agents//flows//pages/`.
    detectIntentResponse: Response of the Dialogflow Sessions.DetectIntent
      call.
  """

  class AutomatedAgentReplyTypeValueValuesEnum(_messages.Enum):
    r"""AutomatedAgentReply type.

    Values:
      AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED: Not specified. This should never
        happen.
      PARTIAL: Partial reply. e.g. Aggregated responses in a `Fulfillment`
        that enables `return_partial_response` can be returned as partial
        reply. WARNING: partial reply is not eligible for barge-in.
      FINAL: Final reply.
    """
    AUTOMATED_AGENT_REPLY_TYPE_UNSPECIFIED = 0
    PARTIAL = 1
    FINAL = 2

  allowCancellation = _messages.BooleanField(1)
  automatedAgentReplyType = _messages.EnumField('AutomatedAgentReplyTypeValueValuesEnum', 2)
  cxCurrentPage = _messages.StringField(3)
  detectIntentResponse = _messages.MessageField('GoogleCloudDialogflowV2DetectIntentResponse', 4)


class GoogleCloudDialogflowV2BatchCreateEntitiesRequest(_messages.Message):
  r"""The request message for EntityTypes.BatchCreateEntities.

  Fields:
    entities: Required. The entities to create.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
  """

  entities = _messages.MessageField('GoogleCloudDialogflowV2EntityTypeEntity', 1, repeated=True)
  languageCode = _messages.StringField(2)


class GoogleCloudDialogflowV2BatchDeleteEntitiesRequest(_messages.Message):
  r"""The request message for EntityTypes.BatchDeleteEntities.

  Fields:
    entityValues: Required. The reference `values` of the entities to delete.
      Note that these are not fully-qualified names, i.e. they don't start
      with `projects/`.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
  """

  entityValues = _messages.StringField(1, repeated=True)
  languageCode = _messages.StringField(2)


class GoogleCloudDialogflowV2BatchDeleteEntityTypesRequest(_messages.Message):
  r"""The request message for EntityTypes.BatchDeleteEntityTypes.

  Fields:
    entityTypeNames: Required. The names entity types to delete. All names
      must point to the same agent as `parent`.
  """

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


class GoogleCloudDialogflowV2BatchDeleteIntentsRequest(_messages.Message):
  r"""The request message for Intents.BatchDeleteIntents.

  Fields:
    intents: Required. The collection of intents to delete. Only intent `name`
      must be filled in.
  """

  intents = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1, repeated=True)


class GoogleCloudDialogflowV2BatchUpdateEntitiesRequest(_messages.Message):
  r"""The request message for EntityTypes.BatchUpdateEntities.

  Fields:
    entities: Required. The entities to update or create.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    updateMask: Optional. The mask to control which fields get updated.
  """

  entities = _messages.MessageField('GoogleCloudDialogflowV2EntityTypeEntity', 1, repeated=True)
  languageCode = _messages.StringField(2)
  updateMask = _messages.StringField(3)


class GoogleCloudDialogflowV2BatchUpdateEntityTypesRequest(_messages.Message):
  r"""The request message for EntityTypes.BatchUpdateEntityTypes.

  Fields:
    entityTypeBatchInline: The collection of entity types to update or create.
    entityTypeBatchUri: The URI to a Google Cloud Storage file containing
      entity types to update or create. The file format can either be a
      serialized proto (of EntityBatch type) or a JSON object. Note: The URI
      must start with "gs://".
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    updateMask: Optional. The mask to control which fields get updated.
  """

  entityTypeBatchInline = _messages.MessageField('GoogleCloudDialogflowV2EntityTypeBatch', 1)
  entityTypeBatchUri = _messages.StringField(2)
  languageCode = _messages.StringField(3)
  updateMask = _messages.StringField(4)


class GoogleCloudDialogflowV2BatchUpdateEntityTypesResponse(_messages.Message):
  r"""The response message for EntityTypes.BatchUpdateEntityTypes.

  Fields:
    entityTypes: The collection of updated or created entity types.
  """

  entityTypes = _messages.MessageField('GoogleCloudDialogflowV2EntityType', 1, repeated=True)


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

  Enums:
    IntentViewValueValuesEnum: Optional. The resource view to apply to the
      returned intent.

  Fields:
    intentBatchInline: The collection of intents to update or create.
    intentBatchUri: The URI to a Google Cloud Storage file containing intents
      to update or create. The file format can either be a serialized proto
      (of IntentBatch type) or JSON object. Note: The URI must start with
      "gs://".
    intentView: Optional. The resource view to apply to the returned intent.
    languageCode: Optional. The language used to access language-specific
      data. If not specified, the agent's default language is used. For more
      information, see [Multilingual intent and entity
      data](https://cloud.google.com/dialogflow/docs/agents-
      multilingual#intent-entity).
    updateMask: Optional. The mask to control which fields get updated.
  """

  class IntentViewValueValuesEnum(_messages.Enum):
    r"""Optional. The resource view to apply to the returned intent.

    Values:
      INTENT_VIEW_UNSPECIFIED: Training phrases field is not populated in the
        response.
      INTENT_VIEW_FULL: All fields are populated.
    """
    INTENT_VIEW_UNSPECIFIED = 0
    INTENT_VIEW_FULL = 1

  intentBatchInline = _messages.MessageField('GoogleCloudDialogflowV2IntentBatch', 1)
  intentBatchUri = _messages.StringField(2)
  intentView = _messages.EnumField('IntentViewValueValuesEnum', 3)
  languageCode = _messages.StringField(4)
  updateMask = _messages.StringField(5)


class GoogleCloudDialogflowV2BatchUpdateIntentsResponse(_messages.Message):
  r"""The response message for Intents.BatchUpdateIntents.

  Fields:
    intents: The collection of updated or created intents.
  """

  intents = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1, repeated=True)


class GoogleCloudDialogflowV2ClearSuggestionFeatureConfigOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationProfiles.ClearSuggestionFeatureConfig
  operation.

  Enums:
    ParticipantRoleValueValuesEnum: Required. The participant role to remove
      the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.
    SuggestionFeatureTypeValueValuesEnum: Required. The type of the suggestion
      feature to remove.

  Fields:
    conversationProfile: The resource name of the conversation profile.
      Format: `projects//locations//conversationProfiles/`
    createTime: Timestamp whe the request was created. The time is measured on
      server side.
    participantRole: Required. The participant role to remove the suggestion
      feature config. Only HUMAN_AGENT or END_USER can be used.
    suggestionFeatureType: Required. The type of the suggestion feature to
      remove.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Required. The participant role to remove the suggestion feature
    config. Only HUMAN_AGENT or END_USER can be used.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  class SuggestionFeatureTypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the suggestion feature to remove.

    Values:
      TYPE_UNSPECIFIED: Unspecified feature type.
      ARTICLE_SUGGESTION: Run article suggestion model for chat.
      FAQ: Run FAQ model for chat.
      SMART_REPLY: Run smart reply model for chat.
      CONVERSATION_SUMMARIZATION: Run conversation summarization model for
        chat.
      KNOWLEDGE_SEARCH: Run knowledge search with text input from agent or
        text generated query.
      KNOWLEDGE_ASSIST: Run knowledge assist with automatic query generation.
    """
    TYPE_UNSPECIFIED = 0
    ARTICLE_SUGGESTION = 1
    FAQ = 2
    SMART_REPLY = 3
    CONVERSATION_SUMMARIZATION = 4
    KNOWLEDGE_SEARCH = 5
    KNOWLEDGE_ASSIST = 6

  conversationProfile = _messages.StringField(1)
  createTime = _messages.StringField(2)
  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 3)
  suggestionFeatureType = _messages.EnumField('SuggestionFeatureTypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2ClearSuggestionFeatureConfigRequest(_messages.Message):
  r"""The request message for
  ConversationProfiles.ClearSuggestionFeatureConfig.

  Enums:
    ParticipantRoleValueValuesEnum: Required. The participant role to remove
      the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.
    SuggestionFeatureTypeValueValuesEnum: Required. The type of the suggestion
      feature to remove.

  Fields:
    participantRole: Required. The participant role to remove the suggestion
      feature config. Only HUMAN_AGENT or END_USER can be used.
    suggestionFeatureType: Required. The type of the suggestion feature to
      remove.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Required. The participant role to remove the suggestion feature
    config. Only HUMAN_AGENT or END_USER can be used.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  class SuggestionFeatureTypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the suggestion feature to remove.

    Values:
      TYPE_UNSPECIFIED: Unspecified feature type.
      ARTICLE_SUGGESTION: Run article suggestion model for chat.
      FAQ: Run FAQ model for chat.
      SMART_REPLY: Run smart reply model for chat.
      CONVERSATION_SUMMARIZATION: Run conversation summarization model for
        chat.
      KNOWLEDGE_SEARCH: Run knowledge search with text input from agent or
        text generated query.
      KNOWLEDGE_ASSIST: Run knowledge assist with automatic query generation.
    """
    TYPE_UNSPECIFIED = 0
    ARTICLE_SUGGESTION = 1
    FAQ = 2
    SMART_REPLY = 3
    CONVERSATION_SUMMARIZATION = 4
    KNOWLEDGE_SEARCH = 5
    KNOWLEDGE_ASSIST = 6

  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 1)
  suggestionFeatureType = _messages.EnumField('SuggestionFeatureTypeValueValuesEnum', 2)


class GoogleCloudDialogflowV2CompleteConversationRequest(_messages.Message):
  r"""The request message for Conversations.CompleteConversation."""


class GoogleCloudDialogflowV2Connection(_messages.Message):
  r"""Represents a connection for SIP Trunk.

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

  Fields:
    connectionId: Output only. The unique identifier of the SIP Trunk
      connection.
    errorDetails: Output only. The error details for the connection. Only
      populated when authentication errors occur.
    state: Output only. State of the connection.
    updateTime: Output only. When the connection status changed.
  """

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

    Values:
      STATE_UNSPECIFIED: SIP Trunk connection state is Not specified.
      CONNECTED: SIP Trunk connection is connected.
      DISCONNECTED: SIP Trunk connection is disconnected.
      AUTHENTICATION_FAILED: SIP Trunk connection has authentication error.
      KEEPALIVE: SIP Trunk connection is keepalive.
    """
    STATE_UNSPECIFIED = 0
    CONNECTED = 1
    DISCONNECTED = 2
    AUTHENTICATION_FAILED = 3
    KEEPALIVE = 4

  connectionId = _messages.StringField(1)
  errorDetails = _messages.MessageField('GoogleCloudDialogflowV2ConnectionErrorDetails', 2)
  state = _messages.EnumField('StateValueValuesEnum', 3)
  updateTime = _messages.StringField(4)


class GoogleCloudDialogflowV2ConnectionErrorDetails(_messages.Message):
  r"""The error details of Sip Trunk connection authentication.

  Enums:
    CertificateStateValueValuesEnum: Output only. The status of the
      certificate authentication.

  Fields:
    certificateState: Output only. The status of the certificate
      authentication.
    errorMessage: The error message provided from SIP trunking auth service
  """

  class CertificateStateValueValuesEnum(_messages.Enum):
    r"""Output only. The status of the certificate authentication.

    Values:
      CERTIFICATE_STATE_UNSPECIFIED: Certificate state is not specified.
      CERTIFICATE_VALID: Certificate is valid.
      CERTIFICATE_INVALID: Catch all for any error not specified.
      CERTIFICATE_EXPIRED: Certificate leaf node has expired.
      CERTIFICATE_HOSTNAME_NOT_FOUND: There is no hostname defined to
        authenticate in SipTrunkingServer.
      CERTIFICATE_UNAUTHENTICATED: No path found from the leaf certificate to
        any root.
      CERTIFICATE_TRUST_STORE_NOT_FOUND: Trust store does not exist.
      CERTIFICATE_HOSTNAME_INVALID_FORMAT: Hostname has invalid format.
      CERTIFICATE_QUOTA_EXCEEDED: Certificate has exhausted its quota.
    """
    CERTIFICATE_STATE_UNSPECIFIED = 0
    CERTIFICATE_VALID = 1
    CERTIFICATE_INVALID = 2
    CERTIFICATE_EXPIRED = 3
    CERTIFICATE_HOSTNAME_NOT_FOUND = 4
    CERTIFICATE_UNAUTHENTICATED = 5
    CERTIFICATE_TRUST_STORE_NOT_FOUND = 6
    CERTIFICATE_HOSTNAME_INVALID_FORMAT = 7
    CERTIFICATE_QUOTA_EXCEEDED = 8

  certificateState = _messages.EnumField('CertificateStateValueValuesEnum', 1)
  errorMessage = _messages.StringField(2)


class GoogleCloudDialogflowV2Context(_messages.Message):
  r"""Dialogflow contexts are similar to natural language context. If a person
  says to you "they are orange", you need context in order to understand what
  "they" is referring to. Similarly, for Dialogflow to handle an end-user
  expression like that, it needs to be provided with context in order to
  correctly match an intent. Using contexts, you can control the flow of a
  conversation. You can configure contexts for an intent by setting input and
  output contexts, which are identified by string names. When an intent is
  matched, any configured output contexts for that intent become active. While
  any contexts are active, Dialogflow is more likely to match intents that are
  configured with input contexts that correspond to the currently active
  contexts. For more information about context, see the [Contexts
  guide](https://cloud.google.com/dialogflow/docs/contexts-overview).

  Messages:
    ParametersValue: Optional. The collection of parameters associated with
      this context. Depending on your protocol or client library language,
      this is a map, associative array, symbol table, dictionary, or JSON
      object composed of a collection of (MapKey, MapValue) pairs: * MapKey
      type: string * MapKey value: parameter name * MapValue type: If
      parameter's entity type is a composite entity then use map, otherwise,
      depending on the parameter value type, it could be one of string,
      number, boolean, null, list or map. * MapValue value: If parameter's
      entity type is a composite entity then use map from composite entity
      property names to property values, otherwise, use parameter value.

  Fields:
    lifespanCount: Optional. The number of conversational query requests after
      which the context expires. The default is `0`. If set to `0`, the
      context expires immediately. Contexts expire automatically after 20
      minutes if there are no matching queries.
    name: Required. The unique identifier of the context. Format:
      `projects//agent/sessions//contexts/`, or
      `projects//agent/environments//users//sessions//contexts/`. The `Context
      ID` is always converted to lowercase, may only contain characters in
      `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is
      not specified, we assume default 'draft' environment. If `User ID` is
      not specified, we assume default '-' user. The following context names
      are reserved for internal use by Dialogflow. You should not use these
      contexts or create contexts with these names: * `__system_counters__` *
      `*_id_dialog_context` * `*_dialog_params_size`
    parameters: Optional. The collection of parameters associated with this
      context. Depending on your protocol or client library language, this is
      a map, associative array, symbol table, dictionary, or JSON object
      composed of a collection of (MapKey, MapValue) pairs: * MapKey type:
      string * MapKey value: parameter name * MapValue type: If parameter's
      entity type is a composite entity then use map, otherwise, depending on
      the parameter value type, it could be one of string, number, boolean,
      null, list or map. * MapValue value: If parameter's entity type is a
      composite entity then use map from composite entity property names to
      property values, otherwise, use parameter value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional. The collection of parameters associated with this context.
    Depending on your protocol or client library language, this is a map,
    associative array, symbol table, dictionary, or JSON object composed of a
    collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey
    value: parameter name * MapValue type: If parameter's entity type is a
    composite entity then use map, otherwise, depending on the parameter value
    type, it could be one of string, number, boolean, null, list or map. *
    MapValue value: If parameter's entity type is a composite entity then use
    map from composite entity property names to property values, otherwise,
    use parameter value.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  lifespanCount = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  name = _messages.StringField(2)
  parameters = _messages.MessageField('ParametersValue', 3)


class GoogleCloudDialogflowV2Conversation(_messages.Message):
  r"""Represents a conversation. A conversation is an interaction between an
  agent, including live agents and Dialogflow agents, and a support customer.
  Conversations can include phone calls and text-based chat sessions.

  Enums:
    ConversationStageValueValuesEnum: Optional. The stage of a conversation.
      It indicates whether the virtual agent or a human agent is handling the
      conversation. If the conversation is created with the conversation
      profile that has Dialogflow config set, defaults to
      ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise, defaults to
      ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is created
      with the conversation profile that has Dialogflow config set but
      explicitly sets conversation_stage to
      ConversationStage.HUMAN_ASSIST_STAGE, it skips
      ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to
      ConversationStage.HUMAN_ASSIST_STAGE.
    LifecycleStateValueValuesEnum: Output only. The current state of the
      Conversation.

  Messages:
    IngestedContextReferencesValue: Output only. The context reference updates
      provided by external systems.

  Fields:
    conversationProfile: Required. The Conversation Profile to be used to
      configure this Conversation. This field cannot be updated. Format:
      `projects//locations//conversationProfiles/`.
    conversationStage: Optional. The stage of a conversation. It indicates
      whether the virtual agent or a human agent is handling the conversation.
      If the conversation is created with the conversation profile that has
      Dialogflow config set, defaults to
      ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise, defaults to
      ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is created
      with the conversation profile that has Dialogflow config set but
      explicitly sets conversation_stage to
      ConversationStage.HUMAN_ASSIST_STAGE, it skips
      ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to
      ConversationStage.HUMAN_ASSIST_STAGE.
    endTime: Output only. The time the conversation was finished.
    ingestedContextReferences: Output only. The context reference updates
      provided by external systems.
    lifecycleState: Output only. The current state of the Conversation.
    name: Output only. Identifier. The unique identifier of this conversation.
      Format: `projects//locations//conversations/`.
    phoneNumber: Output only. It will not be empty if the conversation is to
      be connected over telephony.
    startTime: Output only. The time the conversation was started.
    telephonyConnectionInfo: Output only. The telephony connection
      information.
  """

  class ConversationStageValueValuesEnum(_messages.Enum):
    r"""Optional. The stage of a conversation. It indicates whether the
    virtual agent or a human agent is handling the conversation. If the
    conversation is created with the conversation profile that has Dialogflow
    config set, defaults to ConversationStage.VIRTUAL_AGENT_STAGE; Otherwise,
    defaults to ConversationStage.HUMAN_ASSIST_STAGE. If the conversation is
    created with the conversation profile that has Dialogflow config set but
    explicitly sets conversation_stage to
    ConversationStage.HUMAN_ASSIST_STAGE, it skips
    ConversationStage.VIRTUAL_AGENT_STAGE stage and directly goes to
    ConversationStage.HUMAN_ASSIST_STAGE.

    Values:
      CONVERSATION_STAGE_UNSPECIFIED: Unknown. Should never be used after a
        conversation is successfully created.
      VIRTUAL_AGENT_STAGE: The conversation should return virtual agent
        responses into the conversation.
      HUMAN_ASSIST_STAGE: The conversation should not provide responses, just
        listen and provide suggestions.
    """
    CONVERSATION_STAGE_UNSPECIFIED = 0
    VIRTUAL_AGENT_STAGE = 1
    HUMAN_ASSIST_STAGE = 2

  class LifecycleStateValueValuesEnum(_messages.Enum):
    r"""Output only. The current state of the Conversation.

    Values:
      LIFECYCLE_STATE_UNSPECIFIED: Unknown.
      IN_PROGRESS: Conversation is currently open for media analysis.
      COMPLETED: Conversation has been completed.
    """
    LIFECYCLE_STATE_UNSPECIFIED = 0
    IN_PROGRESS = 1
    COMPLETED = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class IngestedContextReferencesValue(_messages.Message):
    r"""Output only. The context reference updates provided by external
    systems.

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

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

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

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

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

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

  conversationProfile = _messages.StringField(1)
  conversationStage = _messages.EnumField('ConversationStageValueValuesEnum', 2)
  endTime = _messages.StringField(3)
  ingestedContextReferences = _messages.MessageField('IngestedContextReferencesValue', 4)
  lifecycleState = _messages.EnumField('LifecycleStateValueValuesEnum', 5)
  name = _messages.StringField(6)
  phoneNumber = _messages.MessageField('GoogleCloudDialogflowV2ConversationPhoneNumber', 7)
  startTime = _messages.StringField(8)
  telephonyConnectionInfo = _messages.MessageField('GoogleCloudDialogflowV2ConversationTelephonyConnectionInfo', 9)


class GoogleCloudDialogflowV2ConversationContext(_messages.Message):
  r"""Context of the conversation, including transcripts.

  Fields:
    messageEntries: Optional. List of message transcripts in the conversation.
  """

  messageEntries = _messages.MessageField('GoogleCloudDialogflowV2MessageEntry', 1, repeated=True)


class GoogleCloudDialogflowV2ConversationContextReference(_messages.Message):
  r"""Represents a section of ingested context information.

  Enums:
    UpdateModeValueValuesEnum: Required. The mode in which context reference
      contents are updated.

  Fields:
    contextContents: Required. The list of content updates for a context
      reference.
    createTime: Output only. The time the context reference was first created.
    languageCode: Optional. The language of the information ingested, defaults
      to "en-US" if not set.
    updateMode: Required. The mode in which context reference contents are
      updated.
  """

  class UpdateModeValueValuesEnum(_messages.Enum):
    r"""Required. The mode in which context reference contents are updated.

    Values:
      UPDATE_MODE_UNSPECIFIED: Unspecified update mode.
      APPEND: Context content updates are applied in append mode.
      OVERWRITE: Context content updates are applied in overwrite mode.
    """
    UPDATE_MODE_UNSPECIFIED = 0
    APPEND = 1
    OVERWRITE = 2

  contextContents = _messages.MessageField('GoogleCloudDialogflowV2ConversationContextReferenceContextContent', 1, repeated=True)
  createTime = _messages.StringField(2)
  languageCode = _messages.StringField(3)
  updateMode = _messages.EnumField('UpdateModeValueValuesEnum', 4)


class GoogleCloudDialogflowV2ConversationContextReferenceContextContent(_messages.Message):
  r"""Contents ingested.

  Enums:
    ContentFormatValueValuesEnum: Required. The format of the ingested string.

  Fields:
    answerRecord: If the context content was generated from a tool call,
      specify the answer record associated with the tool call. Format:
      `projects//locations//answerRecords/`.
    content: Required. The information ingested in a single request.
    contentFormat: Required. The format of the ingested string.
    ingestionTime: Output only. The time when this information was
      incorporated into the relevant context reference.
  """

  class ContentFormatValueValuesEnum(_messages.Enum):
    r"""Required. The format of the ingested string.

    Values:
      CONTENT_FORMAT_UNSPECIFIED: Unspecified content format.
      JSON: Content was provided in JSON format.
      PLAIN_TEXT: Content was provided as plain text.
    """
    CONTENT_FORMAT_UNSPECIFIED = 0
    JSON = 1
    PLAIN_TEXT = 2

  answerRecord = _messages.StringField(1)
  content = _messages.StringField(2)
  contentFormat = _messages.EnumField('ContentFormatValueValuesEnum', 3)
  ingestionTime = _messages.StringField(4)


class GoogleCloudDialogflowV2ConversationDataset(_messages.Message):
  r"""Represents a conversation dataset that a user imports raw data into. The
  data inside ConversationDataset can not be changed after
  ImportConversationData finishes (and calling ImportConversationData on a
  dataset that already has data is not allowed).

  Fields:
    conversationCount: Output only. The number of conversations this
      conversation dataset contains.
    conversationInfo: Output only. Metadata set during conversation data
      import.
    createTime: Output only. Creation time of this dataset.
    description: Optional. The description of the dataset. Maximum of 10000
      bytes.
    displayName: Required. The display name of the dataset. Maximum of 64
      bytes.
    inputConfig: Output only. Input configurations set during conversation
      data import.
    name: Output only. ConversationDataset resource name. Format:
      `projects//locations//conversationDatasets/`
    satisfiesPzi: Output only. A read only boolean field reflecting Zone
      Isolation status of the dataset.
    satisfiesPzs: Output only. A read only boolean field reflecting Zone
      Separation status of the dataset.
  """

  conversationCount = _messages.IntegerField(1)
  conversationInfo = _messages.MessageField('GoogleCloudDialogflowV2ConversationInfo', 2)
  createTime = _messages.StringField(3)
  description = _messages.StringField(4)
  displayName = _messages.StringField(5)
  inputConfig = _messages.MessageField('GoogleCloudDialogflowV2InputConfig', 6)
  name = _messages.StringField(7)
  satisfiesPzi = _messages.BooleanField(8)
  satisfiesPzs = _messages.BooleanField(9)


class GoogleCloudDialogflowV2ConversationEvent(_messages.Message):
  r"""Represents a notification sent to Pub/Sub subscribers for conversation
  lifecycle events.

  Enums:
    TypeValueValuesEnum: The type of the event that this notification refers
      to.

  Fields:
    conversation: The unique identifier of the conversation this notification
      refers to. Format: `projects//conversations/`.
    errorStatus: More detailed information about an error. Only set for type
      UNRECOVERABLE_ERROR_IN_PHONE_CALL.
    newMessagePayload: Payload of NEW_MESSAGE event.
    newRecognitionResultPayload: Payload of NEW_RECOGNITION_RESULT event.
    type: The type of the event that this notification refers to.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The type of the event that this notification refers to.

    Values:
      TYPE_UNSPECIFIED: Type not set.
      CONVERSATION_STARTED: A new conversation has been opened. This is fired
        when a telephone call is answered, or a conversation is created via
        the API.
      CONVERSATION_FINISHED: An existing conversation has closed. This is
        fired when a telephone call is terminated, or a conversation is closed
        via the API. The event is fired for every CompleteConversation call,
        even if the conversation is already closed.
      HUMAN_INTERVENTION_NEEDED: An existing conversation has received
        notification from Dialogflow that human intervention is required.
      NEW_MESSAGE: An existing conversation has received a new message, either
        from API or telephony. It is configured in
        ConversationProfile.new_message_event_notification_config
      NEW_RECOGNITION_RESULT: An existing conversation has received a new
        speech recognition result. This is mainly for delivering intermediate
        transcripts. The notification is configured in
        ConversationProfile.new_recognition_event_notification_config.
      UNRECOVERABLE_ERROR: Unrecoverable error during a telephone call. In
        general non-recoverable errors only occur if something was
        misconfigured in the ConversationProfile corresponding to the call.
        After a non-recoverable error, Dialogflow may stop responding. We
        don't fire this event: * in an API call because we can directly return
        the error, or, * when we can recover from an error.
    """
    TYPE_UNSPECIFIED = 0
    CONVERSATION_STARTED = 1
    CONVERSATION_FINISHED = 2
    HUMAN_INTERVENTION_NEEDED = 3
    NEW_MESSAGE = 4
    NEW_RECOGNITION_RESULT = 5
    UNRECOVERABLE_ERROR = 6

  conversation = _messages.StringField(1)
  errorStatus = _messages.MessageField('GoogleRpcStatus', 2)
  newMessagePayload = _messages.MessageField('GoogleCloudDialogflowV2Message', 3)
  newRecognitionResultPayload = _messages.MessageField('GoogleCloudDialogflowV2StreamingRecognitionResult', 4)
  type = _messages.EnumField('TypeValueValuesEnum', 5)


class GoogleCloudDialogflowV2ConversationInfo(_messages.Message):
  r"""Represents metadata of a conversation.

  Fields:
    languageCode: Optional. The language code of the conversation data within
      this dataset. See https://cloud.google.com/apis/design/standard_fields
      for more information. Supports all UTF-8 languages.
  """

  languageCode = _messages.StringField(1)


class GoogleCloudDialogflowV2ConversationModel(_messages.Message):
  r"""Represents a conversation model.

  Enums:
    StateValueValuesEnum: Output only. State of the model. A model can only
      serve prediction requests after it gets deployed.

  Fields:
    articleSuggestionModelMetadata: Metadata for article suggestion models.
    createTime: Output only. Creation time of this model.
    datasets: Required. Datasets used to create model.
    displayName: Required. The display name of the model. At most 64 bytes
      long.
    languageCode: Language code for the conversation model. If not specified,
      the language is en-US. Language at ConversationModel should be set for
      all non en-us languages. This should be a [BCP-47](https://www.rfc-
      editor.org/rfc/bcp/bcp47.txt) language tag. Example: "en-US".
    name: ConversationModel resource name. Format:
      `projects//conversationModels/`
    satisfiesPzi: Output only. A read only boolean field reflecting Zone
      Isolation status of the model.
    satisfiesPzs: Output only. A read only boolean field reflecting Zone
      Separation status of the model.
    smartReplyModelMetadata: Metadata for smart reply models.
    state: Output only. State of the model. A model can only serve prediction
      requests after it gets deployed.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. State of the model. A model can only serve prediction
    requests after it gets deployed.

    Values:
      STATE_UNSPECIFIED: Should not be used, an un-set enum has this value by
        default.
      CREATING: Model being created.
      UNDEPLOYED: Model is not deployed but ready to deploy.
      DEPLOYING: Model is deploying.
      DEPLOYED: Model is deployed and ready to use.
      UNDEPLOYING: Model is undeploying.
      DELETING: Model is deleting.
      FAILED: Model is in error state. Not ready to deploy and use.
      PENDING: Model is being created but the training has not started, The
        model may remain in this state until there is enough capacity to start
        training.
    """
    STATE_UNSPECIFIED = 0
    CREATING = 1
    UNDEPLOYED = 2
    DEPLOYING = 3
    DEPLOYED = 4
    UNDEPLOYING = 5
    DELETING = 6
    FAILED = 7
    PENDING = 8

  articleSuggestionModelMetadata = _messages.MessageField('GoogleCloudDialogflowV2ArticleSuggestionModelMetadata', 1)
  createTime = _messages.StringField(2)
  datasets = _messages.MessageField('GoogleCloudDialogflowV2InputDataset', 3, repeated=True)
  displayName = _messages.StringField(4)
  languageCode = _messages.StringField(5)
  name = _messages.StringField(6)
  satisfiesPzi = _messages.BooleanField(7)
  satisfiesPzs = _messages.BooleanField(8)
  smartReplyModelMetadata = _messages.MessageField('GoogleCloudDialogflowV2SmartReplyModelMetadata', 9)
  state = _messages.EnumField('StateValueValuesEnum', 10)


class GoogleCloudDialogflowV2ConversationModelEvaluation(_messages.Message):
  r"""Represents evaluation result of a conversation model.

  Fields:
    createTime: Output only. Creation time of this model.
    displayName: Optional. The display name of the model evaluation. At most
      64 bytes long.
    evaluationConfig: Optional. The configuration of the evaluation task.
    name: The resource name of the evaluation. Format:
      `projects//conversationModels//evaluations/`
    rawHumanEvalTemplateCsv: Output only. Human eval template in csv format.
      It takes real-world conversations provided through input dataset,
      generates example suggestions for customer to verify quality of the
      model. For Smart Reply, the generated csv file contains columns of
      Context, (Suggestions,Q1,Q2)*3, Actual reply. Context contains at most
      10 latest messages in the conversation prior to the current suggestion.
      Q1: "Would you send it as the next message of agent?" Evaluated based on
      whether the suggest is appropriate to be sent by agent in current
      context. Q2: "Does the suggestion move the conversation closer to
      resolution?" Evaluated based on whether the suggestion provide
      solutions, or answers customer's question or collect information from
      customer to resolve the customer's issue. Actual reply column contains
      the actual agent reply sent in the context.
    smartReplyMetrics: Output only. Only available when model is for smart
      reply.
  """

  createTime = _messages.StringField(1)
  displayName = _messages.StringField(2)
  evaluationConfig = _messages.MessageField('GoogleCloudDialogflowV2EvaluationConfig', 3)
  name = _messages.StringField(4)
  rawHumanEvalTemplateCsv = _messages.StringField(5)
  smartReplyMetrics = _messages.MessageField('GoogleCloudDialogflowV2SmartReplyMetrics', 6)


class GoogleCloudDialogflowV2ConversationPhoneNumber(_messages.Message):
  r"""Represents a phone number for telephony integration. It allows for
  connecting a particular conversation over telephony.

  Fields:
    countryCode: Output only. Desired country code for the phone number.
    phoneNumber: Output only. The phone number to connect to this
      conversation.
  """

  countryCode = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  phoneNumber = _messages.StringField(2)


class GoogleCloudDialogflowV2ConversationProfile(_messages.Message):
  r"""Defines the services to connect to incoming Dialogflow conversations.

  Fields:
    automatedAgentConfig: Configuration for an automated agent to use with
      this profile.
    createTime: Output only. Create time of the conversation profile.
    displayName: Required. Human readable name for this profile. Max length
      1024 bytes.
    humanAgentAssistantConfig: Configuration for agent assistance to use with
      this profile.
    humanAgentHandoffConfig: Configuration for connecting to a live agent.
      Currently, this feature is not general available, please contact Google
      to get access.
    languageCode: Language code for the conversation profile. If not
      specified, the language is en-US. Language at ConversationProfile should
      be set for all non en-US languages. This should be a
      [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.
      Example: "en-US".
    loggingConfig: Configuration for logging conversation lifecycle events.
    name: The unique identifier of this conversation profile. Format:
      `projects//locations//conversationProfiles/`.
    newMessageEventNotificationConfig: Configuration for publishing new
      message events. Event will be sent in format of ConversationEvent
    newRecognitionResultNotificationConfig: Optional. Configuration for
      publishing transcription intermediate results. Event will be sent in
      format of ConversationEvent. If configured, the following information
      will be populated as ConversationEvent Pub/Sub message attributes: -
      "participant_id" - "participant_role" - "message_id"
    notificationConfig: Configuration for publishing conversation lifecycle
      events.
    securitySettings: Name of the CX SecuritySettings reference for the agent.
      Format: `projects//locations//securitySettings/`.
    sttConfig: Settings for speech transcription.
    timeZone: The time zone of this conversational profile from the [time zone
      database](https://www.iana.org/time-zones), e.g., America/New_York,
      Europe/Paris. Defaults to America/New_York.
    ttsConfig: Configuration for Text-to-Speech synthesization. Used by Phone
      Gateway to specify synthesization options. If agent defines
      synthesization options as well, agent settings overrides the option
      here.
    updateTime: Output only. Update time of the conversation profile.
  """

  automatedAgentConfig = _messages.MessageField('GoogleCloudDialogflowV2AutomatedAgentConfig', 1)
  createTime = _messages.StringField(2)
  displayName = _messages.StringField(3)
  humanAgentAssistantConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfig', 4)
  humanAgentHandoffConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentHandoffConfig', 5)
  languageCode = _messages.StringField(6)
  loggingConfig = _messages.MessageField('GoogleCloudDialogflowV2LoggingConfig', 7)
  name = _messages.StringField(8)
  newMessageEventNotificationConfig = _messages.MessageField('GoogleCloudDialogflowV2NotificationConfig', 9)
  newRecognitionResultNotificationConfig = _messages.MessageField('GoogleCloudDialogflowV2NotificationConfig', 10)
  notificationConfig = _messages.MessageField('GoogleCloudDialogflowV2NotificationConfig', 11)
  securitySettings = _messages.StringField(12)
  sttConfig = _messages.MessageField('GoogleCloudDialogflowV2SpeechToTextConfig', 13)
  timeZone = _messages.StringField(14)
  ttsConfig = _messages.MessageField('GoogleCloudDialogflowV2SynthesizeSpeechConfig', 15)
  updateTime = _messages.StringField(16)


class GoogleCloudDialogflowV2ConversationTelephonyConnectionInfo(_messages.Message):
  r"""The information about phone calls connected via phone gateway to the
  conversation.

  Fields:
    dialedNumber: Output only. The number dialed to connect this call in E.164
      format.
    extraMimeContents: Output only. The mime content from the initial SIP
      INVITE.
    sdp: Optional. SDP of the call. It's initially the SDP answer to the
      incoming call, but maybe later updated for the purpose of making the
      link active, etc.
    sipHeaders: Output only. The SIP headers from the initial SIP INVITE.
  """

  dialedNumber = _messages.StringField(1)
  extraMimeContents = _messages.MessageField('GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoMimeContent', 2, repeated=True)
  sdp = _messages.StringField(3)
  sipHeaders = _messages.MessageField('GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoSipHeader', 4, repeated=True)


class GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoMimeContent(_messages.Message):
  r"""The mime content from the initial SIP INVITE.

  Fields:
    content: Optional. The content payload.
    mimeType: Optional. The mime type of the content.
  """

  content = _messages.BytesField(1)
  mimeType = _messages.StringField(2)


class GoogleCloudDialogflowV2ConversationTelephonyConnectionInfoSipHeader(_messages.Message):
  r"""The SIP headers from the initial SIP INVITE.

  Fields:
    name: Optional. The name of the header.
    value: Optional. The value of the header.
  """

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


class GoogleCloudDialogflowV2CreateConversationDatasetOperationMetadata(_messages.Message):
  r"""Metadata for CreateConversationDataset.

  Fields:
    conversationDataset: The resource name of the conversation dataset that
      will be created. Format: `projects//locations//conversationDatasets/`
  """

  conversationDataset = _messages.StringField(1)


class GoogleCloudDialogflowV2CreateConversationModelEvaluationOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationModels.CreateConversationModelEvaluation
  operation.

  Enums:
    StateValueValuesEnum: State of CreateConversationModel operation.

  Fields:
    conversationModel: The resource name of the conversation model. Format:
      `projects//locations//conversationModels/`
    conversationModelEvaluation: The resource name of the conversation model.
      Format: `projects//locations//conversationModels//evaluations/`
    createTime: Timestamp when the request to create conversation model was
      submitted. The time is measured on server side.
    state: State of CreateConversationModel operation.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""State of CreateConversationModel operation.

    Values:
      STATE_UNSPECIFIED: Operation status not specified.
      INITIALIZING: The operation is being prepared.
      RUNNING: The operation is running.
      CANCELLED: The operation is cancelled.
      SUCCEEDED: The operation has succeeded.
      FAILED: The operation has failed.
    """
    STATE_UNSPECIFIED = 0
    INITIALIZING = 1
    RUNNING = 2
    CANCELLED = 3
    SUCCEEDED = 4
    FAILED = 5

  conversationModel = _messages.StringField(1)
  conversationModelEvaluation = _messages.StringField(2)
  createTime = _messages.StringField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)


class GoogleCloudDialogflowV2CreateConversationModelEvaluationRequest(_messages.Message):
  r"""The request message for
  ConversationModels.CreateConversationModelEvaluation

  Fields:
    conversationModelEvaluation: Required. The conversation model evaluation
      to be created.
  """

  conversationModelEvaluation = _messages.MessageField('GoogleCloudDialogflowV2ConversationModelEvaluation', 1)


class GoogleCloudDialogflowV2CreateConversationModelOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationModels.CreateConversationModel operation.

  Enums:
    StateValueValuesEnum: State of CreateConversationModel operation.

  Fields:
    conversationModel: The resource name of the conversation model. Format:
      `projects//conversationModels/`
    createTime: Timestamp when the request to create conversation model is
      submitted. The time is measured on server side.
    doneTime: The time when the operation finished.
    state: State of CreateConversationModel operation.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""State of CreateConversationModel operation.

    Values:
      STATE_UNSPECIFIED: Invalid.
      PENDING: Request is submitted, but training has not started yet. The
        model may remain in this state until there is enough capacity to start
        training.
      SUCCEEDED: The training has succeeded.
      FAILED: The training has succeeded.
      CANCELLED: The training has been cancelled.
      CANCELLING: The training is in cancelling state.
      TRAINING: Custom model is training.
    """
    STATE_UNSPECIFIED = 0
    PENDING = 1
    SUCCEEDED = 2
    FAILED = 3
    CANCELLED = 4
    CANCELLING = 5
    TRAINING = 6

  conversationModel = _messages.StringField(1)
  createTime = _messages.StringField(2)
  doneTime = _messages.StringField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)


class GoogleCloudDialogflowV2CustomPronunciationParams(_messages.Message):
  r"""Pronunciation customization for a phrase.

  Enums:
    PhoneticEncodingValueValuesEnum: The phonetic encoding of the phrase.

  Fields:
    phoneticEncoding: The phonetic encoding of the phrase.
    phrase: The phrase to which the customization is applied. The phrase can
      be multiple words, such as proper nouns, but shouldn't span the length
      of the sentence.
    pronunciation: The pronunciation of the phrase. This must be in the
      phonetic encoding specified above.
  """

  class PhoneticEncodingValueValuesEnum(_messages.Enum):
    r"""The phonetic encoding of the phrase.

    Values:
      PHONETIC_ENCODING_UNSPECIFIED: Not specified.
      PHONETIC_ENCODING_IPA: IPA, such as apple -> \u02c8\xe6p\u0259l.
        https://en.wikipedia.org/wiki/International_Phonetic_Alphabet
      PHONETIC_ENCODING_X_SAMPA: X-SAMPA, such as apple -> "{p@l".
        https://en.wikipedia.org/wiki/X-SAMPA
    """
    PHONETIC_ENCODING_UNSPECIFIED = 0
    PHONETIC_ENCODING_IPA = 1
    PHONETIC_ENCODING_X_SAMPA = 2

  phoneticEncoding = _messages.EnumField('PhoneticEncodingValueValuesEnum', 1)
  phrase = _messages.StringField(2)
  pronunciation = _messages.StringField(3)


class GoogleCloudDialogflowV2DeleteConversationDatasetOperationMetadata(_messages.Message):
  r"""Metadata for DeleteConversationDataset."""


class GoogleCloudDialogflowV2DeleteConversationModelOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationModels.DeleteConversationModel operation.

  Fields:
    conversationModel: The resource name of the conversation model. Format:
      `projects//conversationModels/`
    createTime: Timestamp when delete conversation model request was created.
      The time is measured on server side.
    doneTime: The time when the operation finished.
  """

  conversationModel = _messages.StringField(1)
  createTime = _messages.StringField(2)
  doneTime = _messages.StringField(3)


class GoogleCloudDialogflowV2DeployConversationModelOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationModels.DeployConversationModel operation.

  Fields:
    conversationModel: The resource name of the conversation model. Format:
      `projects//conversationModels/`
    createTime: Timestamp when request to deploy conversation model was
      submitted. The time is measured on server side.
    doneTime: The time when the operation finished.
  """

  conversationModel = _messages.StringField(1)
  createTime = _messages.StringField(2)
  doneTime = _messages.StringField(3)


class GoogleCloudDialogflowV2DeployConversationModelRequest(_messages.Message):
  r"""The request message for ConversationModels.DeployConversationModel"""


class GoogleCloudDialogflowV2DetectIntentRequest(_messages.Message):
  r"""The request to detect user's intent.

  Fields:
    inputAudio: The natural language speech audio to be processed. This field
      should be populated iff `query_input` is set to an input audio config. A
      single request can contain up to 1 minute of speech audio data.
    outputAudioConfig: Instructs the speech synthesizer how to generate the
      output audio. If this field is not set and agent-level speech
      synthesizer is not configured, no output audio is generated.
    outputAudioConfigMask: Mask for output_audio_config indicating which
      settings in this request-level config should override speech synthesizer
      settings defined at agent-level. If unspecified or empty,
      output_audio_config replaces the agent-level config in its entirety.
    queryInput: Required. The input specification. It can be set to: 1. an
      audio config which instructs the speech recognizer how to process the
      speech audio, 2. a conversational query in the form of text, or 3. an
      event that specifies which intent to trigger.
    queryParams: The parameters of this query.
  """

  inputAudio = _messages.BytesField(1)
  outputAudioConfig = _messages.MessageField('GoogleCloudDialogflowV2OutputAudioConfig', 2)
  outputAudioConfigMask = _messages.StringField(3)
  queryInput = _messages.MessageField('GoogleCloudDialogflowV2QueryInput', 4)
  queryParams = _messages.MessageField('GoogleCloudDialogflowV2QueryParameters', 5)


class GoogleCloudDialogflowV2DetectIntentResponse(_messages.Message):
  r"""The message returned from the DetectIntent method.

  Fields:
    outputAudio: The audio data bytes encoded as specified in the request.
      Note: The output audio is generated based on the values of default
      platform text responses found in the `query_result.fulfillment_messages`
      field. If multiple default text responses exist, they will be
      concatenated when generating audio. If no default platform text
      responses exist, the generated audio content will be empty. In some
      scenarios, multiple output audio fields may be present in the response
      structure. In these cases, only the top-most-level audio output has
      content.
    outputAudioConfig: The config used by the speech synthesizer to generate
      the output audio.
    queryResult: The selected results of the conversational query or event
      processing. See `alternative_query_results` for additional potential
      results.
    responseId: The unique identifier of the response. It can be used to
      locate a response in the training example set or for reporting issues.
    webhookStatus: Specifies the status of the webhook request.
  """

  outputAudio = _messages.BytesField(1)
  outputAudioConfig = _messages.MessageField('GoogleCloudDialogflowV2OutputAudioConfig', 2)
  queryResult = _messages.MessageField('GoogleCloudDialogflowV2QueryResult', 3)
  responseId = _messages.StringField(4)
  webhookStatus = _messages.MessageField('GoogleRpcStatus', 5)


class GoogleCloudDialogflowV2DialogflowAssistAnswer(_messages.Message):
  r"""Represents a Dialogflow assist answer.

  Fields:
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    intentSuggestion: An intent suggestion generated from conversation.
    queryResult: Result from v2 agent.
  """

  answerRecord = _messages.StringField(1)
  intentSuggestion = _messages.MessageField('GoogleCloudDialogflowV2IntentSuggestion', 2)
  queryResult = _messages.MessageField('GoogleCloudDialogflowV2QueryResult', 3)


class GoogleCloudDialogflowV2Document(_messages.Message):
  r"""A knowledge document to be used by a KnowledgeBase. For more
  information, see the [knowledge base
  guide](https://cloud.google.com/dialogflow/docs/how/knowledge-bases). Note:
  The `projects.agent.knowledgeBases.documents` resource is deprecated; only
  use `projects.knowledgeBases.documents`.

  Enums:
    KnowledgeTypesValueListEntryValuesEnum:
    StateValueValuesEnum: Output only. The current state of the document.

  Messages:
    MetadataValue: Optional. Metadata for the document. The metadata supports
      arbitrary key-value pairs. Suggested use cases include storing a
      document's title, an external URL distinct from the document's
      content_uri, etc. The max size of a `key` or a `value` of the metadata
      is 1024 bytes.

  Fields:
    contentUri: The URI where the file content is located. For documents
      stored in Google Cloud Storage, these URIs must have the form `gs:///`.
      NOTE: External URLs must correspond to public webpages, i.e., they must
      be indexed by Google Search. In particular, URLs for showing documents
      in Google Cloud Storage (i.e. the URL in your browser) are not
      supported. Instead use the `gs://` format URI described above.
    displayName: Required. The display name of the document. The name must be
      1024 bytes or less; otherwise, the creation request fails.
    enableAutoReload: Optional. If true, we try to automatically reload the
      document every day (at a time picked by the system). If false or
      unspecified, we don't try to automatically reload the document.
      Currently you can only enable automatic reload for documents sourced
      from a public url, see `source` field for the source types. Reload
      status can be tracked in `latest_reload_status`. If a reload fails, we
      will keep the document unchanged. If a reload fails with internal
      errors, the system will try to reload the document on the next day. If a
      reload fails with non-retriable errors (e.g. PERMISSION_DENIED), the
      system will not try to reload the document anymore. You need to manually
      reload the document successfully by calling `ReloadDocument` and clear
      the errors.
    knowledgeTypes: Required. The knowledge type of document content.
    latestReloadStatus: Output only. The time and status of the latest reload.
      This reload may have been triggered automatically or manually and may
      not have succeeded.
    metadata: Optional. Metadata for the document. The metadata supports
      arbitrary key-value pairs. Suggested use cases include storing a
      document's title, an external URL distinct from the document's
      content_uri, etc. The max size of a `key` or a `value` of the metadata
      is 1024 bytes.
    mimeType: Required. The MIME type of this document.
    name: Optional. The document resource name. The name must be empty when
      creating a document. Format:
      `projects//locations//knowledgeBases//documents/`.
    rawContent: The raw content of the document. This field is only permitted
      for EXTRACTIVE_QA and FAQ knowledge types.
    state: Output only. The current state of the document.
  """

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

    Values:
      KNOWLEDGE_TYPE_UNSPECIFIED: The type is unspecified or arbitrary.
      FAQ: The document content contains question and answer pairs as either
        HTML or CSV. Typical FAQ HTML formats are parsed accurately, but
        unusual formats may fail to be parsed. CSV must have questions in the
        first column and answers in the second, with no header. Because of
        this explicit format, they are always parsed accurately.
      EXTRACTIVE_QA: Documents for which unstructured text is extracted and
        used for question answering.
      ARTICLE_SUGGESTION: The entire document content as a whole can be used
        for query results. Only for Contact Center Solutions on Dialogflow.
      AGENT_FACING_SMART_REPLY: The document contains agent-facing Smart Reply
        entries.
    """
    KNOWLEDGE_TYPE_UNSPECIFIED = 0
    FAQ = 1
    EXTRACTIVE_QA = 2
    ARTICLE_SUGGESTION = 3
    AGENT_FACING_SMART_REPLY = 4

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. The current state of the document.

    Values:
      STATE_UNSPECIFIED: The document state is unspecified.
      CREATING: The document creation is in progress.
      ACTIVE: The document is active and ready to use.
      UPDATING: The document updation is in progress.
      RELOADING: The document is reloading.
      DELETING: The document deletion is in progress.
    """
    STATE_UNSPECIFIED = 0
    CREATING = 1
    ACTIVE = 2
    UPDATING = 3
    RELOADING = 4
    DELETING = 5

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Optional. Metadata for the document. The metadata supports arbitrary
    key-value pairs. Suggested use cases include storing a document's title,
    an external URL distinct from the document's content_uri, etc. The max
    size of a `key` or a `value` of the metadata is 1024 bytes.

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

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

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

  contentUri = _messages.StringField(1)
  displayName = _messages.StringField(2)
  enableAutoReload = _messages.BooleanField(3)
  knowledgeTypes = _messages.EnumField('KnowledgeTypesValueListEntryValuesEnum', 4, repeated=True)
  latestReloadStatus = _messages.MessageField('GoogleCloudDialogflowV2DocumentReloadStatus', 5)
  metadata = _messages.MessageField('MetadataValue', 6)
  mimeType = _messages.StringField(7)
  name = _messages.StringField(8)
  rawContent = _messages.BytesField(9)
  state = _messages.EnumField('StateValueValuesEnum', 10)


class GoogleCloudDialogflowV2DocumentReloadStatus(_messages.Message):
  r"""The status of a reload attempt.

  Fields:
    status: The status of a reload attempt or the initial load.
    time: The time of a reload attempt. This reload may have been triggered
      automatically or manually and may not have succeeded.
  """

  status = _messages.MessageField('GoogleRpcStatus', 1)
  time = _messages.StringField(2)


class GoogleCloudDialogflowV2DtmfParameters(_messages.Message):
  r"""The message in the response that indicates the parameters of DTMF.

  Fields:
    acceptsDtmfInput: Indicates whether DTMF input can be handled in the next
      request.
  """

  acceptsDtmfInput = _messages.BooleanField(1)


class GoogleCloudDialogflowV2EncryptionSpec(_messages.Message):
  r"""A customer-managed encryption key specification that can be applied to
  all created resources (e.g. Conversation).

  Fields:
    kmsKey: Required. The name of customer-managed encryption key that is used
      to secure a resource and its sub-resources. If empty, the resource is
      secured by the default Google encryption key. Only the key in the same
      location as this resource is allowed to be used for encryption. Format:
      `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{
      key}`
    name: Immutable. The resource name of the encryption key specification
      resource. Format: projects/{project}/locations/{location}/encryptionSpec
  """

  kmsKey = _messages.StringField(1)
  name = _messages.StringField(2)


class GoogleCloudDialogflowV2EntityType(_messages.Message):
  r"""Each intent parameter has a type, called the entity type, which dictates
  exactly how data from an end-user expression is extracted. Dialogflow
  provides predefined system entities that can match many common types of
  data. For example, there are system entities for matching dates, times,
  colors, email addresses, and so on. You can also create your own custom
  entities for matching custom data. For example, you could define a vegetable
  entity that can match the types of vegetables available for purchase with a
  grocery store agent. For more information, see the [Entity
  guide](https://cloud.google.com/dialogflow/docs/entities-overview).

  Enums:
    AutoExpansionModeValueValuesEnum: Optional. Indicates whether the entity
      type can be automatically expanded.
    KindValueValuesEnum: Required. Indicates the kind of entity type.

  Fields:
    autoExpansionMode: Optional. Indicates whether the entity type can be
      automatically expanded.
    displayName: Required. The name of the entity type.
    enableFuzzyExtraction: Optional. Enables fuzzy entity extraction during
      classification.
    entities: Optional. The collection of entity entries associated with the
      entity type.
    kind: Required. Indicates the kind of entity type.
    name: The unique identifier of the entity type. Required for
      EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes
      methods. Format: `projects//agent/entityTypes/`.
  """

  class AutoExpansionModeValueValuesEnum(_messages.Enum):
    r"""Optional. Indicates whether the entity type can be automatically
    expanded.

    Values:
      AUTO_EXPANSION_MODE_UNSPECIFIED: Auto expansion disabled for the entity.
      AUTO_EXPANSION_MODE_DEFAULT: Allows an agent to recognize values that
        have not been explicitly listed in the entity.
    """
    AUTO_EXPANSION_MODE_UNSPECIFIED = 0
    AUTO_EXPANSION_MODE_DEFAULT = 1

  class KindValueValuesEnum(_messages.Enum):
    r"""Required. Indicates the kind of entity type.

    Values:
      KIND_UNSPECIFIED: Not specified. This value should be never used.
      KIND_MAP: Map entity types allow mapping of a group of synonyms to a
        reference value.
      KIND_LIST: List entity types contain a set of entries that do not map to
        reference values. However, list entity types can contain references to
        other entity types (with or without aliases).
      KIND_REGEXP: Regexp entity types allow to specify regular expressions in
        entries values.
    """
    KIND_UNSPECIFIED = 0
    KIND_MAP = 1
    KIND_LIST = 2
    KIND_REGEXP = 3

  autoExpansionMode = _messages.EnumField('AutoExpansionModeValueValuesEnum', 1)
  displayName = _messages.StringField(2)
  enableFuzzyExtraction = _messages.BooleanField(3)
  entities = _messages.MessageField('GoogleCloudDialogflowV2EntityTypeEntity', 4, repeated=True)
  kind = _messages.EnumField('KindValueValuesEnum', 5)
  name = _messages.StringField(6)


class GoogleCloudDialogflowV2EntityTypeBatch(_messages.Message):
  r"""This message is a wrapper around a collection of entity types.

  Fields:
    entityTypes: A collection of entity types.
  """

  entityTypes = _messages.MessageField('GoogleCloudDialogflowV2EntityType', 1, repeated=True)


class GoogleCloudDialogflowV2EntityTypeEntity(_messages.Message):
  r"""An **entity entry** for an associated entity type.

  Fields:
    synonyms: Required. A collection of value synonyms. For example, if the
      entity type is *vegetable*, and `value` is *scallions*, a synonym could
      be *green onions*. For `KIND_LIST` entity types: * This collection must
      contain exactly one synonym equal to `value`.
    value: Required. The primary value associated with this entity entry. For
      example, if the entity type is *vegetable*, the value could be
      *scallions*. For `KIND_MAP` entity types: * A reference value to be used
      in place of synonyms. For `KIND_LIST` entity types: * A string that can
      contain references to other entity types (with or without aliases).
  """

  synonyms = _messages.StringField(1, repeated=True)
  value = _messages.StringField(2)


class GoogleCloudDialogflowV2Environment(_messages.Message):
  r"""You can create multiple versions of your agent and publish them to
  separate environments. When you edit an agent, you are editing the draft
  agent. At any point, you can save the draft agent as an agent version, which
  is an immutable snapshot of your agent. When you save the draft agent, it is
  published to the default environment. When you create agent versions, you
  can publish them to custom environments. You can create a variety of custom
  environments for: - testing - development - production - etc. For more
  information, see the [versions and environments
  guide](https://cloud.google.com/dialogflow/docs/agents-versions).

  Enums:
    StateValueValuesEnum: Output only. The state of this environment. This
      field is read-only, i.e., it cannot be set by create and update methods.

  Fields:
    agentVersion: Optional. The agent version loaded into this environment.
      Supported formats: - `projects//agent/versions/` -
      `projects//locations//agent/versions/`
    description: Optional. The developer-provided description for this
      environment. The maximum length is 500 characters. If exceeded, the
      request is rejected.
    fulfillment: Optional. The fulfillment settings to use for this
      environment.
    name: Output only. The unique identifier of this agent environment.
      Supported formats: - `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
    state: Output only. The state of this environment. This field is read-
      only, i.e., it cannot be set by create and update methods.
    textToSpeechSettings: Optional. Text to speech settings for this
      environment.
    updateTime: Output only. The last update time of this environment. This
      field is read-only, i.e., it cannot be set by create and update methods.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. The state of this environment. This field is read-only,
    i.e., it cannot be set by create and update methods.

    Values:
      STATE_UNSPECIFIED: Not specified. This value is not used.
      STOPPED: Stopped.
      LOADING: Loading.
      RUNNING: Running.
    """
    STATE_UNSPECIFIED = 0
    STOPPED = 1
    LOADING = 2
    RUNNING = 3

  agentVersion = _messages.StringField(1)
  description = _messages.StringField(2)
  fulfillment = _messages.MessageField('GoogleCloudDialogflowV2Fulfillment', 3)
  name = _messages.StringField(4)
  state = _messages.EnumField('StateValueValuesEnum', 5)
  textToSpeechSettings = _messages.MessageField('GoogleCloudDialogflowV2TextToSpeechSettings', 6)
  updateTime = _messages.StringField(7)


class GoogleCloudDialogflowV2EnvironmentHistory(_messages.Message):
  r"""The response message for Environments.GetEnvironmentHistory.

  Fields:
    entries: Output only. The list of agent environments. There will be a
      maximum number of items returned based on the page_size field in the
      request.
    nextPageToken: Output only. Token to retrieve the next page of results, or
      empty if there are no more results in the list.
    parent: Output only. The name of the environment this history is for.
      Supported formats: - `projects//agent/environments/` -
      `projects//locations//agent/environments/` The environment ID for the
      default environment is `-`.
  """

  entries = _messages.MessageField('GoogleCloudDialogflowV2EnvironmentHistoryEntry', 1, repeated=True)
  nextPageToken = _messages.StringField(2)
  parent = _messages.StringField(3)


class GoogleCloudDialogflowV2EnvironmentHistoryEntry(_messages.Message):
  r"""Represents an environment history entry.

  Fields:
    agentVersion: The agent version loaded into this environment history
      entry.
    createTime: The creation time of this environment history entry.
    description: The developer-provided description for this environment
      history entry.
  """

  agentVersion = _messages.StringField(1)
  createTime = _messages.StringField(2)
  description = _messages.StringField(3)


class GoogleCloudDialogflowV2EvaluationConfig(_messages.Message):
  r"""The configuration for model evaluation.

  Fields:
    datasets: Required. Datasets used for evaluation.
    smartComposeConfig: Configuration for smart compose model evaluation.
    smartReplyConfig: Configuration for smart reply model evaluation.
  """

  datasets = _messages.MessageField('GoogleCloudDialogflowV2InputDataset', 1, repeated=True)
  smartComposeConfig = _messages.MessageField('GoogleCloudDialogflowV2EvaluationConfigSmartComposeConfig', 2)
  smartReplyConfig = _messages.MessageField('GoogleCloudDialogflowV2EvaluationConfigSmartReplyConfig', 3)


class GoogleCloudDialogflowV2EvaluationConfigSmartComposeConfig(_messages.Message):
  r"""Smart compose specific configuration for evaluation job.

  Fields:
    allowlistDocument: The allowlist document resource name. Format:
      `projects//knowledgeBases//documents/`. Only used for smart compose
      model.
    maxResultCount: Required. The model to be evaluated can return multiple
      results with confidence score on each query. These results will be
      sorted by the descending order of the scores and we only keep the first
      max_result_count results as the final results to evaluate.
  """

  allowlistDocument = _messages.StringField(1)
  maxResultCount = _messages.IntegerField(2, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2EvaluationConfigSmartReplyConfig(_messages.Message):
  r"""Smart reply specific configuration for evaluation job.

  Fields:
    allowlistDocument: The allowlist document resource name. Format:
      `projects//knowledgeBases//documents/`. Only used for smart reply model.
    maxResultCount: Required. The model to be evaluated can return multiple
      results with confidence score on each query. These results will be
      sorted by the descending order of the scores and we only keep the first
      max_result_count results as the final results to evaluate.
  """

  allowlistDocument = _messages.StringField(1)
  maxResultCount = _messages.IntegerField(2, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2EvaluationStatus(_messages.Message):
  r"""A common evalaution pipeline status.

  Fields:
    done: Output only. If the value is `false`, it means the evaluation is
      still in progress. If `true`, the operation is completed, and either
      `error` or `response` is available.
    pipelineStatus: Output only. The error result of the evaluation in case of
      failure in evaluation pipeline.
  """

  done = _messages.BooleanField(1)
  pipelineStatus = _messages.MessageField('GoogleRpcStatus', 2)


class GoogleCloudDialogflowV2EventInput(_messages.Message):
  r"""Events allow for matching intents by event name instead of the natural
  language input. For instance, input `` can trigger a personalized welcome
  response. The parameter `name` may be used by the agent in the response:
  `"Hello #welcome_event.name! What can I do for you today?"`.

  Messages:
    ParametersValue: The collection of parameters associated with the event.
      Depending on your protocol or client library language, this is a map,
      associative array, symbol table, dictionary, or JSON object composed of
      a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey
      value: parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.

  Fields:
    languageCode: Required. The language of this query. See [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes. Note that queries
      in the same session do not necessarily need to specify the same
      language. This field is ignored when used in the context of a
      WebhookResponse.followup_event_input field, because the language was
      already defined in the originating detect intent request.
    name: Required. The unique identifier of the event.
    parameters: The collection of parameters associated with the event.
      Depending on your protocol or client library language, this is a map,
      associative array, symbol table, dictionary, or JSON object composed of
      a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey
      value: parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""The collection of parameters associated with the event. Depending on
    your protocol or client library language, this is a map, associative
    array, symbol table, dictionary, or JSON object composed of a collection
    of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value:
    parameter name * MapValue type: If parameter's entity type is a composite
    entity then use map, otherwise, depending on the parameter value type, it
    could be one of string, number, boolean, null, list or map. * MapValue
    value: If parameter's entity type is a composite entity then use map from
    composite entity property names to property values, otherwise, use
    parameter value.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  languageCode = _messages.StringField(1)
  name = _messages.StringField(2)
  parameters = _messages.MessageField('ParametersValue', 3)


class GoogleCloudDialogflowV2ExportAgentRequest(_messages.Message):
  r"""The request message for Agents.ExportAgent.

  Fields:
    agentUri: Required. The [Google Cloud
      Storage](https://cloud.google.com/storage/docs/) URI to export the agent
      to. The format of this URI must be `gs:///`. If left unspecified, the
      serialized agent is returned inline. Dialogflow performs a write
      operation for the Cloud Storage object on the caller's behalf, so your
      request authentication must have write permissions for the object. For
      more information, see [Dialogflow access
      control](https://cloud.google.com/dialogflow/cx/docs/concept/access-
      control#storage).
  """

  agentUri = _messages.StringField(1)


class GoogleCloudDialogflowV2ExportAgentResponse(_messages.Message):
  r"""The response message for Agents.ExportAgent.

  Fields:
    agentContent: Zip compressed raw byte content for agent.
    agentUri: The URI to a file containing the exported agent. This field is
      populated only if `agent_uri` is specified in `ExportAgentRequest`.
  """

  agentContent = _messages.BytesField(1)
  agentUri = _messages.StringField(2)


class GoogleCloudDialogflowV2ExportDocumentRequest(_messages.Message):
  r"""Request message for Documents.ExportDocument.

  Fields:
    exportFullContent: When enabled, export the full content of the document
      including empirical probability.
    gcsDestination: Cloud Storage file path to export the document.
    smartMessagingPartialUpdate: When enabled, export the smart messaging
      allowlist document for partial update.
  """

  exportFullContent = _messages.BooleanField(1)
  gcsDestination = _messages.MessageField('GoogleCloudDialogflowV2GcsDestination', 2)
  smartMessagingPartialUpdate = _messages.BooleanField(3)


class GoogleCloudDialogflowV2ExportOperationMetadata(_messages.Message):
  r"""Metadata related to the Export Data Operations (e.g. ExportDocument).

  Fields:
    exportedGcsDestination: Cloud Storage file path of the exported data.
  """

  exportedGcsDestination = _messages.MessageField('GoogleCloudDialogflowV2GcsDestination', 1)


class GoogleCloudDialogflowV2FaqAnswer(_messages.Message):
  r"""Represents answer from "frequently asked questions".

  Messages:
    MetadataValue: A map that contains metadata about the answer and the
      document from which it originates.

  Fields:
    answer: The piece of text from the `source` knowledge base document.
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    confidence: The system's confidence score that this Knowledge answer is a
      good match for this conversational query, range from 0.0 (completely
      uncertain) to 1.0 (completely certain).
    metadata: A map that contains metadata about the answer and the document
      from which it originates.
    question: The corresponding FAQ question.
    source: Indicates which Knowledge Document this answer was extracted from.
      Format: `projects//locations//agent/knowledgeBases//documents/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""A map that contains metadata about the answer and the document from
    which it originates.

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

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

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

  answer = _messages.StringField(1)
  answerRecord = _messages.StringField(2)
  confidence = _messages.FloatField(3, variant=_messages.Variant.FLOAT)
  metadata = _messages.MessageField('MetadataValue', 4)
  question = _messages.StringField(5)
  source = _messages.StringField(6)


class GoogleCloudDialogflowV2FewShotExample(_messages.Message):
  r"""Providing examples in the generator (i.e. building a few-shot generator)
  helps convey the desired format of the LLM response.

  Messages:
    ExtraInfoValue: Optional. Key is the placeholder field name in input,
      value is the value of the placeholder. E.g. instruction contains
      "@price", and ingested data has <"price", "10">

  Fields:
    conversationContext: Optional. Conversation transcripts.
    extraInfo: Optional. Key is the placeholder field name in input, value is
      the value of the placeholder. E.g. instruction contains "@price", and
      ingested data has <"price", "10">
    output: Required. Example output of the model.
    summarizationSectionList: Summarization sections.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ExtraInfoValue(_messages.Message):
    r"""Optional. Key is the placeholder field name in input, value is the
    value of the placeholder. E.g. instruction contains "@price", and ingested
    data has <"price", "10">

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

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

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

  conversationContext = _messages.MessageField('GoogleCloudDialogflowV2ConversationContext', 1)
  extraInfo = _messages.MessageField('ExtraInfoValue', 2)
  output = _messages.MessageField('GoogleCloudDialogflowV2GeneratorSuggestion', 3)
  summarizationSectionList = _messages.MessageField('GoogleCloudDialogflowV2SummarizationSectionList', 4)


class GoogleCloudDialogflowV2FreeFormContext(_messages.Message):
  r"""Free form generator context that customer can configure.

  Fields:
    text: Optional. Free form text input to LLM.
  """

  text = _messages.StringField(1)


class GoogleCloudDialogflowV2FreeFormSuggestion(_messages.Message):
  r"""Suggestion generated using free form generator.

  Fields:
    response: Required. Free form suggestion.
  """

  response = _messages.StringField(1)


class GoogleCloudDialogflowV2Fulfillment(_messages.Message):
  r"""By default, your agent responds to a matched intent with a static
  response. As an alternative, you can provide a more dynamic response by
  using fulfillment. When you enable fulfillment for an intent, Dialogflow
  responds to that intent by calling a service that you define. For example,
  if an end-user wants to schedule a haircut on Friday, your service can check
  your database and respond to the end-user with availability information for
  Friday. For more information, see the [fulfillment
  guide](https://cloud.google.com/dialogflow/docs/fulfillment-overview).

  Fields:
    displayName: Optional. The human-readable name of the fulfillment, unique
      within the agent. This field is not used for Fulfillment in an
      Environment.
    enabled: Optional. Whether fulfillment is enabled.
    features: Optional. The field defines whether the fulfillment is enabled
      for certain features.
    genericWebService: Configuration for a generic web service.
    name: Required. The unique identifier of the fulfillment. Supported
      formats: - `projects//agent/fulfillment` -
      `projects//locations//agent/fulfillment` This field is not used for
      Fulfillment in an Environment.
  """

  displayName = _messages.StringField(1)
  enabled = _messages.BooleanField(2)
  features = _messages.MessageField('GoogleCloudDialogflowV2FulfillmentFeature', 3, repeated=True)
  genericWebService = _messages.MessageField('GoogleCloudDialogflowV2FulfillmentGenericWebService', 4)
  name = _messages.StringField(5)


class GoogleCloudDialogflowV2FulfillmentFeature(_messages.Message):
  r"""Whether fulfillment is enabled for the specific feature.

  Enums:
    TypeValueValuesEnum: The type of the feature that enabled for fulfillment.

  Fields:
    type: The type of the feature that enabled for fulfillment.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The type of the feature that enabled for fulfillment.

    Values:
      TYPE_UNSPECIFIED: Feature type not specified.
      SMALLTALK: Fulfillment is enabled for SmallTalk.
    """
    TYPE_UNSPECIFIED = 0
    SMALLTALK = 1

  type = _messages.EnumField('TypeValueValuesEnum', 1)


class GoogleCloudDialogflowV2FulfillmentGenericWebService(_messages.Message):
  r"""Represents configuration for a generic web service. Dialogflow supports
  two mechanisms for authentications: - Basic authentication with username and
  password. - Authentication with additional authentication headers. More
  information could be found at:
  https://cloud.google.com/dialogflow/docs/fulfillment-configure.

  Messages:
    RequestHeadersValue: Optional. The HTTP request headers to send together
      with fulfillment requests.

  Fields:
    isCloudFunction: Optional. Indicates if generic web service is created
      through Cloud Functions integration. Defaults to false.
      is_cloud_function is deprecated. Cloud functions can be configured by
      its uri as a regular web service now.
    password: Optional. The password for HTTP Basic authentication.
    requestHeaders: Optional. The HTTP request headers to send together with
      fulfillment requests.
    uri: Required. The fulfillment URI for receiving POST requests. It must
      use https protocol.
    username: Optional. The user name for HTTP Basic authentication.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class RequestHeadersValue(_messages.Message):
    r"""Optional. The HTTP request headers to send together with fulfillment
    requests.

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

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

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

  isCloudFunction = _messages.BooleanField(1)
  password = _messages.StringField(2)
  requestHeaders = _messages.MessageField('RequestHeadersValue', 3)
  uri = _messages.StringField(4)
  username = _messages.StringField(5)


class GoogleCloudDialogflowV2GcsDestination(_messages.Message):
  r"""Google Cloud Storage location for the output.

  Fields:
    uri: The Google Cloud Storage URIs for the output. A URI is of the form:
      `gs://bucket/object-prefix-or-name` Whether a prefix or name is used
      depends on the use case. The requesting user must have "write-
      permission" to the bucket.
  """

  uri = _messages.StringField(1)


class GoogleCloudDialogflowV2GcsSources(_messages.Message):
  r"""Google Cloud Storage location for the inputs.

  Fields:
    uris: Required. Google Cloud Storage URIs for the inputs. A URI is of the
      form: `gs://bucket/object-prefix-or-name` Whether a prefix or name is
      used depends on the use case.
  """

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


class GoogleCloudDialogflowV2GenerateStatelessSuggestionRequest(_messages.Message):
  r"""The request message for Conversations.GenerateStatelessSuggestion.

  Enums:
    TriggerEventsValueListEntryValuesEnum:

  Messages:
    ContextReferencesValue: Optional. A section of ingested context
      information. The key is the name of the context reference and the value
      contains the contents of the context reference. The key is used to
      incorporate ingested context references to enhance the generator.

  Fields:
    contextReferences: Optional. A section of ingested context information.
      The key is the name of the context reference and the value contains the
      contents of the context reference. The key is used to incorporate
      ingested context references to enhance the generator.
    conversationContext: Optional. Context of the conversation, including
      transcripts.
    generator: Uncreated generator. It should be a complete generator that
      includes all information about the generator.
    generatorName: The resource name of the existing created generator.
      Format: `projects//locations//generators/`
    securitySettings: Optional. Name of the CX SecuritySettings which is used
      to redact generated response. If this field is empty, try to fetch v2
      security_settings, which is a project level setting. If this field is
      empty and no v2 security_settings set up in this project, no redaction
      will be done. Format: `projects//locations//securitySettings/`.
    triggerEvents: Optional. A list of trigger events. Generator will be
      triggered only if it's trigger event is included here.
  """

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

    Values:
      TRIGGER_EVENT_UNSPECIFIED: Default value for TriggerEvent.
      END_OF_UTTERANCE: Triggers when each chat message or voice utterance
        ends.
      MANUAL_CALL: Triggers on the conversation manually by API calls, such as
        Conversations.GenerateStatelessSuggestion and
        Conversations.GenerateSuggestions.
      CUSTOMER_MESSAGE: Triggers after each customer message only.
      AGENT_MESSAGE: Triggers after each agent message only.
    """
    TRIGGER_EVENT_UNSPECIFIED = 0
    END_OF_UTTERANCE = 1
    MANUAL_CALL = 2
    CUSTOMER_MESSAGE = 3
    AGENT_MESSAGE = 4

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ContextReferencesValue(_messages.Message):
    r"""Optional. A section of ingested context information. The key is the
    name of the context reference and the value contains the contents of the
    context reference. The key is used to incorporate ingested context
    references to enhance the generator.

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

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

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

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

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

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

  contextReferences = _messages.MessageField('ContextReferencesValue', 1)
  conversationContext = _messages.MessageField('GoogleCloudDialogflowV2ConversationContext', 2)
  generator = _messages.MessageField('GoogleCloudDialogflowV2Generator', 3)
  generatorName = _messages.StringField(4)
  securitySettings = _messages.StringField(5)
  triggerEvents = _messages.EnumField('TriggerEventsValueListEntryValuesEnum', 6, repeated=True)


class GoogleCloudDialogflowV2GenerateStatelessSuggestionResponse(_messages.Message):
  r"""The response message for Conversations.GenerateStatelessSuggestion.

  Fields:
    generatorSuggestion: Required. Generated suggestion for a conversation.
  """

  generatorSuggestion = _messages.MessageField('GoogleCloudDialogflowV2GeneratorSuggestion', 1)


class GoogleCloudDialogflowV2GenerateStatelessSummaryRequest(_messages.Message):
  r"""The request message for Conversations.GenerateStatelessSummary.

  Fields:
    conversationProfile: Required. A ConversationProfile containing
      information required for Summary generation. Required fields:
      {language_code, security_settings} Optional fields:
      {agent_assistant_config}
    latestMessage: Optional. The name of the latest conversation message used
      as context for generating a Summary. If empty, the latest message of the
      conversation will be used. The format is specific to the user and the
      names of the messages provided.
    maxContextSize: Optional. Max number of messages prior to and including
      [latest_message] to use as context when compiling the suggestion. By
      default 500 and at most 1000.
    statelessConversation: Required. The conversation to suggest a summary
      for.
  """

  conversationProfile = _messages.MessageField('GoogleCloudDialogflowV2ConversationProfile', 1)
  latestMessage = _messages.StringField(2)
  maxContextSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  statelessConversation = _messages.MessageField('GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation', 4)


class GoogleCloudDialogflowV2GenerateStatelessSummaryRequestMinimalConversation(_messages.Message):
  r"""The minimum amount of information required to generate a Summary without
  having a Conversation resource created.

  Fields:
    messages: Required. The messages that the Summary will be generated from.
      It is expected that this message content is already redacted and does
      not contain any PII. Required fields: {content, language_code,
      participant, participant_role} Optional fields: {send_time} If send_time
      is not provided, then the messages must be provided in chronological
      order.
  """

  messages = _messages.MessageField('GoogleCloudDialogflowV2Message', 1, repeated=True)


class GoogleCloudDialogflowV2GenerateStatelessSummaryResponse(_messages.Message):
  r"""The response message for Conversations.GenerateStatelessSummary.

  Fields:
    contextSize: Number of messages prior to and including latest_message used
      to compile the suggestion. It may be smaller than the
      GenerateStatelessSummaryRequest.max_context_size field in the request if
      there weren't that many messages in the conversation.
    latestMessage: The name of the latest conversation message used as context
      for compiling suggestion. The format is specific to the user and the
      names of the messages provided.
    summary: Generated summary.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(2)
  summary = _messages.MessageField('GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary', 3)


class GoogleCloudDialogflowV2GenerateStatelessSummaryResponseSummary(_messages.Message):
  r"""Generated summary for a conversation.

  Messages:
    TextSectionsValue: The summary content that is divided into sections. The
      key is the section's name and the value is the section's content. There
      is no specific format for the key or value.

  Fields:
    baselineModelVersion: The baseline model version used to generate this
      summary. It is empty if a baseline model was not used to generate this
      summary.
    text: The summary content that is concatenated into one string.
    textSections: The summary content that is divided into sections. The key
      is the section's name and the value is the section's content. There is
      no specific format for the key or value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class TextSectionsValue(_messages.Message):
    r"""The summary content that is divided into sections. The key is the
    section's name and the value is the section's content. There is no
    specific format for the key or value.

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

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

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

  baselineModelVersion = _messages.StringField(1)
  text = _messages.StringField(2)
  textSections = _messages.MessageField('TextSectionsValue', 3)


class GoogleCloudDialogflowV2GenerateSuggestionsRequest(_messages.Message):
  r"""The request message for Conversations.GenerateSuggestions.

  Enums:
    TriggerEventsValueListEntryValuesEnum:

  Fields:
    latestMessage: Optional. The name of the latest conversation message for
      which the request is triggered. Format:
      `projects//locations//conversations//messages/`.
    triggerEvents: Optional. A list of trigger events. Only generators
      configured in the conversation_profile whose trigger_event is listed
      here will be triggered.
  """

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

    Values:
      TRIGGER_EVENT_UNSPECIFIED: Default value for TriggerEvent.
      END_OF_UTTERANCE: Triggers when each chat message or voice utterance
        ends.
      MANUAL_CALL: Triggers on the conversation manually by API calls, such as
        Conversations.GenerateStatelessSuggestion and
        Conversations.GenerateSuggestions.
      CUSTOMER_MESSAGE: Triggers after each customer message only.
      AGENT_MESSAGE: Triggers after each agent message only.
    """
    TRIGGER_EVENT_UNSPECIFIED = 0
    END_OF_UTTERANCE = 1
    MANUAL_CALL = 2
    CUSTOMER_MESSAGE = 3
    AGENT_MESSAGE = 4

  latestMessage = _messages.StringField(1)
  triggerEvents = _messages.EnumField('TriggerEventsValueListEntryValuesEnum', 2, repeated=True)


class GoogleCloudDialogflowV2GenerateSuggestionsResponse(_messages.Message):
  r"""The response message for Conversations.GenerateSuggestions.

  Fields:
    generatorSuggestionAnswers: The answers generated for the conversation
      based on context.
    latestMessage: The name of the latest conversation message used as context
      for compiling suggestion. Format:
      `projects//locations//conversations//messages/`.
  """

  generatorSuggestionAnswers = _messages.MessageField('GoogleCloudDialogflowV2GenerateSuggestionsResponseGeneratorSuggestionAnswer', 1, repeated=True)
  latestMessage = _messages.StringField(2)


class GoogleCloudDialogflowV2GenerateSuggestionsResponseGeneratorSuggestionAnswer(_messages.Message):
  r"""A GeneratorSuggestion answer.

  Fields:
    answerRecord: Answer record that uniquely identifies the suggestion. This
      can be used to provide suggestion feedback.
    generatorSuggestion: Suggestion details.
    sourceGenerator: The name of the generator used to generate this
      suggestion. Format: `projects//locations//generators/`.
  """

  answerRecord = _messages.StringField(1)
  generatorSuggestion = _messages.MessageField('GoogleCloudDialogflowV2GeneratorSuggestion', 2)
  sourceGenerator = _messages.StringField(3)


class GoogleCloudDialogflowV2Generator(_messages.Message):
  r"""LLM generator.

  Enums:
    TriggerEventValueValuesEnum: Optional. The trigger event of the generator.
      It defines when the generator is triggered in a conversation.

  Fields:
    agentCoachingContext: Input of prebuilt Agent Coaching feature.
    createTime: Output only. Creation time of this generator.
    description: Optional. Human readable description of the generator.
    freeFormContext: Input of free from generator to LLM.
    inferenceParameter: Optional. Inference parameters for this generator.
    name: Output only. Identifier. The resource name of the generator. Format:
      `projects//locations//generators/`
    publishedModel: Optional. The published Large Language Model name. * To
      use the latest model version, specify the model name without version
      number. Example: `text-bison` * To use a stable model version, specify
      the version number as well. Example: `text-bison@002`.
    suggestionDedupingConfig: Optional. Configuration for suggestion deduping.
      This is only applicable to AI Coach feature.
    summarizationContext: Input of prebuilt Summarization feature.
    tools: Optional. Resource names of the tools that the generator can choose
      from. Format: `projects//locations//tools/`.
    triggerEvent: Optional. The trigger event of the generator. It defines
      when the generator is triggered in a conversation.
    updateTime: Output only. Update time of this generator.
  """

  class TriggerEventValueValuesEnum(_messages.Enum):
    r"""Optional. The trigger event of the generator. It defines when the
    generator is triggered in a conversation.

    Values:
      TRIGGER_EVENT_UNSPECIFIED: Default value for TriggerEvent.
      END_OF_UTTERANCE: Triggers when each chat message or voice utterance
        ends.
      MANUAL_CALL: Triggers on the conversation manually by API calls, such as
        Conversations.GenerateStatelessSuggestion and
        Conversations.GenerateSuggestions.
      CUSTOMER_MESSAGE: Triggers after each customer message only.
      AGENT_MESSAGE: Triggers after each agent message only.
    """
    TRIGGER_EVENT_UNSPECIFIED = 0
    END_OF_UTTERANCE = 1
    MANUAL_CALL = 2
    CUSTOMER_MESSAGE = 3
    AGENT_MESSAGE = 4

  agentCoachingContext = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingContext', 1)
  createTime = _messages.StringField(2)
  description = _messages.StringField(3)
  freeFormContext = _messages.MessageField('GoogleCloudDialogflowV2FreeFormContext', 4)
  inferenceParameter = _messages.MessageField('GoogleCloudDialogflowV2InferenceParameter', 5)
  name = _messages.StringField(6)
  publishedModel = _messages.StringField(7)
  suggestionDedupingConfig = _messages.MessageField('GoogleCloudDialogflowV2SuggestionDedupingConfig', 8)
  summarizationContext = _messages.MessageField('GoogleCloudDialogflowV2SummarizationContext', 9)
  tools = _messages.StringField(10, repeated=True)
  triggerEvent = _messages.EnumField('TriggerEventValueValuesEnum', 11)
  updateTime = _messages.StringField(12)


class GoogleCloudDialogflowV2GeneratorEvaluation(_messages.Message):
  r"""Represents evaluation result of a generator.

  Fields:
    completeTime: Output only. Completion time of this generator evaluation.
    createTime: Output only. Creation time of this generator evaluation.
    displayName: Optional. The display name of the generator evaluation. At
      most 64 bytes long.
    evaluationStatus: Output only. The result status of the evaluation
      pipeline. Provides the status information including if the evaluation is
      still in progress, completed or failed with certain error and user
      actionable message.
    generatorEvaluationConfig: Required. The configuration of the evaluation
      task.
    initialGenerator: Required. The initial generator that was used when
      creating this evaluation. This is a copy of the generator read from
      storage when creating the evaluation.
    name: Output only. Identifier. The resource name of the evaluation.
      Format: `projects//locations//generators// evaluations/`
    satisfiesPzi: Output only. A read only boolean field reflecting Zone
      Isolation status of the model. The field is an aggregated value of ZI
      status of its underlying dependencies. See more details in go/zicy-
      resource-placement#resource-status
    satisfiesPzs: Output only. A read only boolean field reflecting Zone
      Separation status of the model. The field is an aggregated value of ZS
      status of its underlying dependencies. See more details in go/zicy-
      resource-placement#resource-status
    summarizationMetrics: Output only. Only available when the summarization
      generator is provided.
  """

  completeTime = _messages.StringField(1)
  createTime = _messages.StringField(2)
  displayName = _messages.StringField(3)
  evaluationStatus = _messages.MessageField('GoogleCloudDialogflowV2EvaluationStatus', 4)
  generatorEvaluationConfig = _messages.MessageField('GoogleCloudDialogflowV2GeneratorEvaluationConfig', 5)
  initialGenerator = _messages.MessageField('GoogleCloudDialogflowV2Generator', 6)
  name = _messages.StringField(7)
  satisfiesPzi = _messages.BooleanField(8)
  satisfiesPzs = _messages.BooleanField(9)
  summarizationMetrics = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetrics', 10)


class GoogleCloudDialogflowV2GeneratorEvaluationConfig(_messages.Message):
  r"""Generator evaluation input config.

  Fields:
    inputDataConfig: Required. The config/source of input data.
    outputGcsBucketPath: Required. The output Cloud Storage bucket path to
      store eval files, e.g. per_summary_accuracy_score report. This path is
      provided by customer and files stored in it are visible to customer, no
      internal data should be stored in this path.
    summarizationConfig: Evaluation configs for summarization generator.
  """

  inputDataConfig = _messages.MessageField('GoogleCloudDialogflowV2GeneratorEvaluationConfigInputDataConfig', 1)
  outputGcsBucketPath = _messages.StringField(2)
  summarizationConfig = _messages.MessageField('GoogleCloudDialogflowV2GeneratorEvaluationConfigSummarizationConfig', 3)


class GoogleCloudDialogflowV2GeneratorEvaluationConfigAgentAssistInputDataConfig(_messages.Message):
  r"""The distinctive configs for Agent Assist conversations as the
  conversation source.

  Fields:
    endTime: Required. The end of the time range for conversations to be
      evaluated. Only conversations ended at or before this timestamp will be
      sampled.
    startTime: Required. The start of the time range for conversations to be
      evaluated. Only conversations created at or after this timestamp will be
      sampled.
  """

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


class GoogleCloudDialogflowV2GeneratorEvaluationConfigDatasetInputDataConfig(_messages.Message):
  r"""The distinctive configs for dataset as the conversation source.

  Fields:
    dataset: Required. The identifier of the dataset to be evaluated. Format:
      `projects//locations//datasets/`.
  """

  dataset = _messages.StringField(1)


class GoogleCloudDialogflowV2GeneratorEvaluationConfigInputDataConfig(_messages.Message):
  r"""Input data config details

  Enums:
    InputDataSourceTypeValueValuesEnum: Required. The source type of input
      data.
    SummaryGenerationOptionValueValuesEnum: Optional. Option to control
      whether summaries are generated during evaluation.

  Fields:
    agentAssistInputDataConfig: The distinctive configs for Agent Assist
      conversations as the conversation source.
    datasetInputDataConfig: The distinctive configs for dataset as the
      conversation source.
    endTime: Optional. The end timestamp to fetch conversation data.
    inputDataSourceType: Required. The source type of input data.
    isSummaryGenerationAllowed: Optional. Whether the summary generation is
      allowed when the pre-existing qualified summaries are insufficient to
      cover the sample size.
    sampleSize: Optional. Desired number of conversation-summary pairs to be
      evaluated.
    startTime: Optional. The start timestamp to fetch conversation data.
    summaryGenerationOption: Optional. Option to control whether summaries are
      generated during evaluation.
  """

  class InputDataSourceTypeValueValuesEnum(_messages.Enum):
    r"""Required. The source type of input data.

    Values:
      INPUT_DATA_SOURCE_TYPE_UNSPECIFIED: Unspecified InputDataSourceType.
        Should not be used.
      AGENT_ASSIST_CONVERSATIONS: Fetch data from Agent Assist storage. If
        this source type is chosen, input_data_config.start_time and
        input_data_config.end_timestamp must be provided.
      INSIGHTS_CONVERSATIONS: Fetch data from Insights storage. If this source
        type is chosen, input_data_config.start_time and
        input_data_config.end_timestamp must be provided.
    """
    INPUT_DATA_SOURCE_TYPE_UNSPECIFIED = 0
    AGENT_ASSIST_CONVERSATIONS = 1
    INSIGHTS_CONVERSATIONS = 2

  class SummaryGenerationOptionValueValuesEnum(_messages.Enum):
    r"""Optional. Option to control whether summaries are generated during
    evaluation.

    Values:
      SUMMARY_GENERATION_OPTION_UNSPECIFIED: Default option will not be used
      ALWAYS_GENERATE: Always Generate summary for all conversations.
      GENERATE_IF_MISSING: Gnerate only missing summaries.
      DO_NOT_GENERATE: Do not generate new summaries. Only use existing
        summaries found.
    """
    SUMMARY_GENERATION_OPTION_UNSPECIFIED = 0
    ALWAYS_GENERATE = 1
    GENERATE_IF_MISSING = 2
    DO_NOT_GENERATE = 3

  agentAssistInputDataConfig = _messages.MessageField('GoogleCloudDialogflowV2GeneratorEvaluationConfigAgentAssistInputDataConfig', 1)
  datasetInputDataConfig = _messages.MessageField('GoogleCloudDialogflowV2GeneratorEvaluationConfigDatasetInputDataConfig', 2)
  endTime = _messages.StringField(3)
  inputDataSourceType = _messages.EnumField('InputDataSourceTypeValueValuesEnum', 4)
  isSummaryGenerationAllowed = _messages.BooleanField(5)
  sampleSize = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  startTime = _messages.StringField(7)
  summaryGenerationOption = _messages.EnumField('SummaryGenerationOptionValueValuesEnum', 8)


class GoogleCloudDialogflowV2GeneratorEvaluationConfigSummarizationConfig(_messages.Message):
  r"""Evaluation configs for summarization generator.

  Fields:
    accuracyEvaluationVersion: Optional. Version for summarization accuracy.
      This will determine the prompt and model used at backend.
    completenessEvaluationVersion: Optional. Version for summarization
      completeness. This will determine the prompt and model used at backend.
    enableAccuracyEvaluation: Optional. Enable accuracy evaluation.
    enableCompletenessEvaluation: Optional. Enable completeness evaluation.
    evaluatorVersion: Optional. Version for summarization evaluation.
  """

  accuracyEvaluationVersion = _messages.StringField(1)
  completenessEvaluationVersion = _messages.StringField(2)
  enableAccuracyEvaluation = _messages.BooleanField(3)
  enableCompletenessEvaluation = _messages.BooleanField(4)
  evaluatorVersion = _messages.StringField(5)


class GoogleCloudDialogflowV2GeneratorSuggestion(_messages.Message):
  r"""Suggestion generated using a Generator.

  Fields:
    agentCoachingSuggestion: Optional. Suggestion to coach the agent.
    freeFormSuggestion: Optional. Free form suggestion.
    summarySuggestion: Optional. Suggested summary.
    toolCallInfo: Optional. List of request and response for tool calls
      executed.
  """

  agentCoachingSuggestion = _messages.MessageField('GoogleCloudDialogflowV2AgentCoachingSuggestion', 1)
  freeFormSuggestion = _messages.MessageField('GoogleCloudDialogflowV2FreeFormSuggestion', 2)
  summarySuggestion = _messages.MessageField('GoogleCloudDialogflowV2SummarySuggestion', 3)
  toolCallInfo = _messages.MessageField('GoogleCloudDialogflowV2GeneratorSuggestionToolCallInfo', 4, repeated=True)


class GoogleCloudDialogflowV2GeneratorSuggestionToolCallInfo(_messages.Message):
  r"""Request and response for a tool call.

  Fields:
    toolCall: Required. Request for a tool call.
    toolCallResult: Required. Response for a tool call.
  """

  toolCall = _messages.MessageField('GoogleCloudDialogflowV2ToolCall', 1)
  toolCallResult = _messages.MessageField('GoogleCloudDialogflowV2ToolCallResult', 2)


class GoogleCloudDialogflowV2HumanAgentAssistantConfig(_messages.Message):
  r"""Defines the Human Agent Assist to connect to a conversation.

  Fields:
    endUserSuggestionConfig: Configuration for agent assistance of end user
      participant. Currently, this feature is not general available, please
      contact Google to get access.
    humanAgentSuggestionConfig: Configuration for agent assistance of human
      agent participant.
    messageAnalysisConfig: Configuration for message analysis.
    notificationConfig: Pub/Sub topic on which to publish new agent assistant
      events.
  """

  endUserSuggestionConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfig', 1)
  humanAgentSuggestionConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfig', 2)
  messageAnalysisConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigMessageAnalysisConfig', 3)
  notificationConfig = _messages.MessageField('GoogleCloudDialogflowV2NotificationConfig', 4)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig(_messages.Message):
  r"""Custom conversation models used in agent assist feature. Supported
  feature: ARTICLE_SUGGESTION, SMART_COMPOSE, SMART_REPLY,
  CONVERSATION_SUMMARIZATION

  Fields:
    baselineModelVersion: Version of current baseline model. It will be
      ignored if model is set. Valid versions are: - Article Suggestion
      baseline model: - 0.9 - 1.0 (default) - Summarization baseline model: -
      1.0
    model: Conversation model resource name. Format:
      `projects//conversationModels/`.
  """

  baselineModelVersion = _messages.StringField(1)
  model = _messages.StringField(2)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfig(_messages.Message):
  r"""Config to process conversation.

  Fields:
    recentSentencesCount: Number of recent non-small-talk sentences to use as
      context for article and FAQ suggestion
  """

  recentSentencesCount = _messages.IntegerField(1, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigMessageAnalysisConfig(_messages.Message):
  r"""Configuration for analyses to run on each conversation message.

  Fields:
    enableEntityExtraction: Enable entity extraction in conversation messages
      on [agent assist
      stage](https://cloud.google.com/dialogflow/priv/docs/contact-
      center/basics#stages). If unspecified, defaults to false. Currently,
      this feature is not general available, please contact Google to get
      access.
    enableSentimentAnalysis: Enable sentiment analysis in conversation
      messages on [agent assist
      stage](https://cloud.google.com/dialogflow/priv/docs/contact-
      center/basics#stages). If unspecified, defaults to false. Sentiment
      analysis inspects user input and identifies the prevailing subjective
      opinion, especially to determine a user's attitude as positive,
      negative, or neutral: https://cloud.google.com/natural-
      language/docs/basics#sentiment_analysis For
      Participants.StreamingAnalyzeContent method, result will be in
      StreamingAnalyzeContentResponse.message.SentimentAnalysisResult. For
      Participants.AnalyzeContent method, result will be in
      AnalyzeContentResponse.message.SentimentAnalysisResult For
      Conversations.ListMessages method, result will be in
      ListMessagesResponse.messages.SentimentAnalysisResult If Pub/Sub
      notification is configured, result will be in
      ConversationEvent.new_message_payload.SentimentAnalysisResult.
  """

  enableEntityExtraction = _messages.BooleanField(1)
  enableSentimentAnalysis = _messages.BooleanField(2)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionConfig(_messages.Message):
  r"""Detail human agent assistant config.

  Fields:
    disableHighLatencyFeaturesSyncDelivery: Optional. When
      disable_high_latency_features_sync_delivery is true and using the
      AnalyzeContent API, we will not deliver the responses from high latency
      features in the API response. The
      human_agent_assistant_config.notification_config must be configured and
      enable_event_based_suggestion must be set to true to receive the
      responses from high latency features in Pub/Sub. High latency
      feature(s): KNOWLEDGE_ASSIST
    enableAsyncToolCall: Optional. If true, enable asynchronous execution of
      tools.
    featureConfigs: Configuration of different suggestion features. One
      feature can have only one config.
    generators: Optional. List of various generator resource names used in the
      conversation profile.
    groupSuggestionResponses: If `group_suggestion_responses` is false, and
      there are multiple `feature_configs` in `event based suggestion` or
      StreamingAnalyzeContent, we will try to deliver suggestions to customers
      as soon as we get new suggestion. Different type of suggestions based on
      the same context will be in separate Pub/Sub event or
      `StreamingAnalyzeContentResponse`. If `group_suggestion_responses` set
      to true. All the suggestions to the same participant based on the same
      context will be grouped into a single Pub/Sub event or
      StreamingAnalyzeContentResponse.
    skipEmptyEventBasedSuggestion: Optional. Enable skipping event based
      suggestion if the suggestion is empty. For example, with this field
      disabled, Knowledge Assist feature sends a Pub/Sub message when there
      are no suggestions. Enabling this field will change the behavior to skip
      the Pub/Sub message in this situation.
    useUnredactedConversationData: Optional. If true, use unredacted
      transcript data (Supported features: AI_COACH) and use unredacted
      ingested context (Supported features: All Agent Assist features)
  """

  disableHighLatencyFeaturesSyncDelivery = _messages.BooleanField(1)
  enableAsyncToolCall = _messages.BooleanField(2)
  featureConfigs = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig', 3, repeated=True)
  generators = _messages.StringField(4, repeated=True)
  groupSuggestionResponses = _messages.BooleanField(5)
  skipEmptyEventBasedSuggestion = _messages.BooleanField(6)
  useUnredactedConversationData = _messages.BooleanField(7)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig(_messages.Message):
  r"""Config for suggestion features.

  Fields:
    conversationModelConfig: Configs of custom conversation model.
    conversationProcessConfig: Configs for processing conversation.
    disableAgentQueryLogging: Optional. Disable the logging of search queries
      sent by human agents. It can prevent those queries from being stored at
      answer records. Supported features: KNOWLEDGE_SEARCH.
    enableConversationAugmentedQuery: Optional. Enable including conversation
      context during query answer generation. Supported features:
      KNOWLEDGE_SEARCH.
    enableEventBasedSuggestion: Automatically iterates all participants and
      tries to compile suggestions. Supported features: ARTICLE_SUGGESTION,
      FAQ, DIALOGFLOW_ASSIST, KNOWLEDGE_ASSIST.
    enableQuerySuggestionOnly: Optional. Enable query suggestion only.
      Supported features: KNOWLEDGE_ASSIST
    enableQuerySuggestionWhenNoAnswer: Optional. Enable query suggestion even
      if we can't find its answer. By default, queries are suggested only if
      we find its answer. Supported features: KNOWLEDGE_ASSIST
    enableResponseDebugInfo: Optional. Enable returning detailed reasons for
      suggestion results. For example, with this field disabled, Knowledge
      Search feature returns NotFound error when no answer is found for the
      input query. Enabling this field will change the behavior to return an
      OK response with detailed information indicating the lack of results.
      Supported features: KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST
    queryConfig: Configs of query.
    raiSettings: Optional. Settings for Responsible AI checks. Supported
      features: KNOWLEDGE_ASSIST
    suggestionFeature: The suggestion feature.
    suggestionTriggerSettings: Settings of suggestion trigger. Currently, only
      ARTICLE_SUGGESTION and FAQ will use this field.
  """

  conversationModelConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationModelConfig', 1)
  conversationProcessConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigConversationProcessConfig', 2)
  disableAgentQueryLogging = _messages.BooleanField(3)
  enableConversationAugmentedQuery = _messages.BooleanField(4)
  enableEventBasedSuggestion = _messages.BooleanField(5)
  enableQuerySuggestionOnly = _messages.BooleanField(6)
  enableQuerySuggestionWhenNoAnswer = _messages.BooleanField(7)
  enableResponseDebugInfo = _messages.BooleanField(8)
  queryConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig', 9)
  raiSettings = _messages.MessageField('GoogleCloudDialogflowV2RaiSettings', 10)
  suggestionFeature = _messages.MessageField('GoogleCloudDialogflowV2SuggestionFeature', 11)
  suggestionTriggerSettings = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings', 12)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig(_messages.Message):
  r"""Config for suggestion query.

  Fields:
    confidenceThreshold: Confidence threshold of query result. Agent Assist
      gives each suggestion a score in the range [0.0, 1.0], based on the
      relevance between the suggestion and the current conversation context. A
      score of 0.0 has no relevance, while a score of 1.0 has high relevance.
      Only suggestions with a score greater than or equal to the value of this
      field are included in the results. For a baseline model (the default),
      the recommended value is in the range [0.05, 0.1]. For a custom model,
      there is no recommended value. Tune this value by starting from a very
      low value and slowly increasing until you have desired results. If this
      field is not set, it defaults to 0.0, which means that all suggestions
      are returned. Supported features: ARTICLE_SUGGESTION, FAQ, SMART_REPLY,
      SMART_COMPOSE, KNOWLEDGE_SEARCH, KNOWLEDGE_ASSIST, ENTITY_EXTRACTION.
    contextFilterSettings: Determines how recent conversation context is
      filtered when generating suggestions. If unspecified, no messages will
      be dropped.
    contextSize: Optional. The number of recent messages to include in the
      context. Supported features: KNOWLEDGE_ASSIST.
    dialogflowQuerySource: Query from Dialogflow agent. It is used by
      DIALOGFLOW_ASSIST.
    documentQuerySource: Query from knowledge base document. It is used by:
      SMART_REPLY, SMART_COMPOSE.
    knowledgeBaseQuerySource: Query from knowledgebase. It is used by:
      ARTICLE_SUGGESTION, FAQ.
    maxResults: Maximum number of results to return. Currently, if unset,
      defaults to 10. And the max number is 20.
    sections: Optional. The customized sections chosen to return when
      requesting a summary of a conversation.
  """

  confidenceThreshold = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  contextFilterSettings = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettings', 2)
  contextSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  dialogflowQuerySource = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource', 4)
  documentQuerySource = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySource', 5)
  knowledgeBaseQuerySource = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySource', 6)
  maxResults = _messages.IntegerField(7, variant=_messages.Variant.INT32)
  sections = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections', 8)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigContextFilterSettings(_messages.Message):
  r"""Settings that determine how to filter recent conversation context when
  generating suggestions.

  Fields:
    dropHandoffMessages: If set to true, the last message from virtual agent
      (hand off message) and the message before it (trigger message of hand
      off) are dropped.
    dropIvrMessages: If set to true, all messages from ivr stage are dropped.
    dropVirtualAgentMessages: If set to true, all messages from virtual agent
      are dropped.
  """

  dropHandoffMessages = _messages.BooleanField(1)
  dropIvrMessages = _messages.BooleanField(2)
  dropVirtualAgentMessages = _messages.BooleanField(3)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySource(_messages.Message):
  r"""Dialogflow source setting. Supported feature: DIALOGFLOW_ASSIST.

  Fields:
    agent: Required. The name of a Dialogflow virtual agent used for end user
      side intent detection and suggestion. Format:
      `projects//locations//agent`. When multiple agents are allowed in the
      same Dialogflow project.
    humanAgentSideConfig: Optional. The Dialogflow assist configuration for
      human agent.
  """

  agent = _messages.StringField(1)
  humanAgentSideConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig', 2)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDialogflowQuerySourceHumanAgentSideConfig(_messages.Message):
  r"""The configuration used for human agent side Dialogflow assist
  suggestion.

  Fields:
    agent: Optional. The name of a dialogflow virtual agent used for intent
      detection and suggestion triggered by human agent. Format:
      `projects//locations//agent`.
  """

  agent = _messages.StringField(1)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigDocumentQuerySource(_messages.Message):
  r"""Document source settings. Supported features: SMART_REPLY,
  SMART_COMPOSE.

  Fields:
    documents: Required. Knowledge documents to query from. Format:
      `projects//locations//knowledgeBases//documents/`. Currently, at most 5
      documents are supported.
  """

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


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowledgeBaseQuerySource(_messages.Message):
  r"""Knowledge base source settings. Supported features: ARTICLE_SUGGESTION,
  FAQ.

  Fields:
    knowledgeBases: Required. Knowledge bases to query. Format:
      `projects//locations//knowledgeBases/`. Currently, at most 5 knowledge
      bases are supported.
  """

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


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections(_messages.Message):
  r"""Custom sections to return when requesting a summary of a conversation.
  This is only supported when `baseline_model_version` == '2.0'. Supported
  features: CONVERSATION_SUMMARIZATION, CONVERSATION_SUMMARIZATION_VOICE.

  Enums:
    SectionTypesValueListEntryValuesEnum:

  Fields:
    sectionTypes: The selected sections chosen to return when requesting a
      summary of a conversation. A duplicate selected section will be treated
      as a single selected section. If section types are not provided, the
      default will be {SITUATION, ACTION, RESULT}.
  """

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

    Values:
      SECTION_TYPE_UNSPECIFIED: Undefined section type, does not return
        anything.
      SITUATION: What the customer needs help with or has question about.
        Section name: "situation".
      ACTION: What the agent does to help the customer. Section name:
        "action".
      RESOLUTION: Result of the customer service. A single word describing the
        result of the conversation. Section name: "resolution".
      REASON_FOR_CANCELLATION: Reason for cancellation if the customer
        requests for a cancellation. "N/A" otherwise. Section name:
        "reason_for_cancellation".
      CUSTOMER_SATISFACTION: "Unsatisfied" or "Satisfied" depending on the
        customer's feelings at the end of the conversation. Section name:
        "customer_satisfaction".
      ENTITIES: Key entities extracted from the conversation, such as ticket
        number, order number, dollar amount, etc. Section names are prefixed
        by "entities/".
    """
    SECTION_TYPE_UNSPECIFIED = 0
    SITUATION = 1
    ACTION = 2
    RESOLUTION = 3
    REASON_FOR_CANCELLATION = 4
    CUSTOMER_SATISFACTION = 5
    ENTITIES = 6

  sectionTypes = _messages.EnumField('SectionTypesValueListEntryValuesEnum', 1, repeated=True)


class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings(_messages.Message):
  r"""Settings of suggestion trigger.

  Fields:
    noSmalltalk: Do not trigger if last utterance is small talk.
    onlyEndUser: Only trigger suggestion if participant role of last utterance
      is END_USER.
  """

  noSmalltalk = _messages.BooleanField(1)
  onlyEndUser = _messages.BooleanField(2)


class GoogleCloudDialogflowV2HumanAgentAssistantEvent(_messages.Message):
  r"""Represents a notification sent to Cloud Pub/Sub subscribers for human
  agent assistant events in a specific conversation.

  Fields:
    conversation: The conversation this notification refers to. Format:
      `projects//conversations/`.
    participant: The participant that the suggestion is compiled for. Format:
      `projects//conversations//participants/`. It will not be set in legacy
      workflow.
    suggestionResults: The suggestion results payload that this notification
      refers to.
  """

  conversation = _messages.StringField(1)
  participant = _messages.StringField(2)
  suggestionResults = _messages.MessageField('GoogleCloudDialogflowV2SuggestionResult', 3, repeated=True)


class GoogleCloudDialogflowV2HumanAgentHandoffConfig(_messages.Message):
  r"""Defines the hand off to a live agent, typically on which external agent
  service provider to connect to a conversation. Currently, this feature is
  not general available, please contact Google to get access.

  Fields:
    livePersonConfig: Uses [LivePerson](https://www.liveperson.com).
    salesforceLiveAgentConfig: Uses Salesforce Live Agent.
  """

  livePersonConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentHandoffConfigLivePersonConfig', 1)
  salesforceLiveAgentConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentHandoffConfigSalesforceLiveAgentConfig', 2)


class GoogleCloudDialogflowV2HumanAgentHandoffConfigLivePersonConfig(_messages.Message):
  r"""Configuration specific to [LivePerson](https://www.liveperson.com).

  Fields:
    accountNumber: Required. Account number of the LivePerson account to
      connect. This is the account number you input at the login page.
  """

  accountNumber = _messages.StringField(1)


class GoogleCloudDialogflowV2HumanAgentHandoffConfigSalesforceLiveAgentConfig(_messages.Message):
  r"""Configuration specific to Salesforce Live Agent.

  Fields:
    buttonId: Required. Live Agent chat button ID.
    deploymentId: Required. Live Agent deployment ID.
    endpointDomain: Required. Domain of the Live Agent endpoint for this
      agent. You can find the endpoint URL in the `Live Agent settings` page.
      For example if URL has the form
      https://d.la4-c2-phx.salesforceliveagent.com/..., you should fill in
      d.la4-c2-phx.salesforceliveagent.com.
    organizationId: Required. The organization ID of the Salesforce account.
  """

  buttonId = _messages.StringField(1)
  deploymentId = _messages.StringField(2)
  endpointDomain = _messages.StringField(3)
  organizationId = _messages.StringField(4)


class GoogleCloudDialogflowV2ImportAgentRequest(_messages.Message):
  r"""The request message for Agents.ImportAgent.

  Fields:
    agentContent: Zip compressed raw byte content for agent.
    agentUri: The URI to a Google Cloud Storage file containing the agent to
      import. Note: The URI must start with "gs://". Dialogflow performs a
      read operation for the Cloud Storage object on the caller's behalf, so
      your request authentication must have read permissions for the object.
      For more information, see [Dialogflow access
      control](https://cloud.google.com/dialogflow/cx/docs/concept/access-
      control#storage).
  """

  agentContent = _messages.BytesField(1)
  agentUri = _messages.StringField(2)


class GoogleCloudDialogflowV2ImportConversationDataOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationDatasets.ImportConversationData operation.

  Fields:
    conversationDataset: The resource name of the imported conversation
      dataset. Format: `projects//locations//conversationDatasets/`
    createTime: Timestamp when import conversation data request was created.
      The time is measured on server side.
    partialFailures: Partial failures are failures that don't fail the whole
      long running operation, e.g. single files that couldn't be read.
  """

  conversationDataset = _messages.StringField(1)
  createTime = _messages.StringField(2)
  partialFailures = _messages.MessageField('GoogleRpcStatus', 3, repeated=True)


class GoogleCloudDialogflowV2ImportConversationDataOperationResponse(_messages.Message):
  r"""Response used for ConversationDatasets.ImportConversationData long
  running operation.

  Fields:
    conversationDataset: The resource name of the imported conversation
      dataset. Format: `projects//locations//conversationDatasets/`
    importCount: Number of conversations imported successfully.
  """

  conversationDataset = _messages.StringField(1)
  importCount = _messages.IntegerField(2, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2ImportConversationDataRequest(_messages.Message):
  r"""The request message for ConversationDatasets.ImportConversationData.

  Fields:
    inputConfig: Required. Configuration describing where to import data from.
  """

  inputConfig = _messages.MessageField('GoogleCloudDialogflowV2InputConfig', 1)


class GoogleCloudDialogflowV2ImportDocumentTemplate(_messages.Message):
  r"""The template used for importing documents.

  Enums:
    KnowledgeTypesValueListEntryValuesEnum:

  Messages:
    MetadataValue: Metadata for the document. The metadata supports arbitrary
      key-value pairs. Suggested use cases include storing a document's title,
      an external URL distinct from the document's content_uri, etc. The max
      size of a `key` or a `value` of the metadata is 1024 bytes.

  Fields:
    knowledgeTypes: Required. The knowledge type of document content.
    metadata: Metadata for the document. The metadata supports arbitrary key-
      value pairs. Suggested use cases include storing a document's title, an
      external URL distinct from the document's content_uri, etc. The max size
      of a `key` or a `value` of the metadata is 1024 bytes.
    mimeType: Required. The MIME type of the document.
  """

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

    Values:
      KNOWLEDGE_TYPE_UNSPECIFIED: The type is unspecified or arbitrary.
      FAQ: The document content contains question and answer pairs as either
        HTML or CSV. Typical FAQ HTML formats are parsed accurately, but
        unusual formats may fail to be parsed. CSV must have questions in the
        first column and answers in the second, with no header. Because of
        this explicit format, they are always parsed accurately.
      EXTRACTIVE_QA: Documents for which unstructured text is extracted and
        used for question answering.
      ARTICLE_SUGGESTION: The entire document content as a whole can be used
        for query results. Only for Contact Center Solutions on Dialogflow.
      AGENT_FACING_SMART_REPLY: The document contains agent-facing Smart Reply
        entries.
    """
    KNOWLEDGE_TYPE_UNSPECIFIED = 0
    FAQ = 1
    EXTRACTIVE_QA = 2
    ARTICLE_SUGGESTION = 3
    AGENT_FACING_SMART_REPLY = 4

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Metadata for the document. The metadata supports arbitrary key-value
    pairs. Suggested use cases include storing a document's title, an external
    URL distinct from the document's content_uri, etc. The max size of a `key`
    or a `value` of the metadata is 1024 bytes.

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

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

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

  knowledgeTypes = _messages.EnumField('KnowledgeTypesValueListEntryValuesEnum', 1, repeated=True)
  metadata = _messages.MessageField('MetadataValue', 2)
  mimeType = _messages.StringField(3)


class GoogleCloudDialogflowV2ImportDocumentsRequest(_messages.Message):
  r"""Request message for Documents.ImportDocuments.

  Fields:
    documentTemplate: Required. Document template used for importing all the
      documents.
    gcsSource: Optional. The Google Cloud Storage location for the documents.
      The path can include a wildcard. These URIs may have the forms `gs:///`.
      `gs:////*.`.
    importGcsCustomMetadata: Whether to import custom metadata from Google
      Cloud Storage. Only valid when the document source is Google Cloud
      Storage URI.
  """

  documentTemplate = _messages.MessageField('GoogleCloudDialogflowV2ImportDocumentTemplate', 1)
  gcsSource = _messages.MessageField('GoogleCloudDialogflowV2GcsSources', 2)
  importGcsCustomMetadata = _messages.BooleanField(3)


class GoogleCloudDialogflowV2ImportDocumentsResponse(_messages.Message):
  r"""Response message for Documents.ImportDocuments.

  Fields:
    warnings: Includes details about skipped documents or any other warnings.
  """

  warnings = _messages.MessageField('GoogleRpcStatus', 1, repeated=True)


class GoogleCloudDialogflowV2InferenceParameter(_messages.Message):
  r"""The parameters of inference.

  Fields:
    maxOutputTokens: Optional. Maximum number of the output tokens for the
      generator.
    temperature: Optional. Controls the randomness of LLM predictions. Low
      temperature = less random. High temperature = more random. If unset (or
      0), uses a default value of 0.
    topK: Optional. Top-k changes how the model selects tokens for output. A
      top-k of 1 means the selected token is the most probable among all
      tokens in the model's vocabulary (also called greedy decoding), while a
      top-k of 3 means that the next token is selected from among the 3 most
      probable tokens (using temperature). For each token selection step, the
      top K tokens with the highest probabilities are sampled. Then tokens are
      further filtered based on topP with the final token selected using
      temperature sampling. Specify a lower value for less random responses
      and a higher value for more random responses. Acceptable value is [1,
      40], default to 40.
    topP: Optional. Top-p changes how the model selects tokens for output.
      Tokens are selected from most K (see topK parameter) probable to least
      until the sum of their probabilities equals the top-p value. For
      example, if tokens A, B, and C have a probability of 0.3, 0.2, and 0.1
      and the top-p value is 0.5, then the model will select either A or B as
      the next token (using temperature) and doesn't consider C. The default
      top-p value is 0.95. Specify a lower value for less random responses and
      a higher value for more random responses. Acceptable value is [0.0,
      1.0], default to 0.95.
  """

  maxOutputTokens = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  temperature = _messages.FloatField(2)
  topK = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  topP = _messages.FloatField(4)


class GoogleCloudDialogflowV2IngestContextReferencesRequest(_messages.Message):
  r"""The request message for ConversationsService.IngestContextReferences.

  Messages:
    ContextReferencesValue: Required. The context references to ingest. The
      key is the name of the context reference and the value contains the
      contents of the context reference. The key is used to incorporate
      ingested context references to enhance the generator.

  Fields:
    contextReferences: Required. The context references to ingest. The key is
      the name of the context reference and the value contains the contents of
      the context reference. The key is used to incorporate ingested context
      references to enhance the generator.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ContextReferencesValue(_messages.Message):
    r"""Required. The context references to ingest. The key is the name of the
    context reference and the value contains the contents of the context
    reference. The key is used to incorporate ingested context references to
    enhance the generator.

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

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

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

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

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

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

  contextReferences = _messages.MessageField('ContextReferencesValue', 1)


class GoogleCloudDialogflowV2IngestContextReferencesResponse(_messages.Message):
  r"""The response message for ConversationsService.IngestContextReferences.

  Messages:
    IngestedContextReferencesValue: All context references ingested.

  Fields:
    ingestedContextReferences: All context references ingested.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class IngestedContextReferencesValue(_messages.Message):
    r"""All context references ingested.

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

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

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

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

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

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

  ingestedContextReferences = _messages.MessageField('IngestedContextReferencesValue', 1)


class GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata(_messages.Message):
  r"""Metadata for initializing a location-level encryption specification.

  Fields:
    request: Output only. The original request for initialization.
  """

  request = _messages.MessageField('GoogleCloudDialogflowV2InitializeEncryptionSpecRequest', 1)


class GoogleCloudDialogflowV2InitializeEncryptionSpecRequest(_messages.Message):
  r"""The request to initialize a location-level encryption specification.

  Fields:
    encryptionSpec: Required. The encryption spec used for CMEK encryption. It
      is required that the kms key is in the same region as the endpoint. The
      same key will be used for all provisioned resources, if encryption is
      available. If the kms_key_name is left empty, no encryption will be
      enforced.
  """

  encryptionSpec = _messages.MessageField('GoogleCloudDialogflowV2EncryptionSpec', 1)


class GoogleCloudDialogflowV2InputAudioConfig(_messages.Message):
  r"""Instructs the speech recognizer how to process the audio content.

  Enums:
    AudioEncodingValueValuesEnum: Required. Audio encoding of the audio
      content to process.
    ModelVariantValueValuesEnum: Which variant of the Speech model to use.

  Fields:
    audioEncoding: Required. Audio encoding of the audio content to process.
    disableNoSpeechRecognizedEvent: Only used in Participants.AnalyzeContent
      and Participants.StreamingAnalyzeContent. If `false` and recognition
      doesn't return any result, trigger `NO_SPEECH_RECOGNIZED` event to
      Dialogflow agent.
    enableAutomaticPunctuation: Enable automatic punctuation option at the
      speech backend.
    enableWordInfo: If `true`, Dialogflow returns SpeechWordInfo in
      StreamingRecognitionResult with information about the recognized speech
      words, e.g. start and end time offsets. If false or unspecified, Speech
      doesn't return any word-level information.
    languageCode: Required. The language of the supplied audio. Dialogflow
      does not do translations. See [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes. Note that queries
      in the same session do not necessarily need to specify the same
      language. If not set, the language is inferred from the
      ConversationProfile.stt_config.
    model: Optional. Which Speech model to select for the given request. For
      more information, see [Speech
      models](https://cloud.google.com/dialogflow/es/docs/speech-models).
    modelVariant: Which variant of the Speech model to use.
    optOutConformerModelMigration: If `true`, the request will opt out for STT
      conformer model migration. This field will be deprecated once force
      migration takes place in June 2024. Please refer to [Dialogflow ES
      Speech model
      migration](https://cloud.google.com/dialogflow/es/docs/speech-model-
      migration).
    phraseHints: A list of strings containing words and phrases that the
      speech recognizer should recognize with higher likelihood. See [the
      Cloud Speech documentation](https://cloud.google.com/speech-to-
      text/docs/basics#phrase-hints) for more details. This field is
      deprecated. Please use [`speech_contexts`]() instead. If you specify
      both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will treat
      the [`phrase_hints`]() as a single additional [`SpeechContext`]().
    phraseSets: A collection of phrase set resources to use for speech
      adaptation.
    sampleRateHertz: Required. Sample rate (in Hertz) of the audio content
      sent in the query. Refer to [Cloud Speech API
      documentation](https://cloud.google.com/speech-to-text/docs/basics) for
      more details.
    singleUtterance: If `false` (default), recognition does not cease until
      the client closes the stream. If `true`, the recognizer will detect a
      single spoken utterance in input audio. Recognition ceases when it
      detects the audio's voice has stopped or paused. In this case, once a
      detected intent is received, the client should close the stream and
      start a new request with a new stream as needed. Note: This setting is
      relevant only for streaming methods. Note: When specified,
      InputAudioConfig.single_utterance takes precedence over
      StreamingDetectIntentRequest.single_utterance.
    speechContexts: Context information to assist speech recognition. See [the
      Cloud Speech documentation](https://cloud.google.com/speech-to-
      text/docs/basics#phrase-hints) for more details.
  """

  class AudioEncodingValueValuesEnum(_messages.Enum):
    r"""Required. Audio encoding of the audio content to process.

    Values:
      AUDIO_ENCODING_UNSPECIFIED: Not specified.
      AUDIO_ENCODING_LINEAR_16: Uncompressed 16-bit signed little-endian
        samples (Linear PCM).
      AUDIO_ENCODING_FLAC: [`FLAC`](https://xiph.org/flac/documentation.html)
        (Free Lossless Audio Codec) is the recommended encoding because it is
        lossless (therefore recognition is not compromised) and requires only
        about half the bandwidth of `LINEAR16`. `FLAC` stream encoding
        supports 16-bit and 24-bit samples, however, not all fields in
        `STREAMINFO` are supported.
      AUDIO_ENCODING_MULAW: 8-bit samples that compand 14-bit audio samples
        using G.711 PCMU/mu-law.
      AUDIO_ENCODING_AMR: Adaptive Multi-Rate Narrowband codec.
        `sample_rate_hertz` must be 8000.
      AUDIO_ENCODING_AMR_WB: Adaptive Multi-Rate Wideband codec.
        `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_OGG_OPUS: Opus encoded audio frames in Ogg container
        ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must
        be 16000.
      AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE: Although the use of lossy
        encodings is not recommended, if a very low bitrate encoding is
        required, `OGG_OPUS` is highly preferred over Speex encoding. The
        [Speex](https://speex.org/) encoding supported by Dialogflow API has a
        header byte in each block, as in MIME type `audio/x-speex-with-header-
        byte`. It is a variant of the RTP Speex encoding defined in [RFC
        5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence
        of blocks, one block per RTP packet. Each block starts with a byte
        containing the length of the block, in bytes, followed by one or more
        frames of Speex data, padded to an integral number of bytes (octets)
        as specified in RFC 5574. In other words, each RTP header is replaced
        with a single byte containing the block length. Only Speex wideband is
        supported. `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_ALAW: 8-bit samples that compand 13-bit audio samples
        using G.711 PCMU/a-law.
    """
    AUDIO_ENCODING_UNSPECIFIED = 0
    AUDIO_ENCODING_LINEAR_16 = 1
    AUDIO_ENCODING_FLAC = 2
    AUDIO_ENCODING_MULAW = 3
    AUDIO_ENCODING_AMR = 4
    AUDIO_ENCODING_AMR_WB = 5
    AUDIO_ENCODING_OGG_OPUS = 6
    AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7
    AUDIO_ENCODING_ALAW = 8

  class ModelVariantValueValuesEnum(_messages.Enum):
    r"""Which variant of the Speech model to use.

    Values:
      SPEECH_MODEL_VARIANT_UNSPECIFIED: No model variant specified. In this
        case Dialogflow defaults to USE_BEST_AVAILABLE.
      USE_BEST_AVAILABLE: Use the best available variant of the Speech model
        that the caller is eligible for. Please see the [Dialogflow
        docs](https://cloud.google.com/dialogflow/docs/data-logging) for how
        to make your project eligible for enhanced models.
      USE_STANDARD: Use standard model variant even if an enhanced model is
        available. See the [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) for details about enhanced models.
      USE_ENHANCED: Use an enhanced model variant: * If an enhanced variant
        does not exist for the given model and request language, Dialogflow
        falls back to the standard variant. The [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) describes which models have enhanced variants. * If the API
        caller isn't eligible for enhanced models, Dialogflow returns an
        error. Please see the [Dialogflow
        docs](https://cloud.google.com/dialogflow/docs/data-logging) for how
        to make your project eligible.
    """
    SPEECH_MODEL_VARIANT_UNSPECIFIED = 0
    USE_BEST_AVAILABLE = 1
    USE_STANDARD = 2
    USE_ENHANCED = 3

  audioEncoding = _messages.EnumField('AudioEncodingValueValuesEnum', 1)
  disableNoSpeechRecognizedEvent = _messages.BooleanField(2)
  enableAutomaticPunctuation = _messages.BooleanField(3)
  enableWordInfo = _messages.BooleanField(4)
  languageCode = _messages.StringField(5)
  model = _messages.StringField(6)
  modelVariant = _messages.EnumField('ModelVariantValueValuesEnum', 7)
  optOutConformerModelMigration = _messages.BooleanField(8)
  phraseHints = _messages.StringField(9, repeated=True)
  phraseSets = _messages.StringField(10, repeated=True)
  sampleRateHertz = _messages.IntegerField(11, variant=_messages.Variant.INT32)
  singleUtterance = _messages.BooleanField(12)
  speechContexts = _messages.MessageField('GoogleCloudDialogflowV2SpeechContext', 13, repeated=True)


class GoogleCloudDialogflowV2InputConfig(_messages.Message):
  r"""Represents the configuration of importing a set of conversation files in
  Google Cloud Storage.

  Fields:
    gcsSource: The Cloud Storage URI has the form gs:////agent*.json.
      Wildcards are allowed and will be expanded into all matched JSON files,
      which will be read as one conversation per file.
  """

  gcsSource = _messages.MessageField('GoogleCloudDialogflowV2GcsSources', 1)


class GoogleCloudDialogflowV2InputDataset(_messages.Message):
  r"""InputDataset used to create model or do evaluation. NextID:5

  Fields:
    dataset: Required. ConversationDataset resource name. Format:
      `projects//locations//conversationDatasets/`
  """

  dataset = _messages.StringField(1)


class GoogleCloudDialogflowV2Intent(_messages.Message):
  r"""An intent categorizes an end-user's intention for one conversation turn.
  For each agent, you define many intents, where your combined intents can
  handle a complete conversation. When an end-user writes or says something,
  referred to as an end-user expression or end-user input, Dialogflow matches
  the end-user input to the best intent in your agent. Matching an intent is
  also known as intent classification. For more information, see the [intent
  guide](https://cloud.google.com/dialogflow/docs/intents-overview).

  Enums:
    DefaultResponsePlatformsValueListEntryValuesEnum:
    WebhookStateValueValuesEnum: Optional. Indicates whether webhooks are
      enabled for the intent.

  Fields:
    action: Optional. The name of the action associated with the intent. Note:
      The action name must not contain whitespaces.
    defaultResponsePlatforms: Optional. The list of platforms for which the
      first responses will be copied from the messages in PLATFORM_UNSPECIFIED
      (i.e. default platform).
    displayName: Required. The name of this intent.
    endInteraction: Optional. Indicates that this intent ends an interaction.
      Some integrations (e.g., Actions on Google or Dialogflow phone gateway)
      use this information to close interaction with an end user. Default is
      false.
    events: Optional. The collection of event names that trigger the intent.
      If the collection of input contexts is not empty, all of the contexts
      must be present in the active user session for an event to trigger this
      intent. Event names are limited to 150 characters.
    followupIntentInfo: Output only. Read-only. Information about all followup
      intents that have this intent as a direct or indirect parent. We
      populate this field only in the output.
    inputContextNames: Optional. The list of context names required for this
      intent to be triggered. Format: `projects//agent/sessions/-/contexts/`.
    isFallback: Optional. Indicates whether this is a fallback intent.
    liveAgentHandoff: Optional. Indicates that a live agent should be brought
      in to handle the interaction with the user. In most cases, when you set
      this flag to true, you would also want to set end_interaction to true as
      well. Default is false.
    messages: Optional. The collection of rich messages corresponding to the
      `Response` field in the Dialogflow console.
    mlDisabled: Optional. Indicates whether Machine Learning is disabled for
      the intent. Note: If `ml_disabled` setting is set to true, then this
      intent is not taken into account during inference in `ML ONLY` match
      mode. Also, auto-markup in the UI is turned off.
    name: Optional. The unique identifier of this intent. Required for
      Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format:
      `projects//agent/intents/`.
    outputContexts: Optional. The collection of contexts that are activated
      when the intent is matched. Context messages in this collection should
      not set the parameters field. Setting the `lifespan_count` to 0 will
      reset the context when the intent is matched. Format:
      `projects//agent/sessions/-/contexts/`.
    parameters: Optional. The collection of parameters associated with the
      intent.
    parentFollowupIntentName: Read-only after creation. The unique identifier
      of the parent intent in the chain of followup intents. You can set this
      field when creating an intent, for example with CreateIntent or
      BatchUpdateIntents, in order to make this intent a followup intent. It
      identifies the parent followup intent. Format:
      `projects//agent/intents/`.
    priority: Optional. The priority of this intent. Higher numbers represent
      higher priorities. - If the supplied value is unspecified or 0, the
      service translates the value to 500,000, which corresponds to the
      `Normal` priority in the console. - If the supplied value is negative,
      the intent is ignored in runtime detect intent requests.
    resetContexts: Optional. Indicates whether to delete all contexts in the
      current session when this intent is matched.
    rootFollowupIntentName: Output only. Read-only. The unique identifier of
      the root intent in the chain of followup intents. It identifies the
      correct followup intents chain for this intent. We populate this field
      only in the output. Format: `projects//agent/intents/`.
    trainingPhrases: Optional. The collection of examples that the agent is
      trained on.
    webhookState: Optional. Indicates whether webhooks are enabled for the
      intent.
  """

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

    Values:
      PLATFORM_UNSPECIFIED: Default platform.
      FACEBOOK: Facebook.
      SLACK: Slack.
      TELEGRAM: Telegram.
      KIK: Kik.
      SKYPE: Skype.
      LINE: Line.
      VIBER: Viber.
      ACTIONS_ON_GOOGLE: Google Assistant See [Dialogflow webhook format](http
        s://developers.google.com/assistant/actions/build/json/dialogflow-
        webhook-json)
      GOOGLE_HANGOUTS: Google Hangouts.
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8
    GOOGLE_HANGOUTS = 9

  class WebhookStateValueValuesEnum(_messages.Enum):
    r"""Optional. Indicates whether webhooks are enabled for the intent.

    Values:
      WEBHOOK_STATE_UNSPECIFIED: Webhook is disabled in the agent and in the
        intent.
      WEBHOOK_STATE_ENABLED: Webhook is enabled in the agent and in the
        intent.
      WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING: Webhook is enabled in the agent
        and in the intent. Also, each slot filling prompt is forwarded to the
        webhook.
    """
    WEBHOOK_STATE_UNSPECIFIED = 0
    WEBHOOK_STATE_ENABLED = 1
    WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING = 2

  action = _messages.StringField(1)
  defaultResponsePlatforms = _messages.EnumField('DefaultResponsePlatformsValueListEntryValuesEnum', 2, repeated=True)
  displayName = _messages.StringField(3)
  endInteraction = _messages.BooleanField(4)
  events = _messages.StringField(5, repeated=True)
  followupIntentInfo = _messages.MessageField('GoogleCloudDialogflowV2IntentFollowupIntentInfo', 6, repeated=True)
  inputContextNames = _messages.StringField(7, repeated=True)
  isFallback = _messages.BooleanField(8)
  liveAgentHandoff = _messages.BooleanField(9)
  messages = _messages.MessageField('GoogleCloudDialogflowV2IntentMessage', 10, repeated=True)
  mlDisabled = _messages.BooleanField(11)
  name = _messages.StringField(12)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 13, repeated=True)
  parameters = _messages.MessageField('GoogleCloudDialogflowV2IntentParameter', 14, repeated=True)
  parentFollowupIntentName = _messages.StringField(15)
  priority = _messages.IntegerField(16, variant=_messages.Variant.INT32)
  resetContexts = _messages.BooleanField(17)
  rootFollowupIntentName = _messages.StringField(18)
  trainingPhrases = _messages.MessageField('GoogleCloudDialogflowV2IntentTrainingPhrase', 19, repeated=True)
  webhookState = _messages.EnumField('WebhookStateValueValuesEnum', 20)


class GoogleCloudDialogflowV2IntentBatch(_messages.Message):
  r"""This message is a wrapper around a collection of intents.

  Fields:
    intents: A collection of intents.
  """

  intents = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1, repeated=True)


class GoogleCloudDialogflowV2IntentFollowupIntentInfo(_messages.Message):
  r"""Represents a single followup intent in the chain.

  Fields:
    followupIntentName: The unique identifier of the followup intent. Format:
      `projects//agent/intents/`.
    parentFollowupIntentName: The unique identifier of the followup intent's
      parent. Format: `projects//agent/intents/`.
  """

  followupIntentName = _messages.StringField(1)
  parentFollowupIntentName = _messages.StringField(2)


class GoogleCloudDialogflowV2IntentMessage(_messages.Message):
  r"""A rich response message. Corresponds to the intent `Response` field in
  the Dialogflow console. For more information, see [Rich response
  messages](https://cloud.google.com/dialogflow/docs/intents-rich-messages).

  Enums:
    PlatformValueValuesEnum: Optional. The platform that this message is
      intended for.

  Messages:
    PayloadValue: A custom platform-specific response.

  Fields:
    basicCard: The basic card response for Actions on Google.
    browseCarouselCard: Browse carousel card for Actions on Google.
    card: The card response.
    carouselSelect: The carousel card response for Actions on Google.
    image: The image response.
    linkOutSuggestion: The link out suggestion chip for Actions on Google.
    listSelect: The list card response for Actions on Google.
    mediaContent: The media content card for Actions on Google.
    payload: A custom platform-specific response.
    platform: Optional. The platform that this message is intended for.
    quickReplies: The quick replies response.
    simpleResponses: The voice and text-only responses for Actions on Google.
    suggestions: The suggestion chips for Actions on Google.
    tableCard: Table card for Actions on Google.
    text: The text response.
  """

  class PlatformValueValuesEnum(_messages.Enum):
    r"""Optional. The platform that this message is intended for.

    Values:
      PLATFORM_UNSPECIFIED: Default platform.
      FACEBOOK: Facebook.
      SLACK: Slack.
      TELEGRAM: Telegram.
      KIK: Kik.
      SKYPE: Skype.
      LINE: Line.
      VIBER: Viber.
      ACTIONS_ON_GOOGLE: Google Assistant See [Dialogflow webhook format](http
        s://developers.google.com/assistant/actions/build/json/dialogflow-
        webhook-json)
      GOOGLE_HANGOUTS: Google Hangouts.
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8
    GOOGLE_HANGOUTS = 9

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""A custom platform-specific response.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  basicCard = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageBasicCard', 1)
  browseCarouselCard = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard', 2)
  card = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageCard', 3)
  carouselSelect = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageCarouselSelect', 4)
  image = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 5)
  linkOutSuggestion = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion', 6)
  listSelect = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageListSelect', 7)
  mediaContent = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageMediaContent', 8)
  payload = _messages.MessageField('PayloadValue', 9)
  platform = _messages.EnumField('PlatformValueValuesEnum', 10)
  quickReplies = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageQuickReplies', 11)
  simpleResponses = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSimpleResponses', 12)
  suggestions = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSuggestions', 13)
  tableCard = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageTableCard', 14)
  text = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageText', 15)


class GoogleCloudDialogflowV2IntentMessageBasicCard(_messages.Message):
  r"""The basic card message. Useful for displaying information.

  Fields:
    buttons: Optional. The collection of card buttons.
    formattedText: Required, unless image is present. The body text of the
      card.
    image: Optional. The image for the card.
    subtitle: Optional. The subtitle of the card.
    title: Optional. The title of the card.
  """

  buttons = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageBasicCardButton', 1, repeated=True)
  formattedText = _messages.StringField(2)
  image = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 3)
  subtitle = _messages.StringField(4)
  title = _messages.StringField(5)


class GoogleCloudDialogflowV2IntentMessageBasicCardButton(_messages.Message):
  r"""The button object that appears at the bottom of a card.

  Fields:
    openUriAction: Required. Action to take when a user taps on the button.
    title: Required. The title of the button.
  """

  openUriAction = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction', 1)
  title = _messages.StringField(2)


class GoogleCloudDialogflowV2IntentMessageBasicCardButtonOpenUriAction(_messages.Message):
  r"""Opens the given URI.

  Fields:
    uri: Required. The HTTP or HTTPS scheme URI.
  """

  uri = _messages.StringField(1)


class GoogleCloudDialogflowV2IntentMessageBrowseCarouselCard(_messages.Message):
  r"""Browse Carousel Card for Actions on Google.
  https://developers.google.com/actions/assistant/responses#browsing_carousel

  Enums:
    ImageDisplayOptionsValueValuesEnum: Optional. Settings for displaying the
      image. Applies to every image in items.

  Fields:
    imageDisplayOptions: Optional. Settings for displaying the image. Applies
      to every image in items.
    items: Required. List of items in the Browse Carousel Card. Minimum of two
      items, maximum of ten.
  """

  class ImageDisplayOptionsValueValuesEnum(_messages.Enum):
    r"""Optional. Settings for displaying the image. Applies to every image in
    items.

    Values:
      IMAGE_DISPLAY_OPTIONS_UNSPECIFIED: Fill the gaps between the image and
        the image container with gray bars.
      GRAY: Fill the gaps between the image and the image container with gray
        bars.
      WHITE: Fill the gaps between the image and the image container with
        white bars.
      CROPPED: Image is scaled such that the image width and height match or
        exceed the container dimensions. This may crop the top and bottom of
        the image if the scaled image height is greater than the container
        height, or crop the left and right of the image if the scaled image
        width is greater than the container width. This is similar to "Zoom
        Mode" on a widescreen TV when playing a 4:3 video.
      BLURRED_BACKGROUND: Pad the gaps between image and image frame with a
        blurred copy of the same image.
    """
    IMAGE_DISPLAY_OPTIONS_UNSPECIFIED = 0
    GRAY = 1
    WHITE = 2
    CROPPED = 3
    BLURRED_BACKGROUND = 4

  imageDisplayOptions = _messages.EnumField('ImageDisplayOptionsValueValuesEnum', 1)
  items = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem', 2, repeated=True)


class GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItem(_messages.Message):
  r"""Browsing carousel tile

  Fields:
    description: Optional. Description of the carousel item. Maximum of four
      lines of text.
    footer: Optional. Text that appears at the bottom of the Browse Carousel
      Card. Maximum of one line of text.
    image: Optional. Hero image for the carousel item.
    openUriAction: Required. Action to present to the user.
    title: Required. Title of the carousel item. Maximum of two lines of text.
  """

  description = _messages.StringField(1)
  footer = _messages.StringField(2)
  image = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 3)
  openUriAction = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction', 4)
  title = _messages.StringField(5)


class GoogleCloudDialogflowV2IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction(_messages.Message):
  r"""Actions on Google action to open a given url.

  Enums:
    UrlTypeHintValueValuesEnum: Optional. Specifies the type of viewer that is
      used when opening the URL. Defaults to opening via web browser.

  Fields:
    url: Required. URL
    urlTypeHint: Optional. Specifies the type of viewer that is used when
      opening the URL. Defaults to opening via web browser.
  """

  class UrlTypeHintValueValuesEnum(_messages.Enum):
    r"""Optional. Specifies the type of viewer that is used when opening the
    URL. Defaults to opening via web browser.

    Values:
      URL_TYPE_HINT_UNSPECIFIED: Unspecified
      AMP_ACTION: Url would be an amp action
      AMP_CONTENT: URL that points directly to AMP content, or to a canonical
        URL which refers to AMP content via .
    """
    URL_TYPE_HINT_UNSPECIFIED = 0
    AMP_ACTION = 1
    AMP_CONTENT = 2

  url = _messages.StringField(1)
  urlTypeHint = _messages.EnumField('UrlTypeHintValueValuesEnum', 2)


class GoogleCloudDialogflowV2IntentMessageCard(_messages.Message):
  r"""The card response message.

  Fields:
    buttons: Optional. The collection of card buttons.
    imageUri: Optional. The public URI to an image file for the card.
    subtitle: Optional. The subtitle of the card.
    title: Optional. The title of the card.
  """

  buttons = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageCardButton', 1, repeated=True)
  imageUri = _messages.StringField(2)
  subtitle = _messages.StringField(3)
  title = _messages.StringField(4)


class GoogleCloudDialogflowV2IntentMessageCardButton(_messages.Message):
  r"""Contains information about a button.

  Fields:
    postback: Optional. The text to send back to the Dialogflow API or a URI
      to open.
    text: Optional. The text to show on the button.
  """

  postback = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowV2IntentMessageCarouselSelect(_messages.Message):
  r"""The card for presenting a carousel of options to select from.

  Fields:
    items: Required. Carousel items.
  """

  items = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageCarouselSelectItem', 1, repeated=True)


class GoogleCloudDialogflowV2IntentMessageCarouselSelectItem(_messages.Message):
  r"""An item in the carousel.

  Fields:
    description: Optional. The body text of the card.
    image: Optional. The image to display.
    info: Required. Additional info about the option item.
    title: Required. Title of the carousel item.
  """

  description = _messages.StringField(1)
  image = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 2)
  info = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSelectItemInfo', 3)
  title = _messages.StringField(4)


class GoogleCloudDialogflowV2IntentMessageColumnProperties(_messages.Message):
  r"""Column properties for TableCard.

  Enums:
    HorizontalAlignmentValueValuesEnum: Optional. Defines text alignment for
      all cells in this column.

  Fields:
    header: Required. Column heading.
    horizontalAlignment: Optional. Defines text alignment for all cells in
      this column.
  """

  class HorizontalAlignmentValueValuesEnum(_messages.Enum):
    r"""Optional. Defines text alignment for all cells in this column.

    Values:
      HORIZONTAL_ALIGNMENT_UNSPECIFIED: Text is aligned to the leading edge of
        the column.
      LEADING: Text is aligned to the leading edge of the column.
      CENTER: Text is centered in the column.
      TRAILING: Text is aligned to the trailing edge of the column.
    """
    HORIZONTAL_ALIGNMENT_UNSPECIFIED = 0
    LEADING = 1
    CENTER = 2
    TRAILING = 3

  header = _messages.StringField(1)
  horizontalAlignment = _messages.EnumField('HorizontalAlignmentValueValuesEnum', 2)


class GoogleCloudDialogflowV2IntentMessageImage(_messages.Message):
  r"""The image response message.

  Fields:
    accessibilityText: Optional. A text description of the image to be used
      for accessibility, e.g., screen readers.
    imageUri: Optional. The public URI to an image file.
  """

  accessibilityText = _messages.StringField(1)
  imageUri = _messages.StringField(2)


class GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion(_messages.Message):
  r"""The suggestion chip message that allows the user to jump out to the app
  or website associated with this agent.

  Fields:
    destinationName: Required. The name of the app or site this chip is
      linking to.
    uri: Required. The URI of the app or site to open when the user taps the
      suggestion chip.
  """

  destinationName = _messages.StringField(1)
  uri = _messages.StringField(2)


class GoogleCloudDialogflowV2IntentMessageListSelect(_messages.Message):
  r"""The card for presenting a list of options to select from.

  Fields:
    items: Required. List items.
    subtitle: Optional. Subtitle of the list.
    title: Optional. The overall title of the list.
  """

  items = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageListSelectItem', 1, repeated=True)
  subtitle = _messages.StringField(2)
  title = _messages.StringField(3)


class GoogleCloudDialogflowV2IntentMessageListSelectItem(_messages.Message):
  r"""An item in the list.

  Fields:
    description: Optional. The main text describing the item.
    image: Optional. The image to display.
    info: Required. Additional information about this option.
    title: Required. The title of the list item.
  """

  description = _messages.StringField(1)
  image = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 2)
  info = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSelectItemInfo', 3)
  title = _messages.StringField(4)


class GoogleCloudDialogflowV2IntentMessageMediaContent(_messages.Message):
  r"""The media content card for Actions on Google.

  Enums:
    MediaTypeValueValuesEnum: Optional. What type of media is the content (ie
      "audio").

  Fields:
    mediaObjects: Required. List of media objects.
    mediaType: Optional. What type of media is the content (ie "audio").
  """

  class MediaTypeValueValuesEnum(_messages.Enum):
    r"""Optional. What type of media is the content (ie "audio").

    Values:
      RESPONSE_MEDIA_TYPE_UNSPECIFIED: Unspecified.
      AUDIO: Response media type is audio.
    """
    RESPONSE_MEDIA_TYPE_UNSPECIFIED = 0
    AUDIO = 1

  mediaObjects = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject', 1, repeated=True)
  mediaType = _messages.EnumField('MediaTypeValueValuesEnum', 2)


class GoogleCloudDialogflowV2IntentMessageMediaContentResponseMediaObject(_messages.Message):
  r"""Response media object for media content card.

  Fields:
    contentUrl: Required. Url where the media is stored.
    description: Optional. Description of media card.
    icon: Optional. Icon to display above media content.
    largeImage: Optional. Image to display above media content.
    name: Required. Name of media card.
  """

  contentUrl = _messages.StringField(1)
  description = _messages.StringField(2)
  icon = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 3)
  largeImage = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 4)
  name = _messages.StringField(5)


class GoogleCloudDialogflowV2IntentMessageQuickReplies(_messages.Message):
  r"""The quick replies response message.

  Fields:
    quickReplies: Optional. The collection of quick replies.
    title: Optional. The title of the collection of quick replies.
  """

  quickReplies = _messages.StringField(1, repeated=True)
  title = _messages.StringField(2)


class GoogleCloudDialogflowV2IntentMessageSelectItemInfo(_messages.Message):
  r"""Additional info about the select item for when it is triggered in a
  dialog.

  Fields:
    key: Required. A unique key that will be sent back to the agent if this
      response is given.
    synonyms: Optional. A list of synonyms that can also be used to trigger
      this item in dialog.
  """

  key = _messages.StringField(1)
  synonyms = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowV2IntentMessageSimpleResponse(_messages.Message):
  r"""The simple response message containing speech or text.

  Fields:
    displayText: Optional. The text to display.
    ssml: One of text_to_speech or ssml must be provided. Structured spoken
      response to the user in the SSML format. Mutually exclusive with
      text_to_speech.
    textToSpeech: One of text_to_speech or ssml must be provided. The plain
      text of the speech output. Mutually exclusive with ssml.
  """

  displayText = _messages.StringField(1)
  ssml = _messages.StringField(2)
  textToSpeech = _messages.StringField(3)


class GoogleCloudDialogflowV2IntentMessageSimpleResponses(_messages.Message):
  r"""The collection of simple response candidates. This message in
  `QueryResult.fulfillment_messages` and
  `WebhookResponse.fulfillment_messages` should contain only one
  `SimpleResponse`.

  Fields:
    simpleResponses: Required. The list of simple responses.
  """

  simpleResponses = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSimpleResponse', 1, repeated=True)


class GoogleCloudDialogflowV2IntentMessageSuggestion(_messages.Message):
  r"""The suggestion chip message that the user can tap to quickly post a
  reply to the conversation.

  Fields:
    title: Required. The text shown the in the suggestion chip.
  """

  title = _messages.StringField(1)


class GoogleCloudDialogflowV2IntentMessageSuggestions(_messages.Message):
  r"""The collection of suggestions.

  Fields:
    suggestions: Required. The list of suggested replies.
  """

  suggestions = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSuggestion', 1, repeated=True)


class GoogleCloudDialogflowV2IntentMessageTableCard(_messages.Message):
  r"""Table card for Actions on Google.

  Fields:
    buttons: Optional. List of buttons for the card.
    columnProperties: Optional. Display properties for the columns in this
      table.
    image: Optional. Image which should be displayed on the card.
    rows: Optional. Rows in this table of data.
    subtitle: Optional. Subtitle to the title.
    title: Required. Title of the card.
  """

  buttons = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageBasicCardButton', 1, repeated=True)
  columnProperties = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageColumnProperties', 2, repeated=True)
  image = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 3)
  rows = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageTableCardRow', 4, repeated=True)
  subtitle = _messages.StringField(5)
  title = _messages.StringField(6)


class GoogleCloudDialogflowV2IntentMessageTableCardCell(_messages.Message):
  r"""Cell of TableCardRow.

  Fields:
    text: Required. Text in this cell.
  """

  text = _messages.StringField(1)


class GoogleCloudDialogflowV2IntentMessageTableCardRow(_messages.Message):
  r"""Row of TableCard.

  Fields:
    cells: Optional. List of cells that make up this row.
    dividerAfter: Optional. Whether to add a visual divider after this row.
  """

  cells = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageTableCardCell', 1, repeated=True)
  dividerAfter = _messages.BooleanField(2)


class GoogleCloudDialogflowV2IntentMessageText(_messages.Message):
  r"""The text response message.

  Fields:
    text: Optional. The collection of the agent's responses.
  """

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


class GoogleCloudDialogflowV2IntentParameter(_messages.Message):
  r"""Represents intent parameters.

  Fields:
    defaultValue: Optional. The default value to use when the `value` yields
      an empty result. Default values can be extracted from contexts by using
      the following syntax: `#context_name.parameter_name`.
    displayName: Required. The name of the parameter.
    entityTypeDisplayName: Optional. The name of the entity type, prefixed
      with `@`, that describes values of the parameter. If the parameter is
      required, this must be provided.
    isList: Optional. Indicates whether the parameter represents a list of
      values.
    mandatory: Optional. Indicates whether the parameter is required. That is,
      whether the intent cannot be completed without collecting the parameter
      value.
    name: The unique identifier of this parameter.
    prompts: Optional. The collection of prompts that the agent can present to
      the user in order to collect a value for the parameter.
    value: Optional. The definition of the parameter value. It can be: - a
      constant string, - a parameter value defined as `$parameter_name`, - an
      original parameter value defined as `$parameter_name.original`, - a
      parameter value from some context defined as
      `#context_name.parameter_name`.
  """

  defaultValue = _messages.StringField(1)
  displayName = _messages.StringField(2)
  entityTypeDisplayName = _messages.StringField(3)
  isList = _messages.BooleanField(4)
  mandatory = _messages.BooleanField(5)
  name = _messages.StringField(6)
  prompts = _messages.StringField(7, repeated=True)
  value = _messages.StringField(8)


class GoogleCloudDialogflowV2IntentSuggestion(_messages.Message):
  r"""Represents an intent suggestion.

  Fields:
    description: Human readable description for better understanding an intent
      like its scope, content, result etc. Maximum character limit: 140
      characters.
    displayName: The display name of the intent.
    intentV2: The unique identifier of this intent. Format:
      `projects//locations//agent/intents/`.
  """

  description = _messages.StringField(1)
  displayName = _messages.StringField(2)
  intentV2 = _messages.StringField(3)


class GoogleCloudDialogflowV2IntentTrainingPhrase(_messages.Message):
  r"""Represents an example that the agent is trained on.

  Enums:
    TypeValueValuesEnum: Required. The type of the training phrase.

  Fields:
    name: Output only. The unique identifier of this training phrase.
    parts: Required. The ordered list of training phrase parts. The parts are
      concatenated in order to form the training phrase. Note: The API does
      not automatically annotate training phrases like the Dialogflow Console
      does. Note: Do not forget to include whitespace at part boundaries, so
      the training phrase is well formatted when the parts are concatenated.
      If the training phrase does not need to be annotated with parameters,
      you just need a single part with only the Part.text field set. If you
      want to annotate the training phrase, you must create multiple parts,
      where the fields of each part are populated in one of two ways: -
      `Part.text` is set to a part of the phrase that has no parameters. -
      `Part.text` is set to a part of the phrase that you want to annotate,
      and the `entity_type`, `alias`, and `user_defined` fields are all set.
    timesAddedCount: Optional. Indicates how many times this example was added
      to the intent. Each time a developer adds an existing sample by editing
      an intent or training, this counter is increased.
    type: Required. The type of the training phrase.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the training phrase.

    Values:
      TYPE_UNSPECIFIED: Not specified. This value should never be used.
      EXAMPLE: Examples do not contain @-prefixed entity type names, but
        example parts can be annotated with entity types.
      TEMPLATE: Templates are not annotated with entity types, but they can
        contain @-prefixed entity type names as substrings. Template mode has
        been deprecated. Example mode is the only supported way to create new
        training phrases. If you have existing training phrases that you've
        created in template mode, those will continue to work.
    """
    TYPE_UNSPECIFIED = 0
    EXAMPLE = 1
    TEMPLATE = 2

  name = _messages.StringField(1)
  parts = _messages.MessageField('GoogleCloudDialogflowV2IntentTrainingPhrasePart', 2, repeated=True)
  timesAddedCount = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  type = _messages.EnumField('TypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2IntentTrainingPhrasePart(_messages.Message):
  r"""Represents a part of a training phrase.

  Fields:
    alias: Optional. The parameter name for the value extracted from the
      annotated part of the example. This field is required for annotated
      parts of the training phrase.
    entityType: Optional. The entity type name prefixed with `@`. This field
      is required for annotated parts of the training phrase.
    text: Required. The text for this part.
    userDefined: Optional. Indicates whether the text was manually annotated.
      This field is set to true when the Dialogflow Console is used to
      manually annotate the part. When creating an annotated part with the
      API, you must set this to true.
  """

  alias = _messages.StringField(1)
  entityType = _messages.StringField(2)
  text = _messages.StringField(3)
  userDefined = _messages.BooleanField(4)


class GoogleCloudDialogflowV2KnowledgeAssistAnswer(_messages.Message):
  r"""Represents a Knowledge Assist answer.

  Fields:
    answerRecord: The name of the answer record. Format:
      `projects//locations//answer Records/`.
    suggestedQuery: The query suggested based on the context. Suggestion is
      made only if it is different from the previous suggestion.
    suggestedQueryAnswer: The answer generated for the suggested query.
      Whether or not an answer is generated depends on how confident we are
      about the generated query.
  """

  answerRecord = _messages.StringField(1)
  suggestedQuery = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery', 2)
  suggestedQueryAnswer = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer', 3)


class GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswer(_messages.Message):
  r"""Represents an answer from Knowledge. Currently supports FAQ and
  Generative answers.

  Fields:
    answerText: The piece of text from the `source` that answers this
      suggested query.
    faqSource: Populated if the prediction came from FAQ.
    generativeSource: Populated if the prediction was Generative.
  """

  answerText = _messages.StringField(1)
  faqSource = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource', 2)
  generativeSource = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource', 3)


class GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerFaqSource(_messages.Message):
  r"""Details about source of FAQ answer.

  Fields:
    question: The corresponding FAQ question.
  """

  question = _messages.StringField(1)


class GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource(_messages.Message):
  r"""Details about source of Generative answer.

  Fields:
    snippets: All snippets used for this Generative Prediction, with their
      source URI and data.
  """

  snippets = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet', 1, repeated=True)


class GoogleCloudDialogflowV2KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet(_messages.Message):
  r"""Snippet Source for a Generative Prediction.

  Messages:
    MetadataValue: Metadata of the document.

  Fields:
    metadata: Metadata of the document.
    text: Text taken from that URI.
    title: Title of the document.
    uri: URI the data is sourced from.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Metadata of the document.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)
  text = _messages.StringField(2)
  title = _messages.StringField(3)
  uri = _messages.StringField(4)


class GoogleCloudDialogflowV2KnowledgeAssistAnswerSuggestedQuery(_messages.Message):
  r"""Represents a suggested query.

  Fields:
    queryText: Suggested query text.
  """

  queryText = _messages.StringField(1)


class GoogleCloudDialogflowV2KnowledgeBase(_messages.Message):
  r"""A knowledge base represents a collection of knowledge documents that you
  provide to Dialogflow. Your knowledge documents contain information that may
  be useful during conversations with end-users. Some Dialogflow features use
  knowledge bases when looking for a response to an end-user input. For more
  information, see the [knowledge base
  guide](https://cloud.google.com/dialogflow/docs/how/knowledge-bases). Note:
  The `projects.agent.knowledgeBases` resource is deprecated; only use
  `projects.knowledgeBases`.

  Fields:
    displayName: Required. The display name of the knowledge base. The name
      must be 1024 bytes or less; otherwise, the creation request fails.
    languageCode: Language which represents the KnowledgeBase. When the
      KnowledgeBase is created/updated, expect this to be present for non en-
      us languages. When unspecified, the default language code en-us applies.
    name: The knowledge base resource name. The name must be empty when
      creating a knowledge base. Format:
      `projects//locations//knowledgeBases/`.
  """

  displayName = _messages.StringField(1)
  languageCode = _messages.StringField(2)
  name = _messages.StringField(3)


class GoogleCloudDialogflowV2KnowledgeOperationMetadata(_messages.Message):
  r"""Metadata in google::longrunning::Operation for Knowledge operations.

  Enums:
    StateValueValuesEnum: Output only. The current state of this operation.

  Fields:
    doneTime: The time when the operation finished.
    exportOperationMetadata: Metadata for the Export Data Operation such as
      the destination of export.
    knowledgeBase: The name of the knowledge base interacted with during the
      operation.
    state: Output only. The current state of this operation.
  """

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

    Values:
      STATE_UNSPECIFIED: State unspecified.
      PENDING: The operation has been created.
      RUNNING: The operation is currently running.
      DONE: The operation is done, either cancelled or completed.
    """
    STATE_UNSPECIFIED = 0
    PENDING = 1
    RUNNING = 2
    DONE = 3

  doneTime = _messages.StringField(1)
  exportOperationMetadata = _messages.MessageField('GoogleCloudDialogflowV2ExportOperationMetadata', 2)
  knowledgeBase = _messages.StringField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)


class GoogleCloudDialogflowV2ListAnswerRecordsResponse(_messages.Message):
  r"""Response message for AnswerRecords.ListAnswerRecords.

  Fields:
    answerRecords: The list of answer records.
    nextPageToken: A token to retrieve next page of results. Or empty if there
      are no more results. Pass this value in the
      ListAnswerRecordsRequest.page_token field in the subsequent call to
      `ListAnswerRecords` method to retrieve the next page of results.
  """

  answerRecords = _messages.MessageField('GoogleCloudDialogflowV2AnswerRecord', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListContextsResponse(_messages.Message):
  r"""The response message for Contexts.ListContexts.

  Fields:
    contexts: The list of contexts. There will be a maximum number of items
      returned based on the page_size field in the request.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  contexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListConversationDatasetsResponse(_messages.Message):
  r"""The response message for ConversationDatasets.ListConversationDatasets.

  Fields:
    conversationDatasets: The list of datasets to return.
    nextPageToken: The token to use to retrieve the next page of results, or
      empty if there are no more results in the list.
  """

  conversationDatasets = _messages.MessageField('GoogleCloudDialogflowV2ConversationDataset', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListConversationModelEvaluationsResponse(_messages.Message):
  r"""The response message for
  ConversationModels.ListConversationModelEvaluations

  Fields:
    conversationModelEvaluations: The list of evaluations to return.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  conversationModelEvaluations = _messages.MessageField('GoogleCloudDialogflowV2ConversationModelEvaluation', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListConversationModelsResponse(_messages.Message):
  r"""The response message for ConversationModels.ListConversationModels

  Fields:
    conversationModels: The list of models to return.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  conversationModels = _messages.MessageField('GoogleCloudDialogflowV2ConversationModel', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListConversationProfilesResponse(_messages.Message):
  r"""The response message for ConversationProfiles.ListConversationProfiles.

  Fields:
    conversationProfiles: The list of project conversation profiles. There is
      a maximum number of items returned based on the page_size field in the
      request.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  conversationProfiles = _messages.MessageField('GoogleCloudDialogflowV2ConversationProfile', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListConversationsResponse(_messages.Message):
  r"""The response message for Conversations.ListConversations.

  Fields:
    conversations: The list of conversations. There will be a maximum number
      of items returned based on the page_size field in the request.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  conversations = _messages.MessageField('GoogleCloudDialogflowV2Conversation', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListDocumentsResponse(_messages.Message):
  r"""Response message for Documents.ListDocuments.

  Fields:
    documents: The list of documents.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  documents = _messages.MessageField('GoogleCloudDialogflowV2Document', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListEntityTypesResponse(_messages.Message):
  r"""The response message for EntityTypes.ListEntityTypes.

  Fields:
    entityTypes: The list of agent entity types. There will be a maximum
      number of items returned based on the page_size field in the request.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  entityTypes = _messages.MessageField('GoogleCloudDialogflowV2EntityType', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListEnvironmentsResponse(_messages.Message):
  r"""The response message for Environments.ListEnvironments.

  Fields:
    environments: The list of agent environments. There will be a maximum
      number of items returned based on the page_size field in the request.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  environments = _messages.MessageField('GoogleCloudDialogflowV2Environment', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListGeneratorEvaluationsResponse(_messages.Message):
  r"""Response of ListGeneratorEvaluations.

  Fields:
    generatorEvaluations: The list of evaluations to return.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  generatorEvaluations = _messages.MessageField('GoogleCloudDialogflowV2GeneratorEvaluation', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListGeneratorsResponse(_messages.Message):
  r"""Response of ListGenerators.

  Fields:
    generators: List of generators retrieved.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  generators = _messages.MessageField('GoogleCloudDialogflowV2Generator', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListIntentsResponse(_messages.Message):
  r"""The response message for Intents.ListIntents.

  Fields:
    intents: The list of agent intents. There will be a maximum number of
      items returned based on the page_size field in the request.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  intents = _messages.MessageField('GoogleCloudDialogflowV2Intent', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListKnowledgeBasesResponse(_messages.Message):
  r"""Response message for KnowledgeBases.ListKnowledgeBases.

  Fields:
    knowledgeBases: The list of knowledge bases.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  knowledgeBases = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeBase', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListMessagesResponse(_messages.Message):
  r"""The response message for Conversations.ListMessages.

  Fields:
    messages: The list of messages. There will be a maximum number of items
      returned based on the page_size field in the request. `messages` is
      sorted by `create_time` in descending order.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  messages = _messages.MessageField('GoogleCloudDialogflowV2Message', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2ListParticipantsResponse(_messages.Message):
  r"""The response message for Participants.ListParticipants.

  Fields:
    nextPageToken: Token to retrieve the next page of results or empty if
      there are no more results in the list.
    participants: The list of participants. There is a maximum number of items
      returned based on the page_size field in the request.
  """

  nextPageToken = _messages.StringField(1)
  participants = _messages.MessageField('GoogleCloudDialogflowV2Participant', 2, repeated=True)


class GoogleCloudDialogflowV2ListSessionEntityTypesResponse(_messages.Message):
  r"""The response message for SessionEntityTypes.ListSessionEntityTypes.

  Fields:
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
    sessionEntityTypes: The list of session entity types. There will be a
      maximum number of items returned based on the page_size field in the
      request.
  """

  nextPageToken = _messages.StringField(1)
  sessionEntityTypes = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 2, repeated=True)


class GoogleCloudDialogflowV2ListSipTrunksResponse(_messages.Message):
  r"""The response message for SipTrunks.ListSipTrunks.

  Fields:
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
    sipTrunks: The list of SIP trunks.
  """

  nextPageToken = _messages.StringField(1)
  sipTrunks = _messages.MessageField('GoogleCloudDialogflowV2SipTrunk', 2, repeated=True)


class GoogleCloudDialogflowV2ListToolsResponse(_messages.Message):
  r"""Response of ListTools.

  Fields:
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
    tools: List of tools retrieved.
  """

  nextPageToken = _messages.StringField(1)
  tools = _messages.MessageField('GoogleCloudDialogflowV2Tool', 2, repeated=True)


class GoogleCloudDialogflowV2ListVersionsResponse(_messages.Message):
  r"""The response message for Versions.ListVersions.

  Fields:
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
    versions: The list of agent versions. There will be a maximum number of
      items returned based on the page_size field in the request.
  """

  nextPageToken = _messages.StringField(1)
  versions = _messages.MessageField('GoogleCloudDialogflowV2Version', 2, repeated=True)


class GoogleCloudDialogflowV2LoggingConfig(_messages.Message):
  r"""Defines logging behavior for conversation lifecycle events.

  Fields:
    enableStackdriverLogging: Whether to log conversation events like
      CONVERSATION_STARTED to Stackdriver in the conversation project as JSON
      format ConversationEvent protos.
  """

  enableStackdriverLogging = _messages.BooleanField(1)


class GoogleCloudDialogflowV2Message(_messages.Message):
  r"""Represents a message posted into a conversation.

  Enums:
    ParticipantRoleValueValuesEnum: Output only. The role of the participant.

  Fields:
    content: Required. The message content.
    createTime: Output only. The time when the message was created in Contact
      Center AI.
    languageCode: Optional. The message language. This should be a
      [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.
      Example: "en-US".
    messageAnnotation: Output only. The annotation for the message.
    name: Optional. The unique identifier of the message. Format:
      `projects//locations//conversations//messages/`.
    participant: Output only. The participant that sends this message.
    participantRole: Output only. The role of the participant.
    sendTime: Optional. The time when the message was sent. For voice
      messages, this is the time when an utterance started.
    sentimentAnalysis: Output only. The sentiment analysis result for the
      message.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Output only. The role of the participant.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  content = _messages.StringField(1)
  createTime = _messages.StringField(2)
  languageCode = _messages.StringField(3)
  messageAnnotation = _messages.MessageField('GoogleCloudDialogflowV2MessageAnnotation', 4)
  name = _messages.StringField(5)
  participant = _messages.StringField(6)
  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 7)
  sendTime = _messages.StringField(8)
  sentimentAnalysis = _messages.MessageField('GoogleCloudDialogflowV2SentimentAnalysisResult', 9)


class GoogleCloudDialogflowV2MessageAnnotation(_messages.Message):
  r"""Represents the result of annotation for the message.

  Fields:
    containEntities: Indicates whether the text message contains entities.
    parts: The collection of annotated message parts ordered by their position
      in the message. You can recover the annotated message by concatenating
      [AnnotatedMessagePart.text].
  """

  containEntities = _messages.BooleanField(1)
  parts = _messages.MessageField('GoogleCloudDialogflowV2AnnotatedMessagePart', 2, repeated=True)


class GoogleCloudDialogflowV2MessageEntry(_messages.Message):
  r"""Represents a message entry of a conversation.

  Enums:
    RoleValueValuesEnum: Optional. Participant role of the message.

  Fields:
    createTime: Optional. Create time of the message entry.
    languageCode: Optional. The language of the text. See [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes.
    role: Optional. Participant role of the message.
    text: Optional. Transcript content of the message.
  """

  class RoleValueValuesEnum(_messages.Enum):
    r"""Optional. Participant role of the message.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  createTime = _messages.StringField(1)
  languageCode = _messages.StringField(2)
  role = _messages.EnumField('RoleValueValuesEnum', 3)
  text = _messages.StringField(4)


class GoogleCloudDialogflowV2NotificationConfig(_messages.Message):
  r"""Defines notification behavior.

  Enums:
    MessageFormatValueValuesEnum: Format of message.

  Fields:
    messageFormat: Format of message.
    topic: Name of the Pub/Sub topic to publish conversation events like
      CONVERSATION_STARTED as serialized ConversationEvent protos. For
      telephony integration to receive notification, make sure either this
      topic is in the same project as the conversation or you grant
      `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` the `Dialogflow
      Service Agent` role in the topic project. For chat integration to
      receive notification, make sure API caller has been granted the
      `Dialogflow Service Agent` role for the topic. Format:
      `projects//locations//topics/`.
  """

  class MessageFormatValueValuesEnum(_messages.Enum):
    r"""Format of message.

    Values:
      MESSAGE_FORMAT_UNSPECIFIED: If it is unspecified, PROTO will be used.
      PROTO: Pub/Sub message will be serialized proto.
      JSON: Pub/Sub message will be json.
    """
    MESSAGE_FORMAT_UNSPECIFIED = 0
    PROTO = 1
    JSON = 2

  messageFormat = _messages.EnumField('MessageFormatValueValuesEnum', 1)
  topic = _messages.StringField(2)


class GoogleCloudDialogflowV2OriginalDetectIntentRequest(_messages.Message):
  r"""Represents the contents of the original request that was passed to the
  `[Streaming]DetectIntent` call.

  Messages:
    PayloadValue: Optional. This field is set to the value of the
      `QueryParameters.payload` field passed in the request. Some integrations
      that query a Dialogflow agent may provide additional information in the
      payload. In particular, for the Dialogflow Phone Gateway integration,
      this field has the form: { "telephony": { "caller_id": "+18558363987" }
      } Note: The caller ID field (`caller_id`) will be redacted for Trial
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition
      agents.

  Fields:
    payload: Optional. This field is set to the value of the
      `QueryParameters.payload` field passed in the request. Some integrations
      that query a Dialogflow agent may provide additional information in the
      payload. In particular, for the Dialogflow Phone Gateway integration,
      this field has the form: { "telephony": { "caller_id": "+18558363987" }
      } Note: The caller ID field (`caller_id`) will be redacted for Trial
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition
      agents.
    source: The source of this request, e.g., `google`, `facebook`, `slack`.
      It is set by Dialogflow-owned servers.
    version: Optional. The version of the protocol used for this request. This
      field is AoG-specific.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Optional. This field is set to the value of the
    `QueryParameters.payload` field passed in the request. Some integrations
    that query a Dialogflow agent may provide additional information in the
    payload. In particular, for the Dialogflow Phone Gateway integration, this
    field has the form: { "telephony": { "caller_id": "+18558363987" } } Note:
    The caller ID field (`caller_id`) will be redacted for Trial Edition
    agents and populated with the caller ID in [E.164
    format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition
    agents.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  payload = _messages.MessageField('PayloadValue', 1)
  source = _messages.StringField(2)
  version = _messages.StringField(3)


class GoogleCloudDialogflowV2OutputAudio(_messages.Message):
  r"""Represents the natural language speech audio to be played to the end
  user.

  Fields:
    audio: The natural language speech audio.
    config: Instructs the speech synthesizer how to generate the speech audio.
  """

  audio = _messages.BytesField(1)
  config = _messages.MessageField('GoogleCloudDialogflowV2OutputAudioConfig', 2)


class GoogleCloudDialogflowV2OutputAudioConfig(_messages.Message):
  r"""Instructs the speech synthesizer on how to generate the output audio
  content. If this audio config is supplied in a request, it overrides all
  existing text-to-speech settings applied to the agent.

  Enums:
    AudioEncodingValueValuesEnum: Required. Audio encoding of the synthesized
      audio content.

  Fields:
    audioEncoding: Required. Audio encoding of the synthesized audio content.
    sampleRateHertz: The synthesis sample rate (in hertz) for this audio. If
      not provided, then the synthesizer will use the default sample rate
      based on the audio encoding. If this is different from the voice's
      natural sample rate, then the synthesizer will honor this request by
      converting to the desired sample rate (which might result in worse audio
      quality).
    synthesizeSpeechConfig: Configuration of how speech should be synthesized.
  """

  class AudioEncodingValueValuesEnum(_messages.Enum):
    r"""Required. Audio encoding of the synthesized audio content.

    Values:
      OUTPUT_AUDIO_ENCODING_UNSPECIFIED: Not specified.
      OUTPUT_AUDIO_ENCODING_LINEAR_16: Uncompressed 16-bit signed little-
        endian samples (Linear PCM). Audio content returned as LINEAR16 also
        contains a WAV header.
      OUTPUT_AUDIO_ENCODING_MP3: MP3 audio at 32kbps.
      OUTPUT_AUDIO_ENCODING_MP3_64_KBPS: MP3 audio at 64kbps.
      OUTPUT_AUDIO_ENCODING_OGG_OPUS: Opus encoded audio wrapped in an ogg
        container. The result will be a file which can be played natively on
        Android, and in browsers (at least Chrome and Firefox). The quality of
        the encoding is considerably higher than MP3 while using approximately
        the same bitrate.
      OUTPUT_AUDIO_ENCODING_MULAW: 8-bit samples that compand 14-bit audio
        samples using G.711 PCMU/mu-law.
      OUTPUT_AUDIO_ENCODING_ALAW: 8-bit samples that compand 13-bit audio
        samples using G.711 PCMU/a-law.
    """
    OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0
    OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1
    OUTPUT_AUDIO_ENCODING_MP3 = 2
    OUTPUT_AUDIO_ENCODING_MP3_64_KBPS = 3
    OUTPUT_AUDIO_ENCODING_OGG_OPUS = 4
    OUTPUT_AUDIO_ENCODING_MULAW = 5
    OUTPUT_AUDIO_ENCODING_ALAW = 6

  audioEncoding = _messages.EnumField('AudioEncodingValueValuesEnum', 1)
  sampleRateHertz = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  synthesizeSpeechConfig = _messages.MessageField('GoogleCloudDialogflowV2SynthesizeSpeechConfig', 3)


class GoogleCloudDialogflowV2Participant(_messages.Message):
  r"""Represents a conversation participant (human agent, virtual agent, end-
  user).

  Enums:
    AgentDesktopSourceValueValuesEnum: Optional. For tracking the utilization
      of prebuilt Agent Assist integration modules. This field is only inscope
      for Integration type that include UI Modules, Backend Modules, and Agent
      Desktop connector, it is out of scope for CCaaS and Direct Integration.
      For each human agent, prebuilt UI Modules needs to trigger the
      UpdateParticipant API to update this field. Both
      CreateParticipantRequest and UpdateParticipantRequest will be supported.
    RoleValueValuesEnum: Immutable. The role this participant plays in the
      conversation. This field must be set during participant creation and is
      then immutable.

  Messages:
    DocumentsMetadataFiltersValue: Optional. Key-value filters on the metadata
      of documents returned by article suggestion. If specified, article
      suggestion only returns suggested documents that match all filters in
      their Document.metadata. Multiple values for a metadata key should be
      concatenated by comma. For example, filters to match all documents that
      have 'US' or 'CA' in their market metadata values and 'agent' in their
      user metadata values will be ``` documents_metadata_filters { key:
      "market" value: "US,CA" } documents_metadata_filters { key: "user"
      value: "agent" } ```

  Fields:
    agentDesktopSource: Optional. For tracking the utilization of prebuilt
      Agent Assist integration modules. This field is only inscope for
      Integration type that include UI Modules, Backend Modules, and Agent
      Desktop connector, it is out of scope for CCaaS and Direct Integration.
      For each human agent, prebuilt UI Modules needs to trigger the
      UpdateParticipant API to update this field. Both
      CreateParticipantRequest and UpdateParticipantRequest will be supported.
    documentsMetadataFilters: Optional. Key-value filters on the metadata of
      documents returned by article suggestion. If specified, article
      suggestion only returns suggested documents that match all filters in
      their Document.metadata. Multiple values for a metadata key should be
      concatenated by comma. For example, filters to match all documents that
      have 'US' or 'CA' in their market metadata values and 'agent' in their
      user metadata values will be ``` documents_metadata_filters { key:
      "market" value: "US,CA" } documents_metadata_filters { key: "user"
      value: "agent" } ```
    name: Optional. The unique identifier of this participant. Format:
      `projects//locations//conversations//participants/`.
    obfuscatedExternalUserId: Optional. Obfuscated user id that should be
      associated with the created participant. You can specify a user id as
      follows: 1. If you set this field in CreateParticipantRequest or
      UpdateParticipantRequest, Dialogflow adds the obfuscated user id with
      the participant. 2. If you set this field in AnalyzeContent or
      StreamingAnalyzeContent, Dialogflow will update
      Participant.obfuscated_external_user_id. Dialogflow returns an error if
      you try to add a user id for a non-END_USER participant. Dialogflow uses
      this user id for billing and measurement purposes. For example,
      Dialogflow determines whether a user in one conversation returned in a
      later conversation. Note: * Please never pass raw user ids to
      Dialogflow. Always obfuscate your user id first. * Dialogflow only
      accepts a UTF-8 encoded string, e.g., a hex digest of a hash function
      like SHA-512. * The length of the user id must be <= 256 characters.
    role: Immutable. The role this participant plays in the conversation. This
      field must be set during participant creation and is then immutable.
    sipRecordingMediaLabel: Optional. Label applied to streams representing
      this participant in SIPREC XML metadata and SDP. This is used to assign
      transcriptions from that media stream to this participant. This field
      can be updated.
  """

  class AgentDesktopSourceValueValuesEnum(_messages.Enum):
    r"""Optional. For tracking the utilization of prebuilt Agent Assist
    integration modules. This field is only inscope for Integration type that
    include UI Modules, Backend Modules, and Agent Desktop connector, it is
    out of scope for CCaaS and Direct Integration. For each human agent,
    prebuilt UI Modules needs to trigger the UpdateParticipant API to update
    this field. Both CreateParticipantRequest and UpdateParticipantRequest
    will be supported.

    Values:
      AGENT_DESKTOP_SOURCE_UNSPECIFIED: Agent Desktop Source is not specified.
      LIVE_PERSON: Agent Desktop Source is Live Person.
      GENESYS_CLOUD: Agent Desktop Source is Genesys Cloud.
      TWILIO: Agent Desktop Source is Twilio.
      SALESFORCE: Agent Desktop Source is Salesforce.
      OTHER: UI Modules are in use but the desktop is either not currently
        released or setting this field to the applicable desktop.
    """
    AGENT_DESKTOP_SOURCE_UNSPECIFIED = 0
    LIVE_PERSON = 1
    GENESYS_CLOUD = 2
    TWILIO = 3
    SALESFORCE = 4
    OTHER = 5

  class RoleValueValuesEnum(_messages.Enum):
    r"""Immutable. The role this participant plays in the conversation. This
    field must be set during participant creation and is then immutable.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DocumentsMetadataFiltersValue(_messages.Message):
    r"""Optional. Key-value filters on the metadata of documents returned by
    article suggestion. If specified, article suggestion only returns
    suggested documents that match all filters in their Document.metadata.
    Multiple values for a metadata key should be concatenated by comma. For
    example, filters to match all documents that have 'US' or 'CA' in their
    market metadata values and 'agent' in their user metadata values will be
    ``` documents_metadata_filters { key: "market" value: "US,CA" }
    documents_metadata_filters { key: "user" value: "agent" } ```

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

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

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

  agentDesktopSource = _messages.EnumField('AgentDesktopSourceValueValuesEnum', 1)
  documentsMetadataFilters = _messages.MessageField('DocumentsMetadataFiltersValue', 2)
  name = _messages.StringField(3)
  obfuscatedExternalUserId = _messages.StringField(4)
  role = _messages.EnumField('RoleValueValuesEnum', 5)
  sipRecordingMediaLabel = _messages.StringField(6)


class GoogleCloudDialogflowV2QueryInput(_messages.Message):
  r"""Represents the query input. It can contain either: 1. An audio config
  which instructs the speech recognizer how to process the speech audio. 2. A
  conversational query in the form of text. 3. An event that specifies which
  intent to trigger.

  Fields:
    audioConfig: Instructs the speech recognizer how to process the speech
      audio.
    event: The event to be processed.
    text: The natural language text to be processed. Text length must not
      exceed 256 character for virtual agent interactions.
  """

  audioConfig = _messages.MessageField('GoogleCloudDialogflowV2InputAudioConfig', 1)
  event = _messages.MessageField('GoogleCloudDialogflowV2EventInput', 2)
  text = _messages.MessageField('GoogleCloudDialogflowV2TextInput', 3)


class GoogleCloudDialogflowV2QueryParameters(_messages.Message):
  r"""Represents the parameters of the conversational query.

  Messages:
    PayloadValue: This field can be used to pass custom data to your webhook.
      Arbitrary JSON objects are supported. If supplied, the value is used to
      populate the `WebhookRequest.original_detect_intent_request.payload`
      field sent to your webhook.
    WebhookHeadersValue: This field can be used to pass HTTP headers for a
      webhook call. These headers will be sent to webhook along with the
      headers that have been configured through the Dialogflow web console.
      The headers defined within this field will overwrite the headers
      configured through the Dialogflow console if there is a conflict. Header
      names are case-insensitive. Google's specified headers are not allowed.
      Including: "Host", "Content-Length", "Connection", "From", "User-Agent",
      "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-
      For", etc.

  Fields:
    contexts: The collection of contexts to be activated before this query is
      executed.
    geoLocation: The geo location of this conversational query.
    payload: This field can be used to pass custom data to your webhook.
      Arbitrary JSON objects are supported. If supplied, the value is used to
      populate the `WebhookRequest.original_detect_intent_request.payload`
      field sent to your webhook.
    platform: The platform of the virtual agent response messages. If not
      empty, only emits messages from this platform in the response. Valid
      values are the enum names of platform.
    resetContexts: Specifies whether to delete all contexts in the current
      session before the new ones are activated.
    sentimentAnalysisRequestConfig: Configures the type of sentiment analysis
      to perform. If not provided, sentiment analysis is not performed.
    sessionEntityTypes: Additional session entity types to replace or extend
      developer entity types with. The entity synonyms apply to all languages
      and persist for the session of this query.
    timeZone: The time zone of this conversational query from the [time zone
      database](https://www.iana.org/time-zones), e.g., America/New_York,
      Europe/Paris. If not provided, the time zone specified in agent settings
      is used.
    webhookHeaders: This field can be used to pass HTTP headers for a webhook
      call. These headers will be sent to webhook along with the headers that
      have been configured through the Dialogflow web console. The headers
      defined within this field will overwrite the headers configured through
      the Dialogflow console if there is a conflict. Header names are case-
      insensitive. Google's specified headers are not allowed. Including:
      "Host", "Content-Length", "Connection", "From", "User-Agent", "Accept-
      Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", etc.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""This field can be used to pass custom data to your webhook. Arbitrary
    JSON objects are supported. If supplied, the value is used to populate the
    `WebhookRequest.original_detect_intent_request.payload` field sent to your
    webhook.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a PayloadValue 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 WebhookHeadersValue(_messages.Message):
    r"""This field can be used to pass HTTP headers for a webhook call. These
    headers will be sent to webhook along with the headers that have been
    configured through the Dialogflow web console. The headers defined within
    this field will overwrite the headers configured through the Dialogflow
    console if there is a conflict. Header names are case-insensitive.
    Google's specified headers are not allowed. Including: "Host", "Content-
    Length", "Connection", "From", "User-Agent", "Accept-Encoding", "If-
    Modified-Since", "If-None-Match", "X-Forwarded-For", etc.

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

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

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

  contexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 1, repeated=True)
  geoLocation = _messages.MessageField('GoogleTypeLatLng', 2)
  payload = _messages.MessageField('PayloadValue', 3)
  platform = _messages.StringField(4)
  resetContexts = _messages.BooleanField(5)
  sentimentAnalysisRequestConfig = _messages.MessageField('GoogleCloudDialogflowV2SentimentAnalysisRequestConfig', 6)
  sessionEntityTypes = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 7, repeated=True)
  timeZone = _messages.StringField(8)
  webhookHeaders = _messages.MessageField('WebhookHeadersValue', 9)


class GoogleCloudDialogflowV2QueryResult(_messages.Message):
  r"""Represents the result of conversational query or event processing.

  Messages:
    DiagnosticInfoValue: Free-form diagnostic information for the associated
      detect intent request. The fields of this data can change without
      notice, so you should not write code that depends on its structure. The
      data may contain: - webhook call latency - webhook errors
    ParametersValue: The collection of extracted parameters. Depending on your
      protocol or client library language, this is a map, associative array,
      symbol table, dictionary, or JSON object composed of a collection of
      (MapKey, MapValue) pairs: * MapKey type: string * MapKey value:
      parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.
    WebhookPayloadValue: If the query was fulfilled by a webhook call, this
      field is set to the value of the `payload` field returned in the webhook
      response.

  Fields:
    action: The action name from the matched intent.
    allRequiredParamsPresent: This field is set to: - `false` if the matched
      intent has required parameters and not all of the required parameter
      values have been collected. - `true` if all required parameter values
      have been collected, or if the matched intent doesn't contain any
      required parameters.
    cancelsSlotFilling: Indicates whether the conversational query triggers a
      cancellation for slot filling. For more information, see the [cancel
      slot filling
      documentation](https://cloud.google.com/dialogflow/es/docs/intents-
      actions-parameters#cancel).
    diagnosticInfo: Free-form diagnostic information for the associated detect
      intent request. The fields of this data can change without notice, so
      you should not write code that depends on its structure. The data may
      contain: - webhook call latency - webhook errors
    fulfillmentMessages: The collection of rich messages to present to the
      user.
    fulfillmentText: The text to be pronounced to the user or shown on the
      screen. Note: This is a legacy field, `fulfillment_messages` should be
      preferred.
    intent: The intent that matched the conversational query. Some, not all
      fields are filled in this message, including but not limited to: `name`,
      `display_name`, `end_interaction` and `is_fallback`.
    intentDetectionConfidence: The intent detection confidence. Values range
      from 0.0 (completely uncertain) to 1.0 (completely certain). This value
      is for informational purpose only and is only used to help match the
      best intent within the classification threshold. This value may change
      for the same end-user expression at any time due to a model retraining
      or change in implementation. If there are `multiple knowledge_answers`
      messages, this value is set to the greatest
      `knowledgeAnswers.match_confidence` value in the list.
    languageCode: The language that was triggered during intent detection. See
      [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes.
    outputContexts: The collection of output contexts. If applicable,
      `output_contexts.parameters` contains entries with name `.original`
      containing the original parameter values before the query.
    parameters: The collection of extracted parameters. Depending on your
      protocol or client library language, this is a map, associative array,
      symbol table, dictionary, or JSON object composed of a collection of
      (MapKey, MapValue) pairs: * MapKey type: string * MapKey value:
      parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.
    queryText: The original conversational query text: - If natural language
      text was provided as input, `query_text` contains a copy of the input. -
      If natural language speech audio was provided as input, `query_text`
      contains the speech recognition result. If speech recognizer produced
      multiple alternatives, a particular one is picked. - If automatic spell
      correction is enabled, `query_text` will contain the corrected user
      input.
    sentimentAnalysisResult: The sentiment analysis result, which depends on
      the `sentiment_analysis_request_config` specified in the request.
    speechRecognitionConfidence: The Speech recognition confidence between 0.0
      and 1.0. A higher number indicates an estimated greater likelihood that
      the recognized words are correct. The default of 0.0 is a sentinel value
      indicating that confidence was not set. This field is not guaranteed to
      be accurate or set. In particular this field isn't set for
      StreamingDetectIntent since the streaming endpoint has separate
      confidence estimates per portion of the audio in
      StreamingRecognitionResult.
    webhookPayload: If the query was fulfilled by a webhook call, this field
      is set to the value of the `payload` field returned in the webhook
      response.
    webhookSource: If the query was fulfilled by a webhook call, this field is
      set to the value of the `source` field returned in the webhook response.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DiagnosticInfoValue(_messages.Message):
    r"""Free-form diagnostic information for the associated detect intent
    request. The fields of this data can change without notice, so you should
    not write code that depends on its structure. The data may contain: -
    webhook call latency - webhook errors

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DiagnosticInfoValue 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 ParametersValue(_messages.Message):
    r"""The collection of extracted parameters. Depending on your protocol or
    client library language, this is a map, associative array, symbol table,
    dictionary, or JSON object composed of a collection of (MapKey, MapValue)
    pairs: * MapKey type: string * MapKey value: parameter name * MapValue
    type: If parameter's entity type is a composite entity then use map,
    otherwise, depending on the parameter value type, it could be one of
    string, number, boolean, null, list or map. * MapValue value: If
    parameter's entity type is a composite entity then use map from composite
    entity property names to property values, otherwise, use parameter value.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ParametersValue 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 WebhookPayloadValue(_messages.Message):
    r"""If the query was fulfilled by a webhook call, this field is set to the
    value of the `payload` field returned in the webhook response.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  allRequiredParamsPresent = _messages.BooleanField(2)
  cancelsSlotFilling = _messages.BooleanField(3)
  diagnosticInfo = _messages.MessageField('DiagnosticInfoValue', 4)
  fulfillmentMessages = _messages.MessageField('GoogleCloudDialogflowV2IntentMessage', 5, repeated=True)
  fulfillmentText = _messages.StringField(6)
  intent = _messages.MessageField('GoogleCloudDialogflowV2Intent', 7)
  intentDetectionConfidence = _messages.FloatField(8, variant=_messages.Variant.FLOAT)
  languageCode = _messages.StringField(9)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 10, repeated=True)
  parameters = _messages.MessageField('ParametersValue', 11)
  queryText = _messages.StringField(12)
  sentimentAnalysisResult = _messages.MessageField('GoogleCloudDialogflowV2SentimentAnalysisResult', 13)
  speechRecognitionConfidence = _messages.FloatField(14, variant=_messages.Variant.FLOAT)
  webhookPayload = _messages.MessageField('WebhookPayloadValue', 15)
  webhookSource = _messages.StringField(16)


class GoogleCloudDialogflowV2RaiSettings(_messages.Message):
  r"""Settings for Responsible AI checks.

  Fields:
    raiCategoryConfigs: Configuration for a set of RAI categories.
  """

  raiCategoryConfigs = _messages.MessageField('GoogleCloudDialogflowV2RaiSettingsRaiCategoryConfig', 1, repeated=True)


class GoogleCloudDialogflowV2RaiSettingsRaiCategoryConfig(_messages.Message):
  r"""Configuration for a specific RAI category.

  Enums:
    CategoryValueValuesEnum: Optional. The RAI category.
    SensitivityLevelValueValuesEnum: Optional. The sensitivity level for this
      category.

  Fields:
    category: Optional. The RAI category.
    sensitivityLevel: Optional. The sensitivity level for this category.
  """

  class CategoryValueValuesEnum(_messages.Enum):
    r"""Optional. The RAI category.

    Values:
      RAI_CATEGORY_UNSPECIFIED: Default value.
      DANGEROUS_CONTENT: Dangerous content.
      SEXUALLY_EXPLICIT: Sexually explicit content.
      HARASSMENT: Harassment content.
      HATE_SPEECH: Hate speech content.
    """
    RAI_CATEGORY_UNSPECIFIED = 0
    DANGEROUS_CONTENT = 1
    SEXUALLY_EXPLICIT = 2
    HARASSMENT = 3
    HATE_SPEECH = 4

  class SensitivityLevelValueValuesEnum(_messages.Enum):
    r"""Optional. The sensitivity level for this category.

    Values:
      SENSITIVITY_LEVEL_UNSPECIFIED: Default value. If unspecified, the
        default behavior is: - DANGEROUS_CONTENT: BLOCK_FEW -
        SEXUALLY_EXPLICIT: BLOCK_SOME - HARASSMENT: BLOCK_SOME - HATE_SPEECH:
        BLOCK_SOME
      BLOCK_MOST: Block most potentially sensitive responses.
      BLOCK_SOME: Block some potentially sensitive responses.
      BLOCK_FEW: Block a few potentially sensitive responses.
      BLOCK_NONE: No filtering for this category.
    """
    SENSITIVITY_LEVEL_UNSPECIFIED = 0
    BLOCK_MOST = 1
    BLOCK_SOME = 2
    BLOCK_FEW = 3
    BLOCK_NONE = 4

  category = _messages.EnumField('CategoryValueValuesEnum', 1)
  sensitivityLevel = _messages.EnumField('SensitivityLevelValueValuesEnum', 2)


class GoogleCloudDialogflowV2ReloadDocumentRequest(_messages.Message):
  r"""Request message for Documents.ReloadDocument.

  Fields:
    contentUri: Optional. The path of gcs source file for reloading document
      content. For now, only gcs uri is supported. For documents stored in
      Google Cloud Storage, these URIs must have the form `gs:///`.
    importGcsCustomMetadata: Optional. Whether to import custom metadata from
      Google Cloud Storage. Only valid when the document source is Google
      Cloud Storage URI.
    smartMessagingPartialUpdate: Optional. When enabled, the reload request is
      to apply partial update to the smart messaging allowlist.
  """

  contentUri = _messages.StringField(1)
  importGcsCustomMetadata = _messages.BooleanField(2)
  smartMessagingPartialUpdate = _messages.BooleanField(3)


class GoogleCloudDialogflowV2RestoreAgentRequest(_messages.Message):
  r"""The request message for Agents.RestoreAgent.

  Fields:
    agentContent: Zip compressed raw byte content for agent.
    agentUri: The URI to a Google Cloud Storage file containing the agent to
      restore. Note: The URI must start with "gs://". Dialogflow performs a
      read operation for the Cloud Storage object on the caller's behalf, so
      your request authentication must have read permissions for the object.
      For more information, see [Dialogflow access
      control](https://cloud.google.com/dialogflow/cx/docs/concept/access-
      control#storage).
  """

  agentContent = _messages.BytesField(1)
  agentUri = _messages.StringField(2)


class GoogleCloudDialogflowV2SearchAgentsResponse(_messages.Message):
  r"""The response message for Agents.SearchAgents.

  Fields:
    agents: The list of agents. There will be a maximum number of items
      returned based on the page_size field in the request.
    nextPageToken: Token to retrieve the next page of results, or empty if
      there are no more results in the list.
  """

  agents = _messages.MessageField('GoogleCloudDialogflowV2Agent', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudDialogflowV2SearchKnowledgeAnswer(_messages.Message):
  r"""Represents a SearchKnowledge answer.

  Enums:
    AnswerTypeValueValuesEnum: The type of the answer.

  Fields:
    answer: The piece of text from the knowledge base documents that answers
      the search query
    answerRecord: The name of the answer record. Format:
      `projects//locations//answer Records/`
    answerSources: All sources used to generate the answer.
    answerType: The type of the answer.
  """

  class AnswerTypeValueValuesEnum(_messages.Enum):
    r"""The type of the answer.

    Values:
      ANSWER_TYPE_UNSPECIFIED: The answer has a unspecified type.
      FAQ: The answer is from FAQ documents.
      GENERATIVE: The answer is from generative model.
      INTENT: The answer is from intent matching.
    """
    ANSWER_TYPE_UNSPECIFIED = 0
    FAQ = 1
    GENERATIVE = 2
    INTENT = 3

  answer = _messages.StringField(1)
  answerRecord = _messages.StringField(2)
  answerSources = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource', 3, repeated=True)
  answerType = _messages.EnumField('AnswerTypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2SearchKnowledgeAnswerAnswerSource(_messages.Message):
  r"""The sources of the answers.

  Messages:
    MetadataValue: Metadata associated with the article.

  Fields:
    metadata: Metadata associated with the article.
    snippet: The relevant snippet of the article.
    title: The title of the article.
    uri: The URI of the article.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Metadata associated with the article.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)
  snippet = _messages.StringField(2)
  title = _messages.StringField(3)
  uri = _messages.StringField(4)


class GoogleCloudDialogflowV2SearchKnowledgeRequest(_messages.Message):
  r"""The request message for Conversations.SearchKnowledge.

  Enums:
    QuerySourceValueValuesEnum: Optional. The source of the query in the
      request.

  Messages:
    EndUserMetadataValue: Optional. Information about the end-user to improve
      the relevance and accuracy of generative answers. This will be
      interpreted and used by a language model, so, for good results, the data
      should be self-descriptive, and in a simple structure. Example: ```json
      { "subscription plan": "Business Premium Plus", "devices owned": [
      {"model": "Google Pixel 7"}, {"model": "Google Pixel Tablet"} ] } ```

  Fields:
    conversation: Optional. The conversation (between human agent and end
      user) where the search request is triggered. Format:
      `projects//locations//conversations/`.
    conversationProfile: Required. The conversation profile used to configure
      the search. Format: `projects//locations//conversationProfiles/`.
    endUserMetadata: Optional. Information about the end-user to improve the
      relevance and accuracy of generative answers. This will be interpreted
      and used by a language model, so, for good results, the data should be
      self-descriptive, and in a simple structure. Example: ```json {
      "subscription plan": "Business Premium Plus", "devices owned": [
      {"model": "Google Pixel 7"}, {"model": "Google Pixel Tablet"} ] } ```
    exactSearch: Optional. Whether to search the query exactly without query
      rewrite.
    latestMessage: Optional. The name of the latest conversation message when
      the request is triggered. Format:
      `projects//locations//conversations//messages/`.
    parent: Required. The parent resource contains the conversation profile
      Format: 'projects/' or `projects//locations/`.
    query: Required. The natural language text query for knowledge search.
    querySource: Optional. The source of the query in the request.
    searchConfig: Optional. Configuration specific to search queries with data
      stores.
    sessionId: Required. The ID of the search session. The session_id can be
      combined with Dialogflow V3 Agent ID retrieved from conversation profile
      or on its own to identify a search session. The search history of the
      same session will impact the search result. It's up to the API caller to
      choose an appropriate `Session ID`. It can be a random number or some
      type of session identifiers (preferably hashed). The length must not
      exceed 36 characters.
  """

  class QuerySourceValueValuesEnum(_messages.Enum):
    r"""Optional. The source of the query in the request.

    Values:
      QUERY_SOURCE_UNSPECIFIED: Unknown query source.
      AGENT_QUERY: The query is from agents.
      SUGGESTED_QUERY: The query is a suggested query from
        Participants.SuggestKnowledgeAssist.
    """
    QUERY_SOURCE_UNSPECIFIED = 0
    AGENT_QUERY = 1
    SUGGESTED_QUERY = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class EndUserMetadataValue(_messages.Message):
    r"""Optional. Information about the end-user to improve the relevance and
    accuracy of generative answers. This will be interpreted and used by a
    language model, so, for good results, the data should be self-descriptive,
    and in a simple structure. Example: ```json { "subscription plan":
    "Business Premium Plus", "devices owned": [ {"model": "Google Pixel 7"},
    {"model": "Google Pixel Tablet"} ] } ```

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  conversation = _messages.StringField(1)
  conversationProfile = _messages.StringField(2)
  endUserMetadata = _messages.MessageField('EndUserMetadataValue', 3)
  exactSearch = _messages.BooleanField(4)
  latestMessage = _messages.StringField(5)
  parent = _messages.StringField(6)
  query = _messages.MessageField('GoogleCloudDialogflowV2TextInput', 7)
  querySource = _messages.EnumField('QuerySourceValueValuesEnum', 8)
  searchConfig = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfig', 9)
  sessionId = _messages.StringField(10)


class GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfig(_messages.Message):
  r"""Configuration specific to search queries with data stores.

  Fields:
    boostSpecs: Optional. Boost specifications for data stores. Maps from
      datastore name to their boost configuration. Do not specify more than
      one BoostSpecs for each datastore name. If multiple BoostSpecs are
      provided for the same datastore name, the behavior is undefined.
    filterSpecs: Optional. Filter specification for data store queries. TMaps
      from datastore name to the filter expression for that datastore. Do not
      specify more than one FilterSpecs for each datastore name. If multiple
      FilterSpecs are provided for the same datastore name, the behavior is
      undefined.
  """

  boostSpecs = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecs', 1, repeated=True)
  filterSpecs = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigFilterSpecs', 2, repeated=True)


class GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecs(_messages.Message):
  r"""Boost specifications for data stores.

  Fields:
    dataStores: Optional. Data Stores where the boosting configuration is
      applied. The full names of the referenced data stores. Formats: `project
      s/{project}/locations/{location}/collections/{collection}/dataStores/{da
      ta_store}`
      `projects/{project}/locations/{location}/dataStores/{data_store}`
    spec: Optional. A list of boosting specifications.
  """

  dataStores = _messages.StringField(1, repeated=True)
  spec = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpec', 2, repeated=True)


class GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpec(_messages.Message):
  r"""Boost specification to boost certain documents. A copy of
  google.cloud.discoveryengine.v1main.BoostSpec, field documentation is
  available at https://cloud.google.com/generative-ai-app-
  builder/docs/reference/rest/v1alpha/BoostSpec

  Fields:
    conditionBoostSpecs: Optional. Condition boost specifications. If a
      document matches multiple conditions in the specifications, boost scores
      from these specifications are all applied and combined in a non-linear
      way. Maximum number of specifications is 20.
  """

  conditionBoostSpecs = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpec', 1, repeated=True)


class GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpec(_messages.Message):
  r"""Boost applies to documents which match a condition.

  Fields:
    boost: Optional. Strength of the condition boost, which should be in [-1,
      1]. Negative boost means demotion. Default is 0.0. Setting to 1.0 gives
      the document a big promotion. However, it does not necessarily mean that
      the boosted document will be the top result at all times, nor that other
      documents will be excluded. Results could still be shown even when none
      of them matches the condition. And results that are significantly more
      relevant to the search query can still trump your heavily favored but
      irrelevant documents. Setting to -1.0 gives the document a big demotion.
      However, results that are deeply relevant might still be shown. The
      document will have an upstream battle to get a fairly high ranking, but
      it is not blocked out completely. Setting to 0.0 means no boost applied.
      The boosting condition is ignored.
    boostControlSpec: Optional. Complex specification for custom ranking based
      on customer defined attribute value.
    condition: Optional. An expression which specifies a boost condition. The
      syntax and supported fields are the same as a filter expression.
      Examples: * To boost documents with document ID "doc_1" or "doc_2", and
      color "Red" or "Blue": * (id: ANY("doc_1", "doc_2")) AND (color:
      ANY("Red","Blue"))
  """

  boost = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  boostControlSpec = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpec', 2)
  condition = _messages.StringField(3)


class GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpec(_messages.Message):
  r"""Specification for custom ranking based on customer specified attribute
  value. It provides more controls for customized ranking than the simple
  (condition, boost) combination above.

  Enums:
    AttributeTypeValueValuesEnum: Optional. The attribute type to be used to
      determine the boost amount. The attribute value can be derived from the
      field value of the specified field_name. In the case of numerical it is
      straightforward i.e. attribute_value = numerical_field_value. In the
      case of freshness however, attribute_value = (time.now() -
      datetime_field_value).
    InterpolationTypeValueValuesEnum: Optional. The interpolation type to be
      applied to connect the control points listed below.

  Fields:
    attributeType: Optional. The attribute type to be used to determine the
      boost amount. The attribute value can be derived from the field value of
      the specified field_name. In the case of numerical it is straightforward
      i.e. attribute_value = numerical_field_value. In the case of freshness
      however, attribute_value = (time.now() - datetime_field_value).
    controlPoints: Optional. The control points used to define the curve. The
      monotonic function (defined through the interpolation_type above) passes
      through the control points listed here.
    fieldName: Optional. The name of the field whose value will be used to
      determine the boost amount.
    interpolationType: Optional. The interpolation type to be applied to
      connect the control points listed below.
  """

  class AttributeTypeValueValuesEnum(_messages.Enum):
    r"""Optional. The attribute type to be used to determine the boost amount.
    The attribute value can be derived from the field value of the specified
    field_name. In the case of numerical it is straightforward i.e.
    attribute_value = numerical_field_value. In the case of freshness however,
    attribute_value = (time.now() - datetime_field_value).

    Values:
      ATTRIBUTE_TYPE_UNSPECIFIED: Unspecified AttributeType.
      NUMERICAL: The value of the numerical field will be used to dynamically
        update the boost amount. In this case, the attribute_value (the x
        value) of the control point will be the actual value of the numerical
        field for which the boost_amount is specified.
      FRESHNESS: For the freshness use case the attribute value will be the
        duration between the current time and the date in the datetime field
        specified. The value must be formatted as an XSD `dayTimeDuration`
        value (a restricted subset of an ISO 8601 duration value). The pattern
        for this is: `nDnM]`. E.g. `5D`, `3DT12H30M`, `T24H`.
    """
    ATTRIBUTE_TYPE_UNSPECIFIED = 0
    NUMERICAL = 1
    FRESHNESS = 2

  class InterpolationTypeValueValuesEnum(_messages.Enum):
    r"""Optional. The interpolation type to be applied to connect the control
    points listed below.

    Values:
      INTERPOLATION_TYPE_UNSPECIFIED: Interpolation type is unspecified. In
        this case, it defaults to Linear.
      LINEAR: Piecewise linear interpolation will be applied.
    """
    INTERPOLATION_TYPE_UNSPECIFIED = 0
    LINEAR = 1

  attributeType = _messages.EnumField('AttributeTypeValueValuesEnum', 1)
  controlPoints = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpecControlPoint', 2, repeated=True)
  fieldName = _messages.StringField(3)
  interpolationType = _messages.EnumField('InterpolationTypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigBoostSpecsBoostSpecConditionBoostSpecBoostControlSpecControlPoint(_messages.Message):
  r"""The control points used to define the curve. The curve defined through
  these control points can only be monotonically increasing or
  decreasing(constant values are acceptable).

  Fields:
    attributeValue: Optional. Can be one of: 1. The numerical field value. 2.
      The duration spec for freshness: The value must be formatted as an XSD
      `dayTimeDuration` value (a restricted subset of an ISO 8601 duration
      value). The pattern for this is: `nDnM]`.
    boostAmount: Optional. The value between -1 to 1 by which to boost the
      score if the attribute_value evaluates to the value specified above.
  """

  attributeValue = _messages.StringField(1)
  boostAmount = _messages.FloatField(2, variant=_messages.Variant.FLOAT)


class GoogleCloudDialogflowV2SearchKnowledgeRequestSearchConfigFilterSpecs(_messages.Message):
  r"""Filter specification for data store queries.

  Fields:
    dataStores: Optional. The data store where the filter configuration is
      applied. Full resource name of data store, such as
      projects/{project}/locations/{location}/collections/{collectionId}/
      dataStores/{dataStoreId}.
    filter: Optional. The filter expression to be applied. Expression syntax
      is documented at https://cloud.google.com/generative-ai-app-
      builder/docs/filter-search-metadata#filter-expression-syntax
  """

  dataStores = _messages.StringField(1, repeated=True)
  filter = _messages.StringField(2)


class GoogleCloudDialogflowV2SearchKnowledgeResponse(_messages.Message):
  r"""The response message for Conversations.SearchKnowledge.

  Fields:
    answers: Most relevant snippets extracted from articles in the given
      knowledge base, ordered by confidence.
    rewrittenQuery: The rewritten query used to search knowledge.
  """

  answers = _messages.MessageField('GoogleCloudDialogflowV2SearchKnowledgeAnswer', 1, repeated=True)
  rewrittenQuery = _messages.StringField(2)


class GoogleCloudDialogflowV2Sentiment(_messages.Message):
  r"""The sentiment, such as positive/negative feeling or association, for a
  unit of analysis, such as the query text. See:
  https://cloud.google.com/natural-
  language/docs/basics#interpreting_sentiment_analysis_values for how to
  interpret the result.

  Fields:
    magnitude: A non-negative number in the [0, +inf) range, which represents
      the absolute magnitude of sentiment, regardless of score (positive or
      negative).
    score: Sentiment score between -1.0 (negative sentiment) and 1.0 (positive
      sentiment).
  """

  magnitude = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  score = _messages.FloatField(2, variant=_messages.Variant.FLOAT)


class GoogleCloudDialogflowV2SentimentAnalysisRequestConfig(_messages.Message):
  r"""Configures the types of sentiment analysis to perform.

  Fields:
    analyzeQueryTextSentiment: Instructs the service to perform sentiment
      analysis on `query_text`. If not provided, sentiment analysis is not
      performed on `query_text`.
  """

  analyzeQueryTextSentiment = _messages.BooleanField(1)


class GoogleCloudDialogflowV2SentimentAnalysisResult(_messages.Message):
  r"""The result of sentiment analysis. Sentiment analysis inspects user input
  and identifies the prevailing subjective opinion, especially to determine a
  user's attitude as positive, negative, or neutral. For DetectIntent, it
  needs to be configured in DetectIntentRequest.query_params. For
  StreamingDetectIntent, it needs to be configured in
  StreamingDetectIntentRequest.query_params. And for
  Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it
  needs to be configured in ConversationProfile.human_agent_assistant_config

  Fields:
    queryTextSentiment: The sentiment analysis result for `query_text`.
  """

  queryTextSentiment = _messages.MessageField('GoogleCloudDialogflowV2Sentiment', 1)


class GoogleCloudDialogflowV2SessionEntityType(_messages.Message):
  r"""A session represents a conversation between a Dialogflow agent and an
  end-user. You can create special entities, called session entities, during a
  session. Session entities can extend or replace custom entity types and only
  exist during the session that they were created for. All session data,
  including session entities, is stored by Dialogflow for 20 minutes. For more
  information, see the [session entity
  guide](https://cloud.google.com/dialogflow/docs/entities-session).

  Enums:
    EntityOverrideModeValueValuesEnum: Required. Indicates whether the
      additional data should override or supplement the custom entity type
      definition.

  Fields:
    entities: Required. The collection of entities associated with this
      session entity type.
    entityOverrideMode: Required. Indicates whether the additional data should
      override or supplement the custom entity type definition.
    name: Required. The unique identifier of this session entity type. Format:
      `projects//agent/sessions//entityTypes/`, or
      `projects//agent/environments//users//sessions//entityTypes/`. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
      `` must be the display name of an existing entity type in the same agent
      that will be overridden or supplemented.
  """

  class EntityOverrideModeValueValuesEnum(_messages.Enum):
    r"""Required. Indicates whether the additional data should override or
    supplement the custom entity type definition.

    Values:
      ENTITY_OVERRIDE_MODE_UNSPECIFIED: Not specified. This value should be
        never used.
      ENTITY_OVERRIDE_MODE_OVERRIDE: The collection of session entities
        overrides the collection of entities in the corresponding custom
        entity type.
      ENTITY_OVERRIDE_MODE_SUPPLEMENT: The collection of session entities
        extends the collection of entities in the corresponding custom entity
        type. Note: Even in this override mode calls to
        `ListSessionEntityTypes`, `GetSessionEntityType`,
        `CreateSessionEntityType` and `UpdateSessionEntityType` only return
        the additional entities added in this session entity type. If you want
        to get the supplemented list, please call EntityTypes.GetEntityType on
        the custom entity type and merge.
    """
    ENTITY_OVERRIDE_MODE_UNSPECIFIED = 0
    ENTITY_OVERRIDE_MODE_OVERRIDE = 1
    ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2

  entities = _messages.MessageField('GoogleCloudDialogflowV2EntityTypeEntity', 1, repeated=True)
  entityOverrideMode = _messages.EnumField('EntityOverrideModeValueValuesEnum', 2)
  name = _messages.StringField(3)


class GoogleCloudDialogflowV2SetSuggestionFeatureConfigOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationProfiles.SetSuggestionFeatureConfig
  operation.

  Enums:
    ParticipantRoleValueValuesEnum: Required. The participant role to add or
      update the suggestion feature config. Only HUMAN_AGENT or END_USER can
      be used.
    SuggestionFeatureTypeValueValuesEnum: Required. The type of the suggestion
      feature to add or update.

  Fields:
    conversationProfile: The resource name of the conversation profile.
      Format: `projects//locations//conversationProfiles/`
    createTime: Timestamp whe the request was created. The time is measured on
      server side.
    participantRole: Required. The participant role to add or update the
      suggestion feature config. Only HUMAN_AGENT or END_USER can be used.
    suggestionFeatureType: Required. The type of the suggestion feature to add
      or update.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Required. The participant role to add or update the suggestion feature
    config. Only HUMAN_AGENT or END_USER can be used.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  class SuggestionFeatureTypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the suggestion feature to add or update.

    Values:
      TYPE_UNSPECIFIED: Unspecified feature type.
      ARTICLE_SUGGESTION: Run article suggestion model for chat.
      FAQ: Run FAQ model for chat.
      SMART_REPLY: Run smart reply model for chat.
      CONVERSATION_SUMMARIZATION: Run conversation summarization model for
        chat.
      KNOWLEDGE_SEARCH: Run knowledge search with text input from agent or
        text generated query.
      KNOWLEDGE_ASSIST: Run knowledge assist with automatic query generation.
    """
    TYPE_UNSPECIFIED = 0
    ARTICLE_SUGGESTION = 1
    FAQ = 2
    SMART_REPLY = 3
    CONVERSATION_SUMMARIZATION = 4
    KNOWLEDGE_SEARCH = 5
    KNOWLEDGE_ASSIST = 6

  conversationProfile = _messages.StringField(1)
  createTime = _messages.StringField(2)
  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 3)
  suggestionFeatureType = _messages.EnumField('SuggestionFeatureTypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2SetSuggestionFeatureConfigRequest(_messages.Message):
  r"""The request message for ConversationProfiles.SetSuggestionFeatureConfig.

  Enums:
    ParticipantRoleValueValuesEnum: Required. The participant role to add or
      update the suggestion feature config. Only HUMAN_AGENT or END_USER can
      be used.

  Fields:
    participantRole: Required. The participant role to add or update the
      suggestion feature config. Only HUMAN_AGENT or END_USER can be used.
    suggestionFeatureConfig: Required. The suggestion feature config to add or
      update.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Required. The participant role to add or update the suggestion feature
    config. Only HUMAN_AGENT or END_USER can be used.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 1)
  suggestionFeatureConfig = _messages.MessageField('GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig', 2)


class GoogleCloudDialogflowV2SipTrunk(_messages.Message):
  r"""SipTrunk is the resource that represents a SIP trunk to connect to
  Google Telephony platform SIP trunking service.

  Fields:
    connections: Output only. Connections of the SIP trunk.
    displayName: Optional. Human readable alias for this trunk.
    expectedHostname: Required. The expected hostnames in the peer certificate
      from partner that is used for TLS authentication.
    name: Identifier. The unique identifier of the SIP trunk. Format:
      `projects//locations//sipTrunks/`.
  """

  connections = _messages.MessageField('GoogleCloudDialogflowV2Connection', 1, repeated=True)
  displayName = _messages.StringField(2)
  expectedHostname = _messages.StringField(3, repeated=True)
  name = _messages.StringField(4)


class GoogleCloudDialogflowV2SmartReplyAnswer(_messages.Message):
  r"""Represents a smart reply answer.

  Fields:
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    confidence: Smart reply confidence. The system's confidence score that
      this reply is a good match for this conversation, as a value from 0.0
      (completely uncertain) to 1.0 (completely certain).
    reply: The content of the reply.
  """

  answerRecord = _messages.StringField(1)
  confidence = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  reply = _messages.StringField(3)


class GoogleCloudDialogflowV2SmartReplyMetrics(_messages.Message):
  r"""The evaluation metrics for smart reply model.

  Fields:
    allowlistCoverage: Percentage of target participant messages in the
      evaluation dataset for which similar messages have appeared at least
      once in the allowlist. Should be [0, 1].
    conversationCount: Total number of conversations used to generate this
      metric.
    topNMetrics: Metrics of top n smart replies, sorted by TopNMetric.n.
  """

  allowlistCoverage = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  conversationCount = _messages.IntegerField(2)
  topNMetrics = _messages.MessageField('GoogleCloudDialogflowV2SmartReplyMetricsTopNMetrics', 3, repeated=True)


class GoogleCloudDialogflowV2SmartReplyMetricsTopNMetrics(_messages.Message):
  r"""Evaluation metrics when retrieving `n` smart replies with the model.

  Fields:
    n: Number of retrieved smart replies. For example, when `n` is 3, this
      evaluation contains metrics for when Dialogflow retrieves 3 smart
      replies with the model.
    recall: Defined as `number of queries whose top n smart replies have at
      least one similar (token match similarity above the defined threshold)
      reply as the real reply` divided by `number of queries with at least one
      smart reply`. Value ranges from 0.0 to 1.0 inclusive.
  """

  n = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  recall = _messages.FloatField(2, variant=_messages.Variant.FLOAT)


class GoogleCloudDialogflowV2SmartReplyModelMetadata(_messages.Message):
  r"""Metadata for smart reply models.

  Enums:
    TrainingModelTypeValueValuesEnum: Optional. Type of the smart reply model.
      If not provided, model_type is used.

  Fields:
    trainingModelType: Optional. Type of the smart reply model. If not
      provided, model_type is used.
  """

  class TrainingModelTypeValueValuesEnum(_messages.Enum):
    r"""Optional. Type of the smart reply model. If not provided, model_type
    is used.

    Values:
      MODEL_TYPE_UNSPECIFIED: ModelType unspecified.
      SMART_REPLY_DUAL_ENCODER_MODEL: ModelType smart reply dual encoder
        model.
      SMART_REPLY_BERT_MODEL: ModelType smart reply bert model.
    """
    MODEL_TYPE_UNSPECIFIED = 0
    SMART_REPLY_DUAL_ENCODER_MODEL = 1
    SMART_REPLY_BERT_MODEL = 2

  trainingModelType = _messages.EnumField('TrainingModelTypeValueValuesEnum', 1)


class GoogleCloudDialogflowV2SpeechContext(_messages.Message):
  r"""Hints for the speech recognizer to help with recognition in a specific
  conversation state.

  Fields:
    boost: Optional. Boost for this context compared to other contexts: * If
      the boost is positive, Dialogflow will increase the probability that the
      phrases in this context are recognized over similar sounding phrases. *
      If the boost is unspecified or non-positive, Dialogflow will not apply
      any boost. Dialogflow recommends that you use boosts in the range (0,
      20] and that you find a value that fits your use case with binary
      search.
    phrases: Optional. A list of strings containing words and phrases that the
      speech recognizer should recognize with higher likelihood. This list can
      be used to: * improve accuracy for words and phrases you expect the user
      to say, e.g. typical commands for your Dialogflow agent * add additional
      words to the speech recognizer vocabulary * ... See the [Cloud Speech
      documentation](https://cloud.google.com/speech-to-text/quotas) for usage
      limits.
  """

  boost = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  phrases = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowV2SpeechToTextConfig(_messages.Message):
  r"""Configures speech transcription for ConversationProfile.

  Enums:
    AudioEncodingValueValuesEnum: Audio encoding of the audio content to
      process.
    SpeechModelVariantValueValuesEnum: The speech model used in speech to
      text. `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be
      treated as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest
      and StreamingAnalyzeContentRequest request. If enhanced model variant is
      specified and an enhanced version of the specified model for the
      language does not exist, then it would emit an error.

  Fields:
    audioEncoding: Audio encoding of the audio content to process.
    enableWordInfo: If `true`, Dialogflow returns SpeechWordInfo in
      StreamingRecognitionResult with information about the recognized speech
      words, e.g. start and end time offsets. If false or unspecified, Speech
      doesn't return any word-level information.
    languageCode: The language of the supplied audio. Dialogflow does not do
      translations. See [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes. Note that queries
      in the same session do not necessarily need to specify the same
      language. If not specified, the default language configured at
      ConversationProfile is used.
    model: Which Speech model to select. Select the model best suited to your
      domain to get best results. If a model is not explicitly specified, then
      Dialogflow auto-selects a model based on other parameters in the
      SpeechToTextConfig and Agent settings. If enhanced speech model is
      enabled for the agent and an enhanced version of the specified model for
      the language does not exist, then the speech is recognized using the
      standard version of the specified model. Refer to [Cloud Speech API
      documentation](https://cloud.google.com/speech-to-
      text/docs/basics#select-model) for more details. If you specify a model,
      the following models typically have the best performance: - phone_call
      (best for Agent Assist and telephony) - latest_short (best for
      Dialogflow non-telephony) - command_and_search Leave this field
      unspecified to use [Agent Speech settings](https://cloud.google.com/dial
      ogflow/cx/docs/concept/agent#settings-speech) for model selection.
    phraseSets: List of names of Cloud Speech phrase sets that are used for
      transcription. For phrase set limitations, please refer to [Cloud Speech
      API quotas and limits](https://cloud.google.com/speech-to-
      text/quotas#content).
    sampleRateHertz: Sample rate (in Hertz) of the audio content sent in the
      query. Refer to [Cloud Speech API
      documentation](https://cloud.google.com/speech-to-text/docs/basics) for
      more details.
    speechModelVariant: The speech model used in speech to text.
      `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated
      as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest and
      StreamingAnalyzeContentRequest request. If enhanced model variant is
      specified and an enhanced version of the specified model for the
      language does not exist, then it would emit an error.
    useTimeoutBasedEndpointing: Use timeout based endpointing, interpreting
      endpointer sensitivity as seconds of timeout value.
  """

  class AudioEncodingValueValuesEnum(_messages.Enum):
    r"""Audio encoding of the audio content to process.

    Values:
      AUDIO_ENCODING_UNSPECIFIED: Not specified.
      AUDIO_ENCODING_LINEAR_16: Uncompressed 16-bit signed little-endian
        samples (Linear PCM).
      AUDIO_ENCODING_FLAC: [`FLAC`](https://xiph.org/flac/documentation.html)
        (Free Lossless Audio Codec) is the recommended encoding because it is
        lossless (therefore recognition is not compromised) and requires only
        about half the bandwidth of `LINEAR16`. `FLAC` stream encoding
        supports 16-bit and 24-bit samples, however, not all fields in
        `STREAMINFO` are supported.
      AUDIO_ENCODING_MULAW: 8-bit samples that compand 14-bit audio samples
        using G.711 PCMU/mu-law.
      AUDIO_ENCODING_AMR: Adaptive Multi-Rate Narrowband codec.
        `sample_rate_hertz` must be 8000.
      AUDIO_ENCODING_AMR_WB: Adaptive Multi-Rate Wideband codec.
        `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_OGG_OPUS: Opus encoded audio frames in Ogg container
        ([OggOpus](https://wiki.xiph.org/OggOpus)). `sample_rate_hertz` must
        be 16000.
      AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE: Although the use of lossy
        encodings is not recommended, if a very low bitrate encoding is
        required, `OGG_OPUS` is highly preferred over Speex encoding. The
        [Speex](https://speex.org/) encoding supported by Dialogflow API has a
        header byte in each block, as in MIME type `audio/x-speex-with-header-
        byte`. It is a variant of the RTP Speex encoding defined in [RFC
        5574](https://tools.ietf.org/html/rfc5574). The stream is a sequence
        of blocks, one block per RTP packet. Each block starts with a byte
        containing the length of the block, in bytes, followed by one or more
        frames of Speex data, padded to an integral number of bytes (octets)
        as specified in RFC 5574. In other words, each RTP header is replaced
        with a single byte containing the block length. Only Speex wideband is
        supported. `sample_rate_hertz` must be 16000.
      AUDIO_ENCODING_ALAW: 8-bit samples that compand 13-bit audio samples
        using G.711 PCMU/a-law.
    """
    AUDIO_ENCODING_UNSPECIFIED = 0
    AUDIO_ENCODING_LINEAR_16 = 1
    AUDIO_ENCODING_FLAC = 2
    AUDIO_ENCODING_MULAW = 3
    AUDIO_ENCODING_AMR = 4
    AUDIO_ENCODING_AMR_WB = 5
    AUDIO_ENCODING_OGG_OPUS = 6
    AUDIO_ENCODING_SPEEX_WITH_HEADER_BYTE = 7
    AUDIO_ENCODING_ALAW = 8

  class SpeechModelVariantValueValuesEnum(_messages.Enum):
    r"""The speech model used in speech to text.
    `SPEECH_MODEL_VARIANT_UNSPECIFIED`, `USE_BEST_AVAILABLE` will be treated
    as `USE_ENHANCED`. It can be overridden in AnalyzeContentRequest and
    StreamingAnalyzeContentRequest request. If enhanced model variant is
    specified and an enhanced version of the specified model for the language
    does not exist, then it would emit an error.

    Values:
      SPEECH_MODEL_VARIANT_UNSPECIFIED: No model variant specified. In this
        case Dialogflow defaults to USE_BEST_AVAILABLE.
      USE_BEST_AVAILABLE: Use the best available variant of the Speech model
        that the caller is eligible for. Please see the [Dialogflow
        docs](https://cloud.google.com/dialogflow/docs/data-logging) for how
        to make your project eligible for enhanced models.
      USE_STANDARD: Use standard model variant even if an enhanced model is
        available. See the [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) for details about enhanced models.
      USE_ENHANCED: Use an enhanced model variant: * If an enhanced variant
        does not exist for the given model and request language, Dialogflow
        falls back to the standard variant. The [Cloud Speech
        documentation](https://cloud.google.com/speech-to-text/docs/enhanced-
        models) describes which models have enhanced variants. * If the API
        caller isn't eligible for enhanced models, Dialogflow returns an
        error. Please see the [Dialogflow
        docs](https://cloud.google.com/dialogflow/docs/data-logging) for how
        to make your project eligible.
    """
    SPEECH_MODEL_VARIANT_UNSPECIFIED = 0
    USE_BEST_AVAILABLE = 1
    USE_STANDARD = 2
    USE_ENHANCED = 3

  audioEncoding = _messages.EnumField('AudioEncodingValueValuesEnum', 1)
  enableWordInfo = _messages.BooleanField(2)
  languageCode = _messages.StringField(3)
  model = _messages.StringField(4)
  phraseSets = _messages.StringField(5, repeated=True)
  sampleRateHertz = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  speechModelVariant = _messages.EnumField('SpeechModelVariantValueValuesEnum', 7)
  useTimeoutBasedEndpointing = _messages.BooleanField(8)


class GoogleCloudDialogflowV2SpeechWordInfo(_messages.Message):
  r"""Information for a word recognized by the speech recognizer.

  Fields:
    confidence: The Speech confidence between 0.0 and 1.0 for this word. A
      higher number indicates an estimated greater likelihood that the
      recognized word is correct. The default of 0.0 is a sentinel value
      indicating that confidence was not set. This field is not guaranteed to
      be fully stable over time for the same audio input. Users should also
      not rely on it to always be provided.
    endOffset: Time offset relative to the beginning of the audio that
      corresponds to the end of the spoken word. This is an experimental
      feature and the accuracy of the time offset can vary.
    startOffset: Time offset relative to the beginning of the audio that
      corresponds to the start of the spoken word. This is an experimental
      feature and the accuracy of the time offset can vary.
    word: The word this info is for.
  """

  confidence = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  endOffset = _messages.StringField(2)
  startOffset = _messages.StringField(3)
  word = _messages.StringField(4)


class GoogleCloudDialogflowV2StreamingRecognitionResult(_messages.Message):
  r"""Contains a speech recognition result corresponding to a portion of the
  audio that is currently being processed or an indication that this is the
  end of the single requested utterance. While end-user audio is being
  processed, Dialogflow sends a series of results. Each result may contain a
  `transcript` value. A transcript represents a portion of the utterance.
  While the recognizer is processing audio, transcript values may be interim
  values or finalized values. Once a transcript is finalized, the `is_final`
  value is set to true and processing continues for the next transcript. If
  `StreamingDetectIntentRequest.query_input.audio_config.single_utterance` was
  true, and the recognizer has completed processing audio, the `message_type`
  value is set to `END_OF_SINGLE_UTTERANCE and the following (last) result
  contains the last finalized transcript. The complete end-user utterance is
  determined by concatenating the finalized transcript values received for the
  series of results. In the following example, single utterance is enabled. In
  the case where single utterance is not enabled, result 7 would not occur.
  ``` Num | transcript | message_type | is_final --- | -----------------------
  | ----------------------- | -------- 1 | "tube" | TRANSCRIPT | false 2 | "to
  be a" | TRANSCRIPT | false 3 | "to be" | TRANSCRIPT | false 4 | "to be or
  not to be" | TRANSCRIPT | true 5 | "that's" | TRANSCRIPT | false 6 | "that
  is | TRANSCRIPT | false 7 | unset | END_OF_SINGLE_UTTERANCE | unset 8 | "
  that is the question" | TRANSCRIPT | true ``` Concatenating the finalized
  transcripts with `is_final` set to true, the complete utterance becomes "to
  be or not to be that is the question".

  Enums:
    MessageTypeValueValuesEnum: Type of the result message.

  Fields:
    confidence: The Speech confidence between 0.0 and 1.0 for the current
      portion of audio. A higher number indicates an estimated greater
      likelihood that the recognized words are correct. The default of 0.0 is
      a sentinel value indicating that confidence was not set. This field is
      typically only provided if `is_final` is true and you should not rely on
      it being accurate or even set.
    isFinal: If `false`, the `StreamingRecognitionResult` represents an
      interim result that may change. If `true`, the recognizer will not
      return any further hypotheses about this piece of the audio. May only be
      populated for `message_type` = `TRANSCRIPT`.
    languageCode: Detected language code for the transcript.
    messageType: Type of the result message.
    speechEndOffset: Time offset of the end of this Speech recognition result
      relative to the beginning of the audio. Only populated for
      `message_type` = `TRANSCRIPT`.
    speechWordInfo: Word-specific information for the words recognized by
      Speech in transcript. Populated if and only if `message_type` =
      `TRANSCRIPT` and [InputAudioConfig.enable_word_info] is set.
    transcript: Transcript text representing the words that the user spoke.
      Populated if and only if `message_type` = `TRANSCRIPT`.
  """

  class MessageTypeValueValuesEnum(_messages.Enum):
    r"""Type of the result message.

    Values:
      MESSAGE_TYPE_UNSPECIFIED: Not specified. Should never be used.
      TRANSCRIPT: Message contains a (possibly partial) transcript.
      END_OF_SINGLE_UTTERANCE: This event indicates that the server has
        detected the end of the user's speech utterance and expects no
        additional inputs. Therefore, the server will not process additional
        audio (although it may subsequently return additional results). The
        client should stop sending additional audio data, half-close the gRPC
        connection, and wait for any additional results until the server
        closes the gRPC connection. This message is only sent if
        `single_utterance` was set to `true`, and is not used otherwise.
    """
    MESSAGE_TYPE_UNSPECIFIED = 0
    TRANSCRIPT = 1
    END_OF_SINGLE_UTTERANCE = 2

  confidence = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  isFinal = _messages.BooleanField(2)
  languageCode = _messages.StringField(3)
  messageType = _messages.EnumField('MessageTypeValueValuesEnum', 4)
  speechEndOffset = _messages.StringField(5)
  speechWordInfo = _messages.MessageField('GoogleCloudDialogflowV2SpeechWordInfo', 6, repeated=True)
  transcript = _messages.StringField(7)


class GoogleCloudDialogflowV2SuggestArticlesRequest(_messages.Message):
  r"""The request message for Participants.SuggestArticles.

  Fields:
    assistQueryParams: Parameters for a human assist query.
    contextSize: Optional. Max number of messages prior to and including
      latest_message to use as context when compiling the suggestion. By
      default 20 and at most 50.
    latestMessage: Optional. The name of the latest conversation message to
      compile suggestion for. If empty, it will be the latest message of the
      conversation. Format: `projects//locations//conversations//messages/`.
  """

  assistQueryParams = _messages.MessageField('GoogleCloudDialogflowV2AssistQueryParameters', 1)
  contextSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestArticlesResponse(_messages.Message):
  r"""The response message for Participants.SuggestArticles.

  Fields:
    articleAnswers: Articles ordered by score in descending order.
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestArticlesRequest.context_size field in the request if there aren't
      that many messages in the conversation.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
  """

  articleAnswers = _messages.MessageField('GoogleCloudDialogflowV2ArticleAnswer', 1, repeated=True)
  contextSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestConversationSummaryRequest(_messages.Message):
  r"""The request message for Conversations.SuggestConversationSummary.

  Fields:
    assistQueryParams: Optional. Parameters for a human assist query. Only
      used for POC/demo purpose.
    contextSize: Optional. Max number of messages prior to and including
      [latest_message] to use as context when compiling the suggestion. By
      default 500 and at most 1000.
    latestMessage: Optional. The name of the latest conversation message used
      as context for compiling suggestion. If empty, the latest message of the
      conversation will be used. Format:
      `projects//locations//conversations//messages/`.
  """

  assistQueryParams = _messages.MessageField('GoogleCloudDialogflowV2AssistQueryParameters', 1)
  contextSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestConversationSummaryResponse(_messages.Message):
  r"""The response message for Conversations.SuggestConversationSummary.

  Fields:
    contextSize: Number of messages prior to and including latest_message used
      to compile the suggestion. It may be smaller than the
      SuggestConversationSummaryRequest.context_size field in the request if
      there weren't that many messages in the conversation.
    latestMessage: The name of the latest conversation message used as context
      for compiling suggestion. Format:
      `projects//locations//conversations//messages/`.
    summary: Generated summary.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(2)
  summary = _messages.MessageField('GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary', 3)


class GoogleCloudDialogflowV2SuggestConversationSummaryResponseSummary(_messages.Message):
  r"""Generated summary for a conversation.

  Messages:
    TextSectionsValue: The summary content that is divided into sections. The
      key is the section's name and the value is the section's content. There
      is no specific format for the key or value.

  Fields:
    answerRecord: The name of the answer record. Format:
      "projects//answerRecords/"
    baselineModelVersion: The baseline model version used to generate this
      summary. It is empty if a baseline model was not used to generate this
      summary.
    text: The summary content that is concatenated into one string.
    textSections: The summary content that is divided into sections. The key
      is the section's name and the value is the section's content. There is
      no specific format for the key or value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class TextSectionsValue(_messages.Message):
    r"""The summary content that is divided into sections. The key is the
    section's name and the value is the section's content. There is no
    specific format for the key or value.

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

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

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

  answerRecord = _messages.StringField(1)
  baselineModelVersion = _messages.StringField(2)
  text = _messages.StringField(3)
  textSections = _messages.MessageField('TextSectionsValue', 4)


class GoogleCloudDialogflowV2SuggestFaqAnswersRequest(_messages.Message):
  r"""The request message for Participants.SuggestFaqAnswers.

  Fields:
    assistQueryParams: Parameters for a human assist query.
    contextSize: Optional. Max number of messages prior to and including
      [latest_message] to use as context when compiling the suggestion. By
      default 20 and at most 50.
    latestMessage: Optional. The name of the latest conversation message to
      compile suggestion for. If empty, it will be the latest message of the
      conversation. Format: `projects//locations//conversations//messages/`.
  """

  assistQueryParams = _messages.MessageField('GoogleCloudDialogflowV2AssistQueryParameters', 1)
  contextSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestFaqAnswersResponse(_messages.Message):
  r"""The request message for Participants.SuggestFaqAnswers.

  Fields:
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestFaqAnswersRequest.context_size field in the request if there
      aren't that many messages in the conversation.
    faqAnswers: Answers extracted from FAQ documents.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  faqAnswers = _messages.MessageField('GoogleCloudDialogflowV2FaqAnswer', 2, repeated=True)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestKnowledgeAssistRequest(_messages.Message):
  r"""The request message for Participants.SuggestKnowledgeAssist.

  Fields:
    contextSize: Optional. Max number of messages prior to and including
      latest_message to use as context when compiling the suggestion. The
      context size is by default 100 and at most 100.
    latestMessage: Optional. The name of the latest conversation message to
      compile suggestions for. If empty, it will be the latest message of the
      conversation. Format: `projects//locations//conversations//messages/`.
    previousSuggestedQuery: Optional. The previously suggested query for the
      given conversation. This helps identify whether the next suggestion we
      generate is reasonably different from the previous one. This is useful
      to avoid similar suggestions within the conversation.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(2)
  previousSuggestedQuery = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse(_messages.Message):
  r"""The response message for Participants.SuggestKnowledgeAssist.

  Fields:
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestKnowledgeAssistRequest.context_size field in the request if there
      are fewer messages in the conversation.
    knowledgeAssistAnswer: Output only. Knowledge Assist suggestion.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  knowledgeAssistAnswer = _messages.MessageField('GoogleCloudDialogflowV2KnowledgeAssistAnswer', 2)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestSmartRepliesRequest(_messages.Message):
  r"""The request message for Participants.SuggestSmartReplies.

  Fields:
    contextSize: Max number of messages prior to and including
      [latest_message] to use as context when compiling the suggestion. By
      default 20 and at most 50.
    currentTextInput: The current natural language text segment to compile
      suggestion for. This provides a way for user to get follow up smart
      reply suggestion after a smart reply selection, without sending a text
      message.
    latestMessage: The name of the latest conversation message to compile
      suggestion for. If empty, it will be the latest message of the
      conversation. Format: `projects//locations//conversations//messages/`.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  currentTextInput = _messages.MessageField('GoogleCloudDialogflowV2TextInput', 2)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2SuggestSmartRepliesResponse(_messages.Message):
  r"""The response message for Participants.SuggestSmartReplies.

  Fields:
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestSmartRepliesRequest.context_size field in the request if there
      aren't that many messages in the conversation.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
    smartReplyAnswers: Output only. Multiple reply options provided by smart
      reply service. The order is based on the rank of the model prediction.
      The maximum number of the returned replies is set in SmartReplyConfig.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(2)
  smartReplyAnswers = _messages.MessageField('GoogleCloudDialogflowV2SmartReplyAnswer', 3, repeated=True)


class GoogleCloudDialogflowV2SuggestionDedupingConfig(_messages.Message):
  r"""Config for suggestion deduping. NEXT_ID: 3

  Fields:
    enableDeduping: Optional. Whether to enable suggestion deduping.
    similarityThreshold: Optional. The threshold for similarity between two
      suggestions. Acceptable value is [0.0, 1.0], default to 0.8
  """

  enableDeduping = _messages.BooleanField(1)
  similarityThreshold = _messages.FloatField(2, variant=_messages.Variant.FLOAT)


class GoogleCloudDialogflowV2SuggestionFeature(_messages.Message):
  r"""The type of Human Agent Assistant API suggestion to perform, and the
  maximum number of results to return for that type. Multiple `Feature`
  objects can be specified in the `features` list.

  Enums:
    TypeValueValuesEnum: Type of Human Agent Assistant API feature to request.

  Fields:
    type: Type of Human Agent Assistant API feature to request.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Type of Human Agent Assistant API feature to request.

    Values:
      TYPE_UNSPECIFIED: Unspecified feature type.
      ARTICLE_SUGGESTION: Run article suggestion model for chat.
      FAQ: Run FAQ model for chat.
      SMART_REPLY: Run smart reply model for chat.
      CONVERSATION_SUMMARIZATION: Run conversation summarization model for
        chat.
      KNOWLEDGE_SEARCH: Run knowledge search with text input from agent or
        text generated query.
      KNOWLEDGE_ASSIST: Run knowledge assist with automatic query generation.
    """
    TYPE_UNSPECIFIED = 0
    ARTICLE_SUGGESTION = 1
    FAQ = 2
    SMART_REPLY = 3
    CONVERSATION_SUMMARIZATION = 4
    KNOWLEDGE_SEARCH = 5
    KNOWLEDGE_ASSIST = 6

  type = _messages.EnumField('TypeValueValuesEnum', 1)


class GoogleCloudDialogflowV2SuggestionInput(_messages.Message):
  r"""Represents the action to take for a tool call that requires
  confirmation.

  Enums:
    ActionValueValuesEnum: Optional. The type of action to take with the tool.

  Messages:
    ParametersValue: Optional. Parameters to be used for the tool call. If not
      provided, the tool will be called without any parameters.

  Fields:
    action: Optional. The type of action to take with the tool.
    answerRecord: Required. Format: `projects//locations//answerRecords/` The
      answer record associated with the tool call.
    parameters: Optional. Parameters to be used for the tool call. If not
      provided, the tool will be called without any parameters.
    sendTime: Optional. Time when the current suggest input is sent. For tool
      calls, this timestamp (along with the answer record) will be included in
      the corresponding tool call result so that it can be identified.
  """

  class ActionValueValuesEnum(_messages.Enum):
    r"""Optional. The type of action to take with the tool.

    Values:
      ACTION_UNSPECIFIED: Action not specified.
      CANCEL: Indicates the user chooses to not make the tool call. It is only
        applicable to tool calls that are waiting for user confirmation.
      REVISE: Makes the tool call with provided parameters. This action is
        intended for tool calls that only read but not write data.
      CONFIRM: Makes the tool call with provided parameters. This action is
        intended for tool calls that may write data.
    """
    ACTION_UNSPECIFIED = 0
    CANCEL = 1
    REVISE = 2
    CONFIRM = 3

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional. Parameters to be used for the tool call. If not provided,
    the tool will be called without any parameters.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.EnumField('ActionValueValuesEnum', 1)
  answerRecord = _messages.StringField(2)
  parameters = _messages.MessageField('ParametersValue', 3)
  sendTime = _messages.StringField(4)


class GoogleCloudDialogflowV2SuggestionResult(_messages.Message):
  r"""One response of different type of suggestion response which is used in
  the response of Participants.AnalyzeContent and Participants.AnalyzeContent,
  as well as HumanAgentAssistantEvent.

  Fields:
    error: Error status if the request failed.
    generateSuggestionsResponse: Suggestions generated using generators
      triggered by customer or agent messages.
    suggestArticlesResponse: SuggestArticlesResponse if request is for
      ARTICLE_SUGGESTION.
    suggestFaqAnswersResponse: SuggestFaqAnswersResponse if request is for
      FAQ_ANSWER.
    suggestKnowledgeAssistResponse: SuggestKnowledgeAssistResponse if request
      is for KNOWLEDGE_ASSIST.
    suggestSmartRepliesResponse: SuggestSmartRepliesResponse if request is for
      SMART_REPLY.
  """

  error = _messages.MessageField('GoogleRpcStatus', 1)
  generateSuggestionsResponse = _messages.MessageField('GoogleCloudDialogflowV2GenerateSuggestionsResponse', 2)
  suggestArticlesResponse = _messages.MessageField('GoogleCloudDialogflowV2SuggestArticlesResponse', 3)
  suggestFaqAnswersResponse = _messages.MessageField('GoogleCloudDialogflowV2SuggestFaqAnswersResponse', 4)
  suggestKnowledgeAssistResponse = _messages.MessageField('GoogleCloudDialogflowV2SuggestKnowledgeAssistResponse', 5)
  suggestSmartRepliesResponse = _messages.MessageField('GoogleCloudDialogflowV2SuggestSmartRepliesResponse', 6)


class GoogleCloudDialogflowV2SummarizationContext(_messages.Message):
  r"""Summarization context that customer can configure.

  Fields:
    fewShotExamples: Optional. List of few shot examples.
    outputLanguageCode: Optional. The target language of the generated
      summary. The language code for conversation will be used if this field
      is empty. Supported 2.0 and later versions.
    summarizationSections: Optional. List of sections. Note it contains both
      predefined section sand customer defined sections.
    version: Optional. Version of the feature. If not set, default to latest
      version. Current candidates are ["1.0"].
  """

  fewShotExamples = _messages.MessageField('GoogleCloudDialogflowV2FewShotExample', 1, repeated=True)
  outputLanguageCode = _messages.StringField(2)
  summarizationSections = _messages.MessageField('GoogleCloudDialogflowV2SummarizationSection', 3, repeated=True)
  version = _messages.StringField(4)


class GoogleCloudDialogflowV2SummarizationEvaluationMetrics(_messages.Message):
  r"""Evaluation metrics for summarization generator.

  Fields:
    conversationDetails: Output only. List of conversation details.
    overallMetrics: Output only. A list of aggregated(average) scores per
      metric section.
    overallSectionTokens: Output only. Overall token per section. This is an
      aggregated(sum) result of input token of summary acorss all
      conversations that are selected for summarization evaluation.
    summarizationEvaluationMergedResultsUri: Output only. User bucket uri for
      merged evaluation score and aggregation score csv.
    summarizationEvaluationResults: Output only. A list of evaluation results
      per conversation(&summary), metric and section.
  """

  conversationDetails = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsConversationDetail', 1, repeated=True)
  overallMetrics = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsOverallScoresByMetric', 2, repeated=True)
  overallSectionTokens = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsSectionToken', 3, repeated=True)
  summarizationEvaluationMergedResultsUri = _messages.StringField(4)
  summarizationEvaluationResults = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsSummarizationEvaluationResult', 5, repeated=True)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsAccuracyDecomposition(_messages.Message):
  r"""Decomposition details for accuracy.

  Fields:
    accuracyReasoning: Output only. The accuracy reasoning of the breakdown
      point.
    isAccurate: Output only. Whether the breakdown point is accurate or not.
    point: Output only. The breakdown point of the summary.
  """

  accuracyReasoning = _messages.StringField(1)
  isAccurate = _messages.BooleanField(2)
  point = _messages.StringField(3)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsAdherenceDecomposition(_messages.Message):
  r"""Decomposition details for adherence.

  Fields:
    adherenceReasoning: Output only. The adherence reasoning of the breakdown
      point.
    isAdherent: Output only. Whether the breakdown point is adherent or not.
    point: Output only. The breakdown point of the given instructions.
  """

  adherenceReasoning = _messages.StringField(1)
  isAdherent = _messages.BooleanField(2)
  point = _messages.StringField(3)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsAdherenceRubric(_messages.Message):
  r"""Rubric result of the adherence evaluation. A rubric is ued to determine
  if the summary adheres to all aspects of the given instructions.

  Fields:
    isAddressed: Output only. A boolean that indicates whether the rubric
      question is addressed or not.
    question: Output only. The question generated from instruction that used
      to evaluate summary.
    reasoning: Output only. The reasoning of the rubric question is addressed
      or not.
  """

  isAddressed = _messages.BooleanField(1)
  question = _messages.StringField(2)
  reasoning = _messages.StringField(3)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsCompletenessRubric(_messages.Message):
  r"""Rubric details of the completeness evaluation result.

  Fields:
    isAddressed: Output only. A boolean that indicates whether the rubric
      question is addressed or not.
    question: Output only. The question generated from instruction that used
      to evaluate summary.
  """

  isAddressed = _messages.BooleanField(1)
  question = _messages.StringField(2)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsConversationDetail(_messages.Message):
  r"""Aggregated evaluation result on conversation level. This conatins
  evaluation results of all the metrics and sections.

  Fields:
    messageEntries: Output only. Conversation transcript that used for
      summarization evaluation as a reference.
    metricDetails: Output only. List of metric details.
    sectionTokens: Output only. Conversation level token count per section.
      This is an aggregated(sum) result of input token of summary acorss all
      metrics for a single conversation.
    summarySections: Output only. Summary sections that used for summarization
      evaluation as a reference.
  """

  messageEntries = _messages.MessageField('GoogleCloudDialogflowV2MessageEntry', 1, repeated=True)
  metricDetails = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsConversationDetailMetricDetail', 2, repeated=True)
  sectionTokens = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsSectionToken', 3, repeated=True)
  summarySections = _messages.MessageField('GoogleCloudDialogflowV2SummarySuggestionSummarySection', 4, repeated=True)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsConversationDetailMetricDetail(_messages.Message):
  r"""Aggregated result on metric level. This conatins the evaluation results
  of all the sections.

  Fields:
    metric: Output only. Metrics name. e.g. accuracy, adherence, completeness.
    score: Output only. Aggregated(average) score on this metric across all
      sections.
    sectionDetails: Output only. List of section details.
  """

  metric = _messages.StringField(1)
  score = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  sectionDetails = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsConversationDetailMetricDetailSectionDetail', 3, repeated=True)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsConversationDetailMetricDetailSectionDetail(_messages.Message):
  r"""Section level result.

  Fields:
    evaluationResults: Output only. List of evaluation result. The list only
      contains one kind of the evaluation result.
    score: Output only. Aggregated(average) score on this section across all
      evaluation results. Either decompositions or rubrics.
    section: Output only. The name of the summary instruction.
    sectionSummary: Output only. Summary for this section
  """

  evaluationResults = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsEvaluationResult', 1, repeated=True)
  score = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  section = _messages.StringField(3)
  sectionSummary = _messages.StringField(4)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsDecomposition(_messages.Message):
  r"""Decomposition details

  Fields:
    accuracyDecomposition: only available for accuracy metric.
    adherenceDecomposition: only available for adherence metric.
  """

  accuracyDecomposition = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsAccuracyDecomposition', 1)
  adherenceDecomposition = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsAdherenceDecomposition', 2)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsEvaluationResult(_messages.Message):
  r"""Evaluation result that contains one of accuracy, adherence or
  completeness evaluation result.

  Fields:
    accuracyDecomposition: Only available for accuracy metric.
    adherenceRubric: Only available for adherence metric.
    completenessRubric: Only available for completeness metric.
  """

  accuracyDecomposition = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsAccuracyDecomposition', 1)
  adherenceRubric = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsAdherenceRubric', 2)
  completenessRubric = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsCompletenessRubric', 3)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsOverallScoresByMetric(_messages.Message):
  r"""Overall performance per metric. This is the aggregated score for each
  metric across all conversations that are selected for summarization
  evaluation.

  Fields:
    metric: Output only. Metric name. e.g. accuracy, adherence, completeness.
  """

  metric = _messages.StringField(1)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsSectionToken(_messages.Message):
  r"""A pair of section name and input token count of the input summary
  section.

  Fields:
    section: Output only. The name of the summary instruction.
    tokenCount: Output only. Token count.
  """

  section = _messages.StringField(1)
  tokenCount = _messages.IntegerField(2)


class GoogleCloudDialogflowV2SummarizationEvaluationMetricsSummarizationEvaluationResult(_messages.Message):
  r"""Evaluation result per conversation(&summary), metric and section.

  Fields:
    decompositions: Output only. List of decompostion details
    evaluationResults: Output only. List of evaluation results.
    metric: Output only. metric name, e.g. accuracy, completeness, adherence,
      etc.
    score: Output only. score calculated from decompositions
    section: Output only. section/task name, e.g. action, situation, etc
    sectionSummary: Output only. Summary of this section
    sessionId: Output only. conversation session id
  """

  decompositions = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsDecomposition', 1, repeated=True)
  evaluationResults = _messages.MessageField('GoogleCloudDialogflowV2SummarizationEvaluationMetricsEvaluationResult', 2, repeated=True)
  metric = _messages.StringField(3)
  score = _messages.FloatField(4, variant=_messages.Variant.FLOAT)
  section = _messages.StringField(5)
  sectionSummary = _messages.StringField(6)
  sessionId = _messages.StringField(7)


class GoogleCloudDialogflowV2SummarizationSection(_messages.Message):
  r"""Represents the section of summarization.

  Enums:
    TypeValueValuesEnum: Optional. Type of the summarization section.

  Fields:
    definition: Optional. Definition of the section, for example, "what the
      customer needs help with or has question about."
    key: Optional. Name of the section, for example, "situation".
    type: Optional. Type of the summarization section.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Optional. Type of the summarization section.

    Values:
      TYPE_UNSPECIFIED: Undefined section type, does not return anything.
      SITUATION: What the customer needs help with or has question about.
        Section name: "situation".
      ACTION: What the agent does to help the customer. Section name:
        "action".
      RESOLUTION: Result of the customer service. A single word describing the
        result of the conversation. Section name: "resolution".
      REASON_FOR_CANCELLATION: Reason for cancellation if the customer
        requests for a cancellation. "N/A" otherwise. Section name:
        "reason_for_cancellation".
      CUSTOMER_SATISFACTION: "Unsatisfied" or "Satisfied" depending on the
        customer's feelings at the end of the conversation. Section name:
        "customer_satisfaction".
      ENTITIES: Key entities extracted from the conversation, such as ticket
        number, order number, dollar amount, etc. Section names are prefixed
        by "entities/".
      CUSTOMER_DEFINED: Customer defined sections.
      SITUATION_CONCISE: Concise version of the situation section. This type
        is only available if type SITUATION is not selected.
      ACTION_CONCISE: Concise version of the action section. This type is only
        available if type ACTION is not selected.
    """
    TYPE_UNSPECIFIED = 0
    SITUATION = 1
    ACTION = 2
    RESOLUTION = 3
    REASON_FOR_CANCELLATION = 4
    CUSTOMER_SATISFACTION = 5
    ENTITIES = 6
    CUSTOMER_DEFINED = 7
    SITUATION_CONCISE = 8
    ACTION_CONCISE = 9

  definition = _messages.StringField(1)
  key = _messages.StringField(2)
  type = _messages.EnumField('TypeValueValuesEnum', 3)


class GoogleCloudDialogflowV2SummarizationSectionList(_messages.Message):
  r"""List of summarization sections.

  Fields:
    summarizationSections: Optional. Summarization sections.
  """

  summarizationSections = _messages.MessageField('GoogleCloudDialogflowV2SummarizationSection', 1, repeated=True)


class GoogleCloudDialogflowV2SummarySuggestion(_messages.Message):
  r"""Suggested summary of the conversation.

  Fields:
    summarySections: Required. All the parts of generated summary.
  """

  summarySections = _messages.MessageField('GoogleCloudDialogflowV2SummarySuggestionSummarySection', 1, repeated=True)


class GoogleCloudDialogflowV2SummarySuggestionSummarySection(_messages.Message):
  r"""A component of the generated summary.

  Fields:
    section: Required. Name of the section.
    summary: Required. Summary text for the section.
  """

  section = _messages.StringField(1)
  summary = _messages.StringField(2)


class GoogleCloudDialogflowV2SynthesizeSpeechConfig(_messages.Message):
  r"""Configuration of how speech should be synthesized.

  Fields:
    effectsProfileId: Optional. An identifier which selects 'audio effects'
      profiles that are applied on (post synthesized) text to speech. Effects
      are applied on top of each other in the order they are given.
    pitch: Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means
      increase 20 semitones from the original pitch. -20 means decrease 20
      semitones from the original pitch.
    pronunciations: Optional. The custom pronunciations for the synthesized
      audio.
    speakingRate: Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0
      is the normal native speed supported by the specific voice. 2.0 is twice
      as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native
      1.0 speed. Any other values < 0.25 or > 4.0 will return an error.
    voice: Optional. The desired voice of the synthesized audio.
    volumeGainDb: Optional. Volume gain (in dB) of the normal native volume
      supported by the specific voice, in the range [-96.0, 16.0]. If unset,
      or set to a value of 0.0 (dB), will play at normal native signal
      amplitude. A value of -6.0 (dB) will play at approximately half the
      amplitude of the normal native signal amplitude. A value of +6.0 (dB)
      will play at approximately twice the amplitude of the normal native
      signal amplitude. We strongly recommend not to exceed +10 (dB) as
      there's usually no effective increase in loudness for any value greater
      than that.
  """

  effectsProfileId = _messages.StringField(1, repeated=True)
  pitch = _messages.FloatField(2)
  pronunciations = _messages.MessageField('GoogleCloudDialogflowV2CustomPronunciationParams', 3, repeated=True)
  speakingRate = _messages.FloatField(4)
  voice = _messages.MessageField('GoogleCloudDialogflowV2VoiceSelectionParams', 5)
  volumeGainDb = _messages.FloatField(6)


class GoogleCloudDialogflowV2TextInput(_messages.Message):
  r"""Auxiliary proto messages. Represents the natural language text to be
  processed.

  Fields:
    languageCode: Required. The language of this conversational query. See
      [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes. Note that queries
      in the same session do not necessarily need to specify the same
      language.
    text: Required. The UTF-8 encoded natural language text to be processed.
      Text length must not exceed 256 characters for virtual agent
      interactions.
  """

  languageCode = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowV2TextToSpeechSettings(_messages.Message):
  r"""Instructs the speech synthesizer on how to generate the output audio
  content.

  Enums:
    OutputAudioEncodingValueValuesEnum: Required. Audio encoding of the
      synthesized audio content.

  Messages:
    SynthesizeSpeechConfigsValue: Optional. Configuration of how speech should
      be synthesized, mapping from language
      (https://cloud.google.com/dialogflow/docs/reference/language) to
      SynthesizeSpeechConfig.

  Fields:
    enableTextToSpeech: Optional. Indicates whether text to speech is enabled.
      Even when this field is false, other settings in this proto are still
      retained.
    outputAudioEncoding: Required. Audio encoding of the synthesized audio
      content.
    sampleRateHertz: Optional. The synthesis sample rate (in hertz) for this
      audio. If not provided, then the synthesizer will use the default sample
      rate based on the audio encoding. If this is different from the voice's
      natural sample rate, then the synthesizer will honor this request by
      converting to the desired sample rate (which might result in worse audio
      quality).
    synthesizeSpeechConfigs: Optional. Configuration of how speech should be
      synthesized, mapping from language
      (https://cloud.google.com/dialogflow/docs/reference/language) to
      SynthesizeSpeechConfig.
  """

  class OutputAudioEncodingValueValuesEnum(_messages.Enum):
    r"""Required. Audio encoding of the synthesized audio content.

    Values:
      OUTPUT_AUDIO_ENCODING_UNSPECIFIED: Not specified.
      OUTPUT_AUDIO_ENCODING_LINEAR_16: Uncompressed 16-bit signed little-
        endian samples (Linear PCM). Audio content returned as LINEAR16 also
        contains a WAV header.
      OUTPUT_AUDIO_ENCODING_MP3: MP3 audio at 32kbps.
      OUTPUT_AUDIO_ENCODING_MP3_64_KBPS: MP3 audio at 64kbps.
      OUTPUT_AUDIO_ENCODING_OGG_OPUS: Opus encoded audio wrapped in an ogg
        container. The result will be a file which can be played natively on
        Android, and in browsers (at least Chrome and Firefox). The quality of
        the encoding is considerably higher than MP3 while using approximately
        the same bitrate.
      OUTPUT_AUDIO_ENCODING_MULAW: 8-bit samples that compand 14-bit audio
        samples using G.711 PCMU/mu-law.
      OUTPUT_AUDIO_ENCODING_ALAW: 8-bit samples that compand 13-bit audio
        samples using G.711 PCMU/a-law.
    """
    OUTPUT_AUDIO_ENCODING_UNSPECIFIED = 0
    OUTPUT_AUDIO_ENCODING_LINEAR_16 = 1
    OUTPUT_AUDIO_ENCODING_MP3 = 2
    OUTPUT_AUDIO_ENCODING_MP3_64_KBPS = 3
    OUTPUT_AUDIO_ENCODING_OGG_OPUS = 4
    OUTPUT_AUDIO_ENCODING_MULAW = 5
    OUTPUT_AUDIO_ENCODING_ALAW = 6

  @encoding.MapUnrecognizedFields('additionalProperties')
  class SynthesizeSpeechConfigsValue(_messages.Message):
    r"""Optional. Configuration of how speech should be synthesized, mapping
    from language
    (https://cloud.google.com/dialogflow/docs/reference/language) to
    SynthesizeSpeechConfig.

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

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

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

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

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

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

  enableTextToSpeech = _messages.BooleanField(1)
  outputAudioEncoding = _messages.EnumField('OutputAudioEncodingValueValuesEnum', 2)
  sampleRateHertz = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  synthesizeSpeechConfigs = _messages.MessageField('SynthesizeSpeechConfigsValue', 4)


class GoogleCloudDialogflowV2Tool(_messages.Message):
  r"""Represents a tool.

  Messages:
    ActionConfirmationRequirementValue: Optional. Confirmation requirement for
      the actions. Each key is an action name in the action_schemas. If an
      action's confirmation requirement is unspecified (either the key is not
      present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the
      requirement is inferred from the action's method_type - confirmation is
      not required if and only if method_type is GET.

  Fields:
    actionConfirmationRequirement: Optional. Confirmation requirement for the
      actions. Each key is an action name in the action_schemas. If an
      action's confirmation requirement is unspecified (either the key is not
      present, or its value is CONFIRMATION_REQUIREMENT_UNSPECIFIED), the
      requirement is inferred from the action's method_type - confirmation is
      not required if and only if method_type is GET.
    connectorSpec: Integration connectors tool specification.
    createTime: Output only. Creation time of this tool.
    description: Optional. A human readable description of the tool.
    displayName: Optional. A human readable short name of the tool, to be
      shown on the UI.
    extensionSpec: Vertex extension tool specification.
    functionSpec: Client side executed function specification.
    name: Output only. Identifier. The resource name of the tool. Format:
      `projects//locations//tools/`.
    openApiSpec: OpenAPI tool.
    satisfiesPzi: Output only. A read only boolean field reflecting Zone
      Isolation status of the tool. If the field is absent, it means the
      status is unknown.
    satisfiesPzs: Output only. A read only boolean field reflecting Zone
      Separation status of the tool. If the field is absent, it means the
      status is unknown.
    toolKey: Required. A human readable short name of the tool, which should
      be unique within the project. It should only contain letters, numbers,
      and underscores, and it will be used by LLM to identify the tool.
    updateTime: Output only. Update time of this tool.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ActionConfirmationRequirementValue(_messages.Message):
    r"""Optional. Confirmation requirement for the actions. Each key is an
    action name in the action_schemas. If an action's confirmation requirement
    is unspecified (either the key is not present, or its value is
    CONFIRMATION_REQUIREMENT_UNSPECIFIED), the requirement is inferred from
    the action's method_type - confirmation is not required if and only if
    method_type is GET.

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

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

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

      Enums:
        ValueValueValuesEnum:

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

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

        Values:
          CONFIRMATION_REQUIREMENT_UNSPECIFIED: Unspecified. Whether the
            action requires confirmation is inferred from method_type.
          REQUIRED: Conformation is required.
          NOT_REQUIRED: Conformation is not required.
        """
        CONFIRMATION_REQUIREMENT_UNSPECIFIED = 0
        REQUIRED = 1
        NOT_REQUIRED = 2

      key = _messages.StringField(1)
      value = _messages.EnumField('ValueValueValuesEnum', 2)

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

  actionConfirmationRequirement = _messages.MessageField('ActionConfirmationRequirementValue', 1)
  connectorSpec = _messages.MessageField('GoogleCloudDialogflowV2ToolConnectorTool', 2)
  createTime = _messages.StringField(3)
  description = _messages.StringField(4)
  displayName = _messages.StringField(5)
  extensionSpec = _messages.MessageField('GoogleCloudDialogflowV2ToolExtensionTool', 6)
  functionSpec = _messages.MessageField('GoogleCloudDialogflowV2ToolFunctionTool', 7)
  name = _messages.StringField(8)
  openApiSpec = _messages.MessageField('GoogleCloudDialogflowV2ToolOpenApiTool', 9)
  satisfiesPzi = _messages.BooleanField(10)
  satisfiesPzs = _messages.BooleanField(11)
  toolKey = _messages.StringField(12)
  updateTime = _messages.StringField(13)


class GoogleCloudDialogflowV2ToolAuthentication(_messages.Message):
  r"""Authentication information required for API calls

  Fields:
    apiKeyConfig: Config for API key auth.
    bearerTokenConfig: Config for bearer token auth.
    oauthConfig: Config for OAuth.
    serviceAgentAuthConfig: Config for [Diglogflow service
      agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-
      service-agent) auth.
  """

  apiKeyConfig = _messages.MessageField('GoogleCloudDialogflowV2ToolAuthenticationApiKeyConfig', 1)
  bearerTokenConfig = _messages.MessageField('GoogleCloudDialogflowV2ToolAuthenticationBearerTokenConfig', 2)
  oauthConfig = _messages.MessageField('GoogleCloudDialogflowV2ToolAuthenticationOAuthConfig', 3)
  serviceAgentAuthConfig = _messages.MessageField('GoogleCloudDialogflowV2ToolAuthenticationServiceAgentAuthConfig', 4)


class GoogleCloudDialogflowV2ToolAuthenticationApiKeyConfig(_messages.Message):
  r"""Config for authentication with API key.

  Enums:
    RequestLocationValueValuesEnum: Required. Key location in the request.

  Fields:
    apiKey: Optional. The API key. If the `secret_version_for_api_key` field
      is set, this field will be ignored.
    keyName: Required. The parameter name or the header name of the API key.
      E.g., If the API request is "https://example.com/act?X-Api-Key=",
      "X-Api-Key" would be the parameter name.
    requestLocation: Required. Key location in the request.
    secretVersionForApiKey: Optional. The name of the SecretManager secret
      version resource storing the API key. If this field is set, the
      `api_key` field will be ignored. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
  """

  class RequestLocationValueValuesEnum(_messages.Enum):
    r"""Required. Key location in the request.

    Values:
      REQUEST_LOCATION_UNSPECIFIED: Default value. This value is unused.
      HEADER: Represents the key in http header.
      QUERY_STRING: Represents the key in query string.
    """
    REQUEST_LOCATION_UNSPECIFIED = 0
    HEADER = 1
    QUERY_STRING = 2

  apiKey = _messages.StringField(1)
  keyName = _messages.StringField(2)
  requestLocation = _messages.EnumField('RequestLocationValueValuesEnum', 3)
  secretVersionForApiKey = _messages.StringField(4)


class GoogleCloudDialogflowV2ToolAuthenticationBearerTokenConfig(_messages.Message):
  r"""Config for authentication using bearer token.

  Fields:
    secretVersionForToken: Optional. The name of the SecretManager secret
      version resource storing the Bearer token. If this field is set, the
      `token` field will be ignored. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
    token: Optional. The text token appended to the text `Bearer` to the
      request Authorization header. [Session parameters reference](https://clo
      ud.google.com/dialogflow/cx/docs/concept/parameter#session-ref) can be
      used to pass the token dynamically, e.g. `$session.params.parameter-id`.
  """

  secretVersionForToken = _messages.StringField(1)
  token = _messages.StringField(2)


class GoogleCloudDialogflowV2ToolAuthenticationOAuthConfig(_messages.Message):
  r"""Config for authentication with OAuth.

  Enums:
    OauthGrantTypeValueValuesEnum: Required. OAuth grant types.

  Fields:
    clientId: Required. The client ID from the OAuth provider.
    clientSecret: Optional. The client secret from the OAuth provider. If the
      `secret_version_for_client_secret` field is set, this field will be
      ignored.
    oauthGrantType: Required. OAuth grant types.
    scopes: Optional. The OAuth scopes to grant.
    secretVersionForClientSecret: Optional. The name of the SecretManager
      secret version resource storing the client secret. If this field is set,
      the `client_secret` field will be ignored. Format:
      `projects/{project}/secrets/{secret}/versions/{version}`
    tokenEndpoint: Required. The token endpoint in the OAuth provider to
      exchange for an access token.
  """

  class OauthGrantTypeValueValuesEnum(_messages.Enum):
    r"""Required. OAuth grant types.

    Values:
      OAUTH_GRANT_TYPE_UNSPECIFIED: Default value. This value is unused.
      CLIENT_CREDENTIAL: Represents the [client credential
        flow](https://oauth.net/2/grant-types/client-credentials).
    """
    OAUTH_GRANT_TYPE_UNSPECIFIED = 0
    CLIENT_CREDENTIAL = 1

  clientId = _messages.StringField(1)
  clientSecret = _messages.StringField(2)
  oauthGrantType = _messages.EnumField('OauthGrantTypeValueValuesEnum', 3)
  scopes = _messages.StringField(4, repeated=True)
  secretVersionForClientSecret = _messages.StringField(5)
  tokenEndpoint = _messages.StringField(6)


class GoogleCloudDialogflowV2ToolAuthenticationServiceAgentAuthConfig(_messages.Message):
  r"""Config for auth using [Dialogflow service
  agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-service-
  agent).

  Enums:
    ServiceAgentAuthValueValuesEnum: Optional. Indicate the auth token type
      generated from the [Diglogflow service
      agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-
      service-agent). The generated token is sent in the Authorization header.

  Fields:
    serviceAgentAuth: Optional. Indicate the auth token type generated from
      the [Diglogflow service
      agent](https://cloud.google.com/iam/docs/service-agents#dialogflow-
      service-agent). The generated token is sent in the Authorization header.
  """

  class ServiceAgentAuthValueValuesEnum(_messages.Enum):
    r"""Optional. Indicate the auth token type generated from the [Diglogflow
    service agent](https://cloud.google.com/iam/docs/service-
    agents#dialogflow-service-agent). The generated token is sent in the
    Authorization header.

    Values:
      SERVICE_AGENT_AUTH_UNSPECIFIED: Service agent auth type unspecified.
        Default to ID_TOKEN.
      ID_TOKEN: Use [ID
        token](https://cloud.google.com/docs/authentication/token-types#id)
        generated from service agent. This can be used to access Cloud
        Function and Cloud Run after you grant Invoker role to `service-@gcp-
        sa-dialogflow.iam.gserviceaccount.com`.
      ACCESS_TOKEN: Use [access
        token](https://cloud.google.com/docs/authentication/token-
        types#access) generated from service agent. This can be used to access
        other Google Cloud APIs after you grant required roles to
        `service-@gcp-sa-dialogflow.iam.gserviceaccount.com`.
    """
    SERVICE_AGENT_AUTH_UNSPECIFIED = 0
    ID_TOKEN = 1
    ACCESS_TOKEN = 2

  serviceAgentAuth = _messages.EnumField('ServiceAgentAuthValueValuesEnum', 1)


class GoogleCloudDialogflowV2ToolCall(_messages.Message):
  r"""Represents a call of a specific tool's action with the specified inputs.

  Enums:
    StateValueValuesEnum: Output only. State of the tool call.

  Messages:
    InputParametersValue: Optional. The action's input parameters.

  Fields:
    action: Optional. The name of the tool's action associated with this call.
    answerRecord: Optional. The answer record associated with this tool call.
    createTime: Output only. Create time of the tool call.
    inputParameters: Optional. The action's input parameters.
    state: Output only. State of the tool call.
    tool: Optional. The tool associated with this call. Format:
      `projects//locations//tools/`.
    toolDisplayDetails: Optional. A human readable description of the tool.
    toolDisplayName: Optional. A human readable short name of the tool, to be
      shown on the UI.
  """

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

    Values:
      STATE_UNSPECIFIED: Default value.
      TRIGGERED: The tool call has been triggered.
      NEEDS_CONFIRMATION: The tool call requires confirmation from a human.
    """
    STATE_UNSPECIFIED = 0
    TRIGGERED = 1
    NEEDS_CONFIRMATION = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InputParametersValue(_messages.Message):
    r"""Optional. The action's input parameters.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  answerRecord = _messages.StringField(2)
  createTime = _messages.StringField(3)
  inputParameters = _messages.MessageField('InputParametersValue', 4)
  state = _messages.EnumField('StateValueValuesEnum', 5)
  tool = _messages.StringField(6)
  toolDisplayDetails = _messages.StringField(7)
  toolDisplayName = _messages.StringField(8)


class GoogleCloudDialogflowV2ToolCallResult(_messages.Message):
  r"""The result of calling a tool's action.

  Fields:
    action: Optional. The name of the tool's action associated with this call.
    answerRecord: Optional. The answer record associated with this tool call
      result.
    content: Only populated if the response content is utf-8 encoded.
    createTime: Output only. Create time of the tool call result.
    error: The tool call's error.
    rawContent: Only populated if the response content is not utf-8 encoded.
      (by definition byte fields are base64 encoded).
    tool: Optional. The tool associated with this call. Format:
      `projects//locations//tools/`.
  """

  action = _messages.StringField(1)
  answerRecord = _messages.StringField(2)
  content = _messages.StringField(3)
  createTime = _messages.StringField(4)
  error = _messages.MessageField('GoogleCloudDialogflowV2ToolCallResultError', 5)
  rawContent = _messages.BytesField(6)
  tool = _messages.StringField(7)


class GoogleCloudDialogflowV2ToolCallResultError(_messages.Message):
  r"""An error produced by the tool call.

  Fields:
    message: Optional. The error message of the function.
  """

  message = _messages.StringField(1)


class GoogleCloudDialogflowV2ToolConnectorTool(_messages.Message):
  r"""A ConnectorTool enabling using Integration Connectors Connections as
  tools.

  Fields:
    actions: Required. Actions for the tool to use.
    name: Required. The full resource name of the referenced Integration
      Connectors Connection. Format: 'projects/*/locations/*/connections/*'
  """

  actions = _messages.MessageField('GoogleCloudDialogflowV2ToolConnectorToolAction', 1, repeated=True)
  name = _messages.StringField(2)


class GoogleCloudDialogflowV2ToolConnectorToolAction(_messages.Message):
  r"""Configuration of a Connection operation for the tool to use.

  Fields:
    connectionActionId: ID of a Connection action for the tool to use.
    entityOperation: Entity operation configuration for the tool to use.
    inputFields: Optional. Entity fields to use as inputs for the operation.
      If no fields are specified, all fields of the Entity will be used.
    outputFields: Optional. Entity fields to return from the operation. If no
      fields are specified, all fields of the Entity will be returned.
  """

  connectionActionId = _messages.StringField(1)
  entityOperation = _messages.MessageField('GoogleCloudDialogflowV2ToolConnectorToolActionEntityOperation', 2)
  inputFields = _messages.StringField(3, repeated=True)
  outputFields = _messages.StringField(4, repeated=True)


class GoogleCloudDialogflowV2ToolConnectorToolActionEntityOperation(_messages.Message):
  r"""Entity CRUD operation specification.

  Enums:
    OperationValueValuesEnum: Required. Operation to perform on the entity.

  Fields:
    entityId: Required. ID of the entity.
    operation: Required. Operation to perform on the entity.
  """

  class OperationValueValuesEnum(_messages.Enum):
    r"""Required. Operation to perform on the entity.

    Values:
      OPERATION_TYPE_UNSPECIFIED: Operation type unspecified. Invalid,
        ConnectorTool create/update will fail.
      LIST: List operation.
      GET: Get operation.
      CREATE: Create operation.
      UPDATE: Update operation.
      DELETE: Delete operation.
    """
    OPERATION_TYPE_UNSPECIFIED = 0
    LIST = 1
    GET = 2
    CREATE = 3
    UPDATE = 4
    DELETE = 5

  entityId = _messages.StringField(1)
  operation = _messages.EnumField('OperationValueValuesEnum', 2)


class GoogleCloudDialogflowV2ToolExtensionTool(_messages.Message):
  r"""An ExtensionTool is a way to use Vertex Extensions as a tool.

  Fields:
    name: Required. The full name of the referenced vertex extension. Format:
      `projects/{project}/locations/{location}/extensions/{extension}`
  """

  name = _messages.StringField(1)


class GoogleCloudDialogflowV2ToolFunctionTool(_messages.Message):
  r"""A Function tool describes the functions to be invoked on the client
  side.

  Enums:
    MethodTypeValueValuesEnum: Optional. The method type of the function. If
      not specified, the default value is GET.

  Messages:
    InputSchemaValue: Optional. The JSON schema is encapsulated in a
      google.protobuf.Struct to describe the input of the function. This input
      is a JSON object that contains the function's parameters as properties
      of the object.
    OutputSchemaValue: Optional. The JSON schema is encapsulated in a
      google.protobuf.Struct to describe the output of the function. This
      output is a JSON object that contains the function's parameters as
      properties of the object.

  Fields:
    inputSchema: Optional. The JSON schema is encapsulated in a
      google.protobuf.Struct to describe the input of the function. This input
      is a JSON object that contains the function's parameters as properties
      of the object.
    methodType: Optional. The method type of the function. If not specified,
      the default value is GET.
    outputSchema: Optional. The JSON schema is encapsulated in a
      google.protobuf.Struct to describe the output of the function. This
      output is a JSON object that contains the function's parameters as
      properties of the object.
  """

  class MethodTypeValueValuesEnum(_messages.Enum):
    r"""Optional. The method type of the function. If not specified, the
    default value is GET.

    Values:
      METHOD_TYPE_UNSPECIFIED: Unspecified.
      GET: GET method.
      POST: POST method.
      PUT: PUT method.
      DELETE: DELETE method.
      PATCH: PATCH method.
    """
    METHOD_TYPE_UNSPECIFIED = 0
    GET = 1
    POST = 2
    PUT = 3
    DELETE = 4
    PATCH = 5

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InputSchemaValue(_messages.Message):
    r"""Optional. The JSON schema is encapsulated in a google.protobuf.Struct
    to describe the input of the function. This input is a JSON object that
    contains the function's parameters as properties of the object.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a InputSchemaValue 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 OutputSchemaValue(_messages.Message):
    r"""Optional. The JSON schema is encapsulated in a google.protobuf.Struct
    to describe the output of the function. This output is a JSON object that
    contains the function's parameters as properties of the object.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  inputSchema = _messages.MessageField('InputSchemaValue', 1)
  methodType = _messages.EnumField('MethodTypeValueValuesEnum', 2)
  outputSchema = _messages.MessageField('OutputSchemaValue', 3)


class GoogleCloudDialogflowV2ToolOpenApiTool(_messages.Message):
  r"""An OpenAPI tool is a way to provide the Tool specifications in the Open
  API schema format.

  Fields:
    authentication: Optional. Authentication information required by the API.
    serviceDirectoryConfig: Optional. Service Directory configuration.
    textSchema: Required. The OpenAPI schema specified as a text.
    tlsConfig: Optional. TLS configuration for the HTTPS verification.
  """

  authentication = _messages.MessageField('GoogleCloudDialogflowV2ToolAuthentication', 1)
  serviceDirectoryConfig = _messages.MessageField('GoogleCloudDialogflowV2ToolServiceDirectoryConfig', 2)
  textSchema = _messages.StringField(3)
  tlsConfig = _messages.MessageField('GoogleCloudDialogflowV2ToolTLSConfig', 4)


class GoogleCloudDialogflowV2ToolServiceDirectoryConfig(_messages.Message):
  r"""Configuration for tools using Service Directory.

  Fields:
    service: Required. The name of [Service
      Directory](https://cloud.google.com/service-directory) service. Format:
      `projects//locations//namespaces//services/`. `LocationID` of the
      service directory must be the same as the location of the tool.
  """

  service = _messages.StringField(1)


class GoogleCloudDialogflowV2ToolTLSConfig(_messages.Message):
  r"""The TLS configuration.

  Fields:
    caCerts: Required. Specifies a list of allowed custom CA certificates for
      HTTPS verification.
  """

  caCerts = _messages.MessageField('GoogleCloudDialogflowV2ToolTLSConfigCACert', 1, repeated=True)


class GoogleCloudDialogflowV2ToolTLSConfigCACert(_messages.Message):
  r"""The CA certificate.

  Fields:
    cert: Required. The allowed custom CA certificates (in DER format) for
      HTTPS verification. This overrides the default SSL trust store. If this
      is empty or unspecified, Dialogflow will use Google's default trust
      store to verify certificates. N.B. Make sure the HTTPS server
      certificates are signed with "subject alt name". For instance a
      certificate can be self-signed using the following command, ``` openssl
      x509 -req -days 200 -in example.com.csr \ -signkey example.com.key \
      -out example.com.crt \ -extfile <(printf
      "\nsubjectAltName='DNS:www.example.com'") ```
    displayName: Required. The name of the allowed custom CA certificates.
      This can be used to disambiguate the custom CA certificates.
  """

  cert = _messages.BytesField(1)
  displayName = _messages.StringField(2)


class GoogleCloudDialogflowV2TrainAgentRequest(_messages.Message):
  r"""The request message for Agents.TrainAgent."""


class GoogleCloudDialogflowV2UndeployConversationModelOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationModels.UndeployConversationModel operation.

  Fields:
    conversationModel: The resource name of the conversation model. Format:
      `projects//conversationModels/`
    createTime: Timestamp when the request to undeploy conversation model was
      submitted. The time is measured on server side.
    doneTime: The time when the operation finished.
  """

  conversationModel = _messages.StringField(1)
  createTime = _messages.StringField(2)
  doneTime = _messages.StringField(3)


class GoogleCloudDialogflowV2UndeployConversationModelRequest(_messages.Message):
  r"""The request message for ConversationModels.UndeployConversationModel"""


class GoogleCloudDialogflowV2ValidationError(_messages.Message):
  r"""Represents a single validation error.

  Enums:
    SeverityValueValuesEnum: The severity of the error.

  Fields:
    entries: The names of the entries that the error is associated with.
      Format: - `projects//agent`, if the error is associated with the entire
      agent. - `projects//agent/intents/`, if the error is associated with
      certain intents. - `projects//agent/intents//trainingPhrases/`, if the
      error is associated with certain intent training phrases. -
      `projects//agent/intents//parameters/`, if the error is associated with
      certain intent parameters. - `projects//agent/entities/`, if the error
      is associated with certain entities.
    errorMessage: The detailed error message.
    severity: The severity of the error.
  """

  class SeverityValueValuesEnum(_messages.Enum):
    r"""The severity of the error.

    Values:
      SEVERITY_UNSPECIFIED: Not specified. This value should never be used.
      INFO: The agent doesn't follow Dialogflow best practices.
      WARNING: The agent may not behave as expected.
      ERROR: The agent may experience partial failures.
      CRITICAL: The agent may completely fail.
    """
    SEVERITY_UNSPECIFIED = 0
    INFO = 1
    WARNING = 2
    ERROR = 3
    CRITICAL = 4

  entries = _messages.StringField(1, repeated=True)
  errorMessage = _messages.StringField(2)
  severity = _messages.EnumField('SeverityValueValuesEnum', 3)


class GoogleCloudDialogflowV2ValidationResult(_messages.Message):
  r"""Represents the output of agent validation.

  Fields:
    validationErrors: Contains all validation errors.
  """

  validationErrors = _messages.MessageField('GoogleCloudDialogflowV2ValidationError', 1, repeated=True)


class GoogleCloudDialogflowV2Version(_messages.Message):
  r"""You can create multiple versions of your agent and publish them to
  separate environments. When you edit an agent, you are editing the draft
  agent. At any point, you can save the draft agent as an agent version, which
  is an immutable snapshot of your agent. When you save the draft agent, it is
  published to the default environment. When you create agent versions, you
  can publish them to custom environments. You can create a variety of custom
  environments for: - testing - development - production - etc. For more
  information, see the [versions and environments
  guide](https://cloud.google.com/dialogflow/docs/agents-versions).

  Enums:
    StatusValueValuesEnum: Output only. The status of this version. This field
      is read-only and cannot be set by create and update methods.

  Fields:
    createTime: Output only. The creation time of this version. This field is
      read-only, i.e., it cannot be set by create and update methods.
    description: Optional. The developer-provided description of this version.
    name: Output only. The unique identifier of this agent version. Supported
      formats: - `projects//agent/versions/` -
      `projects//locations//agent/versions/`
    status: Output only. The status of this version. This field is read-only
      and cannot be set by create and update methods.
    versionNumber: Output only. The sequential number of this version. This
      field is read-only which means it cannot be set by create and update
      methods.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""Output only. The status of this version. This field is read-only and
    cannot be set by create and update methods.

    Values:
      VERSION_STATUS_UNSPECIFIED: Not specified. This value is not used.
      IN_PROGRESS: Version is not ready to serve (e.g. training is in
        progress).
      READY: Version is ready to serve.
      FAILED: Version training failed.
    """
    VERSION_STATUS_UNSPECIFIED = 0
    IN_PROGRESS = 1
    READY = 2
    FAILED = 3

  createTime = _messages.StringField(1)
  description = _messages.StringField(2)
  name = _messages.StringField(3)
  status = _messages.EnumField('StatusValueValuesEnum', 4)
  versionNumber = _messages.IntegerField(5, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2VoiceSelectionParams(_messages.Message):
  r"""Description of which voice to use for speech synthesis.

  Enums:
    SsmlGenderValueValuesEnum: Optional. The preferred gender of the voice. If
      not set, the service will choose a voice based on the other parameters
      such as language_code and name. Note that this is only a preference, not
      requirement. If a voice of the appropriate gender is not available, the
      synthesizer should substitute a voice with a different gender rather
      than failing the request.

  Fields:
    name: Optional. The name of the voice. If not set, the service will choose
      a voice based on the other parameters such as language_code and
      ssml_gender.
    ssmlGender: Optional. The preferred gender of the voice. If not set, the
      service will choose a voice based on the other parameters such as
      language_code and name. Note that this is only a preference, not
      requirement. If a voice of the appropriate gender is not available, the
      synthesizer should substitute a voice with a different gender rather
      than failing the request.
  """

  class SsmlGenderValueValuesEnum(_messages.Enum):
    r"""Optional. The preferred gender of the voice. If not set, the service
    will choose a voice based on the other parameters such as language_code
    and name. Note that this is only a preference, not requirement. If a voice
    of the appropriate gender is not available, the synthesizer should
    substitute a voice with a different gender rather than failing the
    request.

    Values:
      SSML_VOICE_GENDER_UNSPECIFIED: An unspecified gender, which means that
        the client doesn't care which gender the selected voice will have.
      SSML_VOICE_GENDER_MALE: A male voice.
      SSML_VOICE_GENDER_FEMALE: A female voice.
      SSML_VOICE_GENDER_NEUTRAL: A gender-neutral voice.
    """
    SSML_VOICE_GENDER_UNSPECIFIED = 0
    SSML_VOICE_GENDER_MALE = 1
    SSML_VOICE_GENDER_FEMALE = 2
    SSML_VOICE_GENDER_NEUTRAL = 3

  name = _messages.StringField(1)
  ssmlGender = _messages.EnumField('SsmlGenderValueValuesEnum', 2)


class GoogleCloudDialogflowV2WebhookRequest(_messages.Message):
  r"""The request message for a webhook call.

  Fields:
    originalDetectIntentRequest: Optional. The contents of the original
      request that was passed to `[Streaming]DetectIntent` call.
    queryResult: The result of the conversational query or event processing.
      Contains the same value as
      `[Streaming]DetectIntentResponse.query_result`.
    responseId: The unique identifier of the response. Contains the same value
      as `[Streaming]DetectIntentResponse.response_id`.
    session: The unique identifier of detectIntent request session. Can be
      used to identify end-user inside webhook implementation. Format:
      `projects//agent/sessions/`, or
      `projects//agent/environments//users//sessions/`.
  """

  originalDetectIntentRequest = _messages.MessageField('GoogleCloudDialogflowV2OriginalDetectIntentRequest', 1)
  queryResult = _messages.MessageField('GoogleCloudDialogflowV2QueryResult', 2)
  responseId = _messages.StringField(3)
  session = _messages.StringField(4)


class GoogleCloudDialogflowV2WebhookResponse(_messages.Message):
  r"""The response message for a webhook call. This response is validated by
  the Dialogflow server. If validation fails, an error will be returned in the
  QueryResult.diagnostic_info field. Setting JSON fields to an empty value
  with the wrong type is a common error. To avoid this error: - Use `""` for
  empty strings - Use `{}` or `null` for empty objects - Use `[]` or `null`
  for empty arrays For more information, see the [Protocol Buffers Language
  Guide](https://developers.google.com/protocol-buffers/docs/proto3#json).

  Messages:
    PayloadValue: Optional. This field can be used to pass custom data from
      your webhook to the integration or API caller. Arbitrary JSON objects
      are supported. When provided, Dialogflow uses this field to populate
      QueryResult.webhook_payload sent to the integration or API caller. This
      field is also used by the [Google Assistant
      integration](https://cloud.google.com/dialogflow/docs/integrations/aog)
      for rich response messages. See the format definition at [Google
      Assistant Dialogflow webhook format](https://developers.google.com/assis
      tant/actions/build/json/dialogflow-webhook-json)

  Fields:
    followupEventInput: Optional. Invokes the supplied events. When this field
      is set, Dialogflow ignores the `fulfillment_text`,
      `fulfillment_messages`, and `payload` fields.
    fulfillmentMessages: Optional. The rich response messages intended for the
      end-user. When provided, Dialogflow uses this field to populate
      QueryResult.fulfillment_messages sent to the integration or API caller.
    fulfillmentText: Optional. The text response message intended for the end-
      user. It is recommended to use `fulfillment_messages.text.text[0]`
      instead. When provided, Dialogflow uses this field to populate
      QueryResult.fulfillment_text sent to the integration or API caller.
    outputContexts: Optional. The collection of output contexts that will
      overwrite currently active contexts for the session and reset their
      lifespans. When provided, Dialogflow uses this field to populate
      QueryResult.output_contexts sent to the integration or API caller.
    payload: Optional. This field can be used to pass custom data from your
      webhook to the integration or API caller. Arbitrary JSON objects are
      supported. When provided, Dialogflow uses this field to populate
      QueryResult.webhook_payload sent to the integration or API caller. This
      field is also used by the [Google Assistant
      integration](https://cloud.google.com/dialogflow/docs/integrations/aog)
      for rich response messages. See the format definition at [Google
      Assistant Dialogflow webhook format](https://developers.google.com/assis
      tant/actions/build/json/dialogflow-webhook-json)
    sessionEntityTypes: Optional. Additional session entity types to replace
      or extend developer entity types with. The entity synonyms apply to all
      languages and persist for the session. Setting this data from a webhook
      overwrites the session entity types that have been set using
      `detectIntent`, `streamingDetectIntent` or SessionEntityType management
      methods.
    source: Optional. A custom field used to identify the webhook source.
      Arbitrary strings are supported. When provided, Dialogflow uses this
      field to populate QueryResult.webhook_source sent to the integration or
      API caller.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Optional. This field can be used to pass custom data from your webhook
    to the integration or API caller. Arbitrary JSON objects are supported.
    When provided, Dialogflow uses this field to populate
    QueryResult.webhook_payload sent to the integration or API caller. This
    field is also used by the [Google Assistant
    integration](https://cloud.google.com/dialogflow/docs/integrations/aog)
    for rich response messages. See the format definition at [Google Assistant
    Dialogflow webhook format](https://developers.google.com/assistant/actions
    /build/json/dialogflow-webhook-json)

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  followupEventInput = _messages.MessageField('GoogleCloudDialogflowV2EventInput', 1)
  fulfillmentMessages = _messages.MessageField('GoogleCloudDialogflowV2IntentMessage', 2, repeated=True)
  fulfillmentText = _messages.StringField(3)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 4, repeated=True)
  payload = _messages.MessageField('PayloadValue', 5)
  sessionEntityTypes = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 6, repeated=True)
  source = _messages.StringField(7)


class GoogleCloudDialogflowV2beta1AgentCoachingInstruction(_messages.Message):
  r"""Agent Coaching instructions that customer can configure.

  Fields:
    agentAction: Optional. The action that human agent should take. For
      example, "apologize for the slow shipping". If the users only want to
      use agent coaching for intent detection, agent_action can be empty
    condition: Optional. The condition of the instruction. For example, "the
      customer wants to cancel an order". If the users want the instruction to
      be triggered unconditionally, the condition can be empty.
    displayDetails: Optional. The detailed description of this instruction.
    displayName: Optional. Display name for the instruction.
    duplicateCheckResult: Output only. Duplication check for the
      AgentCoachingInstruction.
    systemAction: Optional. The action that system should take. For example,
      "call GetOrderTime with order_number={order number provided by the
      customer}". If the users don't have plugins or don't want to trigger
      plugins, the system_action can be empty
  """

  agentAction = _messages.StringField(1)
  condition = _messages.StringField(2)
  displayDetails = _messages.StringField(3)
  displayName = _messages.StringField(4)
  duplicateCheckResult = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingInstructionDuplicateCheckResult', 5)
  systemAction = _messages.StringField(6)


class GoogleCloudDialogflowV2beta1AgentCoachingInstructionDuplicateCheckResult(_messages.Message):
  r"""Duplication check for the suggestion.

  Fields:
    duplicateSuggestions: Output only. The duplicate suggestions.
  """

  duplicateSuggestions = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingInstructionDuplicateCheckResultDuplicateSuggestion', 1, repeated=True)


class GoogleCloudDialogflowV2beta1AgentCoachingInstructionDuplicateCheckResultDuplicateSuggestion(_messages.Message):
  r"""The duplicate suggestion details.

  Fields:
    answerRecord: Output only. The answer record id of the past duplicate
      suggestion.
    similarityScore: Output only. The similarity score of between the past and
      current suggestion.
    suggestionIndex: Output only. The index of the duplicate suggestion in the
      past suggestion list.
  """

  answerRecord = _messages.StringField(1)
  similarityScore = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  suggestionIndex = _messages.IntegerField(3, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2beta1AgentCoachingSuggestion(_messages.Message):
  r"""Suggestion for coaching agents.

  Fields:
    agentActionSuggestions: Optional. Suggested actions for the agent to take.
    applicableInstructions: Optional. Instructions applicable based on the
      current context.
    sampleResponses: Optional. Sample response for the Agent.
  """

  agentActionSuggestions = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionAgentActionSuggestion', 1, repeated=True)
  applicableInstructions = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingInstruction', 2, repeated=True)
  sampleResponses = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionSampleResponse', 3, repeated=True)


class GoogleCloudDialogflowV2beta1AgentCoachingSuggestionAgentActionSuggestion(_messages.Message):
  r"""Actions suggested for the agent. This is based on applicable
  instructions.

  Fields:
    agentAction: Optional. The suggested action for the agent.
    duplicateCheckResult: Output only. Duplicate check result for the agent
      action suggestion.
    sources: Output only. Sources for the agent action suggestion.
  """

  agentAction = _messages.StringField(1)
  duplicateCheckResult = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionDuplicateCheckResult', 2)
  sources = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionSources', 3)


class GoogleCloudDialogflowV2beta1AgentCoachingSuggestionDuplicateCheckResult(_messages.Message):
  r"""Duplication check for the suggestion.

  Fields:
    duplicateSuggestions: Output only. The duplicate suggestions.
  """

  duplicateSuggestions = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionDuplicateCheckResultDuplicateSuggestion', 1, repeated=True)


class GoogleCloudDialogflowV2beta1AgentCoachingSuggestionDuplicateCheckResultDuplicateSuggestion(_messages.Message):
  r"""The duplicate suggestion details. Keeping answer_record and sources
  together as they are identifiers for duplicate suggestions.

  Fields:
    answerRecord: Output only. The answer record id of the past duplicate
      suggestion.
    similarityScore: Output only. The similarity score of between the past and
      current suggestion.
    sources: Output only. Sources for the suggestion.
    suggestionIndex: Output only. The index of the duplicate suggestion in the
      past suggestion list.
  """

  answerRecord = _messages.StringField(1)
  similarityScore = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  sources = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionSources', 3)
  suggestionIndex = _messages.IntegerField(4, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2beta1AgentCoachingSuggestionSampleResponse(_messages.Message):
  r"""Sample response that the agent can use. This could be based on
  applicable instructions and ingested data from other systems.

  Fields:
    duplicateCheckResult: Output only. Duplicate check result for the sample
      response.
    responseText: Optional. Sample response for Agent in text.
    sources: Output only. Sources for the Sample Response.
  """

  duplicateCheckResult = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionDuplicateCheckResult', 1)
  responseText = _messages.StringField(2)
  sources = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestionSources', 3)


class GoogleCloudDialogflowV2beta1AgentCoachingSuggestionSources(_messages.Message):
  r"""Sources for the suggestion.

  Fields:
    instructionIndexes: Output only. Source instruction indexes for the
      suggestion. This is the index of the applicable_instructions field.
  """

  instructionIndexes = _messages.IntegerField(1, repeated=True, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2beta1AnnotatedMessagePart(_messages.Message):
  r"""Represents a part of a message possibly annotated with an entity. The
  part can be an entity or purely a part of the message between two entities
  or message start/end.

  Fields:
    entityType: Optional. The [Dialogflow system entity
      type](https://cloud.google.com/dialogflow/docs/reference/system-
      entities) of this message part. If this is empty, Dialogflow could not
      annotate the phrase part with a system entity.
    formattedValue: Optional. The [Dialogflow system entity formatted value
      ](https://cloud.google.com/dialogflow/docs/reference/system-entities) of
      this message part. For example for a system entity of type `@sys.unit-
      currency`, this may contain: { "amount": 5, "currency": "USD" }
    text: Required. A part of a message possibly annotated with an entity.
  """

  entityType = _messages.StringField(1)
  formattedValue = _messages.MessageField('extra_types.JsonValue', 2)
  text = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1ArticleAnswer(_messages.Message):
  r"""Represents article answer.

  Messages:
    MetadataValue: A map that contains metadata about the answer and the
      document from which it originates.

  Fields:
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    metadata: A map that contains metadata about the answer and the document
      from which it originates.
    snippets: Output only. Article snippets.
    title: The article title.
    uri: The article URI.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""A map that contains metadata about the answer and the document from
    which it originates.

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

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

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

  answerRecord = _messages.StringField(1)
  metadata = _messages.MessageField('MetadataValue', 2)
  snippets = _messages.StringField(3, repeated=True)
  title = _messages.StringField(4)
  uri = _messages.StringField(5)


class GoogleCloudDialogflowV2beta1BatchUpdateEntityTypesResponse(_messages.Message):
  r"""The response message for EntityTypes.BatchUpdateEntityTypes.

  Fields:
    entityTypes: The collection of updated or created entity types.
  """

  entityTypes = _messages.MessageField('GoogleCloudDialogflowV2beta1EntityType', 1, repeated=True)


class GoogleCloudDialogflowV2beta1BatchUpdateIntentsResponse(_messages.Message):
  r"""The response message for Intents.BatchUpdateIntents.

  Fields:
    intents: The collection of updated or created intents.
  """

  intents = _messages.MessageField('GoogleCloudDialogflowV2beta1Intent', 1, repeated=True)


class GoogleCloudDialogflowV2beta1ClearSuggestionFeatureConfigOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationProfile.ClearSuggestionFeatureConfig
  operation.

  Enums:
    ParticipantRoleValueValuesEnum: Required. The participant role to remove
      the suggestion feature config. Only HUMAN_AGENT or END_USER can be used.
    SuggestionFeatureTypeValueValuesEnum: Required. The type of the suggestion
      feature to remove.

  Fields:
    conversationProfile: The resource name of the conversation profile.
      Format: `projects//locations//conversationProfiles/`
    createTime: Timestamp whe the request was created. The time is measured on
      server side.
    participantRole: Required. The participant role to remove the suggestion
      feature config. Only HUMAN_AGENT or END_USER can be used.
    suggestionFeatureType: Required. The type of the suggestion feature to
      remove.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Required. The participant role to remove the suggestion feature
    config. Only HUMAN_AGENT or END_USER can be used.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  class SuggestionFeatureTypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the suggestion feature to remove.

    Values:
      TYPE_UNSPECIFIED: Unspecified feature type.
      ARTICLE_SUGGESTION: Run article suggestion model for chat.
      FAQ: Run FAQ model.
      SMART_REPLY: Run smart reply model for chat.
      DIALOGFLOW_ASSIST: Run Dialogflow assist model for chat, which will
        return automated agent response as suggestion.
      CONVERSATION_SUMMARIZATION: Run conversation summarization model for
        chat.
      KNOWLEDGE_SEARCH: Run knowledge search with text input from agent or
        text generated query.
      KNOWLEDGE_ASSIST: Run knowledge assist with automatic query generation.
    """
    TYPE_UNSPECIFIED = 0
    ARTICLE_SUGGESTION = 1
    FAQ = 2
    SMART_REPLY = 3
    DIALOGFLOW_ASSIST = 4
    CONVERSATION_SUMMARIZATION = 5
    KNOWLEDGE_SEARCH = 6
    KNOWLEDGE_ASSIST = 7

  conversationProfile = _messages.StringField(1)
  createTime = _messages.StringField(2)
  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 3)
  suggestionFeatureType = _messages.EnumField('SuggestionFeatureTypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2beta1Context(_messages.Message):
  r"""Dialogflow contexts are similar to natural language context. If a person
  says to you "they are orange", you need context in order to understand what
  "they" is referring to. Similarly, for Dialogflow to handle an end-user
  expression like that, it needs to be provided with context in order to
  correctly match an intent. Using contexts, you can control the flow of a
  conversation. You can configure contexts for an intent by setting input and
  output contexts, which are identified by string names. When an intent is
  matched, any configured output contexts for that intent become active. While
  any contexts are active, Dialogflow is more likely to match intents that are
  configured with input contexts that correspond to the currently active
  contexts. For more information about context, see the [Contexts
  guide](https://cloud.google.com/dialogflow/docs/contexts-overview).

  Messages:
    ParametersValue: Optional. The collection of parameters associated with
      this context. Depending on your protocol or client library language,
      this is a map, associative array, symbol table, dictionary, or JSON
      object composed of a collection of (MapKey, MapValue) pairs: * MapKey
      type: string * MapKey value: parameter name * MapValue type: If
      parameter's entity type is a composite entity then use map, otherwise,
      depending on the parameter value type, it could be one of string,
      number, boolean, null, list or map. * MapValue value: If parameter's
      entity type is a composite entity then use map from composite entity
      property names to property values, otherwise, use parameter value.

  Fields:
    lifespanCount: Optional. The number of conversational query requests after
      which the context expires. The default is `0`. If set to `0`, the
      context expires immediately. Contexts expire automatically after 20
      minutes if there are no matching queries.
    name: Required. The unique identifier of the context. Supported formats: -
      `projects//agent/sessions//contexts/`, -
      `projects//locations//agent/sessions//contexts/`, -
      `projects//agent/environments//users//sessions//contexts/`, -
      `projects//locations//agent/environments//users//sessions//contexts/`,
      The `Context ID` is always converted to lowercase, may only contain
      characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If
      `Environment ID` is not specified, we assume default 'draft'
      environment. If `User ID` is not specified, we assume default '-' user.
      The following context names are reserved for internal use by Dialogflow.
      You should not use these contexts or create contexts with these names: *
      `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
    parameters: Optional. The collection of parameters associated with this
      context. Depending on your protocol or client library language, this is
      a map, associative array, symbol table, dictionary, or JSON object
      composed of a collection of (MapKey, MapValue) pairs: * MapKey type:
      string * MapKey value: parameter name * MapValue type: If parameter's
      entity type is a composite entity then use map, otherwise, depending on
      the parameter value type, it could be one of string, number, boolean,
      null, list or map. * MapValue value: If parameter's entity type is a
      composite entity then use map from composite entity property names to
      property values, otherwise, use parameter value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional. The collection of parameters associated with this context.
    Depending on your protocol or client library language, this is a map,
    associative array, symbol table, dictionary, or JSON object composed of a
    collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey
    value: parameter name * MapValue type: If parameter's entity type is a
    composite entity then use map, otherwise, depending on the parameter value
    type, it could be one of string, number, boolean, null, list or map. *
    MapValue value: If parameter's entity type is a composite entity then use
    map from composite entity property names to property values, otherwise,
    use parameter value.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  lifespanCount = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  name = _messages.StringField(2)
  parameters = _messages.MessageField('ParametersValue', 3)


class GoogleCloudDialogflowV2beta1ConversationEvent(_messages.Message):
  r"""Represents a notification sent to Pub/Sub subscribers for conversation
  lifecycle events.

  Enums:
    TypeValueValuesEnum: Required. The type of the event that this
      notification refers to.

  Fields:
    conversation: Required. The unique identifier of the conversation this
      notification refers to. Format: `projects//conversations/`.
    errorStatus: Optional. More detailed information about an error. Only set
      for type UNRECOVERABLE_ERROR_IN_PHONE_CALL.
    newMessagePayload: Payload of NEW_MESSAGE event.
    newRecognitionResultPayload: Payload of NEW_RECOGNITION_RESULT event.
    type: Required. The type of the event that this notification refers to.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the event that this notification refers to.

    Values:
      TYPE_UNSPECIFIED: Type not set.
      CONVERSATION_STARTED: A new conversation has been opened. This is fired
        when a telephone call is answered, or a conversation is created via
        the API.
      CONVERSATION_FINISHED: An existing conversation has closed. This is
        fired when a telephone call is terminated, or a conversation is closed
        via the API. The event is fired for every CompleteConversation call,
        even if the conversation is already closed.
      HUMAN_INTERVENTION_NEEDED: An existing conversation has received
        notification from Dialogflow that human intervention is required.
      NEW_MESSAGE: An existing conversation has received a new message, either
        from API or telephony. It is configured in
        ConversationProfile.new_message_event_notification_config
      NEW_RECOGNITION_RESULT: An existing conversation has received a new
        speech recognition result. This is mainly for delivering intermediate
        transcripts. The notification is configured in
        ConversationProfile.new_recognition_event_notification_config.
      UNRECOVERABLE_ERROR: Unrecoverable error during a telephone call. In
        general non-recoverable errors only occur if something was
        misconfigured in the ConversationProfile corresponding to the call.
        After a non-recoverable error, Dialogflow may stop responding. We
        don't fire this event: * in an API call because we can directly return
        the error, or, * when we can recover from an error.
    """
    TYPE_UNSPECIFIED = 0
    CONVERSATION_STARTED = 1
    CONVERSATION_FINISHED = 2
    HUMAN_INTERVENTION_NEEDED = 3
    NEW_MESSAGE = 4
    NEW_RECOGNITION_RESULT = 5
    UNRECOVERABLE_ERROR = 6

  conversation = _messages.StringField(1)
  errorStatus = _messages.MessageField('GoogleRpcStatus', 2)
  newMessagePayload = _messages.MessageField('GoogleCloudDialogflowV2beta1Message', 3)
  newRecognitionResultPayload = _messages.MessageField('GoogleCloudDialogflowV2beta1StreamingRecognitionResult', 4)
  type = _messages.EnumField('TypeValueValuesEnum', 5)


class GoogleCloudDialogflowV2beta1DialogflowAssistAnswer(_messages.Message):
  r"""Represents a Dialogflow assist answer.

  Fields:
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    intentSuggestion: An intent suggestion generated from conversation.
    queryResult: Result from v2 agent.
  """

  answerRecord = _messages.StringField(1)
  intentSuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentSuggestion', 2)
  queryResult = _messages.MessageField('GoogleCloudDialogflowV2beta1QueryResult', 3)


class GoogleCloudDialogflowV2beta1EncryptionSpec(_messages.Message):
  r"""A customer-managed encryption key specification that can be applied to
  all created resources (e.g. Conversation).

  Fields:
    kmsKey: Required. The name of customer-managed encryption key that is used
      to secure a resource and its sub-resources. If empty, the resource is
      secured by the default Google encryption key. Only the key in the same
      location as this resource is allowed to be used for encryption. Format:
      `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{
      key}`
    name: Immutable. The resource name of the encryption key specification
      resource. Format: projects/{project}/locations/{location}/encryptionSpec
  """

  kmsKey = _messages.StringField(1)
  name = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1EntityType(_messages.Message):
  r"""Each intent parameter has a type, called the entity type, which dictates
  exactly how data from an end-user expression is extracted. Dialogflow
  provides predefined system entities that can match many common types of
  data. For example, there are system entities for matching dates, times,
  colors, email addresses, and so on. You can also create your own custom
  entities for matching custom data. For example, you could define a vegetable
  entity that can match the types of vegetables available for purchase with a
  grocery store agent. For more information, see the [Entity
  guide](https://cloud.google.com/dialogflow/docs/entities-overview).

  Enums:
    AutoExpansionModeValueValuesEnum: Optional. Indicates whether the entity
      type can be automatically expanded.
    KindValueValuesEnum: Required. Indicates the kind of entity type.

  Fields:
    autoExpansionMode: Optional. Indicates whether the entity type can be
      automatically expanded.
    displayName: Required. The name of the entity type.
    enableFuzzyExtraction: Optional. Enables fuzzy entity extraction during
      classification.
    entities: Optional. The collection of entity entries associated with the
      entity type.
    kind: Required. Indicates the kind of entity type.
    name: The unique identifier of the entity type. Required for
      EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes
      methods. Supported formats: - `projects//agent/entityTypes/` -
      `projects//locations//agent/entityTypes/`
  """

  class AutoExpansionModeValueValuesEnum(_messages.Enum):
    r"""Optional. Indicates whether the entity type can be automatically
    expanded.

    Values:
      AUTO_EXPANSION_MODE_UNSPECIFIED: Auto expansion disabled for the entity.
      AUTO_EXPANSION_MODE_DEFAULT: Allows an agent to recognize values that
        have not been explicitly listed in the entity.
    """
    AUTO_EXPANSION_MODE_UNSPECIFIED = 0
    AUTO_EXPANSION_MODE_DEFAULT = 1

  class KindValueValuesEnum(_messages.Enum):
    r"""Required. Indicates the kind of entity type.

    Values:
      KIND_UNSPECIFIED: Not specified. This value should be never used.
      KIND_MAP: Map entity types allow mapping of a group of synonyms to a
        reference value.
      KIND_LIST: List entity types contain a set of entries that do not map to
        reference values. However, list entity types can contain references to
        other entity types (with or without aliases).
      KIND_REGEXP: Regexp entity types allow to specify regular expressions in
        entries values.
    """
    KIND_UNSPECIFIED = 0
    KIND_MAP = 1
    KIND_LIST = 2
    KIND_REGEXP = 3

  autoExpansionMode = _messages.EnumField('AutoExpansionModeValueValuesEnum', 1)
  displayName = _messages.StringField(2)
  enableFuzzyExtraction = _messages.BooleanField(3)
  entities = _messages.MessageField('GoogleCloudDialogflowV2beta1EntityTypeEntity', 4, repeated=True)
  kind = _messages.EnumField('KindValueValuesEnum', 5)
  name = _messages.StringField(6)


class GoogleCloudDialogflowV2beta1EntityTypeEntity(_messages.Message):
  r"""An **entity entry** for an associated entity type.

  Fields:
    synonyms: Required. A collection of value synonyms. For example, if the
      entity type is *vegetable*, and `value` is *scallions*, a synonym could
      be *green onions*. For `KIND_LIST` entity types: * This collection must
      contain exactly one synonym equal to `value`.
    value: Required. The primary value associated with this entity entry. For
      example, if the entity type is *vegetable*, the value could be
      *scallions*. For `KIND_MAP` entity types: * A reference value to be used
      in place of synonyms. For `KIND_LIST` entity types: * A string that can
      contain references to other entity types (with or without aliases).
  """

  synonyms = _messages.StringField(1, repeated=True)
  value = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1EventInput(_messages.Message):
  r"""Events allow for matching intents by event name instead of the natural
  language input. For instance, input `` can trigger a personalized welcome
  response. The parameter `name` may be used by the agent in the response:
  `"Hello #welcome_event.name! What can I do for you today?"`.

  Messages:
    ParametersValue: The collection of parameters associated with the event.
      Depending on your protocol or client library language, this is a map,
      associative array, symbol table, dictionary, or JSON object composed of
      a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey
      value: parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.

  Fields:
    languageCode: Required. The language of this query. See [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes. Note that queries
      in the same session do not necessarily need to specify the same
      language. This field is ignored when used in the context of a
      WebhookResponse.followup_event_input field, because the language was
      already defined in the originating detect intent request.
    name: Required. The unique identifier of the event.
    parameters: The collection of parameters associated with the event.
      Depending on your protocol or client library language, this is a map,
      associative array, symbol table, dictionary, or JSON object composed of
      a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey
      value: parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""The collection of parameters associated with the event. Depending on
    your protocol or client library language, this is a map, associative
    array, symbol table, dictionary, or JSON object composed of a collection
    of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value:
    parameter name * MapValue type: If parameter's entity type is a composite
    entity then use map, otherwise, depending on the parameter value type, it
    could be one of string, number, boolean, null, list or map. * MapValue
    value: If parameter's entity type is a composite entity then use map from
    composite entity property names to property values, otherwise, use
    parameter value.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  languageCode = _messages.StringField(1)
  name = _messages.StringField(2)
  parameters = _messages.MessageField('ParametersValue', 3)


class GoogleCloudDialogflowV2beta1ExportAgentResponse(_messages.Message):
  r"""The response message for Agents.ExportAgent.

  Fields:
    agentContent: Zip compressed raw byte content for agent.
    agentUri: The URI to a file containing the exported agent. This field is
      populated only if `agent_uri` is specified in `ExportAgentRequest`.
  """

  agentContent = _messages.BytesField(1)
  agentUri = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1ExportOperationMetadata(_messages.Message):
  r"""Metadata related to the Export Data Operations (e.g. ExportDocument).

  Fields:
    exportedGcsDestination: Cloud Storage file path of the exported data.
  """

  exportedGcsDestination = _messages.MessageField('GoogleCloudDialogflowV2beta1GcsDestination', 1)


class GoogleCloudDialogflowV2beta1FaqAnswer(_messages.Message):
  r"""Represents answer from "frequently asked questions".

  Messages:
    MetadataValue: A map that contains metadata about the answer and the
      document from which it originates.

  Fields:
    answer: The piece of text from the `source` knowledge base document.
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    confidence: The system's confidence score that this Knowledge answer is a
      good match for this conversational query, range from 0.0 (completely
      uncertain) to 1.0 (completely certain).
    metadata: A map that contains metadata about the answer and the document
      from which it originates.
    question: The corresponding FAQ question.
    source: Indicates which Knowledge Document this answer was extracted from.
      Format: `projects//locations//agent/knowledgeBases//documents/`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""A map that contains metadata about the answer and the document from
    which it originates.

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

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

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

  answer = _messages.StringField(1)
  answerRecord = _messages.StringField(2)
  confidence = _messages.FloatField(3, variant=_messages.Variant.FLOAT)
  metadata = _messages.MessageField('MetadataValue', 4)
  question = _messages.StringField(5)
  source = _messages.StringField(6)


class GoogleCloudDialogflowV2beta1FreeFormSuggestion(_messages.Message):
  r"""Suggestion generated using free form generator.

  Fields:
    response: Required. Free form suggestion.
  """

  response = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1GcsDestination(_messages.Message):
  r"""Google Cloud Storage location for the output.

  Fields:
    uri: Required. The Google Cloud Storage URIs for the output. A URI is of
      the form: `gs://bucket/object-prefix-or-name` Whether a prefix or name
      is used depends on the use case. The requesting user must have "write-
      permission" to the bucket.
  """

  uri = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1GenerateSuggestionsResponse(_messages.Message):
  r"""The response message for Conversations.GenerateSuggestions.

  Fields:
    generatorSuggestionAnswers: The answers generated for the conversation
      based on context.
    latestMessage: The name of the latest conversation message used as context
      for compiling suggestion. Format:
      `projects//locations//conversations//messages/`.
  """

  generatorSuggestionAnswers = _messages.MessageField('GoogleCloudDialogflowV2beta1GenerateSuggestionsResponseGeneratorSuggestionAnswer', 1, repeated=True)
  latestMessage = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1GenerateSuggestionsResponseGeneratorSuggestionAnswer(_messages.Message):
  r"""A GeneratorSuggestion answer.

  Fields:
    answerRecord: Answer record that uniquely identifies the suggestion. This
      can be used to provide suggestion feedback.
    generatorSuggestion: Suggestion details.
    sourceGenerator: The name of the generator used to generate this
      suggestion. Format: `projects//locations//generators/`.
  """

  answerRecord = _messages.StringField(1)
  generatorSuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1GeneratorSuggestion', 2)
  sourceGenerator = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1GeneratorSuggestion(_messages.Message):
  r"""Suggestion generated using a Generator.

  Fields:
    agentCoachingSuggestion: Optional. Suggestion to coach the agent.
    freeFormSuggestion: Optional. Free form suggestion.
    summarySuggestion: Optional. Suggested summary.
    toolCallInfo: Optional. List of request and response for tool calls
      executed.
  """

  agentCoachingSuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1AgentCoachingSuggestion', 1)
  freeFormSuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1FreeFormSuggestion', 2)
  summarySuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1SummarySuggestion', 3)
  toolCallInfo = _messages.MessageField('GoogleCloudDialogflowV2beta1GeneratorSuggestionToolCallInfo', 4, repeated=True)


class GoogleCloudDialogflowV2beta1GeneratorSuggestionToolCallInfo(_messages.Message):
  r"""Request and response for a tool call.

  Fields:
    toolCall: Required. Request for a tool call.
    toolCallResult: Required. Response for a tool call.
  """

  toolCall = _messages.MessageField('GoogleCloudDialogflowV2beta1ToolCall', 1)
  toolCallResult = _messages.MessageField('GoogleCloudDialogflowV2beta1ToolCallResult', 2)


class GoogleCloudDialogflowV2beta1HumanAgentAssistantEvent(_messages.Message):
  r"""Output only. Represents a notification sent to Pub/Sub subscribers for
  agent assistant events in a specific conversation.

  Fields:
    conversation: The conversation this notification refers to. Format:
      `projects//conversations/`.
    participant: The participant that the suggestion is compiled for. And This
      field is used to call Participants.ListSuggestions API. Format:
      `projects//conversations//participants/`. It will not be set in legacy
      workflow. HumanAgentAssistantConfig.name for more information.
    suggestionResults: The suggestion results payload that this notification
      refers to. It will only be set when
      HumanAgentAssistantConfig.SuggestionConfig.group_suggestion_responses
      sets to true.
  """

  conversation = _messages.StringField(1)
  participant = _messages.StringField(2)
  suggestionResults = _messages.MessageField('GoogleCloudDialogflowV2beta1SuggestionResult', 3, repeated=True)


class GoogleCloudDialogflowV2beta1ImportDocumentsResponse(_messages.Message):
  r"""Response message for Documents.ImportDocuments.

  Fields:
    warnings: Includes details about skipped documents or any other warnings.
  """

  warnings = _messages.MessageField('GoogleRpcStatus', 1, repeated=True)


class GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata(_messages.Message):
  r"""Metadata for initializing a location-level encryption specification.

  Fields:
    request: Output only. The original request for initialization.
  """

  request = _messages.MessageField('GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest', 1)


class GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest(_messages.Message):
  r"""The request to initialize a location-level encryption specification.

  Fields:
    encryptionSpec: Required. The encryption spec used for CMEK encryption. It
      is required that the kms key is in the same region as the endpoint. The
      same key will be used for all provisioned resources, if encryption is
      available. If the kms_key_name is left empty, no encryption will be
      enforced.
  """

  encryptionSpec = _messages.MessageField('GoogleCloudDialogflowV2beta1EncryptionSpec', 1)


class GoogleCloudDialogflowV2beta1Intent(_messages.Message):
  r"""An intent categorizes an end-user's intention for one conversation turn.
  For each agent, you define many intents, where your combined intents can
  handle a complete conversation. When an end-user writes or says something,
  referred to as an end-user expression or end-user input, Dialogflow matches
  the end-user input to the best intent in your agent. Matching an intent is
  also known as intent classification. For more information, see the [intent
  guide](https://cloud.google.com/dialogflow/docs/intents-overview).

  Enums:
    DefaultResponsePlatformsValueListEntryValuesEnum:
    WebhookStateValueValuesEnum: Optional. Indicates whether webhooks are
      enabled for the intent.

  Fields:
    action: Optional. The name of the action associated with the intent. Note:
      The action name must not contain whitespaces.
    defaultResponsePlatforms: Optional. The list of platforms for which the
      first responses will be copied from the messages in PLATFORM_UNSPECIFIED
      (i.e. default platform).
    displayName: Required. The name of this intent.
    endInteraction: Optional. Indicates that this intent ends an interaction.
      Some integrations (e.g., Actions on Google or Dialogflow phone gateway)
      use this information to close interaction with an end user. Default is
      false.
    events: Optional. The collection of event names that trigger the intent.
      If the collection of input contexts is not empty, all of the contexts
      must be present in the active user session for an event to trigger this
      intent. Event names are limited to 150 characters.
    followupIntentInfo: Output only. Information about all followup intents
      that have this intent as a direct or indirect parent. We populate this
      field only in the output.
    inputContextNames: Optional. The list of context names required for this
      intent to be triggered. Formats: -
      `projects//agent/sessions/-/contexts/` -
      `projects//locations//agent/sessions/-/contexts/`
    isFallback: Optional. Indicates whether this is a fallback intent.
    liveAgentHandoff: Optional. Indicates that a live agent should be brought
      in to handle the interaction with the user. In most cases, when you set
      this flag to true, you would also want to set end_interaction to true as
      well. Default is false.
    messages: Optional. The collection of rich messages corresponding to the
      `Response` field in the Dialogflow console.
    mlDisabled: Optional. Indicates whether Machine Learning is disabled for
      the intent. Note: If `ml_disabled` setting is set to true, then this
      intent is not taken into account during inference in `ML ONLY` match
      mode. Also, auto-markup in the UI is turned off.
    mlEnabled: Optional. Indicates whether Machine Learning is enabled for the
      intent. Note: If `ml_enabled` setting is set to false, then this intent
      is not taken into account during inference in `ML ONLY` match mode.
      Also, auto-markup in the UI is turned off. DEPRECATED! Please use
      `ml_disabled` field instead. NOTE: If both `ml_enabled` and
      `ml_disabled` are either not set or false, then the default value is
      determined as follows: - Before April 15th, 2018 the default is:
      ml_enabled = false / ml_disabled = true. - After April 15th, 2018 the
      default is: ml_enabled = true / ml_disabled = false.
    name: Optional. The unique identifier of this intent. Required for
      Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Supported
      formats: - `projects//agent/intents/` -
      `projects//locations//agent/intents/`
    outputContexts: Optional. The collection of contexts that are activated
      when the intent is matched. Context messages in this collection should
      not set the parameters field. Setting the `lifespan_count` to 0 will
      reset the context when the intent is matched. Format:
      `projects//agent/sessions/-/contexts/`.
    parameters: Optional. The collection of parameters associated with the
      intent.
    parentFollowupIntentName: Optional. The unique identifier of the parent
      intent in the chain of followup intents. You can set this field when
      creating an intent, for example with CreateIntent or BatchUpdateIntents,
      in order to make this intent a followup intent. It identifies the parent
      followup intent. Format: `projects//agent/intents/`.
    priority: Optional. The priority of this intent. Higher numbers represent
      higher priorities. - If the supplied value is unspecified or 0, the
      service translates the value to 500,000, which corresponds to the
      `Normal` priority in the console. - If the supplied value is negative,
      the intent is ignored in runtime detect intent requests.
    resetContexts: Optional. Indicates whether to delete all contexts in the
      current session when this intent is matched.
    rootFollowupIntentName: Output only. The unique identifier of the root
      intent in the chain of followup intents. It identifies the correct
      followup intents chain for this intent. Format:
      `projects//agent/intents/`.
    trainingPhrases: Optional. The collection of examples that the agent is
      trained on.
    webhookState: Optional. Indicates whether webhooks are enabled for the
      intent.
  """

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

    Values:
      PLATFORM_UNSPECIFIED: Not specified.
      FACEBOOK: Facebook.
      SLACK: Slack.
      TELEGRAM: Telegram.
      KIK: Kik.
      SKYPE: Skype.
      LINE: Line.
      VIBER: Viber.
      ACTIONS_ON_GOOGLE: Google Assistant See [Dialogflow webhook format](http
        s://developers.google.com/assistant/actions/build/json/dialogflow-
        webhook-json)
      TELEPHONY: Telephony Gateway.
      GOOGLE_HANGOUTS: Google Hangouts.
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8
    TELEPHONY = 9
    GOOGLE_HANGOUTS = 10

  class WebhookStateValueValuesEnum(_messages.Enum):
    r"""Optional. Indicates whether webhooks are enabled for the intent.

    Values:
      WEBHOOK_STATE_UNSPECIFIED: Webhook is disabled in the agent and in the
        intent.
      WEBHOOK_STATE_ENABLED: Webhook is enabled in the agent and in the
        intent.
      WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING: Webhook is enabled in the agent
        and in the intent. Also, each slot filling prompt is forwarded to the
        webhook.
    """
    WEBHOOK_STATE_UNSPECIFIED = 0
    WEBHOOK_STATE_ENABLED = 1
    WEBHOOK_STATE_ENABLED_FOR_SLOT_FILLING = 2

  action = _messages.StringField(1)
  defaultResponsePlatforms = _messages.EnumField('DefaultResponsePlatformsValueListEntryValuesEnum', 2, repeated=True)
  displayName = _messages.StringField(3)
  endInteraction = _messages.BooleanField(4)
  events = _messages.StringField(5, repeated=True)
  followupIntentInfo = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo', 6, repeated=True)
  inputContextNames = _messages.StringField(7, repeated=True)
  isFallback = _messages.BooleanField(8)
  liveAgentHandoff = _messages.BooleanField(9)
  messages = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessage', 10, repeated=True)
  mlDisabled = _messages.BooleanField(11)
  mlEnabled = _messages.BooleanField(12)
  name = _messages.StringField(13)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2beta1Context', 14, repeated=True)
  parameters = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentParameter', 15, repeated=True)
  parentFollowupIntentName = _messages.StringField(16)
  priority = _messages.IntegerField(17, variant=_messages.Variant.INT32)
  resetContexts = _messages.BooleanField(18)
  rootFollowupIntentName = _messages.StringField(19)
  trainingPhrases = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentTrainingPhrase', 20, repeated=True)
  webhookState = _messages.EnumField('WebhookStateValueValuesEnum', 21)


class GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo(_messages.Message):
  r"""Represents a single followup intent in the chain.

  Fields:
    followupIntentName: The unique identifier of the followup intent. Format:
      `projects//agent/intents/`.
    parentFollowupIntentName: The unique identifier of the followup intent's
      parent. Format: `projects//agent/intents/`.
  """

  followupIntentName = _messages.StringField(1)
  parentFollowupIntentName = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessage(_messages.Message):
  r"""Corresponds to the `Response` field in the Dialogflow console.

  Enums:
    PlatformValueValuesEnum: Optional. The platform that this message is
      intended for.

  Messages:
    PayloadValue: A custom platform-specific response.

  Fields:
    basicCard: Displays a basic card for Actions on Google.
    browseCarouselCard: Browse carousel card for Actions on Google.
    card: Displays a card.
    carouselSelect: Displays a carousel card for Actions on Google.
    image: Displays an image.
    linkOutSuggestion: Displays a link out suggestion chip for Actions on
      Google.
    listSelect: Displays a list card for Actions on Google.
    mediaContent: The media content card for Actions on Google.
    payload: A custom platform-specific response.
    platform: Optional. The platform that this message is intended for.
    quickReplies: Displays quick replies.
    rbmCarouselRichCard: Rich Business Messaging (RBM) carousel rich card
      response.
    rbmStandaloneRichCard: Standalone Rich Business Messaging (RBM) rich card
      response.
    rbmText: Rich Business Messaging (RBM) text response. RBM allows
      businesses to send enriched and branded versions of SMS. See
      https://jibe.google.com/business-messaging.
    simpleResponses: Returns a voice or text-only response for Actions on
      Google.
    suggestions: Displays suggestion chips for Actions on Google.
    tableCard: Table card for Actions on Google.
    telephonyPlayAudio: Plays audio from a file in Telephony Gateway.
    telephonySynthesizeSpeech: Synthesizes speech in Telephony Gateway.
    telephonyTransferCall: Transfers the call in Telephony Gateway.
    text: Returns a text response.
  """

  class PlatformValueValuesEnum(_messages.Enum):
    r"""Optional. The platform that this message is intended for.

    Values:
      PLATFORM_UNSPECIFIED: Not specified.
      FACEBOOK: Facebook.
      SLACK: Slack.
      TELEGRAM: Telegram.
      KIK: Kik.
      SKYPE: Skype.
      LINE: Line.
      VIBER: Viber.
      ACTIONS_ON_GOOGLE: Google Assistant See [Dialogflow webhook format](http
        s://developers.google.com/assistant/actions/build/json/dialogflow-
        webhook-json)
      TELEPHONY: Telephony Gateway.
      GOOGLE_HANGOUTS: Google Hangouts.
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8
    TELEPHONY = 9
    GOOGLE_HANGOUTS = 10

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""A custom platform-specific response.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  basicCard = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageBasicCard', 1)
  browseCarouselCard = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard', 2)
  card = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageCard', 3)
  carouselSelect = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect', 4)
  image = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 5)
  linkOutSuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion', 6)
  listSelect = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageListSelect', 7)
  mediaContent = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageMediaContent', 8)
  payload = _messages.MessageField('PayloadValue', 9)
  platform = _messages.EnumField('PlatformValueValuesEnum', 10)
  quickReplies = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageQuickReplies', 11)
  rbmCarouselRichCard = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard', 12)
  rbmStandaloneRichCard = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard', 13)
  rbmText = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmText', 14)
  simpleResponses = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses', 15)
  suggestions = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSuggestions', 16)
  tableCard = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTableCard', 17)
  telephonyPlayAudio = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio', 18)
  telephonySynthesizeSpeech = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech', 19)
  telephonyTransferCall = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall', 20)
  text = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageText', 21)


class GoogleCloudDialogflowV2beta1IntentMessageBasicCard(_messages.Message):
  r"""The basic card message. Useful for displaying information.

  Fields:
    buttons: Optional. The collection of card buttons.
    formattedText: Required, unless image is present. The body text of the
      card.
    image: Optional. The image for the card.
    subtitle: Optional. The subtitle of the card.
    title: Optional. The title of the card.
  """

  buttons = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton', 1, repeated=True)
  formattedText = _messages.StringField(2)
  image = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 3)
  subtitle = _messages.StringField(4)
  title = _messages.StringField(5)


class GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton(_messages.Message):
  r"""The button object that appears at the bottom of a card.

  Fields:
    openUriAction: Required. Action to take when a user taps on the button.
    title: Required. The title of the button.
  """

  openUriAction = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction', 1)
  title = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageBasicCardButtonOpenUriAction(_messages.Message):
  r"""Opens the given URI.

  Fields:
    uri: Required. The HTTP or HTTPS scheme URI.
  """

  uri = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCard(_messages.Message):
  r"""Browse Carousel Card for Actions on Google.
  https://developers.google.com/actions/assistant/responses#browsing_carousel

  Enums:
    ImageDisplayOptionsValueValuesEnum: Optional. Settings for displaying the
      image. Applies to every image in items.

  Fields:
    imageDisplayOptions: Optional. Settings for displaying the image. Applies
      to every image in items.
    items: Required. List of items in the Browse Carousel Card. Minimum of two
      items, maximum of ten.
  """

  class ImageDisplayOptionsValueValuesEnum(_messages.Enum):
    r"""Optional. Settings for displaying the image. Applies to every image in
    items.

    Values:
      IMAGE_DISPLAY_OPTIONS_UNSPECIFIED: Fill the gaps between the image and
        the image container with gray bars.
      GRAY: Fill the gaps between the image and the image container with gray
        bars.
      WHITE: Fill the gaps between the image and the image container with
        white bars.
      CROPPED: Image is scaled such that the image width and height match or
        exceed the container dimensions. This may crop the top and bottom of
        the image if the scaled image height is greater than the container
        height, or crop the left and right of the image if the scaled image
        width is greater than the container width. This is similar to "Zoom
        Mode" on a widescreen TV when playing a 4:3 video.
      BLURRED_BACKGROUND: Pad the gaps between image and image frame with a
        blurred copy of the same image.
    """
    IMAGE_DISPLAY_OPTIONS_UNSPECIFIED = 0
    GRAY = 1
    WHITE = 2
    CROPPED = 3
    BLURRED_BACKGROUND = 4

  imageDisplayOptions = _messages.EnumField('ImageDisplayOptionsValueValuesEnum', 1)
  items = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem', 2, repeated=True)


class GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItem(_messages.Message):
  r"""Browsing carousel tile

  Fields:
    description: Optional. Description of the carousel item. Maximum of four
      lines of text.
    footer: Optional. Text that appears at the bottom of the Browse Carousel
      Card. Maximum of one line of text.
    image: Optional. Hero image for the carousel item.
    openUriAction: Required. Action to present to the user.
    title: Required. Title of the carousel item. Maximum of two lines of text.
  """

  description = _messages.StringField(1)
  footer = _messages.StringField(2)
  image = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 3)
  openUriAction = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction', 4)
  title = _messages.StringField(5)


class GoogleCloudDialogflowV2beta1IntentMessageBrowseCarouselCardBrowseCarouselCardItemOpenUrlAction(_messages.Message):
  r"""Actions on Google action to open a given url.

  Enums:
    UrlTypeHintValueValuesEnum: Optional. Specifies the type of viewer that is
      used when opening the URL. Defaults to opening via web browser.

  Fields:
    url: Required. URL
    urlTypeHint: Optional. Specifies the type of viewer that is used when
      opening the URL. Defaults to opening via web browser.
  """

  class UrlTypeHintValueValuesEnum(_messages.Enum):
    r"""Optional. Specifies the type of viewer that is used when opening the
    URL. Defaults to opening via web browser.

    Values:
      URL_TYPE_HINT_UNSPECIFIED: Unspecified
      AMP_ACTION: Url would be an amp action
      AMP_CONTENT: URL that points directly to AMP content, or to a canonical
        URL which refers to AMP content via .
    """
    URL_TYPE_HINT_UNSPECIFIED = 0
    AMP_ACTION = 1
    AMP_CONTENT = 2

  url = _messages.StringField(1)
  urlTypeHint = _messages.EnumField('UrlTypeHintValueValuesEnum', 2)


class GoogleCloudDialogflowV2beta1IntentMessageCard(_messages.Message):
  r"""The card response message.

  Fields:
    buttons: Optional. The collection of card buttons.
    imageUri: Optional. The public URI to an image file for the card.
    subtitle: Optional. The subtitle of the card.
    title: Optional. The title of the card.
  """

  buttons = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageCardButton', 1, repeated=True)
  imageUri = _messages.StringField(2)
  subtitle = _messages.StringField(3)
  title = _messages.StringField(4)


class GoogleCloudDialogflowV2beta1IntentMessageCardButton(_messages.Message):
  r"""Optional. Contains information about a button.

  Fields:
    postback: Optional. The text to send back to the Dialogflow API or a URI
      to open.
    text: Optional. The text to show on the button.
  """

  postback = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect(_messages.Message):
  r"""The card for presenting a carousel of options to select from.

  Fields:
    items: Required. Carousel items.
  """

  items = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem', 1, repeated=True)


class GoogleCloudDialogflowV2beta1IntentMessageCarouselSelectItem(_messages.Message):
  r"""An item in the carousel.

  Fields:
    description: Optional. The body text of the card.
    image: Optional. The image to display.
    info: Required. Additional info about the option item.
    title: Required. Title of the carousel item.
  """

  description = _messages.StringField(1)
  image = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 2)
  info = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo', 3)
  title = _messages.StringField(4)


class GoogleCloudDialogflowV2beta1IntentMessageColumnProperties(_messages.Message):
  r"""Column properties for TableCard.

  Enums:
    HorizontalAlignmentValueValuesEnum: Optional. Defines text alignment for
      all cells in this column.

  Fields:
    header: Required. Column heading.
    horizontalAlignment: Optional. Defines text alignment for all cells in
      this column.
  """

  class HorizontalAlignmentValueValuesEnum(_messages.Enum):
    r"""Optional. Defines text alignment for all cells in this column.

    Values:
      HORIZONTAL_ALIGNMENT_UNSPECIFIED: Text is aligned to the leading edge of
        the column.
      LEADING: Text is aligned to the leading edge of the column.
      CENTER: Text is centered in the column.
      TRAILING: Text is aligned to the trailing edge of the column.
    """
    HORIZONTAL_ALIGNMENT_UNSPECIFIED = 0
    LEADING = 1
    CENTER = 2
    TRAILING = 3

  header = _messages.StringField(1)
  horizontalAlignment = _messages.EnumField('HorizontalAlignmentValueValuesEnum', 2)


class GoogleCloudDialogflowV2beta1IntentMessageImage(_messages.Message):
  r"""The image response message.

  Fields:
    accessibilityText: A text description of the image to be used for
      accessibility, e.g., screen readers. Required if image_uri is set for
      CarouselSelect.
    imageUri: Optional. The public URI to an image file.
  """

  accessibilityText = _messages.StringField(1)
  imageUri = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion(_messages.Message):
  r"""The suggestion chip message that allows the user to jump out to the app
  or website associated with this agent.

  Fields:
    destinationName: Required. The name of the app or site this chip is
      linking to.
    uri: Required. The URI of the app or site to open when the user taps the
      suggestion chip.
  """

  destinationName = _messages.StringField(1)
  uri = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageListSelect(_messages.Message):
  r"""The card for presenting a list of options to select from.

  Fields:
    items: Required. List items.
    subtitle: Optional. Subtitle of the list.
    title: Optional. The overall title of the list.
  """

  items = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageListSelectItem', 1, repeated=True)
  subtitle = _messages.StringField(2)
  title = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1IntentMessageListSelectItem(_messages.Message):
  r"""An item in the list.

  Fields:
    description: Optional. The main text describing the item.
    image: Optional. The image to display.
    info: Required. Additional information about this option.
    title: Required. The title of the list item.
  """

  description = _messages.StringField(1)
  image = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 2)
  info = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo', 3)
  title = _messages.StringField(4)


class GoogleCloudDialogflowV2beta1IntentMessageMediaContent(_messages.Message):
  r"""The media content card for Actions on Google.

  Enums:
    MediaTypeValueValuesEnum: Optional. What type of media is the content (ie
      "audio").

  Fields:
    mediaObjects: Required. List of media objects.
    mediaType: Optional. What type of media is the content (ie "audio").
  """

  class MediaTypeValueValuesEnum(_messages.Enum):
    r"""Optional. What type of media is the content (ie "audio").

    Values:
      RESPONSE_MEDIA_TYPE_UNSPECIFIED: Unspecified.
      AUDIO: Response media type is audio.
    """
    RESPONSE_MEDIA_TYPE_UNSPECIFIED = 0
    AUDIO = 1

  mediaObjects = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject', 1, repeated=True)
  mediaType = _messages.EnumField('MediaTypeValueValuesEnum', 2)


class GoogleCloudDialogflowV2beta1IntentMessageMediaContentResponseMediaObject(_messages.Message):
  r"""Response media object for media content card.

  Fields:
    contentUrl: Required. Url where the media is stored.
    description: Optional. Description of media card.
    icon: Optional. Icon to display above media content.
    largeImage: Optional. Image to display above media content.
    name: Required. Name of media card.
  """

  contentUrl = _messages.StringField(1)
  description = _messages.StringField(2)
  icon = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 3)
  largeImage = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 4)
  name = _messages.StringField(5)


class GoogleCloudDialogflowV2beta1IntentMessageQuickReplies(_messages.Message):
  r"""The quick replies response message.

  Fields:
    quickReplies: Optional. The collection of quick replies.
    title: Optional. The title of the collection of quick replies.
  """

  quickReplies = _messages.StringField(1, repeated=True)
  title = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent(_messages.Message):
  r"""Rich Business Messaging (RBM) Card content

  Fields:
    description: Optional. Description of the card (at most 2000 bytes). At
      least one of the title, description or media must be set.
    media: Optional. However at least one of the title, description or media
      must be set. Media (image, GIF or a video) to include in the card.
    suggestions: Optional. List of suggestions to include in the card.
    title: Optional. Title of the card (at most 200 bytes). At least one of
      the title, description or media must be set.
  """

  description = _messages.StringField(1)
  media = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia', 2)
  suggestions = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion', 3, repeated=True)
  title = _messages.StringField(4)


class GoogleCloudDialogflowV2beta1IntentMessageRbmCardContentRbmMedia(_messages.Message):
  r"""Rich Business Messaging (RBM) Media displayed in Cards The following
  media-types are currently supported: Image Types * image/jpeg * image/jpg' *
  image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 *
  video/mpeg * video/mpeg4 * video/webm

  Enums:
    HeightValueValuesEnum: Required for cards with vertical orientation. The
      height of the media within a rich card with a vertical layout. For a
      standalone card with horizontal layout, height is not customizable, and
      this field is ignored.

  Fields:
    fileUri: Required. Publicly reachable URI of the file. The RBM platform
      determines the MIME type of the file from the content-type field in the
      HTTP headers when the platform fetches the file. The content-type field
      must be present and accurate in the HTTP response from the URL.
    height: Required for cards with vertical orientation. The height of the
      media within a rich card with a vertical layout. For a standalone card
      with horizontal layout, height is not customizable, and this field is
      ignored.
    thumbnailUri: Optional. Publicly reachable URI of the thumbnail.If you
      don't provide a thumbnail URI, the RBM platform displays a blank
      placeholder thumbnail until the user's device downloads the file.
      Depending on the user's setting, the file may not download automatically
      and may require the user to tap a download button.
  """

  class HeightValueValuesEnum(_messages.Enum):
    r"""Required for cards with vertical orientation. The height of the media
    within a rich card with a vertical layout. For a standalone card with
    horizontal layout, height is not customizable, and this field is ignored.

    Values:
      HEIGHT_UNSPECIFIED: Not specified.
      SHORT: 112 DP.
      MEDIUM: 168 DP.
      TALL: 264 DP. Not available for rich card carousels when the card width
        is set to small.
    """
    HEIGHT_UNSPECIFIED = 0
    SHORT = 1
    MEDIUM = 2
    TALL = 3

  fileUri = _messages.StringField(1)
  height = _messages.EnumField('HeightValueValuesEnum', 2)
  thumbnailUri = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1IntentMessageRbmCarouselCard(_messages.Message):
  r"""Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you
  to respond to users with more vivid content, e.g. with media and
  suggestions. If you want to show a single card with more control over the
  layout, please use RbmStandaloneCard instead.

  Enums:
    CardWidthValueValuesEnum: Required. The width of the cards in the
      carousel.

  Fields:
    cardContents: Required. The cards in the carousel. A carousel must have at
      least 2 cards and at most 10.
    cardWidth: Required. The width of the cards in the carousel.
  """

  class CardWidthValueValuesEnum(_messages.Enum):
    r"""Required. The width of the cards in the carousel.

    Values:
      CARD_WIDTH_UNSPECIFIED: Not specified.
      SMALL: 120 DP. Note that tall media cannot be used.
      MEDIUM: 232 DP.
    """
    CARD_WIDTH_UNSPECIFIED = 0
    SMALL = 1
    MEDIUM = 2

  cardContents = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent', 1, repeated=True)
  cardWidth = _messages.EnumField('CardWidthValueValuesEnum', 2)


class GoogleCloudDialogflowV2beta1IntentMessageRbmStandaloneCard(_messages.Message):
  r"""Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you
  to respond to users with more vivid content, e.g. with media and
  suggestions. You can group multiple rich cards into one using
  RbmCarouselCard but carousel cards will give you less control over the card
  layout.

  Enums:
    CardOrientationValueValuesEnum: Required. Orientation of the card.
    ThumbnailImageAlignmentValueValuesEnum: Required if orientation is
      horizontal. Image preview alignment for standalone cards with horizontal
      layout.

  Fields:
    cardContent: Required. Card content.
    cardOrientation: Required. Orientation of the card.
    thumbnailImageAlignment: Required if orientation is horizontal. Image
      preview alignment for standalone cards with horizontal layout.
  """

  class CardOrientationValueValuesEnum(_messages.Enum):
    r"""Required. Orientation of the card.

    Values:
      CARD_ORIENTATION_UNSPECIFIED: Not specified.
      HORIZONTAL: Horizontal layout.
      VERTICAL: Vertical layout.
    """
    CARD_ORIENTATION_UNSPECIFIED = 0
    HORIZONTAL = 1
    VERTICAL = 2

  class ThumbnailImageAlignmentValueValuesEnum(_messages.Enum):
    r"""Required if orientation is horizontal. Image preview alignment for
    standalone cards with horizontal layout.

    Values:
      THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED: Not specified.
      LEFT: Thumbnail preview is left-aligned.
      RIGHT: Thumbnail preview is right-aligned.
    """
    THUMBNAIL_IMAGE_ALIGNMENT_UNSPECIFIED = 0
    LEFT = 1
    RIGHT = 2

  cardContent = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmCardContent', 1)
  cardOrientation = _messages.EnumField('CardOrientationValueValuesEnum', 2)
  thumbnailImageAlignment = _messages.EnumField('ThumbnailImageAlignmentValueValuesEnum', 3)


class GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction(_messages.Message):
  r"""Rich Business Messaging (RBM) suggested client-side action that the user
  can choose from the card.

  Fields:
    dial: Suggested client side action: Dial a phone number
    openUrl: Suggested client side action: Open a URI on device
    postbackData: Opaque payload that the Dialogflow receives in a user event
      when the user taps the suggested action. This data will be also
      forwarded to webhook to allow performing custom business logic.
    shareLocation: Suggested client side action: Share user location
    text: Text to display alongside the action.
  """

  dial = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial', 1)
  openUrl = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri', 2)
  postbackData = _messages.StringField(3)
  shareLocation = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation', 4)
  text = _messages.StringField(5)


class GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionDial(_messages.Message):
  r"""Opens the user's default dialer app with the specified phone number but
  does not dial automatically.

  Fields:
    phoneNumber: Required. The phone number to fill in the default dialer app.
      This field should be in [E.164](https://en.wikipedia.org/wiki/E.164)
      format. An example of a correctly formatted phone number: +15556767888.
  """

  phoneNumber = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionOpenUri(_messages.Message):
  r"""Opens the user's default web browser app to the specified uri If the
  user has an app installed that is registered as the default handler for the
  URL, then this app will be opened instead, and its icon will be used in the
  suggested action UI.

  Fields:
    uri: Required. The uri to open on the user device
  """

  uri = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedActionRbmSuggestedActionShareLocation(_messages.Message):
  r"""Opens the device's location chooser so the user can pick a location to
  send back to the agent.
  """



class GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply(_messages.Message):
  r"""Rich Business Messaging (RBM) suggested reply that the user can click
  instead of typing in their own response.

  Fields:
    postbackData: Opaque payload that the Dialogflow receives in a user event
      when the user taps the suggested reply. This data will be also forwarded
      to webhook to allow performing custom business logic.
    text: Suggested reply text.
  """

  postbackData = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion(_messages.Message):
  r"""Rich Business Messaging (RBM) suggestion. Suggestions allow user to
  easily select/click a predefined response or perform an action (like opening
  a web uri).

  Fields:
    action: Predefined client side actions that user can choose
    reply: Predefined replies for user to select instead of typing
  """

  action = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedAction', 1)
  reply = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestedReply', 2)


class GoogleCloudDialogflowV2beta1IntentMessageRbmText(_messages.Message):
  r"""Rich Business Messaging (RBM) text response with suggestions.

  Fields:
    rbmSuggestion: Optional. One or more suggestions to show to the user.
    text: Required. Text sent and displayed to the user.
  """

  rbmSuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageRbmSuggestion', 1, repeated=True)
  text = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageSelectItemInfo(_messages.Message):
  r"""Additional info about the select item for when it is triggered in a
  dialog.

  Fields:
    key: Required. A unique key that will be sent back to the agent if this
      response is given.
    synonyms: Optional. A list of synonyms that can also be used to trigger
      this item in dialog.
  """

  key = _messages.StringField(1)
  synonyms = _messages.StringField(2, repeated=True)


class GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse(_messages.Message):
  r"""The simple response message containing speech or text.

  Fields:
    displayText: Optional. The text to display.
    ssml: One of text_to_speech or ssml must be provided. Structured spoken
      response to the user in the SSML format. Mutually exclusive with
      text_to_speech.
    textToSpeech: One of text_to_speech or ssml must be provided. The plain
      text of the speech output. Mutually exclusive with ssml.
  """

  displayText = _messages.StringField(1)
  ssml = _messages.StringField(2)
  textToSpeech = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses(_messages.Message):
  r"""The collection of simple response candidates. This message in
  `QueryResult.fulfillment_messages` and
  `WebhookResponse.fulfillment_messages` should contain only one
  `SimpleResponse`.

  Fields:
    simpleResponses: Required. The list of simple responses.
  """

  simpleResponses = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSimpleResponse', 1, repeated=True)


class GoogleCloudDialogflowV2beta1IntentMessageSuggestion(_messages.Message):
  r"""The suggestion chip message that the user can tap to quickly post a
  reply to the conversation.

  Fields:
    title: Required. The text shown the in the suggestion chip.
  """

  title = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1IntentMessageSuggestions(_messages.Message):
  r"""The collection of suggestions.

  Fields:
    suggestions: Required. The list of suggested replies.
  """

  suggestions = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSuggestion', 1, repeated=True)


class GoogleCloudDialogflowV2beta1IntentMessageTableCard(_messages.Message):
  r"""Table card for Actions on Google.

  Fields:
    buttons: Optional. List of buttons for the card.
    columnProperties: Optional. Display properties for the columns in this
      table.
    image: Optional. Image which should be displayed on the card.
    rows: Optional. Rows in this table of data.
    subtitle: Optional. Subtitle to the title.
    title: Required. Title of the card.
  """

  buttons = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageBasicCardButton', 1, repeated=True)
  columnProperties = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageColumnProperties', 2, repeated=True)
  image = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 3)
  rows = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTableCardRow', 4, repeated=True)
  subtitle = _messages.StringField(5)
  title = _messages.StringField(6)


class GoogleCloudDialogflowV2beta1IntentMessageTableCardCell(_messages.Message):
  r"""Cell of TableCardRow.

  Fields:
    text: Required. Text in this cell.
  """

  text = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1IntentMessageTableCardRow(_messages.Message):
  r"""Row of TableCard.

  Fields:
    cells: Optional. List of cells that make up this row.
    dividerAfter: Optional. Whether to add a visual divider after this row.
  """

  cells = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTableCardCell', 1, repeated=True)
  dividerAfter = _messages.BooleanField(2)


class GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio(_messages.Message):
  r"""Plays audio from a file in Telephony Gateway.

  Fields:
    audioUri: Required. URI to a Google Cloud Storage object containing the
      audio to play, e.g., "gs://bucket/object". The object must contain a
      single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz.
      This object must be readable by the `service-@gcp-sa-
      dialogflow.iam.gserviceaccount.com` service account where is the number
      of the Telephony Gateway project (usually the same as the Dialogflow
      agent project). If the Google Cloud Storage bucket is in the Telephony
      Gateway project, this permission is added by default when enabling the
      Dialogflow V2 API. For audio from other sources, consider using the
      `TelephonySynthesizeSpeech` message with SSML.
  """

  audioUri = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech(_messages.Message):
  r"""Synthesizes speech and plays back the synthesized audio to the caller in
  Telephony Gateway. Telephony Gateway takes the synthesizer settings from
  `DetectIntentResponse.output_audio_config` which can either be set at
  request-level or can come from the agent-level synthesizer config.

  Fields:
    ssml: The SSML to be synthesized. For more information, see
      [SSML](https://developers.google.com/actions/reference/ssml).
    text: The raw text to be synthesized.
  """

  ssml = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall(_messages.Message):
  r"""Transfers the call in Telephony Gateway.

  Fields:
    phoneNumber: Required. The phone number to transfer the call to in [E.164
      format](https://en.wikipedia.org/wiki/E.164). We currently only allow
      transferring to US numbers (+1xxxyyyzzzz).
  """

  phoneNumber = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1IntentMessageText(_messages.Message):
  r"""The text response message.

  Fields:
    text: Optional. The collection of the agent's responses.
  """

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


class GoogleCloudDialogflowV2beta1IntentParameter(_messages.Message):
  r"""Represents intent parameters.

  Fields:
    defaultValue: Optional. The default value to use when the `value` yields
      an empty result. Default values can be extracted from contexts by using
      the following syntax: `#context_name.parameter_name`.
    displayName: Required. The name of the parameter.
    entityTypeDisplayName: Optional. The name of the entity type, prefixed
      with `@`, that describes values of the parameter. If the parameter is
      required, this must be provided.
    isList: Optional. Indicates whether the parameter represents a list of
      values.
    mandatory: Optional. Indicates whether the parameter is required. That is,
      whether the intent cannot be completed without collecting the parameter
      value.
    name: The unique identifier of this parameter.
    prompts: Optional. The collection of prompts that the agent can present to
      the user in order to collect a value for the parameter.
    value: Optional. The definition of the parameter value. It can be: - a
      constant string, - a parameter value defined as `$parameter_name`, - an
      original parameter value defined as `$parameter_name.original`, - a
      parameter value from some context defined as
      `#context_name.parameter_name`.
  """

  defaultValue = _messages.StringField(1)
  displayName = _messages.StringField(2)
  entityTypeDisplayName = _messages.StringField(3)
  isList = _messages.BooleanField(4)
  mandatory = _messages.BooleanField(5)
  name = _messages.StringField(6)
  prompts = _messages.StringField(7, repeated=True)
  value = _messages.StringField(8)


class GoogleCloudDialogflowV2beta1IntentSuggestion(_messages.Message):
  r"""Represents an intent suggestion.

  Fields:
    description: Human readable description for better understanding an intent
      like its scope, content, result etc. Maximum character limit: 140
      characters.
    displayName: The display name of the intent.
    intentV2: The unique identifier of this intent. Format:
      `projects//locations//agent/intents/`.
  """

  description = _messages.StringField(1)
  displayName = _messages.StringField(2)
  intentV2 = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1IntentTrainingPhrase(_messages.Message):
  r"""Represents an example that the agent is trained on.

  Enums:
    TypeValueValuesEnum: Required. The type of the training phrase.

  Fields:
    name: Output only. The unique identifier of this training phrase.
    parts: Required. The ordered list of training phrase parts. The parts are
      concatenated in order to form the training phrase. Note: The API does
      not automatically annotate training phrases like the Dialogflow Console
      does. Note: Do not forget to include whitespace at part boundaries, so
      the training phrase is well formatted when the parts are concatenated.
      If the training phrase does not need to be annotated with parameters,
      you just need a single part with only the Part.text field set. If you
      want to annotate the training phrase, you must create multiple parts,
      where the fields of each part are populated in one of two ways: -
      `Part.text` is set to a part of the phrase that has no parameters. -
      `Part.text` is set to a part of the phrase that you want to annotate,
      and the `entity_type`, `alias`, and `user_defined` fields are all set.
    timesAddedCount: Optional. Indicates how many times this example was added
      to the intent. Each time a developer adds an existing sample by editing
      an intent or training, this counter is increased.
    type: Required. The type of the training phrase.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the training phrase.

    Values:
      TYPE_UNSPECIFIED: Not specified. This value should never be used.
      EXAMPLE: Examples do not contain @-prefixed entity type names, but
        example parts can be annotated with entity types.
      TEMPLATE: Templates are not annotated with entity types, but they can
        contain @-prefixed entity type names as substrings. Note: Template
        mode has been deprecated. Example mode is the only supported way to
        create new training phrases. If you have existing training phrases in
        template mode, they will be removed during training and it can cause a
        drop in agent performance.
    """
    TYPE_UNSPECIFIED = 0
    EXAMPLE = 1
    TEMPLATE = 2

  name = _messages.StringField(1)
  parts = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart', 2, repeated=True)
  timesAddedCount = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  type = _messages.EnumField('TypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2beta1IntentTrainingPhrasePart(_messages.Message):
  r"""Represents a part of a training phrase.

  Fields:
    alias: Optional. The parameter name for the value extracted from the
      annotated part of the example. This field is required for annotated
      parts of the training phrase.
    entityType: Optional. The entity type name prefixed with `@`. This field
      is required for annotated parts of the training phrase.
    text: Required. The text for this part.
    userDefined: Optional. Indicates whether the text was manually annotated.
      This field is set to true when the Dialogflow Console is used to
      manually annotate the part. When creating an annotated part with the
      API, you must set this to true.
  """

  alias = _messages.StringField(1)
  entityType = _messages.StringField(2)
  text = _messages.StringField(3)
  userDefined = _messages.BooleanField(4)


class GoogleCloudDialogflowV2beta1KnowledgeAnswers(_messages.Message):
  r"""Represents the result of querying a Knowledge base.

  Fields:
    answers: A list of answers from Knowledge Connector.
  """

  answers = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer', 1, repeated=True)


class GoogleCloudDialogflowV2beta1KnowledgeAnswersAnswer(_messages.Message):
  r"""An answer from Knowledge Connector.

  Enums:
    MatchConfidenceLevelValueValuesEnum: The system's confidence level that
      this knowledge answer is a good match for this conversational query.
      NOTE: The confidence level for a given `` pair may change without
      notice, as it depends on models that are constantly being improved.
      However, it will change less frequently than the confidence score below,
      and should be preferred for referencing the quality of an answer.

  Fields:
    answer: The piece of text from the `source` knowledge base document that
      answers this conversational query.
    faqQuestion: The corresponding FAQ question if the answer was extracted
      from a FAQ Document, empty otherwise.
    matchConfidence: The system's confidence score that this Knowledge answer
      is a good match for this conversational query. The range is from 0.0
      (completely uncertain) to 1.0 (completely certain). Note: The confidence
      score is likely to vary somewhat (possibly even for identical requests),
      as the underlying model is under constant improvement. It may be
      deprecated in the future. We recommend using `match_confidence_level`
      which should be generally more stable.
    matchConfidenceLevel: The system's confidence level that this knowledge
      answer is a good match for this conversational query. NOTE: The
      confidence level for a given `` pair may change without notice, as it
      depends on models that are constantly being improved. However, it will
      change less frequently than the confidence score below, and should be
      preferred for referencing the quality of an answer.
    source: Indicates which Knowledge Document this answer was extracted from.
      Format: `projects//knowledgeBases//documents/`.
  """

  class MatchConfidenceLevelValueValuesEnum(_messages.Enum):
    r"""The system's confidence level that this knowledge answer is a good
    match for this conversational query. NOTE: The confidence level for a
    given `` pair may change without notice, as it depends on models that are
    constantly being improved. However, it will change less frequently than
    the confidence score below, and should be preferred for referencing the
    quality of an answer.

    Values:
      MATCH_CONFIDENCE_LEVEL_UNSPECIFIED: Not specified.
      LOW: Indicates that the confidence is low.
      MEDIUM: Indicates our confidence is medium.
      HIGH: Indicates our confidence is high.
    """
    MATCH_CONFIDENCE_LEVEL_UNSPECIFIED = 0
    LOW = 1
    MEDIUM = 2
    HIGH = 3

  answer = _messages.StringField(1)
  faqQuestion = _messages.StringField(2)
  matchConfidence = _messages.FloatField(3, variant=_messages.Variant.FLOAT)
  matchConfidenceLevel = _messages.EnumField('MatchConfidenceLevelValueValuesEnum', 4)
  source = _messages.StringField(5)


class GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer(_messages.Message):
  r"""Represents a Knowledge Assist answer.

  Fields:
    answerRecord: The name of the answer record. Format:
      `projects//locations//answer Records/`.
    suggestedQuery: The query suggested based on the context. Suggestion is
      made only if it is different from the previous suggestion.
    suggestedQueryAnswer: The answer generated for the suggested query.
      Whether or not an answer is generated depends on how confident we are
      about the generated query.
  """

  answerRecord = _messages.StringField(1)
  suggestedQuery = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery', 2)
  suggestedQueryAnswer = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer', 3)


class GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswer(_messages.Message):
  r"""Represents an answer from Knowledge. Currently supports FAQ and
  Generative answers.

  Fields:
    answerText: The piece of text from the `source` that answers this
      suggested query.
    faqSource: Populated if the prediction came from FAQ.
    generativeSource: Populated if the prediction was Generative.
  """

  answerText = _messages.StringField(1)
  faqSource = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource', 2)
  generativeSource = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource', 3)


class GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerFaqSource(_messages.Message):
  r"""Details about source of FAQ answer.

  Fields:
    question: The corresponding FAQ question.
  """

  question = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSource(_messages.Message):
  r"""Details about source of Generative answer.

  Fields:
    snippets: All snippets used for this Generative Prediction, with their
      source URI and data.
  """

  snippets = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet', 1, repeated=True)


class GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerKnowledgeAnswerGenerativeSourceSnippet(_messages.Message):
  r"""Snippet Source for a Generative Prediction.

  Messages:
    MetadataValue: Metadata of the document.

  Fields:
    metadata: Metadata of the document.
    text: Text taken from that URI.
    title: Title of the document.
    uri: URI the data is sourced from.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Metadata of the document.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)
  text = _messages.StringField(2)
  title = _messages.StringField(3)
  uri = _messages.StringField(4)


class GoogleCloudDialogflowV2beta1KnowledgeAssistAnswerSuggestedQuery(_messages.Message):
  r"""Represents a suggested query.

  Fields:
    queryText: Suggested query text.
  """

  queryText = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata(_messages.Message):
  r"""Metadata in google::longrunning::Operation for Knowledge operations.

  Enums:
    StateValueValuesEnum: Required. Output only. The current state of this
      operation.

  Fields:
    doneTime: The time when the operation finished.
    exportOperationMetadata: Metadata for the Export Data Operation such as
      the destination of export.
    knowledgeBase: The name of the knowledge base interacted with during the
      operation.
    state: Required. Output only. The current state of this operation.
  """

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

    Values:
      STATE_UNSPECIFIED: State unspecified.
      PENDING: The operation has been created.
      RUNNING: The operation is currently running.
      DONE: The operation is done, either cancelled or completed.
    """
    STATE_UNSPECIFIED = 0
    PENDING = 1
    RUNNING = 2
    DONE = 3

  doneTime = _messages.StringField(1)
  exportOperationMetadata = _messages.MessageField('GoogleCloudDialogflowV2beta1ExportOperationMetadata', 2)
  knowledgeBase = _messages.StringField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)


class GoogleCloudDialogflowV2beta1Message(_messages.Message):
  r"""Represents a message posted into a conversation.

  Enums:
    ParticipantRoleValueValuesEnum: Output only. The role of the participant.

  Fields:
    content: Required. The message content.
    createTime: Output only. The time when the message was created in Contact
      Center AI.
    languageCode: Optional. The message language. This should be a
      [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language tag.
      Example: "en-US".
    messageAnnotation: Output only. The annotation for the message.
    name: Optional. The unique identifier of the message. Format:
      `projects//locations//conversations//messages/`.
    participant: Output only. The participant that sends this message.
    participantRole: Output only. The role of the participant.
    responseMessages: Optional. Automated agent responses.
    sendTime: Optional. The time when the message was sent. For voice
      messages, this is the time when an utterance started.
    sentimentAnalysis: Output only. The sentiment analysis result for the
      message.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Output only. The role of the participant.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  content = _messages.StringField(1)
  createTime = _messages.StringField(2)
  languageCode = _messages.StringField(3)
  messageAnnotation = _messages.MessageField('GoogleCloudDialogflowV2beta1MessageAnnotation', 4)
  name = _messages.StringField(5)
  participant = _messages.StringField(6)
  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 7)
  responseMessages = _messages.MessageField('GoogleCloudDialogflowV2beta1ResponseMessage', 8, repeated=True)
  sendTime = _messages.StringField(9)
  sentimentAnalysis = _messages.MessageField('GoogleCloudDialogflowV2beta1SentimentAnalysisResult', 10)


class GoogleCloudDialogflowV2beta1MessageAnnotation(_messages.Message):
  r"""Represents the result of annotation for the message.

  Fields:
    containEntities: Required. Indicates whether the text message contains
      entities.
    parts: Optional. The collection of annotated message parts ordered by
      their position in the message. You can recover the annotated message by
      concatenating [AnnotatedMessagePart.text].
  """

  containEntities = _messages.BooleanField(1)
  parts = _messages.MessageField('GoogleCloudDialogflowV2beta1AnnotatedMessagePart', 2, repeated=True)


class GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest(_messages.Message):
  r"""Represents the contents of the original request that was passed to the
  `[Streaming]DetectIntent` call.

  Messages:
    PayloadValue: Optional. This field is set to the value of the
      `QueryParameters.payload` field passed in the request. Some integrations
      that query a Dialogflow agent may provide additional information in the
      payload. In particular, for the Dialogflow Phone Gateway integration,
      this field has the form: { "telephony": { "caller_id": "+18558363987" }
      } Note: The caller ID field (`caller_id`) will be redacted for Trial
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition
      agents.

  Fields:
    payload: Optional. This field is set to the value of the
      `QueryParameters.payload` field passed in the request. Some integrations
      that query a Dialogflow agent may provide additional information in the
      payload. In particular, for the Dialogflow Phone Gateway integration,
      this field has the form: { "telephony": { "caller_id": "+18558363987" }
      } Note: The caller ID field (`caller_id`) will be redacted for Trial
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition
      agents.
    source: The source of this request, e.g., `google`, `facebook`, `slack`.
      It is set by Dialogflow-owned servers.
    version: Optional. The version of the protocol used for this request. This
      field is AoG-specific.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Optional. This field is set to the value of the
    `QueryParameters.payload` field passed in the request. Some integrations
    that query a Dialogflow agent may provide additional information in the
    payload. In particular, for the Dialogflow Phone Gateway integration, this
    field has the form: { "telephony": { "caller_id": "+18558363987" } } Note:
    The caller ID field (`caller_id`) will be redacted for Trial Edition
    agents and populated with the caller ID in [E.164
    format](https://en.wikipedia.org/wiki/E.164) for Essentials Edition
    agents.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  payload = _messages.MessageField('PayloadValue', 1)
  source = _messages.StringField(2)
  version = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1QueryResult(_messages.Message):
  r"""Represents the result of conversational query or event processing.

  Messages:
    DiagnosticInfoValue: Free-form diagnostic information for the associated
      detect intent request. The fields of this data can change without
      notice, so you should not write code that depends on its structure. The
      data may contain: - webhook call latency - webhook errors
    ParametersValue: The collection of extracted parameters. Depending on your
      protocol or client library language, this is a map, associative array,
      symbol table, dictionary, or JSON object composed of a collection of
      (MapKey, MapValue) pairs: * MapKey type: string * MapKey value:
      parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.
    WebhookPayloadValue: If the query was fulfilled by a webhook call, this
      field is set to the value of the `payload` field returned in the webhook
      response.

  Fields:
    action: The action name from the matched intent.
    allRequiredParamsPresent: This field is set to: - `false` if the matched
      intent has required parameters and not all of the required parameter
      values have been collected. - `true` if all required parameter values
      have been collected, or if the matched intent doesn't contain any
      required parameters.
    cancelsSlotFilling: Indicates whether the conversational query triggers a
      cancellation for slot filling. For more information, see the [cancel
      slot filling
      documentation](https://cloud.google.com/dialogflow/es/docs/intents-
      actions-parameters#cancel).
    diagnosticInfo: Free-form diagnostic information for the associated detect
      intent request. The fields of this data can change without notice, so
      you should not write code that depends on its structure. The data may
      contain: - webhook call latency - webhook errors
    fulfillmentMessages: The collection of rich messages to present to the
      user.
    fulfillmentText: The text to be pronounced to the user or shown on the
      screen. Note: This is a legacy field, `fulfillment_messages` should be
      preferred.
    intent: The intent that matched the conversational query. Some, not all
      fields are filled in this message, including but not limited to: `name`,
      `display_name`, `end_interaction` and `is_fallback`.
    intentDetectionConfidence: The intent detection confidence. Values range
      from 0.0 (completely uncertain) to 1.0 (completely certain). This value
      is for informational purpose only and is only used to help match the
      best intent within the classification threshold. This value may change
      for the same end-user expression at any time due to a model retraining
      or change in implementation. If there are `multiple knowledge_answers`
      messages, this value is set to the greatest
      `knowledgeAnswers.match_confidence` value in the list.
    knowledgeAnswers: The result from Knowledge Connector (if any), ordered by
      decreasing `KnowledgeAnswers.match_confidence`.
    languageCode: The language that was triggered during intent detection. See
      [Language
      Support](https://cloud.google.com/dialogflow/docs/reference/language)
      for a list of the currently supported language codes.
    outputContexts: The collection of output contexts. If applicable,
      `output_contexts.parameters` contains entries with name `.original`
      containing the original parameter values before the query.
    parameters: The collection of extracted parameters. Depending on your
      protocol or client library language, this is a map, associative array,
      symbol table, dictionary, or JSON object composed of a collection of
      (MapKey, MapValue) pairs: * MapKey type: string * MapKey value:
      parameter name * MapValue type: If parameter's entity type is a
      composite entity then use map, otherwise, depending on the parameter
      value type, it could be one of string, number, boolean, null, list or
      map. * MapValue value: If parameter's entity type is a composite entity
      then use map from composite entity property names to property values,
      otherwise, use parameter value.
    queryText: The original conversational query text: - If natural language
      text was provided as input, `query_text` contains a copy of the input. -
      If natural language speech audio was provided as input, `query_text`
      contains the speech recognition result. If speech recognizer produced
      multiple alternatives, a particular one is picked. - If automatic spell
      correction is enabled, `query_text` will contain the corrected user
      input.
    sentimentAnalysisResult: The sentiment analysis result, which depends on
      the `sentiment_analysis_request_config` specified in the request.
    speechRecognitionConfidence: The Speech recognition confidence between 0.0
      and 1.0. A higher number indicates an estimated greater likelihood that
      the recognized words are correct. The default of 0.0 is a sentinel value
      indicating that confidence was not set. This field is not guaranteed to
      be accurate or set. In particular this field isn't set for
      StreamingDetectIntent since the streaming endpoint has separate
      confidence estimates per portion of the audio in
      StreamingRecognitionResult.
    webhookPayload: If the query was fulfilled by a webhook call, this field
      is set to the value of the `payload` field returned in the webhook
      response.
    webhookSource: If the query was fulfilled by a webhook call, this field is
      set to the value of the `source` field returned in the webhook response.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DiagnosticInfoValue(_messages.Message):
    r"""Free-form diagnostic information for the associated detect intent
    request. The fields of this data can change without notice, so you should
    not write code that depends on its structure. The data may contain: -
    webhook call latency - webhook errors

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a DiagnosticInfoValue 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 ParametersValue(_messages.Message):
    r"""The collection of extracted parameters. Depending on your protocol or
    client library language, this is a map, associative array, symbol table,
    dictionary, or JSON object composed of a collection of (MapKey, MapValue)
    pairs: * MapKey type: string * MapKey value: parameter name * MapValue
    type: If parameter's entity type is a composite entity then use map,
    otherwise, depending on the parameter value type, it could be one of
    string, number, boolean, null, list or map. * MapValue value: If
    parameter's entity type is a composite entity then use map from composite
    entity property names to property values, otherwise, use parameter value.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ParametersValue 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 WebhookPayloadValue(_messages.Message):
    r"""If the query was fulfilled by a webhook call, this field is set to the
    value of the `payload` field returned in the webhook response.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  allRequiredParamsPresent = _messages.BooleanField(2)
  cancelsSlotFilling = _messages.BooleanField(3)
  diagnosticInfo = _messages.MessageField('DiagnosticInfoValue', 4)
  fulfillmentMessages = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessage', 5, repeated=True)
  fulfillmentText = _messages.StringField(6)
  intent = _messages.MessageField('GoogleCloudDialogflowV2beta1Intent', 7)
  intentDetectionConfidence = _messages.FloatField(8, variant=_messages.Variant.FLOAT)
  knowledgeAnswers = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAnswers', 9)
  languageCode = _messages.StringField(10)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2beta1Context', 11, repeated=True)
  parameters = _messages.MessageField('ParametersValue', 12)
  queryText = _messages.StringField(13)
  sentimentAnalysisResult = _messages.MessageField('GoogleCloudDialogflowV2beta1SentimentAnalysisResult', 14)
  speechRecognitionConfidence = _messages.FloatField(15, variant=_messages.Variant.FLOAT)
  webhookPayload = _messages.MessageField('WebhookPayloadValue', 16)
  webhookSource = _messages.StringField(17)


class GoogleCloudDialogflowV2beta1ResponseMessage(_messages.Message):
  r"""Response messages from an automated agent.

  Messages:
    PayloadValue: Returns a response containing a custom, platform-specific
      payload.

  Fields:
    endInteraction: A signal that indicates the interaction with the
      Dialogflow agent has ended.
    liveAgentHandoff: Hands off conversation to a live agent.
    mixedAudio: An audio response message composed of both the synthesized
      Dialogflow agent responses and the audios hosted in places known to the
      client.
    payload: Returns a response containing a custom, platform-specific
      payload.
    telephonyTransferCall: A signal that the client should transfer the phone
      call connected to this agent to a third-party endpoint.
    text: Returns a text response.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Returns a response containing a custom, platform-specific payload.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  endInteraction = _messages.MessageField('GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction', 1)
  liveAgentHandoff = _messages.MessageField('GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff', 2)
  mixedAudio = _messages.MessageField('GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio', 3)
  payload = _messages.MessageField('PayloadValue', 4)
  telephonyTransferCall = _messages.MessageField('GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall', 5)
  text = _messages.MessageField('GoogleCloudDialogflowV2beta1ResponseMessageText', 6)


class GoogleCloudDialogflowV2beta1ResponseMessageEndInteraction(_messages.Message):
  r"""Indicates that interaction with the Dialogflow agent has ended."""


class GoogleCloudDialogflowV2beta1ResponseMessageLiveAgentHandoff(_messages.Message):
  r"""Indicates that the conversation should be handed off to a human agent.
  Dialogflow only uses this to determine which conversations were handed off
  to a human agent for measurement purposes. What else to do with this signal
  is up to you and your handoff procedures. You may set this, for example: *
  In the entry fulfillment of a Dialogflow CX Page if entering the page
  indicates something went extremely wrong in the conversation. * In a webhook
  response when you determine that the customer issue can only be handled by a
  human.

  Messages:
    MetadataValue: Custom metadata for your handoff procedure. Dialogflow
      doesn't impose any structure on this.

  Fields:
    metadata: Custom metadata for your handoff procedure. Dialogflow doesn't
      impose any structure on this.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Custom metadata for your handoff procedure. Dialogflow doesn't impose
    any structure on this.

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

    Fields:
      additionalProperties: Properties of the object.
    """

    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)

  metadata = _messages.MessageField('MetadataValue', 1)


class GoogleCloudDialogflowV2beta1ResponseMessageMixedAudio(_messages.Message):
  r"""Represents an audio message that is composed of both segments
  synthesized from the Dialogflow agent prompts and ones hosted externally at
  the specified URIs.

  Fields:
    segments: Segments this audio response is composed of.
  """

  segments = _messages.MessageField('GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment', 1, repeated=True)


class GoogleCloudDialogflowV2beta1ResponseMessageMixedAudioSegment(_messages.Message):
  r"""Represents one segment of audio.

  Fields:
    allowPlaybackInterruption: Whether the playback of this segment can be
      interrupted by the end user's speech and the client should then start
      the next Dialogflow request.
    audio: Raw audio synthesized from the Dialogflow agent's response using
      the output config specified in the request.
    uri: Client-specific URI that points to an audio clip accessible to the
      client.
  """

  allowPlaybackInterruption = _messages.BooleanField(1)
  audio = _messages.BytesField(2)
  uri = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1ResponseMessageTelephonyTransferCall(_messages.Message):
  r"""Represents the signal that telles the client to transfer the phone call
  connected to the agent to a third-party endpoint.

  Fields:
    phoneNumber: Transfer the call to a phone number in [E.164
      format](https://en.wikipedia.org/wiki/E.164).
    sipUri: Transfer the call to a SIP endpoint.
  """

  phoneNumber = _messages.StringField(1)
  sipUri = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1ResponseMessageText(_messages.Message):
  r"""The text response message.

  Fields:
    text: A collection of text response variants. If multiple variants are
      defined, only one text response variant is returned at runtime.
  """

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


class GoogleCloudDialogflowV2beta1Sentiment(_messages.Message):
  r"""The sentiment, such as positive/negative feeling or association, for a
  unit of analysis, such as the query text. See:
  https://cloud.google.com/natural-
  language/docs/basics#interpreting_sentiment_analysis_values for how to
  interpret the result.

  Fields:
    magnitude: A non-negative number in the [0, +inf) range, which represents
      the absolute magnitude of sentiment, regardless of score (positive or
      negative).
    score: Sentiment score between -1.0 (negative sentiment) and 1.0 (positive
      sentiment).
  """

  magnitude = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  score = _messages.FloatField(2, variant=_messages.Variant.FLOAT)


class GoogleCloudDialogflowV2beta1SentimentAnalysisResult(_messages.Message):
  r"""The result of sentiment analysis. Sentiment analysis inspects user input
  and identifies the prevailing subjective opinion, especially to determine a
  user's attitude as positive, negative, or neutral. For
  Participants.DetectIntent, it needs to be configured in
  DetectIntentRequest.query_params. For Participants.StreamingDetectIntent, it
  needs to be configured in StreamingDetectIntentRequest.query_params. And for
  Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it
  needs to be configured in ConversationProfile.human_agent_assistant_config

  Fields:
    queryTextSentiment: The sentiment analysis result for `query_text`.
  """

  queryTextSentiment = _messages.MessageField('GoogleCloudDialogflowV2beta1Sentiment', 1)


class GoogleCloudDialogflowV2beta1SessionEntityType(_messages.Message):
  r"""A session represents a conversation between a Dialogflow agent and an
  end-user. You can create special entities, called session entities, during a
  session. Session entities can extend or replace custom entity types and only
  exist during the session that they were created for. All session data,
  including session entities, is stored by Dialogflow for 20 minutes. For more
  information, see the [session entity
  guide](https://cloud.google.com/dialogflow/docs/entities-session).

  Enums:
    EntityOverrideModeValueValuesEnum: Required. Indicates whether the
      additional data should override or supplement the custom entity type
      definition.

  Fields:
    entities: Required. The collection of entities associated with this
      session entity type.
    entityOverrideMode: Required. Indicates whether the additional data should
      override or supplement the custom entity type definition.
    name: Required. The unique identifier of this session entity type.
      Supported formats: - `projects//agent/sessions//entityTypes/` -
      `projects//locations//agent/sessions//entityTypes/` -
      `projects//agent/environments//users//sessions//entityTypes/` -
      `projects//locations//agent/environments/
      /users//sessions//entityTypes/` If `Location ID` is not specified we
      assume default 'us' location. If `Environment ID` is not specified, we
      assume default 'draft' environment. If `User ID` is not specified, we
      assume default '-' user. `` must be the display name of an existing
      entity type in the same agent that will be overridden or supplemented.
  """

  class EntityOverrideModeValueValuesEnum(_messages.Enum):
    r"""Required. Indicates whether the additional data should override or
    supplement the custom entity type definition.

    Values:
      ENTITY_OVERRIDE_MODE_UNSPECIFIED: Not specified. This value should be
        never used.
      ENTITY_OVERRIDE_MODE_OVERRIDE: The collection of session entities
        overrides the collection of entities in the corresponding custom
        entity type.
      ENTITY_OVERRIDE_MODE_SUPPLEMENT: The collection of session entities
        extends the collection of entities in the corresponding custom entity
        type. Note: Even in this override mode calls to
        `ListSessionEntityTypes`, `GetSessionEntityType`,
        `CreateSessionEntityType` and `UpdateSessionEntityType` only return
        the additional entities added in this session entity type. If you want
        to get the supplemented list, please call EntityTypes.GetEntityType on
        the custom entity type and merge.
    """
    ENTITY_OVERRIDE_MODE_UNSPECIFIED = 0
    ENTITY_OVERRIDE_MODE_OVERRIDE = 1
    ENTITY_OVERRIDE_MODE_SUPPLEMENT = 2

  entities = _messages.MessageField('GoogleCloudDialogflowV2beta1EntityTypeEntity', 1, repeated=True)
  entityOverrideMode = _messages.EnumField('EntityOverrideModeValueValuesEnum', 2)
  name = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1SetSuggestionFeatureConfigOperationMetadata(_messages.Message):
  r"""Metadata for a ConversationProfile.SetSuggestionFeatureConfig operation.

  Enums:
    ParticipantRoleValueValuesEnum: Required. The participant role to add or
      update the suggestion feature config. Only HUMAN_AGENT or END_USER can
      be used.
    SuggestionFeatureTypeValueValuesEnum: Required. The type of the suggestion
      feature to add or update.

  Fields:
    conversationProfile: The resource name of the conversation profile.
      Format: `projects//locations//conversationProfiles/`
    createTime: Timestamp whe the request was created. The time is measured on
      server side.
    participantRole: Required. The participant role to add or update the
      suggestion feature config. Only HUMAN_AGENT or END_USER can be used.
    suggestionFeatureType: Required. The type of the suggestion feature to add
      or update.
  """

  class ParticipantRoleValueValuesEnum(_messages.Enum):
    r"""Required. The participant role to add or update the suggestion feature
    config. Only HUMAN_AGENT or END_USER can be used.

    Values:
      ROLE_UNSPECIFIED: Participant role not set.
      HUMAN_AGENT: Participant is a human agent.
      AUTOMATED_AGENT: Participant is an automated agent, such as a Dialogflow
        agent.
      END_USER: Participant is an end user that has called or chatted with
        Dialogflow services.
    """
    ROLE_UNSPECIFIED = 0
    HUMAN_AGENT = 1
    AUTOMATED_AGENT = 2
    END_USER = 3

  class SuggestionFeatureTypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the suggestion feature to add or update.

    Values:
      TYPE_UNSPECIFIED: Unspecified feature type.
      ARTICLE_SUGGESTION: Run article suggestion model for chat.
      FAQ: Run FAQ model.
      SMART_REPLY: Run smart reply model for chat.
      DIALOGFLOW_ASSIST: Run Dialogflow assist model for chat, which will
        return automated agent response as suggestion.
      CONVERSATION_SUMMARIZATION: Run conversation summarization model for
        chat.
      KNOWLEDGE_SEARCH: Run knowledge search with text input from agent or
        text generated query.
      KNOWLEDGE_ASSIST: Run knowledge assist with automatic query generation.
    """
    TYPE_UNSPECIFIED = 0
    ARTICLE_SUGGESTION = 1
    FAQ = 2
    SMART_REPLY = 3
    DIALOGFLOW_ASSIST = 4
    CONVERSATION_SUMMARIZATION = 5
    KNOWLEDGE_SEARCH = 6
    KNOWLEDGE_ASSIST = 7

  conversationProfile = _messages.StringField(1)
  createTime = _messages.StringField(2)
  participantRole = _messages.EnumField('ParticipantRoleValueValuesEnum', 3)
  suggestionFeatureType = _messages.EnumField('SuggestionFeatureTypeValueValuesEnum', 4)


class GoogleCloudDialogflowV2beta1SmartReplyAnswer(_messages.Message):
  r"""Represents a smart reply answer.

  Fields:
    answerRecord: The name of answer record, in the format of
      "projects//locations//answerRecords/"
    confidence: Smart reply confidence. The system's confidence score that
      this reply is a good match for this conversation, as a value from 0.0
      (completely uncertain) to 1.0 (completely certain).
    reply: The content of the reply.
  """

  answerRecord = _messages.StringField(1)
  confidence = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  reply = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1SpeechWordInfo(_messages.Message):
  r"""Information for a word recognized by the speech recognizer.

  Fields:
    confidence: The Speech confidence between 0.0 and 1.0 for this word. A
      higher number indicates an estimated greater likelihood that the
      recognized word is correct. The default of 0.0 is a sentinel value
      indicating that confidence was not set. This field is not guaranteed to
      be fully stable over time for the same audio input. Users should also
      not rely on it to always be provided.
    endOffset: Time offset relative to the beginning of the audio that
      corresponds to the end of the spoken word. This is an experimental
      feature and the accuracy of the time offset can vary.
    startOffset: Time offset relative to the beginning of the audio that
      corresponds to the start of the spoken word. This is an experimental
      feature and the accuracy of the time offset can vary.
    word: The word this info is for.
  """

  confidence = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  endOffset = _messages.StringField(2)
  startOffset = _messages.StringField(3)
  word = _messages.StringField(4)


class GoogleCloudDialogflowV2beta1StreamingRecognitionResult(_messages.Message):
  r"""Contains a speech recognition result corresponding to a portion of the
  audio that is currently being processed or an indication that this is the
  end of the single requested utterance. While end-user audio is being
  processed, Dialogflow sends a series of results. Each result may contain a
  `transcript` value. A transcript represents a portion of the utterance.
  While the recognizer is processing audio, transcript values may be interim
  values or finalized values. Once a transcript is finalized, the `is_final`
  value is set to true and processing continues for the next transcript. If
  `StreamingDetectIntentRequest.query_input.audio_config.single_utterance` was
  true, and the recognizer has completed processing audio, the `message_type`
  value is set to `END_OF_SINGLE_UTTERANCE and the following (last) result
  contains the last finalized transcript. The complete end-user utterance is
  determined by concatenating the finalized transcript values received for the
  series of results. In the following example, single utterance is enabled. In
  the case where single utterance is not enabled, result 7 would not occur.
  ``` Num | transcript | message_type | is_final --- | -----------------------
  | ----------------------- | -------- 1 | "tube" | TRANSCRIPT | false 2 | "to
  be a" | TRANSCRIPT | false 3 | "to be" | TRANSCRIPT | false 4 | "to be or
  not to be" | TRANSCRIPT | true 5 | "that's" | TRANSCRIPT | false 6 | "that
  is | TRANSCRIPT | false 7 | unset | END_OF_SINGLE_UTTERANCE | unset 8 | "
  that is the question" | TRANSCRIPT | true ``` Concatenating the finalized
  transcripts with `is_final` set to true, the complete utterance becomes "to
  be or not to be that is the question".

  Enums:
    MessageTypeValueValuesEnum: Type of the result message.

  Fields:
    confidence: The Speech confidence between 0.0 and 1.0 for the current
      portion of audio. A higher number indicates an estimated greater
      likelihood that the recognized words are correct. The default of 0.0 is
      a sentinel value indicating that confidence was not set. This field is
      typically only provided if `is_final` is true and you should not rely on
      it being accurate or even set.
    dtmfDigits: DTMF digits. Populated if and only if `message_type` =
      `DTMF_DIGITS`.
    isFinal: If `false`, the `StreamingRecognitionResult` represents an
      interim result that may change. If `true`, the recognizer will not
      return any further hypotheses about this piece of the audio. May only be
      populated for `message_type` = `TRANSCRIPT`.
    languageCode: Detected language code for the transcript.
    messageType: Type of the result message.
    speechEndOffset: Time offset of the end of this Speech recognition result
      relative to the beginning of the audio. Only populated for
      `message_type` = `TRANSCRIPT`.
    speechWordInfo: Word-specific information for the words recognized by
      Speech in transcript. Populated if and only if `message_type` =
      `TRANSCRIPT` and [InputAudioConfig.enable_word_info] is set.
    stability: An estimate of the likelihood that the speech recognizer will
      not change its guess about this interim recognition result: * If the
      value is unspecified or 0.0, Dialogflow didn't compute the stability. In
      particular, Dialogflow will only provide stability for `TRANSCRIPT`
      results with `is_final = false`. * Otherwise, the value is in (0.0, 1.0]
      where 0.0 means completely unstable and 1.0 means completely stable.
    transcript: Transcript text representing the words that the user spoke.
      Populated if and only if `message_type` = `TRANSCRIPT`.
  """

  class MessageTypeValueValuesEnum(_messages.Enum):
    r"""Type of the result message.

    Values:
      MESSAGE_TYPE_UNSPECIFIED: Not specified. Should never be used.
      TRANSCRIPT: Message contains a (possibly partial) transcript.
      END_OF_SINGLE_UTTERANCE: This event indicates that the server has
        detected the end of the user's speech utterance and expects no
        additional speech. Therefore, the server will not process additional
        audio (although it may subsequently return additional results). The
        client should stop sending additional audio data, half-close the gRPC
        connection, and wait for any additional results until the server
        closes the gRPC connection. This message is only sent if
        `single_utterance` was set to `true`, and is not used otherwise.
      DTMF_DIGITS: Message contains DTMF digits.
      PARTIAL_DTMF_DIGITS: Message contains DTMF digits. Before a message with
        DTMF_DIGITS is sent, a message with PARTIAL_DTMF_DIGITS may be sent
        with DTMF digits collected up to the time of sending, which represents
        an intermediate result.
    """
    MESSAGE_TYPE_UNSPECIFIED = 0
    TRANSCRIPT = 1
    END_OF_SINGLE_UTTERANCE = 2
    DTMF_DIGITS = 3
    PARTIAL_DTMF_DIGITS = 4

  confidence = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  dtmfDigits = _messages.MessageField('GoogleCloudDialogflowV2beta1TelephonyDtmfEvents', 2)
  isFinal = _messages.BooleanField(3)
  languageCode = _messages.StringField(4)
  messageType = _messages.EnumField('MessageTypeValueValuesEnum', 5)
  speechEndOffset = _messages.StringField(6)
  speechWordInfo = _messages.MessageField('GoogleCloudDialogflowV2beta1SpeechWordInfo', 7, repeated=True)
  stability = _messages.FloatField(8, variant=_messages.Variant.FLOAT)
  transcript = _messages.StringField(9)


class GoogleCloudDialogflowV2beta1SuggestArticlesResponse(_messages.Message):
  r"""The response message for Participants.SuggestArticles.

  Fields:
    articleAnswers: Output only. Articles ordered by score in descending
      order.
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestArticlesResponse.context_size field in the request if there
      aren't that many messages in the conversation.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
  """

  articleAnswers = _messages.MessageField('GoogleCloudDialogflowV2beta1ArticleAnswer', 1, repeated=True)
  contextSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse(_messages.Message):
  r"""The response message for Participants.SuggestDialogflowAssists.

  Fields:
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestDialogflowAssistsRequest.context_size field in the request if
      there aren't that many messages in the conversation.
    dialogflowAssistAnswers: Output only. Multiple reply options provided by
      Dialogflow assist service. The order is based on the rank of the model
      prediction.
    latestMessage: The name of the latest conversation message used to suggest
      answer. Format: `projects//locations//conversations//messages/`.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  dialogflowAssistAnswers = _messages.MessageField('GoogleCloudDialogflowV2beta1DialogflowAssistAnswer', 2, repeated=True)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse(_messages.Message):
  r"""The request message for Participants.SuggestFaqAnswers.

  Fields:
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestFaqAnswersRequest.context_size field in the request if there
      aren't that many messages in the conversation.
    faqAnswers: Output only. Answers extracted from FAQ documents.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  faqAnswers = _messages.MessageField('GoogleCloudDialogflowV2beta1FaqAnswer', 2, repeated=True)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse(_messages.Message):
  r"""The response message for Participants.SuggestKnowledgeAssist.

  Fields:
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestKnowledgeAssistRequest.context_size field in the request if there
      are fewer messages in the conversation.
    knowledgeAssistAnswer: Output only. Knowledge Assist suggestion.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  knowledgeAssistAnswer = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAssistAnswer', 2)
  latestMessage = _messages.StringField(3)


class GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse(_messages.Message):
  r"""The response message for Participants.SuggestSmartReplies.

  Fields:
    contextSize: Number of messages prior to and including latest_message to
      compile the suggestion. It may be smaller than the
      SuggestSmartRepliesRequest.context_size field in the request if there
      aren't that many messages in the conversation.
    latestMessage: The name of the latest conversation message used to compile
      suggestion for. Format: `projects//locations//conversations//messages/`.
    smartReplyAnswers: Output only. Multiple reply options provided by smart
      reply service. The order is based on the rank of the model prediction.
      The maximum number of the returned replies is set in SmartReplyConfig.
  """

  contextSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  latestMessage = _messages.StringField(2)
  smartReplyAnswers = _messages.MessageField('GoogleCloudDialogflowV2beta1SmartReplyAnswer', 3, repeated=True)


class GoogleCloudDialogflowV2beta1SuggestionResult(_messages.Message):
  r"""One response of different type of suggestion response which is used in
  the response of Participants.AnalyzeContent and Participants.AnalyzeContent,
  as well as HumanAgentAssistantEvent.

  Fields:
    error: Error status if the request failed.
    generateSuggestionsResponse: Suggestions generated using generators
      triggered by customer or agent messages.
    suggestArticlesResponse: SuggestArticlesResponse if request is for
      ARTICLE_SUGGESTION.
    suggestDialogflowAssistsResponse: SuggestDialogflowAssistsResponse if
      request is for DIALOGFLOW_ASSIST.
    suggestEntityExtractionResponse: SuggestDialogflowAssistsResponse if
      request is for ENTITY_EXTRACTION.
    suggestFaqAnswersResponse: SuggestFaqAnswersResponse if request is for
      FAQ_ANSWER.
    suggestKnowledgeAssistResponse: SuggestKnowledgeAssistResponse if request
      is for KNOWLEDGE_ASSIST.
    suggestSmartRepliesResponse: SuggestSmartRepliesResponse if request is for
      SMART_REPLY.
  """

  error = _messages.MessageField('GoogleRpcStatus', 1)
  generateSuggestionsResponse = _messages.MessageField('GoogleCloudDialogflowV2beta1GenerateSuggestionsResponse', 2)
  suggestArticlesResponse = _messages.MessageField('GoogleCloudDialogflowV2beta1SuggestArticlesResponse', 3)
  suggestDialogflowAssistsResponse = _messages.MessageField('GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse', 4)
  suggestEntityExtractionResponse = _messages.MessageField('GoogleCloudDialogflowV2beta1SuggestDialogflowAssistsResponse', 5)
  suggestFaqAnswersResponse = _messages.MessageField('GoogleCloudDialogflowV2beta1SuggestFaqAnswersResponse', 6)
  suggestKnowledgeAssistResponse = _messages.MessageField('GoogleCloudDialogflowV2beta1SuggestKnowledgeAssistResponse', 7)
  suggestSmartRepliesResponse = _messages.MessageField('GoogleCloudDialogflowV2beta1SuggestSmartRepliesResponse', 8)


class GoogleCloudDialogflowV2beta1SummarySuggestion(_messages.Message):
  r"""Suggested summary of the conversation.

  Fields:
    summarySections: Required. All the parts of generated summary.
  """

  summarySections = _messages.MessageField('GoogleCloudDialogflowV2beta1SummarySuggestionSummarySection', 1, repeated=True)


class GoogleCloudDialogflowV2beta1SummarySuggestionSummarySection(_messages.Message):
  r"""A component of the generated summary.

  Fields:
    section: Required. Name of the section.
    summary: Required. Summary text for the section.
  """

  section = _messages.StringField(1)
  summary = _messages.StringField(2)


class GoogleCloudDialogflowV2beta1TelephonyDtmfEvents(_messages.Message):
  r"""A wrapper of repeated TelephonyDtmf digits.

  Enums:
    DtmfEventsValueListEntryValuesEnum:

  Fields:
    dtmfEvents: A sequence of TelephonyDtmf digits.
  """

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

    Values:
      TELEPHONY_DTMF_UNSPECIFIED: Not specified. This value may be used to
        indicate an absent digit.
      DTMF_ONE: Number: '1'.
      DTMF_TWO: Number: '2'.
      DTMF_THREE: Number: '3'.
      DTMF_FOUR: Number: '4'.
      DTMF_FIVE: Number: '5'.
      DTMF_SIX: Number: '6'.
      DTMF_SEVEN: Number: '7'.
      DTMF_EIGHT: Number: '8'.
      DTMF_NINE: Number: '9'.
      DTMF_ZERO: Number: '0'.
      DTMF_A: Letter: 'A'.
      DTMF_B: Letter: 'B'.
      DTMF_C: Letter: 'C'.
      DTMF_D: Letter: 'D'.
      DTMF_STAR: Asterisk/star: '*'.
      DTMF_POUND: Pound/diamond/hash/square/gate/octothorpe: '#'.
    """
    TELEPHONY_DTMF_UNSPECIFIED = 0
    DTMF_ONE = 1
    DTMF_TWO = 2
    DTMF_THREE = 3
    DTMF_FOUR = 4
    DTMF_FIVE = 5
    DTMF_SIX = 6
    DTMF_SEVEN = 7
    DTMF_EIGHT = 8
    DTMF_NINE = 9
    DTMF_ZERO = 10
    DTMF_A = 11
    DTMF_B = 12
    DTMF_C = 13
    DTMF_D = 14
    DTMF_STAR = 15
    DTMF_POUND = 16

  dtmfEvents = _messages.EnumField('DtmfEventsValueListEntryValuesEnum', 1, repeated=True)


class GoogleCloudDialogflowV2beta1ToolCall(_messages.Message):
  r"""Represents a call of a specific tool's action with the specified inputs.

  Enums:
    StateValueValuesEnum: Output only. State of the tool call

  Messages:
    InputParametersValue: Optional. The action's input parameters.

  Fields:
    action: Optional. The name of the tool's action associated with this call.
    answerRecord: Optional. The answer record associated with this tool call.
    createTime: Output only. Create time of the tool call.
    inputParameters: Optional. The action's input parameters.
    state: Output only. State of the tool call
    tool: Optional. The tool associated with this call. Format:
      `projects//locations//tools/`.
    toolDisplayDetails: Optional. A human readable description of the tool.
    toolDisplayName: Optional. A human readable short name of the tool, to be
      shown on the UI.
  """

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

    Values:
      STATE_UNSPECIFIED: Default value.
      TRIGGERED: The tool call has been triggered.
      NEEDS_CONFIRMATION: The tool call requires confirmation from a human.
    """
    STATE_UNSPECIFIED = 0
    TRIGGERED = 1
    NEEDS_CONFIRMATION = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class InputParametersValue(_messages.Message):
    r"""Optional. The action's input parameters.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  action = _messages.StringField(1)
  answerRecord = _messages.StringField(2)
  createTime = _messages.StringField(3)
  inputParameters = _messages.MessageField('InputParametersValue', 4)
  state = _messages.EnumField('StateValueValuesEnum', 5)
  tool = _messages.StringField(6)
  toolDisplayDetails = _messages.StringField(7)
  toolDisplayName = _messages.StringField(8)


class GoogleCloudDialogflowV2beta1ToolCallResult(_messages.Message):
  r"""The result of calling a tool's action.

  Fields:
    action: Optional. The name of the tool's action associated with this call.
    answerRecord: Optional. The answer record associated with this tool call
      result.
    content: Only populated if the response content is utf-8 encoded.
    createTime: Output only. Create time of the tool call result.
    error: The tool call's error.
    rawContent: Only populated if the response content is not utf-8 encoded.
      (by definition byte fields are base64 encoded).
    tool: Optional. The tool associated with this call. Format:
      `projects//locations//tools/`.
  """

  action = _messages.StringField(1)
  answerRecord = _messages.StringField(2)
  content = _messages.StringField(3)
  createTime = _messages.StringField(4)
  error = _messages.MessageField('GoogleCloudDialogflowV2beta1ToolCallResultError', 5)
  rawContent = _messages.BytesField(6)
  tool = _messages.StringField(7)


class GoogleCloudDialogflowV2beta1ToolCallResultError(_messages.Message):
  r"""An error produced by the tool call.

  Fields:
    message: Optional. The error message of the function.
  """

  message = _messages.StringField(1)


class GoogleCloudDialogflowV2beta1WebhookRequest(_messages.Message):
  r"""The request message for a webhook call.

  Fields:
    alternativeQueryResults: Alternative query results from KnowledgeService.
    originalDetectIntentRequest: Optional. The contents of the original
      request that was passed to `[Streaming]DetectIntent` call.
    queryResult: The result of the conversational query or event processing.
      Contains the same value as
      `[Streaming]DetectIntentResponse.query_result`.
    responseId: The unique identifier of the response. Contains the same value
      as `[Streaming]DetectIntentResponse.response_id`.
    session: The unique identifier of detectIntent request session. Can be
      used to identify end-user inside webhook implementation. Supported
      formats: - `projects//agent/sessions/, -
      `projects//locations//agent/sessions/`, -
      `projects//agent/environments//users//sessions/`, -
      `projects//locations//agent/environments//users//sessions/`,
  """

  alternativeQueryResults = _messages.MessageField('GoogleCloudDialogflowV2beta1QueryResult', 1, repeated=True)
  originalDetectIntentRequest = _messages.MessageField('GoogleCloudDialogflowV2beta1OriginalDetectIntentRequest', 2)
  queryResult = _messages.MessageField('GoogleCloudDialogflowV2beta1QueryResult', 3)
  responseId = _messages.StringField(4)
  session = _messages.StringField(5)


class GoogleCloudDialogflowV2beta1WebhookResponse(_messages.Message):
  r"""The response message for a webhook call. This response is validated by
  the Dialogflow server. If validation fails, an error will be returned in the
  QueryResult.diagnostic_info field. Setting JSON fields to an empty value
  with the wrong type is a common error. To avoid this error: - Use `""` for
  empty strings - Use `{}` or `null` for empty objects - Use `[]` or `null`
  for empty arrays For more information, see the [Protocol Buffers Language
  Guide](https://developers.google.com/protocol-buffers/docs/proto3#json).

  Messages:
    PayloadValue: Optional. This field can be used to pass custom data from
      your webhook to the integration or API caller. Arbitrary JSON objects
      are supported. When provided, Dialogflow uses this field to populate
      QueryResult.webhook_payload sent to the integration or API caller. This
      field is also used by the [Google Assistant
      integration](https://cloud.google.com/dialogflow/docs/integrations/aog)
      for rich response messages. See the format definition at [Google
      Assistant Dialogflow webhook format](https://developers.google.com/assis
      tant/actions/build/json/dialogflow-webhook-json)

  Fields:
    endInteraction: Optional. Indicates that this intent ends an interaction.
      Some integrations (e.g., Actions on Google or Dialogflow phone gateway)
      use this information to close interaction with an end user. Default is
      false.
    followupEventInput: Optional. Invokes the supplied events. When this field
      is set, Dialogflow ignores the `fulfillment_text`,
      `fulfillment_messages`, and `payload` fields.
    fulfillmentMessages: Optional. The rich response messages intended for the
      end-user. When provided, Dialogflow uses this field to populate
      QueryResult.fulfillment_messages sent to the integration or API caller.
    fulfillmentText: Optional. The text response message intended for the end-
      user. It is recommended to use `fulfillment_messages.text.text[0]`
      instead. When provided, Dialogflow uses this field to populate
      QueryResult.fulfillment_text sent to the integration or API caller.
    liveAgentHandoff: Indicates that a live agent should be brought in to
      handle the interaction with the user. In most cases, when you set this
      flag to true, you would also want to set end_interaction to true as
      well. Default is false.
    outputContexts: Optional. The collection of output contexts that will
      overwrite currently active contexts for the session and reset their
      lifespans. When provided, Dialogflow uses this field to populate
      QueryResult.output_contexts sent to the integration or API caller.
    payload: Optional. This field can be used to pass custom data from your
      webhook to the integration or API caller. Arbitrary JSON objects are
      supported. When provided, Dialogflow uses this field to populate
      QueryResult.webhook_payload sent to the integration or API caller. This
      field is also used by the [Google Assistant
      integration](https://cloud.google.com/dialogflow/docs/integrations/aog)
      for rich response messages. See the format definition at [Google
      Assistant Dialogflow webhook format](https://developers.google.com/assis
      tant/actions/build/json/dialogflow-webhook-json)
    sessionEntityTypes: Optional. Additional session entity types to replace
      or extend developer entity types with. The entity synonyms apply to all
      languages and persist for the session. Setting this data from a webhook
      overwrites the session entity types that have been set using
      `detectIntent`, `streamingDetectIntent` or SessionEntityType management
      methods.
    source: Optional. A custom field used to identify the webhook source.
      Arbitrary strings are supported. When provided, Dialogflow uses this
      field to populate QueryResult.webhook_source sent to the integration or
      API caller.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Optional. This field can be used to pass custom data from your webhook
    to the integration or API caller. Arbitrary JSON objects are supported.
    When provided, Dialogflow uses this field to populate
    QueryResult.webhook_payload sent to the integration or API caller. This
    field is also used by the [Google Assistant
    integration](https://cloud.google.com/dialogflow/docs/integrations/aog)
    for rich response messages. See the format definition at [Google Assistant
    Dialogflow webhook format](https://developers.google.com/assistant/actions
    /build/json/dialogflow-webhook-json)

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

  endInteraction = _messages.BooleanField(1)
  followupEventInput = _messages.MessageField('GoogleCloudDialogflowV2beta1EventInput', 2)
  fulfillmentMessages = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessage', 3, repeated=True)
  fulfillmentText = _messages.StringField(4)
  liveAgentHandoff = _messages.BooleanField(5)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2beta1Context', 6, repeated=True)
  payload = _messages.MessageField('PayloadValue', 7)
  sessionEntityTypes = _messages.MessageField('GoogleCloudDialogflowV2beta1SessionEntityType', 8, repeated=True)
  source = _messages.StringField(9)


class GoogleCloudDialogflowV3alpha1ConversationSignals(_messages.Message):
  r"""This message is used to hold all the Conversation Signals data, which
  will be converted to JSON and exported to BigQuery.

  Fields:
    turnSignals: Required. Turn signals for the current turn.
  """

  turnSignals = _messages.MessageField('GoogleCloudDialogflowV3alpha1TurnSignals', 1)


class GoogleCloudDialogflowV3alpha1TurnSignals(_messages.Message):
  r"""Collection of all signals that were extracted for a single turn of the
  conversation.

  Enums:
    FailureReasonsValueListEntryValuesEnum:

  Fields:
    agentEscalated: Whether agent responded with LiveAgentHandoff fulfillment.
    dtmfUsed: Whether user was using DTMF input.
    failureReasons: Failure reasons of the turn.
    noMatch: Whether NLU predicted NO_MATCH.
    noUserInput: Whether user provided no input.
    reachedEndPage: Whether turn resulted in End Session page.
    sentimentMagnitude: Sentiment magnitude of the user utterance if
      [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentimen
      t) was enabled.
    sentimentScore: Sentiment score of the user utterance if
      [sentiment](https://cloud.google.com/dialogflow/cx/docs/concept/sentimen
      t) was enabled.
    triggeredAbandonmentEvent: Whether agent has triggered the event
      corresponding to user abandoning the conversation.
    userEscalated: Whether user was specifically asking for a live agent.
    webhookStatuses: Human-readable statuses of the webhooks triggered during
      this turn.
  """

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

    Values:
      FAILURE_REASON_UNSPECIFIED: Failure reason is not assigned.
      FAILED_INTENT: Whether NLU failed to recognize user intent.
      FAILED_WEBHOOK: Whether webhook failed during the turn.
    """
    FAILURE_REASON_UNSPECIFIED = 0
    FAILED_INTENT = 1
    FAILED_WEBHOOK = 2

  agentEscalated = _messages.BooleanField(1)
  dtmfUsed = _messages.BooleanField(2)
  failureReasons = _messages.EnumField('FailureReasonsValueListEntryValuesEnum', 3, repeated=True)
  noMatch = _messages.BooleanField(4)
  noUserInput = _messages.BooleanField(5)
  reachedEndPage = _messages.BooleanField(6)
  sentimentMagnitude = _messages.FloatField(7, variant=_messages.Variant.FLOAT)
  sentimentScore = _messages.FloatField(8, variant=_messages.Variant.FLOAT)
  triggeredAbandonmentEvent = _messages.BooleanField(9)
  userEscalated = _messages.BooleanField(10)
  webhookStatuses = _messages.StringField(11, repeated=True)


class GoogleCloudLocationListLocationsResponse(_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('GoogleCloudLocationLocation', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class GoogleCloudLocationLocation(_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 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 e.g. 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 GoogleTypeLatLng(_messages.Message):
  r"""An object that represents a latitude/longitude pair. This is expressed
  as a pair of doubles to represent degrees latitude and degrees longitude.
  Unless specified otherwise, this object must conform to the WGS84 standard.
  Values must be within normalized ranges.

  Fields:
    latitude: The latitude in degrees. It must be in the range [-90.0, +90.0].
    longitude: The longitude in degrees. It must be in the range [-180.0,
      +180.0].
  """

  latitude = _messages.FloatField(1)
  longitude = _messages.FloatField(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')
