Dialogflow API . projects . agent . environments . users . sessions

Instance Methods

contexts()

Returns the contexts Resource.

entityTypes()

Returns the entityTypes Resource.

close()

Close httplib2 connections.

deleteContexts(parent, x__xgafv=None)

Deletes all active contexts in the specified session.

detectIntent(session, body=None, x__xgafv=None)

Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause contexts and session entity types to be updated, which in turn might affect results of future queries. If you might use [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) or other CCAI products now or in the future, consider using AnalyzeContent instead of `DetectIntent`. `AnalyzeContent` has additional functionality for Agent Assist and other CCAI products. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).

Method Details

close()
Close httplib2 connections.
deleteContexts(parent, x__xgafv=None)
Deletes all active contexts in the specified session.

Args:
  parent: string, Required. The name of the session to delete all contexts from. Supported formats: - `projects//agent/sessions/, - `projects//locations//agent/sessions/`, - `projects//agent/environments//users//sessions/`, - `projects//locations//agent/environments//users//sessions/`, If `Location ID` is not specified we assume default 'us' location. If `Environment ID` is not specified we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # 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 `{}`.
}
detectIntent(session, body=None, x__xgafv=None)
Processes a natural language query and returns structured, actionable data as a result. This method is not idempotent, because it may cause contexts and session entity types to be updated, which in turn might affect results of future queries. If you might use [Agent Assist](https://cloud.google.com/dialogflow/docs/#aa) or other CCAI products now or in the future, consider using AnalyzeContent instead of `DetectIntent`. `AnalyzeContent` has additional functionality for Agent Assist and other CCAI products. Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions).

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

{ # The request to detect user's intent.
  "inputAudio": "A String", # The natural language speech audio to be processed. This field should be populated iff `query_input` is set to an input audio config. A single request can contain up to 1 minute of speech audio data.
  "outputAudioConfig": { # Instructs the speech synthesizer how to generate the output audio content. If this audio config is supplied in a request, it overrides all existing text-to-speech settings applied to the agent. # Instructs the speech synthesizer how to generate the output audio. If this field is not set and agent-level speech synthesizer is not configured, no output audio is generated.
    "audioEncoding": "A String", # Required. Audio encoding of the synthesized audio content.
    "sampleRateHertz": 42, # The synthesis sample rate (in hertz) for this audio. If not provided, then the synthesizer will use the default sample rate based on the audio encoding. If this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality).
    "synthesizeSpeechConfig": { # Configuration of how speech should be synthesized. # Configuration of how speech should be synthesized.
      "effectsProfileId": [ # Optional. An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given.
        "A String",
      ],
      "pitch": 3.14, # Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch.
      "speakingRate": 3.14, # Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other values < 0.25 or > 4.0 will return an error.
      "voice": { # Description of which voice to use for speech synthesis. # Optional. The desired voice of the synthesized audio.
        "name": "A String", # Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and ssml_gender. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices).
        "ssmlGender": "A String", # Optional. The preferred gender of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and name. Note that this is only a preference, not requirement. If a voice of the appropriate gender is not available, the synthesizer should substitute a voice with a different gender rather than failing the request.
      },
      "volumeGainDb": 3.14, # Optional. Volume gain (in dB) of the normal native volume supported by the specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that.
    },
  },
  "outputAudioConfigMask": "A String", # Mask for output_audio_config indicating which settings in this request-level config should override speech synthesizer settings defined at agent-level. If unspecified or empty, output_audio_config replaces the agent-level config in its entirety.
  "queryInput": { # 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. # 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.
    "audioConfig": { # Instructs the speech recognizer on how to process the audio content. # Instructs the speech recognizer how to process the speech audio.
      "audioEncoding": "A String", # Required. Audio encoding of the audio content to process.
      "disableNoSpeechRecognizedEvent": True or False, # Only used in Participants.AnalyzeContent and Participants.StreamingAnalyzeContent. If `false` and recognition doesn't return any result, trigger `NO_SPEECH_RECOGNIZED` event to Dialogflow agent.
      "enableWordInfo": True or False, # If `true`, Dialogflow returns SpeechWordInfo in StreamingRecognitionResult with information about the recognized speech words, e.g. start and end time offsets. If false or unspecified, Speech doesn't return any word-level information.
      "languageCode": "A String", # Required. The language of the supplied audio. Dialogflow does not do translations. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.
      "model": "A String", # Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details.
      "modelVariant": "A String", # Which variant of the Speech model to use.
      "phraseHints": [ # A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details. This field is deprecated. Please use [speech_contexts]() instead. If you specify both [phrase_hints]() and [speech_contexts](), Dialogflow will treat the [phrase_hints]() as a single additional [SpeechContext]().
        "A String",
      ],
      "sampleRateHertz": 42, # Required. Sample rate (in Hertz) of the audio content sent in the query. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics) for more details.
      "singleUtterance": True or False, # If `false` (default), recognition does not cease until the client closes the stream. If `true`, the recognizer will detect a single spoken utterance in input audio. Recognition ceases when it detects the audio's voice has stopped or paused. In this case, once a detected intent is received, the client should close the stream and start a new request with a new stream as needed. Note: This setting is relevant only for streaming methods. Note: When specified, InputAudioConfig.single_utterance takes precedence over StreamingDetectIntentRequest.single_utterance.
      "speechContexts": [ # Context information to assist speech recognition. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.
        { # Hints for the speech recognizer to help with recognition in a specific conversation state.
          "boost": 3.14, # Optional. Boost for this context compared to other contexts: * If the boost is positive, Dialogflow will increase the probability that the phrases in this context are recognized over similar sounding phrases. * If the boost is unspecified or non-positive, Dialogflow will not apply any boost. Dialogflow recommends that you use boosts in the range (0, 20] and that you find a value that fits your use case with binary search.
          "phrases": [ # Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. This list can be used to: * improve accuracy for words and phrases you expect the user to say, e.g. typical commands for your Dialogflow agent * add additional words to the speech recognizer vocabulary * ... See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/quotas) for usage limits.
            "A String",
          ],
        },
      ],
    },
    "dtmf": { # A wrapper of repeated TelephonyDtmf digits. # The DTMF digits used to invoke intent and fill in parameter value.
      "dtmfEvents": [ # A sequence of TelephonyDtmf digits.
        "A String",
      ],
    },
    "event": { # Events allow for matching intents by event name instead of the natural language input. For instance, input `` can trigger a personalized welcome response. The parameter `name` may be used by the agent in the response: `"Hello #welcome_event.name! What can I do for you today?"`. # The event to be processed.
      "languageCode": "A String", # Required. The language of this query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.
      "name": "A String", # Required. The unique identifier of the event.
      "parameters": { # The collection of parameters associated with the event. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
        "a_key": "", # Properties of the object.
      },
    },
    "text": { # Represents the natural language text to be processed. # The natural language text to be processed.
      "languageCode": "A String", # Required. The language of this conversational query. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes. Note that queries in the same session do not necessarily need to specify the same language.
      "text": "A String", # Required. The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters.
    },
  },
  "queryParams": { # Represents the parameters of the conversational query. # The parameters of this query.
    "contexts": [ # The collection of contexts to be activated before this query is executed.
      { # Dialogflow contexts are similar to natural language context. If a person says to you "they are orange", you need context in order to understand what "they" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).
        "lifespanCount": 42, # Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.
        "name": "A String", # Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
        "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
          "a_key": "", # Properties of the object.
        },
      },
    ],
    "geoLocation": { # An object that represents a latitude/longitude pair. This is expressed as a pair of doubles to represent degrees latitude and degrees longitude. Unless specified otherwise, this object must conform to the WGS84 standard. Values must be within normalized ranges. # The geo location of this conversational query.
      "latitude": 3.14, # The latitude in degrees. It must be in the range [-90.0, +90.0].
      "longitude": 3.14, # The longitude in degrees. It must be in the range [-180.0, +180.0].
    },
    "knowledgeBaseNames": [ # KnowledgeBases to get alternative results from. If not set, the KnowledgeBases enabled in the agent (through UI) will be used. Format: `projects//knowledgeBases/`.
      "A String",
    ],
    "payload": { # This field can be used to pass custom data to your webhook. Arbitrary JSON objects are supported. If supplied, the value is used to populate the `WebhookRequest.original_detect_intent_request.payload` field sent to your webhook.
      "a_key": "", # Properties of the object.
    },
    "resetContexts": True or False, # Specifies whether to delete all contexts in the current session before the new ones are activated.
    "sentimentAnalysisRequestConfig": { # Configures the types of sentiment analysis to perform. # Configures the type of sentiment analysis to perform. If not provided, sentiment analysis is not performed. Note: Sentiment Analysis is only currently available for Essentials Edition agents.
      "analyzeQueryTextSentiment": True or False, # Instructs the service to perform sentiment analysis on `query_text`. If not provided, sentiment analysis is not performed on `query_text`.
    },
    "sessionEntityTypes": [ # Additional session entity types to replace or extend developer entity types with. The entity synonyms apply to all languages and persist for the session of this query.
      { # A session represents a conversation between a Dialogflow agent and an end-user. You can create special entities, called session entities, during a session. Session entities can extend or replace custom entity types and only exist during the session that they were created for. All session data, including session entities, is stored by Dialogflow for 20 minutes. For more information, see the [session entity guide](https://cloud.google.com/dialogflow/docs/entities-session).
        "entities": [ # Required. The collection of entities associated with this session entity type.
          { # An **entity entry** for an associated entity type.
            "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`.
              "A String",
            ],
            "value": "A String", # Required. The primary value associated with this entity entry. For example, if the entity type is *vegetable*, the value could be *scallions*. For `KIND_MAP` entity types: * A reference value to be used in place of synonyms. For `KIND_LIST` entity types: * A string that can contain references to other entity types (with or without aliases).
          },
        ],
        "entityOverrideMode": "A String", # Required. Indicates whether the additional data should override or supplement the custom entity type definition.
        "name": "A String", # Required. The unique identifier of this session entity type. Supported formats: - `projects//agent/sessions//entityTypes/` - `projects//locations//agent/sessions//entityTypes/` - `projects//agent/environments//users//sessions//entityTypes/` - `projects//locations//agent/environments/ /users//sessions//entityTypes/` If `Location ID` is not specified we assume default 'us' location. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.
      },
    ],
    "subAgents": [ # For mega agent query, directly specify which sub agents to query. If any specified sub agent is not linked to the mega agent, an error will be returned. If empty, Dialogflow will decide which sub agents to query. If specified for a non-mega-agent query, will be silently ignored.
      { # Contains basic configuration for a sub-agent.
        "environment": "A String", # Optional. The unique identifier (`environment name` in dialogflow console) of this sub-agent environment. Assumes draft environment if `environment` is not set.
        "project": "A String", # Required. The project of this agent. Format: `projects/` or `projects//locations/`.
      },
    ],
    "timeZone": "A String", # The time zone of this conversational query from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York, Europe/Paris. If not provided, the time zone specified in agent settings is used.
    "webhookHeaders": { # This field can be used to pass HTTP headers for a webhook call. These headers will be sent to webhook along with the headers that have been configured through Dialogflow web console. The headers defined within this field will overwrite the headers configured through Dialogflow console if there is a conflict. Header names are case-insensitive. Google's specified headers are not allowed. Including: "Host", "Content-Length", "Connection", "From", "User-Agent", "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", etc.
      "a_key": "A String",
    },
  },
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The message returned from the DetectIntent method.
  "alternativeQueryResults": [ # If Knowledge Connectors are enabled, there could be more than one result returned for a given query or event, and this field will contain all results except for the top one, which is captured in query_result. The alternative results are ordered by decreasing `QueryResult.intent_detection_confidence`. If Knowledge Connectors are disabled, this field will be empty until multiple responses for regular intents are supported, at which point those additional results will be surfaced here.
    { # Represents the result of conversational query or event processing.
      "action": "A String", # The action name from the matched intent.
      "allRequiredParamsPresent": True or False, # This field is set to: - `false` if the matched intent has required parameters and not all of the required parameter values have been collected. - `true` if all required parameter values have been collected, or if the matched intent doesn't contain any required parameters.
      "cancelsSlotFilling": True or False, # Indicates whether the conversational query triggers a cancellation for slot filling.
      "diagnosticInfo": { # Free-form diagnostic information for the associated detect intent request. The fields of this data can change without notice, so you should not write code that depends on its structure. The data may contain: - webhook call latency - webhook errors
        "a_key": "", # Properties of the object.
      },
      "fulfillmentMessages": [ # The collection of rich messages to present to the user.
        { # Corresponds to the `Response` field in the Dialogflow console.
          "basicCard": { # The basic card message. Useful for displaying information. # Displays a basic card for Actions on Google.
            "buttons": [ # Optional. The collection of card buttons.
              { # The button object that appears at the bottom of a card.
                "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                  "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
                },
                "title": "A String", # Required. The title of the button.
              },
            ],
            "formattedText": "A String", # Required, unless image is present. The body text of the card.
            "image": { # The image response message. # Optional. The image for the card.
              "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
              "imageUri": "A String", # Optional. The public URI to an image file.
            },
            "subtitle": "A String", # Optional. The subtitle of the card.
            "title": "A String", # Optional. The title of the card.
          },
          "browseCarouselCard": { # Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel # Browse carousel card for Actions on Google.
            "imageDisplayOptions": "A String", # Optional. Settings for displaying the image. Applies to every image in items.
            "items": [ # Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.
              { # Browsing carousel tile
                "description": "A String", # Optional. Description of the carousel item. Maximum of four lines of text.
                "footer": "A String", # Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.
                "image": { # The image response message. # Optional. Hero image for the carousel item.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "openUriAction": { # Actions on Google action to open a given url. # Required. Action to present to the user.
                  "url": "A String", # Required. URL
                  "urlTypeHint": "A String", # Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.
                },
                "title": "A String", # Required. Title of the carousel item. Maximum of two lines of text.
              },
            ],
          },
          "card": { # The card response message. # Displays a card.
            "buttons": [ # Optional. The collection of card buttons.
              { # Optional. Contains information about a button.
                "postback": "A String", # Optional. The text to send back to the Dialogflow API or a URI to open.
                "text": "A String", # Optional. The text to show on the button.
              },
            ],
            "imageUri": "A String", # Optional. The public URI to an image file for the card.
            "subtitle": "A String", # Optional. The subtitle of the card.
            "title": "A String", # Optional. The title of the card.
          },
          "carouselSelect": { # The card for presenting a carousel of options to select from. # Displays a carousel card for Actions on Google.
            "items": [ # Required. Carousel items.
              { # An item in the carousel.
                "description": "A String", # Optional. The body text of the card.
                "image": { # The image response message. # Optional. The image to display.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional info about the option item.
                  "key": "A String", # 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.
                    "A String",
                  ],
                },
                "title": "A String", # Required. Title of the carousel item.
              },
            ],
          },
          "image": { # The image response message. # Displays an image.
            "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
            "imageUri": "A String", # Optional. The public URI to an image file.
          },
          "linkOutSuggestion": { # The suggestion chip message that allows the user to jump out to the app or website associated with this agent. # Displays a link out suggestion chip for Actions on Google.
            "destinationName": "A String", # Required. The name of the app or site this chip is linking to.
            "uri": "A String", # Required. The URI of the app or site to open when the user taps the suggestion chip.
          },
          "listSelect": { # The card for presenting a list of options to select from. # Displays a list card for Actions on Google.
            "items": [ # Required. List items.
              { # An item in the list.
                "description": "A String", # Optional. The main text describing the item.
                "image": { # The image response message. # Optional. The image to display.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional information about this option.
                  "key": "A String", # 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.
                    "A String",
                  ],
                },
                "title": "A String", # Required. The title of the list item.
              },
            ],
            "subtitle": "A String", # Optional. Subtitle of the list.
            "title": "A String", # Optional. The overall title of the list.
          },
          "mediaContent": { # The media content card for Actions on Google. # The media content card for Actions on Google.
            "mediaObjects": [ # Required. List of media objects.
              { # Response media object for media content card.
                "contentUrl": "A String", # Required. Url where the media is stored.
                "description": "A String", # Optional. Description of media card.
                "icon": { # The image response message. # Optional. Icon to display above media content.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "largeImage": { # The image response message. # Optional. Image to display above media content.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "name": "A String", # Required. Name of media card.
              },
            ],
            "mediaType": "A String", # Optional. What type of media is the content (ie "audio").
          },
          "payload": { # A custom platform-specific response.
            "a_key": "", # Properties of the object.
          },
          "platform": "A String", # Optional. The platform that this message is intended for.
          "quickReplies": { # The quick replies response message. # Displays quick replies.
            "quickReplies": [ # Optional. The collection of quick replies.
              "A String",
            ],
            "title": "A String", # Optional. The title of the collection of quick replies.
          },
          "rbmCarouselRichCard": { # Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead. # Rich Business Messaging (RBM) carousel rich card response.
            "cardContents": [ # Required. The cards in the carousel. A carousel must have at least 2 cards and at most 10.
              { # Rich Business Messaging (RBM) Card content
                "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
                "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
                  "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
                  "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
                  "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
                },
                "suggestions": [ # Optional. List of suggestions to include in the card.
                  { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                    "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                      "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                        "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                      },
                      "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                        "uri": "A String", # Required. The uri to open on the user device
                      },
                      "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                      "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                      },
                      "text": "A String", # Text to display alongside the action.
                    },
                    "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                      "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                      "text": "A String", # Suggested reply text.
                    },
                  },
                ],
                "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
              },
            ],
            "cardWidth": "A String", # Required. The width of the cards in the carousel.
          },
          "rbmStandaloneRichCard": { # Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout. # Standalone Rich Business Messaging (RBM) rich card response.
            "cardContent": { # Rich Business Messaging (RBM) Card content # Required. Card content.
              "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
              "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
                "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
                "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
                "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
              },
              "suggestions": [ # Optional. List of suggestions to include in the card.
                { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                  "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                    "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                      "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                    },
                    "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                      "uri": "A String", # Required. The uri to open on the user device
                    },
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                    "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                    },
                    "text": "A String", # Text to display alongside the action.
                  },
                  "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                    "text": "A String", # Suggested reply text.
                  },
                },
              ],
              "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
            },
            "cardOrientation": "A String", # Required. Orientation of the card.
            "thumbnailImageAlignment": "A String", # Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout.
          },
          "rbmText": { # Rich Business Messaging (RBM) text response with suggestions. # Rich Business Messaging (RBM) text response. RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging.
            "rbmSuggestion": [ # Optional. One or more suggestions to show to the user.
              { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                  "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                    "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                  },
                  "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                    "uri": "A String", # Required. The uri to open on the user device
                  },
                  "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                  "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                  },
                  "text": "A String", # Text to display alongside the action.
                },
                "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                  "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                  "text": "A String", # Suggested reply text.
                },
              },
            ],
            "text": "A String", # Required. Text sent and displayed to the user.
          },
          "simpleResponses": { # The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. # Returns a voice or text-only response for Actions on Google.
            "simpleResponses": [ # Required. The list of simple responses.
              { # The simple response message containing speech or text.
                "displayText": "A String", # Optional. The text to display.
                "ssml": "A String", # 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": "A String", # One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.
              },
            ],
          },
          "suggestions": { # The collection of suggestions. # Displays suggestion chips for Actions on Google.
            "suggestions": [ # Required. The list of suggested replies.
              { # The suggestion chip message that the user can tap to quickly post a reply to the conversation.
                "title": "A String", # Required. The text shown the in the suggestion chip.
              },
            ],
          },
          "tableCard": { # Table card for Actions on Google. # Table card for Actions on Google.
            "buttons": [ # Optional. List of buttons for the card.
              { # The button object that appears at the bottom of a card.
                "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                  "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
                },
                "title": "A String", # Required. The title of the button.
              },
            ],
            "columnProperties": [ # Optional. Display properties for the columns in this table.
              { # Column properties for TableCard.
                "header": "A String", # Required. Column heading.
                "horizontalAlignment": "A String", # Optional. Defines text alignment for all cells in this column.
              },
            ],
            "image": { # The image response message. # Optional. Image which should be displayed on the card.
              "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
              "imageUri": "A String", # Optional. The public URI to an image file.
            },
            "rows": [ # Optional. Rows in this table of data.
              { # Row of TableCard.
                "cells": [ # Optional. List of cells that make up this row.
                  { # Cell of TableCardRow.
                    "text": "A String", # Required. Text in this cell.
                  },
                ],
                "dividerAfter": True or False, # Optional. Whether to add a visual divider after this row.
              },
            ],
            "subtitle": "A String", # Optional. Subtitle to the title.
            "title": "A String", # Required. Title of the card.
          },
          "telephonyPlayAudio": { # Plays audio from a file in Telephony Gateway. # Plays audio from a file in Telephony Gateway.
            "audioUri": "A String", # Required. URI to a Google Cloud Storage object containing the audio to play, e.g., "gs://bucket/object". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz. This object must be readable by the `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API. For audio from other sources, consider using the `TelephonySynthesizeSpeech` message with SSML.
          },
          "telephonySynthesizeSpeech": { # 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. # Synthesizes speech in Telephony Gateway.
            "ssml": "A String", # The SSML to be synthesized. For more information, see [SSML](https://developers.google.com/actions/reference/ssml).
            "text": "A String", # The raw text to be synthesized.
          },
          "telephonyTransferCall": { # Transfers the call in Telephony Gateway. # Transfers the call in Telephony Gateway.
            "phoneNumber": "A String", # 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).
          },
          "text": { # The text response message. # Returns a text response.
            "text": [ # Optional. The collection of the agent's responses.
              "A String",
            ],
          },
        },
      ],
      "fulfillmentText": "A String", # 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": { # An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview). # The intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name`, `display_name`, `end_interaction` and `is_fallback`.
        "action": "A String", # Optional. The name of the action associated with the intent. Note: The action name must not contain whitespaces.
        "defaultResponsePlatforms": [ # Optional. The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform).
          "A String",
        ],
        "displayName": "A String", # Required. The name of this intent.
        "endInteraction": True or False, # Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.
        "events": [ # Optional. The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of the contexts must be present in the active user session for an event to trigger this intent. Event names are limited to 150 characters.
          "A String",
        ],
        "followupIntentInfo": [ # Output only. Information about all followup intents that have this intent as a direct or indirect parent. We populate this field only in the output.
          { # Represents a single followup intent in the chain.
            "followupIntentName": "A String", # The unique identifier of the followup intent. Format: `projects//agent/intents/`.
            "parentFollowupIntentName": "A String", # The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`.
          },
        ],
        "inputContextNames": [ # Optional. The list of context names required for this intent to be triggered. Formats: - `projects//agent/sessions/-/contexts/` - `projects//locations//agent/sessions/-/contexts/`
          "A String",
        ],
        "isFallback": True or False, # Optional. Indicates whether this is a fallback intent.
        "liveAgentHandoff": True or False, # Optional. Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.
        "messages": [ # Optional. The collection of rich messages corresponding to the `Response` field in the Dialogflow console.
          { # Corresponds to the `Response` field in the Dialogflow console.
            "basicCard": { # The basic card message. Useful for displaying information. # Displays a basic card for Actions on Google.
              "buttons": [ # Optional. The collection of card buttons.
                { # The button object that appears at the bottom of a card.
                  "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                    "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
                  },
                  "title": "A String", # Required. The title of the button.
                },
              ],
              "formattedText": "A String", # Required, unless image is present. The body text of the card.
              "image": { # The image response message. # Optional. The image for the card.
                "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                "imageUri": "A String", # Optional. The public URI to an image file.
              },
              "subtitle": "A String", # Optional. The subtitle of the card.
              "title": "A String", # Optional. The title of the card.
            },
            "browseCarouselCard": { # Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel # Browse carousel card for Actions on Google.
              "imageDisplayOptions": "A String", # Optional. Settings for displaying the image. Applies to every image in items.
              "items": [ # Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.
                { # Browsing carousel tile
                  "description": "A String", # Optional. Description of the carousel item. Maximum of four lines of text.
                  "footer": "A String", # Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.
                  "image": { # The image response message. # Optional. Hero image for the carousel item.
                    "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                    "imageUri": "A String", # Optional. The public URI to an image file.
                  },
                  "openUriAction": { # Actions on Google action to open a given url. # Required. Action to present to the user.
                    "url": "A String", # Required. URL
                    "urlTypeHint": "A String", # Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.
                  },
                  "title": "A String", # Required. Title of the carousel item. Maximum of two lines of text.
                },
              ],
            },
            "card": { # The card response message. # Displays a card.
              "buttons": [ # Optional. The collection of card buttons.
                { # Optional. Contains information about a button.
                  "postback": "A String", # Optional. The text to send back to the Dialogflow API or a URI to open.
                  "text": "A String", # Optional. The text to show on the button.
                },
              ],
              "imageUri": "A String", # Optional. The public URI to an image file for the card.
              "subtitle": "A String", # Optional. The subtitle of the card.
              "title": "A String", # Optional. The title of the card.
            },
            "carouselSelect": { # The card for presenting a carousel of options to select from. # Displays a carousel card for Actions on Google.
              "items": [ # Required. Carousel items.
                { # An item in the carousel.
                  "description": "A String", # Optional. The body text of the card.
                  "image": { # The image response message. # Optional. The image to display.
                    "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                    "imageUri": "A String", # Optional. The public URI to an image file.
                  },
                  "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional info about the option item.
                    "key": "A String", # 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.
                      "A String",
                    ],
                  },
                  "title": "A String", # Required. Title of the carousel item.
                },
              ],
            },
            "image": { # The image response message. # Displays an image.
              "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
              "imageUri": "A String", # Optional. The public URI to an image file.
            },
            "linkOutSuggestion": { # The suggestion chip message that allows the user to jump out to the app or website associated with this agent. # Displays a link out suggestion chip for Actions on Google.
              "destinationName": "A String", # Required. The name of the app or site this chip is linking to.
              "uri": "A String", # Required. The URI of the app or site to open when the user taps the suggestion chip.
            },
            "listSelect": { # The card for presenting a list of options to select from. # Displays a list card for Actions on Google.
              "items": [ # Required. List items.
                { # An item in the list.
                  "description": "A String", # Optional. The main text describing the item.
                  "image": { # The image response message. # Optional. The image to display.
                    "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                    "imageUri": "A String", # Optional. The public URI to an image file.
                  },
                  "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional information about this option.
                    "key": "A String", # 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.
                      "A String",
                    ],
                  },
                  "title": "A String", # Required. The title of the list item.
                },
              ],
              "subtitle": "A String", # Optional. Subtitle of the list.
              "title": "A String", # Optional. The overall title of the list.
            },
            "mediaContent": { # The media content card for Actions on Google. # The media content card for Actions on Google.
              "mediaObjects": [ # Required. List of media objects.
                { # Response media object for media content card.
                  "contentUrl": "A String", # Required. Url where the media is stored.
                  "description": "A String", # Optional. Description of media card.
                  "icon": { # The image response message. # Optional. Icon to display above media content.
                    "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                    "imageUri": "A String", # Optional. The public URI to an image file.
                  },
                  "largeImage": { # The image response message. # Optional. Image to display above media content.
                    "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                    "imageUri": "A String", # Optional. The public URI to an image file.
                  },
                  "name": "A String", # Required. Name of media card.
                },
              ],
              "mediaType": "A String", # Optional. What type of media is the content (ie "audio").
            },
            "payload": { # A custom platform-specific response.
              "a_key": "", # Properties of the object.
            },
            "platform": "A String", # Optional. The platform that this message is intended for.
            "quickReplies": { # The quick replies response message. # Displays quick replies.
              "quickReplies": [ # Optional. The collection of quick replies.
                "A String",
              ],
              "title": "A String", # Optional. The title of the collection of quick replies.
            },
            "rbmCarouselRichCard": { # Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead. # Rich Business Messaging (RBM) carousel rich card response.
              "cardContents": [ # Required. The cards in the carousel. A carousel must have at least 2 cards and at most 10.
                { # Rich Business Messaging (RBM) Card content
                  "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
                  "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
                    "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
                    "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
                    "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
                  },
                  "suggestions": [ # Optional. List of suggestions to include in the card.
                    { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                      "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                        "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                          "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                        },
                        "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                          "uri": "A String", # Required. The uri to open on the user device
                        },
                        "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                        "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                        },
                        "text": "A String", # Text to display alongside the action.
                      },
                      "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                        "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                        "text": "A String", # Suggested reply text.
                      },
                    },
                  ],
                  "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
                },
              ],
              "cardWidth": "A String", # Required. The width of the cards in the carousel.
            },
            "rbmStandaloneRichCard": { # Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout. # Standalone Rich Business Messaging (RBM) rich card response.
              "cardContent": { # Rich Business Messaging (RBM) Card content # Required. Card content.
                "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
                "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
                  "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
                  "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
                  "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
                },
                "suggestions": [ # Optional. List of suggestions to include in the card.
                  { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                    "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                      "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                        "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                      },
                      "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                        "uri": "A String", # Required. The uri to open on the user device
                      },
                      "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                      "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                      },
                      "text": "A String", # Text to display alongside the action.
                    },
                    "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                      "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                      "text": "A String", # Suggested reply text.
                    },
                  },
                ],
                "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
              },
              "cardOrientation": "A String", # Required. Orientation of the card.
              "thumbnailImageAlignment": "A String", # Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout.
            },
            "rbmText": { # Rich Business Messaging (RBM) text response with suggestions. # Rich Business Messaging (RBM) text response. RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging.
              "rbmSuggestion": [ # Optional. One or more suggestions to show to the user.
                { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                  "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                    "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                      "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                    },
                    "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                      "uri": "A String", # Required. The uri to open on the user device
                    },
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                    "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                    },
                    "text": "A String", # Text to display alongside the action.
                  },
                  "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                    "text": "A String", # Suggested reply text.
                  },
                },
              ],
              "text": "A String", # Required. Text sent and displayed to the user.
            },
            "simpleResponses": { # The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. # Returns a voice or text-only response for Actions on Google.
              "simpleResponses": [ # Required. The list of simple responses.
                { # The simple response message containing speech or text.
                  "displayText": "A String", # Optional. The text to display.
                  "ssml": "A String", # 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": "A String", # One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.
                },
              ],
            },
            "suggestions": { # The collection of suggestions. # Displays suggestion chips for Actions on Google.
              "suggestions": [ # Required. The list of suggested replies.
                { # The suggestion chip message that the user can tap to quickly post a reply to the conversation.
                  "title": "A String", # Required. The text shown the in the suggestion chip.
                },
              ],
            },
            "tableCard": { # Table card for Actions on Google. # Table card for Actions on Google.
              "buttons": [ # Optional. List of buttons for the card.
                { # The button object that appears at the bottom of a card.
                  "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                    "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
                  },
                  "title": "A String", # Required. The title of the button.
                },
              ],
              "columnProperties": [ # Optional. Display properties for the columns in this table.
                { # Column properties for TableCard.
                  "header": "A String", # Required. Column heading.
                  "horizontalAlignment": "A String", # Optional. Defines text alignment for all cells in this column.
                },
              ],
              "image": { # The image response message. # Optional. Image which should be displayed on the card.
                "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                "imageUri": "A String", # Optional. The public URI to an image file.
              },
              "rows": [ # Optional. Rows in this table of data.
                { # Row of TableCard.
                  "cells": [ # Optional. List of cells that make up this row.
                    { # Cell of TableCardRow.
                      "text": "A String", # Required. Text in this cell.
                    },
                  ],
                  "dividerAfter": True or False, # Optional. Whether to add a visual divider after this row.
                },
              ],
              "subtitle": "A String", # Optional. Subtitle to the title.
              "title": "A String", # Required. Title of the card.
            },
            "telephonyPlayAudio": { # Plays audio from a file in Telephony Gateway. # Plays audio from a file in Telephony Gateway.
              "audioUri": "A String", # Required. URI to a Google Cloud Storage object containing the audio to play, e.g., "gs://bucket/object". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz. This object must be readable by the `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API. For audio from other sources, consider using the `TelephonySynthesizeSpeech` message with SSML.
            },
            "telephonySynthesizeSpeech": { # 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. # Synthesizes speech in Telephony Gateway.
              "ssml": "A String", # The SSML to be synthesized. For more information, see [SSML](https://developers.google.com/actions/reference/ssml).
              "text": "A String", # The raw text to be synthesized.
            },
            "telephonyTransferCall": { # Transfers the call in Telephony Gateway. # Transfers the call in Telephony Gateway.
              "phoneNumber": "A String", # 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).
            },
            "text": { # The text response message. # Returns a text response.
              "text": [ # Optional. The collection of the agent's responses.
                "A String",
              ],
            },
          },
        ],
        "mlDisabled": True or False, # 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": True or False, # 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": "A String", # Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Supported formats: - `projects//agent/intents/` - `projects//locations//agent/intents/`
        "outputContexts": [ # Optional. The collection of contexts that are activated when the intent is matched. Context messages in this collection should not set the parameters field. Setting the `lifespan_count` to 0 will reset the context when the intent is matched. Format: `projects//agent/sessions/-/contexts/`.
          { # Dialogflow contexts are similar to natural language context. If a person says to you "they are orange", you need context in order to understand what "they" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).
            "lifespanCount": 42, # Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.
            "name": "A String", # Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
            "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
              "a_key": "", # Properties of the object.
            },
          },
        ],
        "parameters": [ # Optional. The collection of parameters associated with the intent.
          { # Represents intent parameters.
            "defaultValue": "A String", # 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": "A String", # Required. The name of the parameter.
            "entityTypeDisplayName": "A String", # 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": True or False, # Optional. Indicates whether the parameter represents a list of values.
            "mandatory": True or False, # Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value.
            "name": "A String", # The unique identifier of this parameter.
            "prompts": [ # Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter.
              "A String",
            ],
            "value": "A String", # 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`.
          },
        ],
        "parentFollowupIntentName": "A String", # Optional. The unique identifier of the parent intent in the chain of followup intents. You can set this field when creating an intent, for example with CreateIntent or BatchUpdateIntents, in order to make this intent a followup intent. It identifies the parent followup intent. Format: `projects//agent/intents/`.
        "priority": 42, # Optional. The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.
        "resetContexts": True or False, # Optional. Indicates whether to delete all contexts in the current session when this intent is matched.
        "rootFollowupIntentName": "A String", # Output only. The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup intents chain for this intent. Format: `projects//agent/intents/`.
        "trainingPhrases": [ # Optional. The collection of examples that the agent is trained on.
          { # Represents an example that the agent is trained on.
            "name": "A String", # 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.
              { # Represents a part of a training phrase.
                "alias": "A String", # 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": "A String", # Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase.
                "text": "A String", # Required. The text for this part.
                "userDefined": True or False, # 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.
              },
            ],
            "timesAddedCount": 42, # 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": "A String", # Required. The type of the training phrase.
          },
        ],
        "webhookState": "A String", # Optional. Indicates whether webhooks are enabled for the intent.
      },
      "intentDetectionConfidence": 3.14, # The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. If there are `multiple knowledge_answers` messages, this value is set to the greatest `knowledgeAnswers.match_confidence` value in the list.
      "knowledgeAnswers": { # Represents the result of querying a Knowledge base. # The result from Knowledge Connector (if any), ordered by decreasing `KnowledgeAnswers.match_confidence`.
        "answers": [ # A list of answers from Knowledge Connector.
          { # An answer from Knowledge Connector.
            "answer": "A String", # The piece of text from the `source` knowledge base document that answers this conversational query.
            "faqQuestion": "A String", # The corresponding FAQ question if the answer was extracted from a FAQ Document, empty otherwise.
            "matchConfidence": 3.14, # 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": "A String", # The system's confidence level that this knowledge answer is a good match for this conversational query. NOTE: The confidence level for a given `` pair may change without notice, as it depends on models that are constantly being improved. However, it will change less frequently than the confidence score below, and should be preferred for referencing the quality of an answer.
            "source": "A String", # Indicates which Knowledge Document this answer was extracted from. Format: `projects//knowledgeBases//documents/`.
          },
        ],
      },
      "languageCode": "A String", # The language that was triggered during intent detection. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.
      "outputContexts": [ # The collection of output contexts. If applicable, `output_contexts.parameters` contains entries with name `.original` containing the original parameter values before the query.
        { # Dialogflow contexts are similar to natural language context. If a person says to you "they are orange", you need context in order to understand what "they" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).
          "lifespanCount": 42, # Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.
          "name": "A String", # Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
          "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
            "a_key": "", # Properties of the object.
          },
        },
      ],
      "parameters": { # The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
        "a_key": "", # Properties of the object.
      },
      "queryText": "A String", # The original conversational query text: - If natural language text was provided as input, `query_text` contains a copy of the input. - If natural language speech audio was provided as input, `query_text` contains the speech recognition result. If speech recognizer produced multiple alternatives, a particular one is picked. - If automatic spell correction is enabled, `query_text` will contain the corrected user input.
      "sentimentAnalysisResult": { # The result of sentiment analysis. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral. For Participants.DetectIntent, it needs to be configured in DetectIntentRequest.query_params. For Participants.StreamingDetectIntent, it needs to be configured in StreamingDetectIntentRequest.query_params. And for Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it needs to be configured in ConversationProfile.human_agent_assistant_config # The sentiment analysis result, which depends on the `sentiment_analysis_request_config` specified in the request.
        "queryTextSentiment": { # The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. # The sentiment analysis result for `query_text`.
          "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).
          "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).
        },
      },
      "speechRecognitionConfidence": 3.14, # 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.
        "a_key": "", # Properties of the object.
      },
      "webhookSource": "A String", # 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.
    },
  ],
  "outputAudio": "A String", # The audio data bytes encoded as specified in the request. Note: The output audio is generated based on the values of default platform text responses found in the `query_result.fulfillment_messages` field. If multiple default text responses exist, they will be concatenated when generating audio. If no default platform text responses exist, the generated audio content will be empty. In some scenarios, multiple output audio fields may be present in the response structure. In these cases, only the top-most-level audio output has content.
  "outputAudioConfig": { # Instructs the speech synthesizer how to generate the output audio content. If this audio config is supplied in a request, it overrides all existing text-to-speech settings applied to the agent. # The config used by the speech synthesizer to generate the output audio.
    "audioEncoding": "A String", # Required. Audio encoding of the synthesized audio content.
    "sampleRateHertz": 42, # The synthesis sample rate (in hertz) for this audio. If not provided, then the synthesizer will use the default sample rate based on the audio encoding. If this is different from the voice's natural sample rate, then the synthesizer will honor this request by converting to the desired sample rate (which might result in worse audio quality).
    "synthesizeSpeechConfig": { # Configuration of how speech should be synthesized. # Configuration of how speech should be synthesized.
      "effectsProfileId": [ # Optional. An identifier which selects 'audio effects' profiles that are applied on (post synthesized) text to speech. Effects are applied on top of each other in the order they are given.
        "A String",
      ],
      "pitch": 3.14, # Optional. Speaking pitch, in the range [-20.0, 20.0]. 20 means increase 20 semitones from the original pitch. -20 means decrease 20 semitones from the original pitch.
      "speakingRate": 3.14, # Optional. Speaking rate/speed, in the range [0.25, 4.0]. 1.0 is the normal native speed supported by the specific voice. 2.0 is twice as fast, and 0.5 is half as fast. If unset(0.0), defaults to the native 1.0 speed. Any other values < 0.25 or > 4.0 will return an error.
      "voice": { # Description of which voice to use for speech synthesis. # Optional. The desired voice of the synthesized audio.
        "name": "A String", # Optional. The name of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and ssml_gender. For the list of available voices, please refer to [Supported voices and languages](https://cloud.google.com/text-to-speech/docs/voices).
        "ssmlGender": "A String", # Optional. The preferred gender of the voice. If not set, the service will choose a voice based on the other parameters such as language_code and name. Note that this is only a preference, not requirement. If a voice of the appropriate gender is not available, the synthesizer should substitute a voice with a different gender rather than failing the request.
      },
      "volumeGainDb": 3.14, # Optional. Volume gain (in dB) of the normal native volume supported by the specific voice, in the range [-96.0, 16.0]. If unset, or set to a value of 0.0 (dB), will play at normal native signal amplitude. A value of -6.0 (dB) will play at approximately half the amplitude of the normal native signal amplitude. A value of +6.0 (dB) will play at approximately twice the amplitude of the normal native signal amplitude. We strongly recommend not to exceed +10 (dB) as there's usually no effective increase in loudness for any value greater than that.
    },
  },
  "queryResult": { # Represents the result of conversational query or event processing. # The selected results of the conversational query or event processing. See `alternative_query_results` for additional potential results.
    "action": "A String", # The action name from the matched intent.
    "allRequiredParamsPresent": True or False, # This field is set to: - `false` if the matched intent has required parameters and not all of the required parameter values have been collected. - `true` if all required parameter values have been collected, or if the matched intent doesn't contain any required parameters.
    "cancelsSlotFilling": True or False, # Indicates whether the conversational query triggers a cancellation for slot filling.
    "diagnosticInfo": { # Free-form diagnostic information for the associated detect intent request. The fields of this data can change without notice, so you should not write code that depends on its structure. The data may contain: - webhook call latency - webhook errors
      "a_key": "", # Properties of the object.
    },
    "fulfillmentMessages": [ # The collection of rich messages to present to the user.
      { # Corresponds to the `Response` field in the Dialogflow console.
        "basicCard": { # The basic card message. Useful for displaying information. # Displays a basic card for Actions on Google.
          "buttons": [ # Optional. The collection of card buttons.
            { # The button object that appears at the bottom of a card.
              "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
              },
              "title": "A String", # Required. The title of the button.
            },
          ],
          "formattedText": "A String", # Required, unless image is present. The body text of the card.
          "image": { # The image response message. # Optional. The image for the card.
            "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
            "imageUri": "A String", # Optional. The public URI to an image file.
          },
          "subtitle": "A String", # Optional. The subtitle of the card.
          "title": "A String", # Optional. The title of the card.
        },
        "browseCarouselCard": { # Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel # Browse carousel card for Actions on Google.
          "imageDisplayOptions": "A String", # Optional. Settings for displaying the image. Applies to every image in items.
          "items": [ # Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.
            { # Browsing carousel tile
              "description": "A String", # Optional. Description of the carousel item. Maximum of four lines of text.
              "footer": "A String", # Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.
              "image": { # The image response message. # Optional. Hero image for the carousel item.
                "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                "imageUri": "A String", # Optional. The public URI to an image file.
              },
              "openUriAction": { # Actions on Google action to open a given url. # Required. Action to present to the user.
                "url": "A String", # Required. URL
                "urlTypeHint": "A String", # Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.
              },
              "title": "A String", # Required. Title of the carousel item. Maximum of two lines of text.
            },
          ],
        },
        "card": { # The card response message. # Displays a card.
          "buttons": [ # Optional. The collection of card buttons.
            { # Optional. Contains information about a button.
              "postback": "A String", # Optional. The text to send back to the Dialogflow API or a URI to open.
              "text": "A String", # Optional. The text to show on the button.
            },
          ],
          "imageUri": "A String", # Optional. The public URI to an image file for the card.
          "subtitle": "A String", # Optional. The subtitle of the card.
          "title": "A String", # Optional. The title of the card.
        },
        "carouselSelect": { # The card for presenting a carousel of options to select from. # Displays a carousel card for Actions on Google.
          "items": [ # Required. Carousel items.
            { # An item in the carousel.
              "description": "A String", # Optional. The body text of the card.
              "image": { # The image response message. # Optional. The image to display.
                "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                "imageUri": "A String", # Optional. The public URI to an image file.
              },
              "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional info about the option item.
                "key": "A String", # 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.
                  "A String",
                ],
              },
              "title": "A String", # Required. Title of the carousel item.
            },
          ],
        },
        "image": { # The image response message. # Displays an image.
          "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
          "imageUri": "A String", # Optional. The public URI to an image file.
        },
        "linkOutSuggestion": { # The suggestion chip message that allows the user to jump out to the app or website associated with this agent. # Displays a link out suggestion chip for Actions on Google.
          "destinationName": "A String", # Required. The name of the app or site this chip is linking to.
          "uri": "A String", # Required. The URI of the app or site to open when the user taps the suggestion chip.
        },
        "listSelect": { # The card for presenting a list of options to select from. # Displays a list card for Actions on Google.
          "items": [ # Required. List items.
            { # An item in the list.
              "description": "A String", # Optional. The main text describing the item.
              "image": { # The image response message. # Optional. The image to display.
                "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                "imageUri": "A String", # Optional. The public URI to an image file.
              },
              "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional information about this option.
                "key": "A String", # 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.
                  "A String",
                ],
              },
              "title": "A String", # Required. The title of the list item.
            },
          ],
          "subtitle": "A String", # Optional. Subtitle of the list.
          "title": "A String", # Optional. The overall title of the list.
        },
        "mediaContent": { # The media content card for Actions on Google. # The media content card for Actions on Google.
          "mediaObjects": [ # Required. List of media objects.
            { # Response media object for media content card.
              "contentUrl": "A String", # Required. Url where the media is stored.
              "description": "A String", # Optional. Description of media card.
              "icon": { # The image response message. # Optional. Icon to display above media content.
                "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                "imageUri": "A String", # Optional. The public URI to an image file.
              },
              "largeImage": { # The image response message. # Optional. Image to display above media content.
                "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                "imageUri": "A String", # Optional. The public URI to an image file.
              },
              "name": "A String", # Required. Name of media card.
            },
          ],
          "mediaType": "A String", # Optional. What type of media is the content (ie "audio").
        },
        "payload": { # A custom platform-specific response.
          "a_key": "", # Properties of the object.
        },
        "platform": "A String", # Optional. The platform that this message is intended for.
        "quickReplies": { # The quick replies response message. # Displays quick replies.
          "quickReplies": [ # Optional. The collection of quick replies.
            "A String",
          ],
          "title": "A String", # Optional. The title of the collection of quick replies.
        },
        "rbmCarouselRichCard": { # Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead. # Rich Business Messaging (RBM) carousel rich card response.
          "cardContents": [ # Required. The cards in the carousel. A carousel must have at least 2 cards and at most 10.
            { # Rich Business Messaging (RBM) Card content
              "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
              "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
                "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
                "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
                "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
              },
              "suggestions": [ # Optional. List of suggestions to include in the card.
                { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                  "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                    "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                      "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                    },
                    "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                      "uri": "A String", # Required. The uri to open on the user device
                    },
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                    "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                    },
                    "text": "A String", # Text to display alongside the action.
                  },
                  "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                    "text": "A String", # Suggested reply text.
                  },
                },
              ],
              "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
            },
          ],
          "cardWidth": "A String", # Required. The width of the cards in the carousel.
        },
        "rbmStandaloneRichCard": { # Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout. # Standalone Rich Business Messaging (RBM) rich card response.
          "cardContent": { # Rich Business Messaging (RBM) Card content # Required. Card content.
            "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
            "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
              "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
              "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
              "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
            },
            "suggestions": [ # Optional. List of suggestions to include in the card.
              { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                  "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                    "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                  },
                  "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                    "uri": "A String", # Required. The uri to open on the user device
                  },
                  "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                  "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                  },
                  "text": "A String", # Text to display alongside the action.
                },
                "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                  "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                  "text": "A String", # Suggested reply text.
                },
              },
            ],
            "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
          },
          "cardOrientation": "A String", # Required. Orientation of the card.
          "thumbnailImageAlignment": "A String", # Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout.
        },
        "rbmText": { # Rich Business Messaging (RBM) text response with suggestions. # Rich Business Messaging (RBM) text response. RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging.
          "rbmSuggestion": [ # Optional. One or more suggestions to show to the user.
            { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
              "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                  "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                },
                "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                  "uri": "A String", # Required. The uri to open on the user device
                },
                "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                },
                "text": "A String", # Text to display alongside the action.
              },
              "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                "text": "A String", # Suggested reply text.
              },
            },
          ],
          "text": "A String", # Required. Text sent and displayed to the user.
        },
        "simpleResponses": { # The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. # Returns a voice or text-only response for Actions on Google.
          "simpleResponses": [ # Required. The list of simple responses.
            { # The simple response message containing speech or text.
              "displayText": "A String", # Optional. The text to display.
              "ssml": "A String", # 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": "A String", # One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.
            },
          ],
        },
        "suggestions": { # The collection of suggestions. # Displays suggestion chips for Actions on Google.
          "suggestions": [ # Required. The list of suggested replies.
            { # The suggestion chip message that the user can tap to quickly post a reply to the conversation.
              "title": "A String", # Required. The text shown the in the suggestion chip.
            },
          ],
        },
        "tableCard": { # Table card for Actions on Google. # Table card for Actions on Google.
          "buttons": [ # Optional. List of buttons for the card.
            { # The button object that appears at the bottom of a card.
              "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
              },
              "title": "A String", # Required. The title of the button.
            },
          ],
          "columnProperties": [ # Optional. Display properties for the columns in this table.
            { # Column properties for TableCard.
              "header": "A String", # Required. Column heading.
              "horizontalAlignment": "A String", # Optional. Defines text alignment for all cells in this column.
            },
          ],
          "image": { # The image response message. # Optional. Image which should be displayed on the card.
            "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
            "imageUri": "A String", # Optional. The public URI to an image file.
          },
          "rows": [ # Optional. Rows in this table of data.
            { # Row of TableCard.
              "cells": [ # Optional. List of cells that make up this row.
                { # Cell of TableCardRow.
                  "text": "A String", # Required. Text in this cell.
                },
              ],
              "dividerAfter": True or False, # Optional. Whether to add a visual divider after this row.
            },
          ],
          "subtitle": "A String", # Optional. Subtitle to the title.
          "title": "A String", # Required. Title of the card.
        },
        "telephonyPlayAudio": { # Plays audio from a file in Telephony Gateway. # Plays audio from a file in Telephony Gateway.
          "audioUri": "A String", # Required. URI to a Google Cloud Storage object containing the audio to play, e.g., "gs://bucket/object". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz. This object must be readable by the `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API. For audio from other sources, consider using the `TelephonySynthesizeSpeech` message with SSML.
        },
        "telephonySynthesizeSpeech": { # 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. # Synthesizes speech in Telephony Gateway.
          "ssml": "A String", # The SSML to be synthesized. For more information, see [SSML](https://developers.google.com/actions/reference/ssml).
          "text": "A String", # The raw text to be synthesized.
        },
        "telephonyTransferCall": { # Transfers the call in Telephony Gateway. # Transfers the call in Telephony Gateway.
          "phoneNumber": "A String", # 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).
        },
        "text": { # The text response message. # Returns a text response.
          "text": [ # Optional. The collection of the agent's responses.
            "A String",
          ],
        },
      },
    ],
    "fulfillmentText": "A String", # 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": { # An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview). # The intent that matched the conversational query. Some, not all fields are filled in this message, including but not limited to: `name`, `display_name`, `end_interaction` and `is_fallback`.
      "action": "A String", # Optional. The name of the action associated with the intent. Note: The action name must not contain whitespaces.
      "defaultResponsePlatforms": [ # Optional. The list of platforms for which the first responses will be copied from the messages in PLATFORM_UNSPECIFIED (i.e. default platform).
        "A String",
      ],
      "displayName": "A String", # Required. The name of this intent.
      "endInteraction": True or False, # Optional. Indicates that this intent ends an interaction. Some integrations (e.g., Actions on Google or Dialogflow phone gateway) use this information to close interaction with an end user. Default is false.
      "events": [ # Optional. The collection of event names that trigger the intent. If the collection of input contexts is not empty, all of the contexts must be present in the active user session for an event to trigger this intent. Event names are limited to 150 characters.
        "A String",
      ],
      "followupIntentInfo": [ # Output only. Information about all followup intents that have this intent as a direct or indirect parent. We populate this field only in the output.
        { # Represents a single followup intent in the chain.
          "followupIntentName": "A String", # The unique identifier of the followup intent. Format: `projects//agent/intents/`.
          "parentFollowupIntentName": "A String", # The unique identifier of the followup intent's parent. Format: `projects//agent/intents/`.
        },
      ],
      "inputContextNames": [ # Optional. The list of context names required for this intent to be triggered. Formats: - `projects//agent/sessions/-/contexts/` - `projects//locations//agent/sessions/-/contexts/`
        "A String",
      ],
      "isFallback": True or False, # Optional. Indicates whether this is a fallback intent.
      "liveAgentHandoff": True or False, # Optional. Indicates that a live agent should be brought in to handle the interaction with the user. In most cases, when you set this flag to true, you would also want to set end_interaction to true as well. Default is false.
      "messages": [ # Optional. The collection of rich messages corresponding to the `Response` field in the Dialogflow console.
        { # Corresponds to the `Response` field in the Dialogflow console.
          "basicCard": { # The basic card message. Useful for displaying information. # Displays a basic card for Actions on Google.
            "buttons": [ # Optional. The collection of card buttons.
              { # The button object that appears at the bottom of a card.
                "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                  "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
                },
                "title": "A String", # Required. The title of the button.
              },
            ],
            "formattedText": "A String", # Required, unless image is present. The body text of the card.
            "image": { # The image response message. # Optional. The image for the card.
              "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
              "imageUri": "A String", # Optional. The public URI to an image file.
            },
            "subtitle": "A String", # Optional. The subtitle of the card.
            "title": "A String", # Optional. The title of the card.
          },
          "browseCarouselCard": { # Browse Carousel Card for Actions on Google. https://developers.google.com/actions/assistant/responses#browsing_carousel # Browse carousel card for Actions on Google.
            "imageDisplayOptions": "A String", # Optional. Settings for displaying the image. Applies to every image in items.
            "items": [ # Required. List of items in the Browse Carousel Card. Minimum of two items, maximum of ten.
              { # Browsing carousel tile
                "description": "A String", # Optional. Description of the carousel item. Maximum of four lines of text.
                "footer": "A String", # Optional. Text that appears at the bottom of the Browse Carousel Card. Maximum of one line of text.
                "image": { # The image response message. # Optional. Hero image for the carousel item.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "openUriAction": { # Actions on Google action to open a given url. # Required. Action to present to the user.
                  "url": "A String", # Required. URL
                  "urlTypeHint": "A String", # Optional. Specifies the type of viewer that is used when opening the URL. Defaults to opening via web browser.
                },
                "title": "A String", # Required. Title of the carousel item. Maximum of two lines of text.
              },
            ],
          },
          "card": { # The card response message. # Displays a card.
            "buttons": [ # Optional. The collection of card buttons.
              { # Optional. Contains information about a button.
                "postback": "A String", # Optional. The text to send back to the Dialogflow API or a URI to open.
                "text": "A String", # Optional. The text to show on the button.
              },
            ],
            "imageUri": "A String", # Optional. The public URI to an image file for the card.
            "subtitle": "A String", # Optional. The subtitle of the card.
            "title": "A String", # Optional. The title of the card.
          },
          "carouselSelect": { # The card for presenting a carousel of options to select from. # Displays a carousel card for Actions on Google.
            "items": [ # Required. Carousel items.
              { # An item in the carousel.
                "description": "A String", # Optional. The body text of the card.
                "image": { # The image response message. # Optional. The image to display.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional info about the option item.
                  "key": "A String", # 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.
                    "A String",
                  ],
                },
                "title": "A String", # Required. Title of the carousel item.
              },
            ],
          },
          "image": { # The image response message. # Displays an image.
            "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
            "imageUri": "A String", # Optional. The public URI to an image file.
          },
          "linkOutSuggestion": { # The suggestion chip message that allows the user to jump out to the app or website associated with this agent. # Displays a link out suggestion chip for Actions on Google.
            "destinationName": "A String", # Required. The name of the app or site this chip is linking to.
            "uri": "A String", # Required. The URI of the app or site to open when the user taps the suggestion chip.
          },
          "listSelect": { # The card for presenting a list of options to select from. # Displays a list card for Actions on Google.
            "items": [ # Required. List items.
              { # An item in the list.
                "description": "A String", # Optional. The main text describing the item.
                "image": { # The image response message. # Optional. The image to display.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "info": { # Additional info about the select item for when it is triggered in a dialog. # Required. Additional information about this option.
                  "key": "A String", # 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.
                    "A String",
                  ],
                },
                "title": "A String", # Required. The title of the list item.
              },
            ],
            "subtitle": "A String", # Optional. Subtitle of the list.
            "title": "A String", # Optional. The overall title of the list.
          },
          "mediaContent": { # The media content card for Actions on Google. # The media content card for Actions on Google.
            "mediaObjects": [ # Required. List of media objects.
              { # Response media object for media content card.
                "contentUrl": "A String", # Required. Url where the media is stored.
                "description": "A String", # Optional. Description of media card.
                "icon": { # The image response message. # Optional. Icon to display above media content.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "largeImage": { # The image response message. # Optional. Image to display above media content.
                  "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
                  "imageUri": "A String", # Optional. The public URI to an image file.
                },
                "name": "A String", # Required. Name of media card.
              },
            ],
            "mediaType": "A String", # Optional. What type of media is the content (ie "audio").
          },
          "payload": { # A custom platform-specific response.
            "a_key": "", # Properties of the object.
          },
          "platform": "A String", # Optional. The platform that this message is intended for.
          "quickReplies": { # The quick replies response message. # Displays quick replies.
            "quickReplies": [ # Optional. The collection of quick replies.
              "A String",
            ],
            "title": "A String", # Optional. The title of the collection of quick replies.
          },
          "rbmCarouselRichCard": { # Carousel Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. If you want to show a single card with more control over the layout, please use RbmStandaloneCard instead. # Rich Business Messaging (RBM) carousel rich card response.
            "cardContents": [ # Required. The cards in the carousel. A carousel must have at least 2 cards and at most 10.
              { # Rich Business Messaging (RBM) Card content
                "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
                "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
                  "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
                  "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
                  "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
                },
                "suggestions": [ # Optional. List of suggestions to include in the card.
                  { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                    "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                      "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                        "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                      },
                      "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                        "uri": "A String", # Required. The uri to open on the user device
                      },
                      "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                      "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                      },
                      "text": "A String", # Text to display alongside the action.
                    },
                    "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                      "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                      "text": "A String", # Suggested reply text.
                    },
                  },
                ],
                "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
              },
            ],
            "cardWidth": "A String", # Required. The width of the cards in the carousel.
          },
          "rbmStandaloneRichCard": { # Standalone Rich Business Messaging (RBM) rich card. Rich cards allow you to respond to users with more vivid content, e.g. with media and suggestions. You can group multiple rich cards into one using RbmCarouselCard but carousel cards will give you less control over the card layout. # Standalone Rich Business Messaging (RBM) rich card response.
            "cardContent": { # Rich Business Messaging (RBM) Card content # Required. Card content.
              "description": "A String", # Optional. Description of the card (at most 2000 bytes). At least one of the title, description or media must be set.
              "media": { # Rich Business Messaging (RBM) Media displayed in Cards The following media-types are currently supported: Image Types * image/jpeg * image/jpg' * image/gif * image/png Video Types * video/h263 * video/m4v * video/mp4 * video/mpeg * video/mpeg4 * video/webm # Optional. However at least one of the title, description or media must be set. Media (image, GIF or a video) to include in the card.
                "fileUri": "A String", # Required. Publicly reachable URI of the file. The RBM platform determines the MIME type of the file from the content-type field in the HTTP headers when the platform fetches the file. The content-type field must be present and accurate in the HTTP response from the URL.
                "height": "A String", # Required for cards with vertical orientation. The height of the media within a rich card with a vertical layout. For a standalone card with horizontal layout, height is not customizable, and this field is ignored.
                "thumbnailUri": "A String", # Optional. Publicly reachable URI of the thumbnail.If you don't provide a thumbnail URI, the RBM platform displays a blank placeholder thumbnail until the user's device downloads the file. Depending on the user's setting, the file may not download automatically and may require the user to tap a download button.
              },
              "suggestions": [ # Optional. List of suggestions to include in the card.
                { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                  "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                    "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                      "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                    },
                    "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                      "uri": "A String", # Required. The uri to open on the user device
                    },
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                    "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                    },
                    "text": "A String", # Text to display alongside the action.
                  },
                  "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                    "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                    "text": "A String", # Suggested reply text.
                  },
                },
              ],
              "title": "A String", # Optional. Title of the card (at most 200 bytes). At least one of the title, description or media must be set.
            },
            "cardOrientation": "A String", # Required. Orientation of the card.
            "thumbnailImageAlignment": "A String", # Required if orientation is horizontal. Image preview alignment for standalone cards with horizontal layout.
          },
          "rbmText": { # Rich Business Messaging (RBM) text response with suggestions. # Rich Business Messaging (RBM) text response. RBM allows businesses to send enriched and branded versions of SMS. See https://jibe.google.com/business-messaging.
            "rbmSuggestion": [ # Optional. One or more suggestions to show to the user.
              { # Rich Business Messaging (RBM) suggestion. Suggestions allow user to easily select/click a predefined response or perform an action (like opening a web uri).
                "action": { # Rich Business Messaging (RBM) suggested client-side action that the user can choose from the card. # Predefined client side actions that user can choose
                  "dial": { # Opens the user's default dialer app with the specified phone number but does not dial automatically. # Suggested client side action: Dial a phone number
                    "phoneNumber": "A String", # Required. The phone number to fill in the default dialer app. This field should be in [E.164](https://en.wikipedia.org/wiki/E.164) format. An example of a correctly formatted phone number: +15556767888.
                  },
                  "openUrl": { # Opens the user's default web browser app to the specified uri If the user has an app installed that is registered as the default handler for the URL, then this app will be opened instead, and its icon will be used in the suggested action UI. # Suggested client side action: Open a URI on device
                    "uri": "A String", # Required. The uri to open on the user device
                  },
                  "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested action. This data will be also forwarded to webhook to allow performing custom business logic.
                  "shareLocation": { # Opens the device's location chooser so the user can pick a location to send back to the agent. # Suggested client side action: Share user location
                  },
                  "text": "A String", # Text to display alongside the action.
                },
                "reply": { # Rich Business Messaging (RBM) suggested reply that the user can click instead of typing in their own response. # Predefined replies for user to select instead of typing
                  "postbackData": "A String", # Opaque payload that the Dialogflow receives in a user event when the user taps the suggested reply. This data will be also forwarded to webhook to allow performing custom business logic.
                  "text": "A String", # Suggested reply text.
                },
              },
            ],
            "text": "A String", # Required. Text sent and displayed to the user.
          },
          "simpleResponses": { # The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. # Returns a voice or text-only response for Actions on Google.
            "simpleResponses": [ # Required. The list of simple responses.
              { # The simple response message containing speech or text.
                "displayText": "A String", # Optional. The text to display.
                "ssml": "A String", # 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": "A String", # One of text_to_speech or ssml must be provided. The plain text of the speech output. Mutually exclusive with ssml.
              },
            ],
          },
          "suggestions": { # The collection of suggestions. # Displays suggestion chips for Actions on Google.
            "suggestions": [ # Required. The list of suggested replies.
              { # The suggestion chip message that the user can tap to quickly post a reply to the conversation.
                "title": "A String", # Required. The text shown the in the suggestion chip.
              },
            ],
          },
          "tableCard": { # Table card for Actions on Google. # Table card for Actions on Google.
            "buttons": [ # Optional. List of buttons for the card.
              { # The button object that appears at the bottom of a card.
                "openUriAction": { # Opens the given URI. # Required. Action to take when a user taps on the button.
                  "uri": "A String", # Required. The HTTP or HTTPS scheme URI.
                },
                "title": "A String", # Required. The title of the button.
              },
            ],
            "columnProperties": [ # Optional. Display properties for the columns in this table.
              { # Column properties for TableCard.
                "header": "A String", # Required. Column heading.
                "horizontalAlignment": "A String", # Optional. Defines text alignment for all cells in this column.
              },
            ],
            "image": { # The image response message. # Optional. Image which should be displayed on the card.
              "accessibilityText": "A String", # A text description of the image to be used for accessibility, e.g., screen readers. Required if image_uri is set for CarouselSelect.
              "imageUri": "A String", # Optional. The public URI to an image file.
            },
            "rows": [ # Optional. Rows in this table of data.
              { # Row of TableCard.
                "cells": [ # Optional. List of cells that make up this row.
                  { # Cell of TableCardRow.
                    "text": "A String", # Required. Text in this cell.
                  },
                ],
                "dividerAfter": True or False, # Optional. Whether to add a visual divider after this row.
              },
            ],
            "subtitle": "A String", # Optional. Subtitle to the title.
            "title": "A String", # Required. Title of the card.
          },
          "telephonyPlayAudio": { # Plays audio from a file in Telephony Gateway. # Plays audio from a file in Telephony Gateway.
            "audioUri": "A String", # Required. URI to a Google Cloud Storage object containing the audio to play, e.g., "gs://bucket/object". The object must contain a single channel (mono) of linear PCM audio (2 bytes / sample) at 8kHz. This object must be readable by the `service-@gcp-sa-dialogflow.iam.gserviceaccount.com` service account where is the number of the Telephony Gateway project (usually the same as the Dialogflow agent project). If the Google Cloud Storage bucket is in the Telephony Gateway project, this permission is added by default when enabling the Dialogflow V2 API. For audio from other sources, consider using the `TelephonySynthesizeSpeech` message with SSML.
          },
          "telephonySynthesizeSpeech": { # 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. # Synthesizes speech in Telephony Gateway.
            "ssml": "A String", # The SSML to be synthesized. For more information, see [SSML](https://developers.google.com/actions/reference/ssml).
            "text": "A String", # The raw text to be synthesized.
          },
          "telephonyTransferCall": { # Transfers the call in Telephony Gateway. # Transfers the call in Telephony Gateway.
            "phoneNumber": "A String", # 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).
          },
          "text": { # The text response message. # Returns a text response.
            "text": [ # Optional. The collection of the agent's responses.
              "A String",
            ],
          },
        },
      ],
      "mlDisabled": True or False, # 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": True or False, # 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": "A String", # Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Supported formats: - `projects//agent/intents/` - `projects//locations//agent/intents/`
      "outputContexts": [ # Optional. The collection of contexts that are activated when the intent is matched. Context messages in this collection should not set the parameters field. Setting the `lifespan_count` to 0 will reset the context when the intent is matched. Format: `projects//agent/sessions/-/contexts/`.
        { # Dialogflow contexts are similar to natural language context. If a person says to you "they are orange", you need context in order to understand what "they" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).
          "lifespanCount": 42, # Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.
          "name": "A String", # Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
          "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
            "a_key": "", # Properties of the object.
          },
        },
      ],
      "parameters": [ # Optional. The collection of parameters associated with the intent.
        { # Represents intent parameters.
          "defaultValue": "A String", # 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": "A String", # Required. The name of the parameter.
          "entityTypeDisplayName": "A String", # 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": True or False, # Optional. Indicates whether the parameter represents a list of values.
          "mandatory": True or False, # Optional. Indicates whether the parameter is required. That is, whether the intent cannot be completed without collecting the parameter value.
          "name": "A String", # The unique identifier of this parameter.
          "prompts": [ # Optional. The collection of prompts that the agent can present to the user in order to collect a value for the parameter.
            "A String",
          ],
          "value": "A String", # 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`.
        },
      ],
      "parentFollowupIntentName": "A String", # Optional. The unique identifier of the parent intent in the chain of followup intents. You can set this field when creating an intent, for example with CreateIntent or BatchUpdateIntents, in order to make this intent a followup intent. It identifies the parent followup intent. Format: `projects//agent/intents/`.
      "priority": 42, # Optional. The priority of this intent. Higher numbers represent higher priorities. - If the supplied value is unspecified or 0, the service translates the value to 500,000, which corresponds to the `Normal` priority in the console. - If the supplied value is negative, the intent is ignored in runtime detect intent requests.
      "resetContexts": True or False, # Optional. Indicates whether to delete all contexts in the current session when this intent is matched.
      "rootFollowupIntentName": "A String", # Output only. The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup intents chain for this intent. Format: `projects//agent/intents/`.
      "trainingPhrases": [ # Optional. The collection of examples that the agent is trained on.
        { # Represents an example that the agent is trained on.
          "name": "A String", # 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.
            { # Represents a part of a training phrase.
              "alias": "A String", # 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": "A String", # Optional. The entity type name prefixed with `@`. This field is required for annotated parts of the training phrase.
              "text": "A String", # Required. The text for this part.
              "userDefined": True or False, # 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.
            },
          ],
          "timesAddedCount": 42, # 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": "A String", # Required. The type of the training phrase.
        },
      ],
      "webhookState": "A String", # Optional. Indicates whether webhooks are enabled for the intent.
    },
    "intentDetectionConfidence": 3.14, # The intent detection confidence. Values range from 0.0 (completely uncertain) to 1.0 (completely certain). This value is for informational purpose only and is only used to help match the best intent within the classification threshold. This value may change for the same end-user expression at any time due to a model retraining or change in implementation. If there are `multiple knowledge_answers` messages, this value is set to the greatest `knowledgeAnswers.match_confidence` value in the list.
    "knowledgeAnswers": { # Represents the result of querying a Knowledge base. # The result from Knowledge Connector (if any), ordered by decreasing `KnowledgeAnswers.match_confidence`.
      "answers": [ # A list of answers from Knowledge Connector.
        { # An answer from Knowledge Connector.
          "answer": "A String", # The piece of text from the `source` knowledge base document that answers this conversational query.
          "faqQuestion": "A String", # The corresponding FAQ question if the answer was extracted from a FAQ Document, empty otherwise.
          "matchConfidence": 3.14, # 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": "A String", # The system's confidence level that this knowledge answer is a good match for this conversational query. NOTE: The confidence level for a given `` pair may change without notice, as it depends on models that are constantly being improved. However, it will change less frequently than the confidence score below, and should be preferred for referencing the quality of an answer.
          "source": "A String", # Indicates which Knowledge Document this answer was extracted from. Format: `projects//knowledgeBases//documents/`.
        },
      ],
    },
    "languageCode": "A String", # The language that was triggered during intent detection. See [Language Support](https://cloud.google.com/dialogflow/docs/reference/language) for a list of the currently supported language codes.
    "outputContexts": [ # The collection of output contexts. If applicable, `output_contexts.parameters` contains entries with name `.original` containing the original parameter values before the query.
      { # Dialogflow contexts are similar to natural language context. If a person says to you "they are orange", you need context in order to understand what "they" is referring to. Similarly, for Dialogflow to handle an end-user expression like that, it needs to be provided with context in order to correctly match an intent. Using contexts, you can control the flow of a conversation. You can configure contexts for an intent by setting input and output contexts, which are identified by string names. When an intent is matched, any configured output contexts for that intent become active. While any contexts are active, Dialogflow is more likely to match intents that are configured with input contexts that correspond to the currently active contexts. For more information about context, see the [Contexts guide](https://cloud.google.com/dialogflow/docs/contexts-overview).
        "lifespanCount": 42, # Optional. The number of conversational query requests after which the context expires. The default is `0`. If set to `0`, the context expires immediately. Contexts expire automatically after 20 minutes if there are no matching queries.
        "name": "A String", # Required. The unique identifier of the context. Supported formats: - `projects//agent/sessions//contexts/`, - `projects//locations//agent/sessions//contexts/`, - `projects//agent/environments//users//sessions//contexts/`, - `projects//locations//agent/environments//users//sessions//contexts/`, The `Context ID` is always converted to lowercase, may only contain characters in a-zA-Z0-9_-% and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
        "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
          "a_key": "", # Properties of the object.
        },
      },
    ],
    "parameters": { # The collection of extracted parameters. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: - MapKey type: string - MapKey value: parameter name - MapValue type: - If parameter's entity type is a composite entity: map - Else: depending on parameter value type, could be one of string, number, boolean, null, list or map - MapValue value: - If parameter's entity type is a composite entity: map from composite entity property names to property values - Else: parameter value
      "a_key": "", # Properties of the object.
    },
    "queryText": "A String", # The original conversational query text: - If natural language text was provided as input, `query_text` contains a copy of the input. - If natural language speech audio was provided as input, `query_text` contains the speech recognition result. If speech recognizer produced multiple alternatives, a particular one is picked. - If automatic spell correction is enabled, `query_text` will contain the corrected user input.
    "sentimentAnalysisResult": { # The result of sentiment analysis. Sentiment analysis inspects user input and identifies the prevailing subjective opinion, especially to determine a user's attitude as positive, negative, or neutral. For Participants.DetectIntent, it needs to be configured in DetectIntentRequest.query_params. For Participants.StreamingDetectIntent, it needs to be configured in StreamingDetectIntentRequest.query_params. And for Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it needs to be configured in ConversationProfile.human_agent_assistant_config # The sentiment analysis result, which depends on the `sentiment_analysis_request_config` specified in the request.
      "queryTextSentiment": { # The sentiment, such as positive/negative feeling or association, for a unit of analysis, such as the query text. # The sentiment analysis result for `query_text`.
        "magnitude": 3.14, # A non-negative number in the [0, +inf) range, which represents the absolute magnitude of sentiment, regardless of score (positive or negative).
        "score": 3.14, # Sentiment score between -1.0 (negative sentiment) and 1.0 (positive sentiment).
      },
    },
    "speechRecognitionConfidence": 3.14, # 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.
      "a_key": "", # Properties of the object.
    },
    "webhookSource": "A String", # 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.
  },
  "responseId": "A String", # The unique identifier of the response. It can be used to locate a response in the training example set or for reporting issues.
  "webhookStatus": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # Specifies the status of the webhook request.
    "code": 42, # 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.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # 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.
  },
}