"""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 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/<Project ID>/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/<Project ID>/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 of entity synonyms defined in
      `entity_type`. If not specified, the agent's default language is used.
      [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    parent: Required. The agent to create a entity type for. Format:
      `projects/<Project ID>/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/<Project ID>/agent/entityTypes/<EntityType ID>`.
  """

  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/<Project ID>/agent/entityTypes/<Entity Type ID>`.
  """

  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/<Project ID>/agent/entityTypes/<Entity Type ID>`.
  """

  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/<Project ID>/agent/entityTypes/<Entity Type ID>`.
  """

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


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

  Fields:
    languageCode: Optional. The language to retrieve entity synonyms for. If
      not specified, the agent's default language is used. [Many
      languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    name: Required. The name of the entity type. Format: `projects/<Project
      ID>/agent/entityTypes/<EntityType ID>`.
  """

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


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

  Fields:
    languageCode: Optional. The language to list entity synonyms for. If not
      specified, the agent's default language is used. [Many
      languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    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/<Project ID>/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 of entity synonyms defined in
      `entity_type`. If not specified, the agent's default language is used.
      [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    name: The unique identifier of the entity type. Required for
      EntityTypes.UpdateEntityType and EntityTypes.BatchUpdateEntityTypes
      methods. Format: `projects/<Project ID>/agent/entityTypes/<Entity Type
      ID>`.
    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 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/<Project ID>`.
  """

  googleCloudDialogflowV2ExportAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2ExportAgentRequest', 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/<Project ID>`.
  """

  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/<Project ID>/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/<Project ID>/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 of training phrases, parameters and
      rich messages defined in `intent`. If not specified, the agent's default
      language is used. [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    parent: Required. The agent to create a intent for. Format:
      `projects/<Project ID>/agent`.
  """

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

    Values:
      INTENT_VIEW_UNSPECIFIED: <no description>
      INTENT_VIEW_FULL: <no description>
    """
    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/<Project ID>/agent/intents/<Intent ID>`.
  """

  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 to retrieve training phrases,
      parameters and rich messages for. If not specified, the agent's default
      language is used. [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    name: Required. The name of the intent. Format: `projects/<Project
      ID>/agent/intents/<Intent ID>`.
  """

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

    Values:
      INTENT_VIEW_UNSPECIFIED: <no description>
      INTENT_VIEW_FULL: <no description>
    """
    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 to list training phrases, parameters
      and rich messages for. If not specified, the agent's default language is
      used. [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    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/<Project ID>/agent`.
  """

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

    Values:
      INTENT_VIEW_UNSPECIFIED: <no description>
      INTENT_VIEW_FULL: <no description>
    """
    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 of training phrases, parameters and
      rich messages defined in `intent`. If not specified, the agent's default
      language is used. [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    name: The unique identifier of this intent. Required for
      Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format:
      `projects/<Project ID>/agent/intents/<Intent ID>`.
    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: <no description>
      INTENT_VIEW_FULL: <no description>
    """
    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 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/<Project ID>`.
  """

  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: Optional. The next_page_token value returned from a previous
      list request.
    parent: Required. The project to list agents from. Format:
      `projects/<Project ID or '-'>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>/contexts/<Context
      ID>`.
  """

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


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

  Fields:
    name: Required. The name of the context. Format: `projects/<Project
      ID>/agent/sessions/<Session ID>/contexts/<Context ID>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>/contexts/<Context
      ID>`.  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.
    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/<Project ID>/agent/sessions/<Session ID>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>`. It's up to the API
      caller to choose an appropriate session ID. It can be a random number or
      some type of user identifier (preferably hashed). The length of the
      session ID must not exceed 36 bytes.
  """

  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/<Project ID>/agent/sessions/<Session ID>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity
      Type Display Name>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity
      Type Display Name>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>`.
  """

  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/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity
      Type Display Name>`.  `<Entity Type Display Name>` 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/<Project ID>`.
  """

  googleCloudDialogflowV2TrainAgentRequest = _messages.MessageField('GoogleCloudDialogflowV2TrainAgentRequest', 1)
  parent = _messages.StringField(2, 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/<Project ID>`.
  """

  parent = _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 GoogleCloudDialogflowV2Agent(_messages.Message):
  r"""Represents a conversational agent.

  Enums:
    MatchModeValueValuesEnum: Optional. Determines how intents are detected
      from user queries.

  Fields:
    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-enterprise/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-enterprise/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/<Project
      ID>`.
    supportedLanguageCodes: Optional. The list of all languages supported by
      this agent (except for the `default_language_code`).
    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 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
        developer entities.
    """
    MATCH_MODE_UNSPECIFIED = 0
    MATCH_MODE_HYBRID = 1
    MATCH_MODE_ML_ONLY = 2

  avatarUri = _messages.StringField(1)
  classificationThreshold = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  defaultLanguageCode = _messages.StringField(3)
  description = _messages.StringField(4)
  displayName = _messages.StringField(5)
  enableLogging = _messages.BooleanField(6)
  matchMode = _messages.EnumField('MatchModeValueValuesEnum', 7)
  parent = _messages.StringField(8)
  supportedLanguageCodes = _messages.StringField(9, repeated=True)
  timeZone = _messages.StringField(10)


class GoogleCloudDialogflowV2BatchCreateEntitiesRequest(_messages.Message):
  r"""The request message for EntityTypes.BatchCreateEntities.

  Fields:
    entities: Required. The entities to create.
    languageCode: Optional. The language of entity synonyms defined in
      `entities`. If not specified, the agent's default language is used.
      [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
  """

  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 canonical `values` of the entities to delete.
      Note that these are not fully-qualified names, i.e. they don't start
      with `projects/<Project ID>`.
    languageCode: Optional. The language of entity synonyms defined in
      `entities`. If not specified, the agent's default language is used.
      [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
  """

  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 of entity synonyms defined in
      `entities`. If not specified, the agent's default language is used.
      [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    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 of entity synonyms defined in
      `entity_types`. If not specified, the agent's default language is used.
      [Many languages](https://cloud.google.com/dialogflow-
      enterprise/docs/reference/language) are supported. Note: languages must
      be enabled in the agent before they can be used.
    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"""The request message for Intents.BatchUpdateIntents.

  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 of training phrases, parameters and
      rich messages defined in `intents`. If not specified, the agent's
      default language is used. [Many languages](https://cloud.google.com
      /dialogflow-enterprise/docs/reference/language) are supported. Note:
      languages must be enabled in the agent before they can be used.
    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 GoogleCloudDialogflowV2Context(_messages.Message):
  r"""Represents a context.

  Messages:
    ParametersValue: Optional. The collection of parameters associated with
      this context. Refer to [this doc](https://cloud.google.com/dialogflow-
      enterprise/docs/intents-actions-parameters) for syntax.

  Fields:
    lifespanCount: Optional. The number of conversational query requests after
      which the context expires. If set to `0` (the default) 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/<Project ID>/agent/sessions/<Session ID>/contexts/<Context
      ID>`.  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.
    parameters: Optional. The collection of parameters associated with this
      context. Refer to [this doc](https://cloud.google.com/dialogflow-
      enterprise/docs/intents-actions-parameters) for syntax.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional. The collection of parameters associated with this context.
    Refer to [this doc](https://cloud.google.com/dialogflow-enterprise/docs
    /intents-actions-parameters) for syntax.

    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 GoogleCloudDialogflowV2DetectIntentRequest(_messages.Message):
  r"""The request to detect user's intent.

  Fields:
    inputAudio: Optional. 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.
    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: Optional. The parameters of this query.
  """

  inputAudio = _messages.BytesField(1)
  queryInput = _messages.MessageField('GoogleCloudDialogflowV2QueryInput', 2)
  queryParams = _messages.MessageField('GoogleCloudDialogflowV2QueryParameters', 3)


class GoogleCloudDialogflowV2DetectIntentResponse(_messages.Message):
  r"""The message returned from the DetectIntent method.

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

  queryResult = _messages.MessageField('GoogleCloudDialogflowV2QueryResult', 1)
  responseId = _messages.StringField(2)
  webhookStatus = _messages.MessageField('GoogleRpcStatus', 3)


class GoogleCloudDialogflowV2EntityType(_messages.Message):
  r"""Represents an entity type. Entity types serve as a tool for extracting
  parameter values from natural language queries.

  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.
    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/<Project ID>/agent/entityTypes/<Entity Type
      ID>`.
  """

  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
        canonical value.
      KIND_LIST: List entity types contain a set of entries that do not map to
        canonical values. However, list entity types can contain references to
        other entity types (with or without aliases).
    """
    KIND_UNSPECIFIED = 0
    KIND_MAP = 1
    KIND_LIST = 2

  autoExpansionMode = _messages.EnumField('AutoExpansionModeValueValuesEnum', 1)
  displayName = _messages.StringField(2)
  entities = _messages.MessageField('GoogleCloudDialogflowV2EntityTypeEntity', 3, repeated=True)
  kind = _messages.EnumField('KindValueValuesEnum', 4)
  name = _messages.StringField(5)


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 canonical 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 GoogleCloudDialogflowV2EventInput(_messages.Message):
  r"""Events allow for matching intents by event name instead of the natural
  language input. For instance, input `<event: { name: "welcome_event",
  parameters: { name: "Sam" } }>` 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: Optional. The collection of parameters associated with
      the event.

  Fields:
    languageCode: Required. The language of this query. See [Language
      Support](https://cloud.google.com/dialogflow-
      enterprise/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.
    name: Required. The unique identifier of the event.
    parameters: Optional. The collection of parameters associated with the
      event.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional. The collection of parameters associated with the event.

    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: Optional. The [Google Cloud
      Storage](https://cloud.google.com/storage/docs/) URI to export the agent
      to. The format of this URI must be `gs://<bucket-name>/<object-name>`.
      If left unspecified, the serialized agent is returned inline.
  """

  agentUri = _messages.StringField(1)


class GoogleCloudDialogflowV2ExportAgentResponse(_messages.Message):
  r"""The response message for Agents.ExportAgent.

  Fields:
    agentContent: The exported agent.  Example for how to export an agent to a
      zip file via a command line: <pre>curl \   'https://dialogflow.googleapi
      s.com/v2/projects/&lt;project_name&gt;/agent:export'\   -X POST \   -H
      'Authorization: Bearer '$(gcloud auth application-default   print-
      access-token) \   -H 'Accept: application/json' \   -H 'Content-Type:
      application/json' \   --compressed \   --data-binary '{}' \ | grep
      agentContent | sed -e 's/.*"agentContent": "\([^"]*\)".*/\1/' \ | base64
      --decode > &lt;agent zip file&gt;</pre>
    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 GoogleCloudDialogflowV2ImportAgentRequest(_messages.Message):
  r"""The request message for Agents.ImportAgent.

  Fields:
    agentContent: The agent to import.  Example for how to import an agent via
      the command line: <pre>curl \   'https://dialogflow.googleapis.com/v2/pr
      ojects/&lt;project_name&gt;/agent:import\    -X POST \    -H
      'Authorization: Bearer '$(gcloud auth application-default    print-
      access-token) \    -H 'Accept: application/json' \    -H 'Content-Type:
      application/json' \    --compressed \    --data-binary "{
      'agentContent': '$(cat &lt;agent zip file&gt; | base64 -w 0)'
      }"</pre>
    agentUri: The URI to a Google Cloud Storage file containing the agent to
      import. Note: The URI must start with "gs://".
  """

  agentContent = _messages.BytesField(1)
  agentUri = _messages.StringField(2)


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.

  Fields:
    audioEncoding: Required. Audio encoding of the audio content to process.
    languageCode: Required. The language of the supplied audio. Dialogflow
      does not do translations. See [Language
      Support](https://cloud.google.com/dialogflow-
      enterprise/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.
    phraseHints: Optional. The collection of phrase hints which are used to
      boost accuracy of speech recognition. Refer to [Cloud Speech API
      documentation](https://cloud.google.com/speech-to-text/docs/basics
      #phrase-hints) for more details.
    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.
  """

  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_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

  audioEncoding = _messages.EnumField('AudioEncodingValueValuesEnum', 1)
  languageCode = _messages.StringField(2)
  phraseHints = _messages.StringField(3, repeated=True)
  sampleRateHertz = _messages.IntegerField(4, variant=_messages.Variant.INT32)


class GoogleCloudDialogflowV2Intent(_messages.Message):
  r"""Represents an intent. Intents convert a number of user expressions or
  patterns into an action. An action is an extraction of a user command or
  sentence semantics.

  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 response will be taken from among the messages assigned to the
      DEFAULT_PLATFORM.
    displayName: Required. The name of this intent.
    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.
    followupIntentInfo: 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/<Project
      ID>/agent/sessions/-/contexts/<Context ID>`.
    isFallback: Optional. Indicates whether this is a fallback intent.
    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_diabled` 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: The unique identifier of this intent. Required for
      Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format:
      `projects/<Project ID>/agent/intents/<Intent ID>`.
    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/<Project
      ID>/agent/sessions/-/contexts/<Context ID>`.
    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/<Project
      ID>/agent/intents/<Intent ID>`.
    priority: Optional. The priority of this intent. Higher numbers represent
      higher priorities. If this is zero or unspecified, we use the default
      priority 500000.  Negative numbers mean that the intent is disabled.
    resetContexts: Optional. Indicates whether to delete all contexts in the
      current session when this intent is matched.
    rootFollowupIntentName: 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/<Project ID>/agent/intents/<Intent ID>`.
    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: <no description>
      FACEBOOK: <no description>
      SLACK: <no description>
      TELEGRAM: <no description>
      KIK: <no description>
      SKYPE: <no description>
      LINE: <no description>
      VIBER: <no description>
      ACTIONS_ON_GOOGLE: <no description>
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8

  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)
  events = _messages.StringField(4, repeated=True)
  followupIntentInfo = _messages.MessageField('GoogleCloudDialogflowV2IntentFollowupIntentInfo', 5, repeated=True)
  inputContextNames = _messages.StringField(6, repeated=True)
  isFallback = _messages.BooleanField(7)
  messages = _messages.MessageField('GoogleCloudDialogflowV2IntentMessage', 8, repeated=True)
  mlDisabled = _messages.BooleanField(9)
  name = _messages.StringField(10)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 11, repeated=True)
  parameters = _messages.MessageField('GoogleCloudDialogflowV2IntentParameter', 12, repeated=True)
  parentFollowupIntentName = _messages.StringField(13)
  priority = _messages.IntegerField(14, variant=_messages.Variant.INT32)
  resetContexts = _messages.BooleanField(15)
  rootFollowupIntentName = _messages.StringField(16)
  trainingPhrases = _messages.MessageField('GoogleCloudDialogflowV2IntentTrainingPhrase', 17, repeated=True)
  webhookState = _messages.EnumField('WebhookStateValueValuesEnum', 18)


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/<Project ID>/agent/intents/<Intent ID>`.
    parentFollowupIntentName: The unique identifier of the followup intent's
      parent. Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
  """

  followupIntentName = _messages.StringField(1)
  parentFollowupIntentName = _messages.StringField(2)


class GoogleCloudDialogflowV2IntentMessage(_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: Returns a response containing a custom, platform-specific
      payload. See the Intent.Message.Platform type for a description of the
      structure that may be required for your platform.

  Fields:
    basicCard: The basic card response 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.
    payload: Returns a response containing a custom, platform-specific
      payload. See the Intent.Message.Platform type for a description of the
      structure that may be required for your platform.
    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.
    text: The 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: Actions on Google. When using Actions on Google, you
        can choose one of the specific Intent.Message types that mention
        support for Actions on Google, or you can use the advanced
        Intent.Message.payload field. The payload field provides access to AoG
        features not available in the specific message types. If using the
        Intent.Message.payload field, it should have a structure similar to
        the JSON message shown here. For more information, see [Actions on
        Google Webhook
        Format](https://developers.google.com/actions/dialogflow/webhook)
        <pre>{   "expectUserResponse": true,   "isSsml": false,
        "noInputPrompts": [],   "richResponse": {     "items": [       {
        "simpleResponse": {           "displayText": "hi",
        "textToSpeech": "hello"         }       }     ],     "suggestions": [
        {         "title": "Say this"       },       {         "title": "or
        this"       }     ]   },   "systemIntent": {     "data": {
        "@type": "type.googleapis.com/google.actions.v2.OptionValueSpec",
        "listSelect": {         "items": [           {
        "optionInfo": {               "key": "key1",               "synonyms":
        [                 "key one"               ]             },
        "title": "must not be empty, but unique"           },           {
        "optionInfo": {               "key": "key2",               "synonyms":
        [                 "key two"               ]             },
        "title": "must not be empty, but unique"           }         ]       }
        },     "intent": "actions.intent.OPTION"   } }</pre>
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Returns a response containing a custom, platform-specific payload. See
    the Intent.Message.Platform type for a description of the structure that
    may be required for your platform.

    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)
  card = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageCard', 2)
  carouselSelect = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageCarouselSelect', 3)
  image = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageImage', 4)
  linkOutSuggestion = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageLinkOutSuggestion', 5)
  listSelect = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageListSelect', 6)
  payload = _messages.MessageField('PayloadValue', 7)
  platform = _messages.EnumField('PlatformValueValuesEnum', 8)
  quickReplies = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageQuickReplies', 9)
  simpleResponses = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSimpleResponses', 10)
  suggestions = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageSuggestions', 11)
  text = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageText', 12)


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 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"""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 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 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.
    title: Optional. The overall title of the list.
  """

  items = _messages.MessageField('GoogleCloudDialogflowV2IntentMessageListSelectItem', 1, repeated=True)
  title = _messages.StringField(2)


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 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 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 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 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 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 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 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 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 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 Telephony Gateway this field has the
      form: <pre>{  "telephony": {    "caller_id": "+18558363987"  } }</pre>
      Note: The caller ID field (`caller_id`) will be redacted for Standard
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Enterprise 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 Telephony Gateway this field has the
      form: <pre>{  "telephony": {    "caller_id": "+18558363987"  } }</pre>
      Note: The caller ID field (`caller_id`) will be redacted for Standard
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Enterprise 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 Telephony Gateway this field has the form:
    <pre>{  "telephony": {    "caller_id": "+18558363987"  } }</pre> Note: The
    caller ID field (`caller_id`) will be redacted for Standard Edition agents
    and populated with the caller ID in [E.164
    format](https://en.wikipedia.org/wiki/E.164) for Enterprise 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 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.
  """

  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: Optional. This field can be used to pass custom data into
      the webhook associated with the agent. Arbitrary JSON objects are
      supported.

  Fields:
    contexts: Optional. The collection of contexts to be activated before this
      query is executed.
    geoLocation: Optional. The geo location of this conversational query.
    payload: Optional. This field can be used to pass custom data into the
      webhook associated with the agent. Arbitrary JSON objects are supported.
    resetContexts: Optional. Specifies whether to delete all contexts in the
      current session before the new ones are activated.
    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 of this query.
    timeZone: Optional. 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.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Optional. This field can be used to pass custom data into the webhook
    associated with the agent. Arbitrary JSON objects are supported.

    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)

  contexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 1, repeated=True)
  geoLocation = _messages.MessageField('GoogleTypeLatLng', 2)
  payload = _messages.MessageField('PayloadValue', 3)
  resetContexts = _messages.BooleanField(4)
  sessionEntityTypes = _messages.MessageField('GoogleCloudDialogflowV2SessionEntityType', 5, repeated=True)
  timeZone = _messages.StringField(6)


class GoogleCloudDialogflowV2QueryResult(_messages.Message):
  r"""Represents the result of conversational query or event processing.

  Messages:
    DiagnosticInfoValue: The free-form diagnostic info. For example, this
      field could contain webhook call latency. The string keys of the
      Struct's fields map can change without notice.
    ParametersValue: The collection of extracted parameters.
    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.
    diagnosticInfo: The free-form diagnostic info. For example, this field
      could contain webhook call latency. The string keys of the Struct's
      fields map can change without notice.
    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` and `webhook_state`.
    intentDetectionConfidence: The intent detection confidence. Values range
      from 0.0 (completely uncertain) to 1.0 (completely certain). 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-
      enterprise/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 `<parameter
      name>.original` containing the original parameter values before the
      query.
    parameters: The collection of extracted parameters.
    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 an event was
      provided as input, `query_text` is not set.
    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"""The free-form diagnostic info. For example, this field could contain
    webhook call latency. The string keys of the Struct's fields map can
    change without notice.

    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.

    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)
  diagnosticInfo = _messages.MessageField('DiagnosticInfoValue', 3)
  fulfillmentMessages = _messages.MessageField('GoogleCloudDialogflowV2IntentMessage', 4, repeated=True)
  fulfillmentText = _messages.StringField(5)
  intent = _messages.MessageField('GoogleCloudDialogflowV2Intent', 6)
  intentDetectionConfidence = _messages.FloatField(7, variant=_messages.Variant.FLOAT)
  languageCode = _messages.StringField(8)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2Context', 9, repeated=True)
  parameters = _messages.MessageField('ParametersValue', 10)
  queryText = _messages.StringField(11)
  speechRecognitionConfidence = _messages.FloatField(12, variant=_messages.Variant.FLOAT)
  webhookPayload = _messages.MessageField('WebhookPayloadValue', 13)
  webhookSource = _messages.StringField(14)


class GoogleCloudDialogflowV2RestoreAgentRequest(_messages.Message):
  r"""The request message for Agents.RestoreAgent.

  Fields:
    agentContent: The agent to restore.  Example for how to restore an agent
      via the command line: <pre>curl \   'https://dialogflow.googleapis.com/v
      2/projects/&lt;project_name&gt;/agent:restore\    -X POST \    -H
      'Authorization: Bearer '$(gcloud auth application-default    print-
      access-token) \    -H 'Accept: application/json' \    -H 'Content-Type:
      application/json' \    --compressed \    --data-binary "{
      'agentContent': '$(cat &lt;agent zip file&gt; | base64 -w 0)'
      }"</pre>
    agentUri: The URI to a Google Cloud Storage file containing the agent to
      restore. Note: The URI must start with "gs://".
  """

  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 GoogleCloudDialogflowV2SessionEntityType(_messages.Message):
  r"""Represents a session entity type.  Extends or replaces a developer
  entity type at the user session level (we refer to the entity types defined
  at the agent level as "developer entity types").  Note: session entity types
  apply to all queries, regardless of the language.

  Enums:
    EntityOverrideModeValueValuesEnum: Required. Indicates whether the
      additional data should override or supplement the developer 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 developer entity type definition.
    name: Required. The unique identifier of this session entity type. Format:
      `projects/<Project ID>/agent/sessions/<Session ID>/entityTypes/<Entity
      Type Display Name>`.  `<Entity Type Display Name>` 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 developer 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 developer
        entity type.
      ENTITY_OVERRIDE_MODE_SUPPLEMENT: The collection of session entities
        extends the collection of entities in the corresponding developer
        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 developer 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 GoogleCloudDialogflowV2TextInput(_messages.Message):
  r"""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-
      enterprise/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.
  """

  languageCode = _messages.StringField(1)
  text = _messages.StringField(2)


class GoogleCloudDialogflowV2TrainAgentRequest(_messages.Message):
  r"""The request message for Agents.TrainAgent."""


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/<Project ID>/agent/sessions/<Session ID>`, or
      `projects/<Project ID>/agent/environments/<Environment ID>/users/<User
      ID>/sessions/<Session ID>`.
  """

  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.

  Messages:
    PayloadValue: Optional. This value is passed directly to
      `QueryResult.webhook_payload`. See the related
      `fulfillment_messages[i].payload field`, which may be used as an
      alternative to this field.  This field can be used for Actions on Google
      responses. It should have a structure similar to the JSON message shown
      here. For more information, see [Actions on Google Webhook
      Format](https://developers.google.com/actions/dialogflow/webhook) <pre>{
      "google": {     "expectUserResponse": true,     "richResponse": {
      "items": [         {           "simpleResponse": {
      "textToSpeech": "this is a simple response"           }         }
      ]     }   } }</pre>

  Fields:
    followupEventInput: Optional. Makes the platform immediately invoke
      another `DetectIntent` call internally with the specified event as
      input.
    fulfillmentMessages: Optional. The collection of rich messages to present
      to the user. This value is passed directly to
      `QueryResult.fulfillment_messages`.
    fulfillmentText: Optional. The text to be shown on the screen. This value
      is passed directly to `QueryResult.fulfillment_text`.
    outputContexts: Optional. The collection of output contexts. This value is
      passed directly to `QueryResult.output_contexts`.
    payload: Optional. This value is passed directly to
      `QueryResult.webhook_payload`. See the related
      `fulfillment_messages[i].payload field`, which may be used as an
      alternative to this field.  This field can be used for Actions on Google
      responses. It should have a structure similar to the JSON message shown
      here. For more information, see [Actions on Google Webhook
      Format](https://developers.google.com/actions/dialogflow/webhook) <pre>{
      "google": {     "expectUserResponse": true,     "richResponse": {
      "items": [         {           "simpleResponse": {
      "textToSpeech": "this is a simple response"           }         }
      ]     }   } }</pre>
    source: Optional. This value is passed directly to
      `QueryResult.webhook_source`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Optional. This value is passed directly to
    `QueryResult.webhook_payload`. See the related
    `fulfillment_messages[i].payload field`, which may be used as an
    alternative to this field.  This field can be used for Actions on Google
    responses. It should have a structure similar to the JSON message shown
    here. For more information, see [Actions on Google Webhook
    Format](https://developers.google.com/actions/dialogflow/webhook) <pre>{
    "google": {     "expectUserResponse": true,     "richResponse": {
    "items": [         {           "simpleResponse": {
    "textToSpeech": "this is a simple response"           }         }       ]
    }   } }</pre>

    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)
  source = _messages.StringField(6)


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 GoogleCloudDialogflowV2beta1Context(_messages.Message):
  r"""Represents a context.

  Messages:
    ParametersValue: Optional. The collection of parameters associated with
      this context. Refer to [this doc](https://cloud.google.com/dialogflow-
      enterprise/docs/intents-actions-parameters) for syntax.

  Fields:
    lifespanCount: Optional. The number of conversational query requests after
      which the context expires. If set to `0` (the default) 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/<Project ID>/agent/sessions/<Session ID>/contexts/<Context
      ID>`, or `projects/<Project ID>/agent/environments/<Environment
      ID>/users/<User ID>/sessions/<Session ID>/contexts/<Context ID>`.  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.
    parameters: Optional. The collection of parameters associated with this
      context. Refer to [this doc](https://cloud.google.com/dialogflow-
      enterprise/docs/intents-actions-parameters) for syntax.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional. The collection of parameters associated with this context.
    Refer to [this doc](https://cloud.google.com/dialogflow-enterprise/docs
    /intents-actions-parameters) for syntax.

    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 GoogleCloudDialogflowV2beta1EntityType(_messages.Message):
  r"""Represents an entity type. Entity types serve as a tool for extracting
  parameter values from natural language queries.

  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.
    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/<Project ID>/agent/entityTypes/<Entity Type
      ID>`.
  """

  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
        canonical value.
      KIND_LIST: List entity types contain a set of entries that do not map to
        canonical values. However, list entity types can contain references to
        other entity types (with or without aliases).
    """
    KIND_UNSPECIFIED = 0
    KIND_MAP = 1
    KIND_LIST = 2

  autoExpansionMode = _messages.EnumField('AutoExpansionModeValueValuesEnum', 1)
  displayName = _messages.StringField(2)
  entities = _messages.MessageField('GoogleCloudDialogflowV2beta1EntityTypeEntity', 3, repeated=True)
  kind = _messages.EnumField('KindValueValuesEnum', 4)
  name = _messages.StringField(5)


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 canonical 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 `<event: { name: "welcome_event",
  parameters: { name: "Sam" } }>` 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: Optional. The collection of parameters associated with
      the event.

  Fields:
    languageCode: Required. The language of this query. See [Language
      Support](https://cloud.google.com/dialogflow-
      enterprise/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.
    name: Required. The unique identifier of the event.
    parameters: Optional. The collection of parameters associated with the
      event.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ParametersValue(_messages.Message):
    r"""Optional. The collection of parameters associated with the event.

    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: The exported agent.  Example for how to export an agent to a
      zip file via a command line: <pre>curl \   'https://dialogflow.googleapi
      s.com/v2beta1/projects/&lt;project_name&gt;/agent:export'\   -X POST \
      -H 'Authorization: Bearer '$(gcloud auth application-default   print-
      access-token) \   -H 'Accept: application/json' \   -H 'Content-Type:
      application/json' \   --compressed \   --data-binary '{}' \ | grep
      agentContent | sed -e 's/.*"agentContent": "\([^"]*\)".*/\1/' \ | base64
      --decode > &lt;agent zip file&gt;</pre>
    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 GoogleCloudDialogflowV2beta1Intent(_messages.Message):
  r"""Represents an intent. Intents convert a number of user expressions or
  patterns into an action. An action is an extraction of a user command or
  sentence semantics.

  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 response will be taken from among the messages assigned to the
      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.
    followupIntentInfo: 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/<Project
      ID>/agent/sessions/-/contexts/<Context ID>`.
    isFallback: Optional. Indicates whether this is a fallback intent.
    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: The unique identifier of this intent. Required for
      Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format:
      `projects/<Project ID>/agent/intents/<Intent ID>`.
    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/<Project
      ID>/agent/sessions/-/contexts/<Context ID>`.
    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/<Project
      ID>/agent/intents/<Intent ID>`.
    priority: Optional. The priority of this intent. Higher numbers represent
      higher priorities. If this is zero or unspecified, we use the default
      priority 500000.  Negative numbers mean that the intent is disabled.
    resetContexts: Optional. Indicates whether to delete all contexts in the
      current session when this intent is matched.
    rootFollowupIntentName: 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/<Project ID>/agent/intents/<Intent ID>`.
    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: <no description>
      FACEBOOK: <no description>
      SLACK: <no description>
      TELEGRAM: <no description>
      KIK: <no description>
      SKYPE: <no description>
      LINE: <no description>
      VIBER: <no description>
      ACTIONS_ON_GOOGLE: <no description>
      TELEPHONY: <no description>
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8
    TELEPHONY = 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('GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo', 6, repeated=True)
  inputContextNames = _messages.StringField(7, repeated=True)
  isFallback = _messages.BooleanField(8)
  messages = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessage', 9, repeated=True)
  mlDisabled = _messages.BooleanField(10)
  mlEnabled = _messages.BooleanField(11)
  name = _messages.StringField(12)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2beta1Context', 13, repeated=True)
  parameters = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentParameter', 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('GoogleCloudDialogflowV2beta1IntentTrainingPhrase', 19, repeated=True)
  webhookState = _messages.EnumField('WebhookStateValueValuesEnum', 20)


class GoogleCloudDialogflowV2beta1IntentFollowupIntentInfo(_messages.Message):
  r"""Represents a single followup intent in the chain.

  Fields:
    followupIntentName: The unique identifier of the followup intent. Format:
      `projects/<Project ID>/agent/intents/<Intent ID>`.
    parentFollowupIntentName: The unique identifier of the followup intent's
      parent. Format: `projects/<Project ID>/agent/intents/<Intent ID>`.
  """

  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: Returns a response containing a custom, platform-specific
      payload. See the Intent.Message.Platform type for a description of the
      structure that may be required for your platform.

  Fields:
    basicCard: Displays a basic 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.
    payload: Returns a response containing a custom, platform-specific
      payload. See the Intent.Message.Platform type for a description of the
      structure that may be required for your platform.
    platform: Optional. The platform that this message is intended for.
    quickReplies: Displays quick replies.
    simpleResponses: Returns a voice or text-only response for Actions on
      Google.
    suggestions: Displays suggestion chips 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: Actions on Google. When using Actions on Google, you
        can choose one of the specific Intent.Message types that mention
        support for Actions on Google, or you can use the advanced
        Intent.Message.payload field. The payload field provides access to AoG
        features not available in the specific message types. If using the
        Intent.Message.payload field, it should have a structure similar to
        the JSON message shown here. For more information, see [Actions on
        Google Webhook
        Format](https://developers.google.com/actions/dialogflow/webhook)
        <pre>{   "expectUserResponse": true,   "isSsml": false,
        "noInputPrompts": [],   "richResponse": {     "items": [       {
        "simpleResponse": {           "displayText": "hi",
        "textToSpeech": "hello"         }       }     ],     "suggestions": [
        {         "title": "Say this"       },       {         "title": "or
        this"       }     ]   },   "systemIntent": {     "data": {
        "@type": "type.googleapis.com/google.actions.v2.OptionValueSpec",
        "listSelect": {         "items": [           {
        "optionInfo": {               "key": "key1",               "synonyms":
        [                 "key one"               ]             },
        "title": "must not be empty, but unique"           },           {
        "optionInfo": {               "key": "key2",               "synonyms":
        [                 "key two"               ]             },
        "title": "must not be empty, but unique"           }         ]       }
        },     "intent": "actions.intent.OPTION"   } }</pre>
      TELEPHONY: Telephony Gateway.
    """
    PLATFORM_UNSPECIFIED = 0
    FACEBOOK = 1
    SLACK = 2
    TELEGRAM = 3
    KIK = 4
    SKYPE = 5
    LINE = 6
    VIBER = 7
    ACTIONS_ON_GOOGLE = 8
    TELEPHONY = 9

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Returns a response containing a custom, platform-specific payload. See
    the Intent.Message.Platform type for a description of the structure that
    may be required for your platform.

    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)
  card = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageCard', 2)
  carouselSelect = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageCarouselSelect', 3)
  image = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageImage', 4)
  linkOutSuggestion = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageLinkOutSuggestion', 5)
  listSelect = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageListSelect', 6)
  payload = _messages.MessageField('PayloadValue', 7)
  platform = _messages.EnumField('PlatformValueValuesEnum', 8)
  quickReplies = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageQuickReplies', 9)
  simpleResponses = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSimpleResponses', 10)
  suggestions = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageSuggestions', 11)
  telephonyPlayAudio = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTelephonyPlayAudio', 12)
  telephonySynthesizeSpeech = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTelephonySynthesizeSpeech', 13)
  telephonyTransferCall = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageTelephonyTransferCall', 14)
  text = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageText', 15)


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 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 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.
    title: Optional. The overall title of the list.
  """

  items = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessageListSelectItem', 1, repeated=True)
  title = _messages.StringField(2)


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 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 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 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-<Project Number>@gcp-sa-
      dialogflow.iam.gserviceaccount.com` service account where <Project
      Number> 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 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 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. 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('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 `<query, answer>` 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 `<query, answer>` 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/<Project ID>/knowledgeBases/<Knowledge Base
      ID>/documents/<Document ID>`.
  """

  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 `<query, answer>` 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 GoogleCloudDialogflowV2beta1KnowledgeOperationMetadata(_messages.Message):
  r"""Metadata in google::longrunning::Operation for Knowledge operations.

  Enums:
    StateValueValuesEnum: Required. The current state of this operation.

  Fields:
    state: Required. The current state of this operation.
  """

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

  state = _messages.EnumField('StateValueValuesEnum', 1)


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 Telephony Gateway this field has the
      form: <pre>{  "telephony": {    "caller_id": "+18558363987"  } }</pre>
      Note: The caller ID field (`caller_id`) will be redacted for Standard
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Enterprise 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 Telephony Gateway this field has the
      form: <pre>{  "telephony": {    "caller_id": "+18558363987"  } }</pre>
      Note: The caller ID field (`caller_id`) will be redacted for Standard
      Edition agents and populated with the caller ID in [E.164
      format](https://en.wikipedia.org/wiki/E.164) for Enterprise 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 Telephony Gateway this field has the form:
    <pre>{  "telephony": {    "caller_id": "+18558363987"  } }</pre> Note: The
    caller ID field (`caller_id`) will be redacted for Standard Edition agents
    and populated with the caller ID in [E.164
    format](https://en.wikipedia.org/wiki/E.164) for Enterprise 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: The free-form diagnostic info. For example, this
      field could contain webhook call latency. The string keys of the
      Struct's fields map can change without notice.
    ParametersValue: The collection of extracted parameters.
    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.
    diagnosticInfo: The free-form diagnostic info. For example, this field
      could contain webhook call latency. The string keys of the Struct's
      fields map can change without notice.
    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` and `webhook_state`.
    intentDetectionConfidence: The intent detection confidence. Values range
      from 0.0 (completely uncertain) to 1.0 (completely certain). 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-
      enterprise/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 `<parameter
      name>.original` containing the original parameter values before the
      query.
    parameters: The collection of extracted parameters.
    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 an event was
      provided as input, `query_text` is not set.
    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"""The free-form diagnostic info. For example, this field could contain
    webhook call latency. The string keys of the Struct's fields map can
    change without notice.

    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.

    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)
  diagnosticInfo = _messages.MessageField('DiagnosticInfoValue', 3)
  fulfillmentMessages = _messages.MessageField('GoogleCloudDialogflowV2beta1IntentMessage', 4, repeated=True)
  fulfillmentText = _messages.StringField(5)
  intent = _messages.MessageField('GoogleCloudDialogflowV2beta1Intent', 6)
  intentDetectionConfidence = _messages.FloatField(7, variant=_messages.Variant.FLOAT)
  knowledgeAnswers = _messages.MessageField('GoogleCloudDialogflowV2beta1KnowledgeAnswers', 8)
  languageCode = _messages.StringField(9)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2beta1Context', 10, repeated=True)
  parameters = _messages.MessageField('ParametersValue', 11)
  queryText = _messages.StringField(12)
  sentimentAnalysisResult = _messages.MessageField('GoogleCloudDialogflowV2beta1SentimentAnalysisResult', 13)
  speechRecognitionConfidence = _messages.FloatField(14, variant=_messages.Variant.FLOAT)
  webhookPayload = _messages.MessageField('WebhookPayloadValue', 15)
  webhookSource = _messages.StringField(16)


class GoogleCloudDialogflowV2beta1Sentiment(_messages.Message):
  r"""The sentiment, such as positive/negative feeling or association, for a
  unit of analysis, such as the query text.

  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 as configured by
  `sentiment_analysis_request_config`.

  Fields:
    queryTextSentiment: The sentiment analysis result for `query_text`.
  """

  queryTextSentiment = _messages.MessageField('GoogleCloudDialogflowV2beta1Sentiment', 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. Format:
      `projects/<Project ID>/agent/sessions/<Session ID>`, or
      `projects/<Project ID>/agent/environments/<Environment ID>/users/<User
      ID>/sessions/<Session ID>`.
  """

  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.

  Messages:
    PayloadValue: Optional. This value is passed directly to
      `QueryResult.webhook_payload`. See the related
      `fulfillment_messages[i].payload field`, which may be used as an
      alternative to this field.  This field can be used for Actions on Google
      responses. It should have a structure similar to the JSON message shown
      here. For more information, see [Actions on Google Webhook
      Format](https://developers.google.com/actions/dialogflow/webhook) <pre>{
      "google": {     "expectUserResponse": true,     "richResponse": {
      "items": [         {           "simpleResponse": {
      "textToSpeech": "this is a simple response"           }         }
      ]     }   } }</pre>

  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. Makes the platform immediately invoke
      another `DetectIntent` call internally with the specified event as
      input.
    fulfillmentMessages: Optional. The collection of rich messages to present
      to the user. This value is passed directly to
      `QueryResult.fulfillment_messages`.
    fulfillmentText: Optional. The text to be shown on the screen. This value
      is passed directly to `QueryResult.fulfillment_text`.
    outputContexts: Optional. The collection of output contexts. This value is
      passed directly to `QueryResult.output_contexts`.
    payload: Optional. This value is passed directly to
      `QueryResult.webhook_payload`. See the related
      `fulfillment_messages[i].payload field`, which may be used as an
      alternative to this field.  This field can be used for Actions on Google
      responses. It should have a structure similar to the JSON message shown
      here. For more information, see [Actions on Google Webhook
      Format](https://developers.google.com/actions/dialogflow/webhook) <pre>{
      "google": {     "expectUserResponse": true,     "richResponse": {
      "items": [         {           "simpleResponse": {
      "textToSpeech": "this is a simple response"           }         }
      ]     }   } }</pre>
    source: Optional. This value is passed directly to
      `QueryResult.webhook_source`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class PayloadValue(_messages.Message):
    r"""Optional. This value is passed directly to
    `QueryResult.webhook_payload`. See the related
    `fulfillment_messages[i].payload field`, which may be used as an
    alternative to this field.  This field can be used for Actions on Google
    responses. It should have a structure similar to the JSON message shown
    here. For more information, see [Actions on Google Webhook
    Format](https://developers.google.com/actions/dialogflow/webhook) <pre>{
    "google": {     "expectUserResponse": true,     "richResponse": {
    "items": [         {           "simpleResponse": {
    "textToSpeech": "this is a simple response"           }         }       ]
    }   } }</pre>

    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)
  outputContexts = _messages.MessageField('GoogleCloudDialogflowV2beta1Context', 5, repeated=True)
  payload = _messages.MessageField('PayloadValue', 6)
  source = _messages.StringField(7)


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 response of the operation in case of success.
      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 have the format of `operations/some/unique/name`.
    response: The normal response of the operation in case of success.  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 response of the operation in case of success.  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);     }  The
  JSON representation for `Empty` is empty JSON object `{}`.
  """



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). The error model is designed to be:
  - Simple to use and understand for most users - Flexible enough to meet
  unexpected needs  # Overview  The `Status` message contains three pieces of
  data: error code, error message, and error details. The error code should be
  an enum value of google.rpc.Code, but it may accept additional error codes
  if needed.  The error message should be a developer-facing English message
  that helps developers *understand* and *resolve* the error. If a localized
  user-facing error message is needed, put the localized message in the error
  details or localize it in the client. The optional error details may contain
  arbitrary information about the error. There is a predefined set of error
  detail types in the package `google.rpc` that can be used for common error
  conditions.  # Language mapping  The `Status` message is the logical
  representation of the error model, but it is not necessarily the actual wire
  format. When the `Status` message is exposed in different client libraries
  and different wire protocols, it can be mapped differently. For example, it
  will likely be mapped to some exceptions in Java, but more likely mapped to
  some error codes in C.  # Other uses  The error model and the `Status`
  message can be used in a variety of environments, either with or without
  APIs, to provide a consistent developer experience across different
  environments.  Example uses of this error model include:  - Partial errors.
  If a service needs to return partial errors to the client,     it may embed
  the `Status` in the normal response to indicate the partial     errors.  -
  Workflow errors. A typical workflow has multiple steps. Each step may
  have a `Status` message for error reporting.  - Batch operations. If a
  client uses batch request and batch response, the     `Status` message
  should be used directly inside batch response, one for     each error sub-
  response.  - Asynchronous operations. If an API call embeds asynchronous
  operation     results in its response, the status of those operations should
  be     represented directly using the `Status` message.  - Logging. If some
  API errors are stored in logs, the message `Status` could     be used
  directly after any stripping needed for security/privacy reasons.

  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 representing a latitude/longitude pair. This is expressed as a
  pair of doubles representing degrees latitude and degrees longitude. Unless
  specified otherwise, this must conform to the <a
  href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
  standard</a>. 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=u'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')
