Dialogflow API . projects . locations . agent . 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. Format: `projects//agent/sessions/` or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. (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); }
}
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. Format: `projects//agent/sessions/`, or `projects//agent/environments//users//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment (`Environment ID` might be referred to as environment name at some places). If `User ID` is not specified, we are using "-". It's up to the API caller to choose an appropriate `Session ID` and `User Id`. They can be a random number or some type of user and session identifiers (preferably hashed). The length of the `Session ID` and `User ID` must not exceed 36 characters. For more information, see the [API interactions guide](https://cloud.google.com/dialogflow/docs/api-overview). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/es/docs/agents-versions). (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 on how to generate the output audio content. If this audio config is supplied in a request, it overrides all existing text-to-speech settings applied to the agent. # 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.
        "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 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.
      "enableAutomaticPunctuation": True or False, # Enable automatic punctuation option at the speech backend.
      "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", # Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models).
      "modelVariant": "A String", # Which variant of the Speech model to use.
      "optOutConformerModelMigration": True or False, # If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow ES Speech model migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration).
      "phraseHints": [ # A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details. This field is deprecated. Please use [`speech_contexts`]() instead. If you specify both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will treat the [`phrase_hints`]() as a single additional [`SpeechContext`]().
        "A String",
      ],
      "phraseSets": [ # A collection of phrase set resources to use for speech adaptation.
        "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",
          ],
        },
      ],
    },
    "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. This field is ignored when used in the context of a WebhookResponse.followup_event_input field, because the language was already defined in the originating detect intent request.
      "name": "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 then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.
        "a_key": "", # Properties of the object.
      },
    },
    "text": { # Auxiliary proto messages. Represents the natural language text to be processed. # The natural language text to be processed. Text length must not exceed 256 character for virtual agent interactions.
      "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 for virtual agent interactions.
    },
  },
  "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. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
        "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.
          "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].
    },
    "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.
    },
    "platform": "A String", # The platform of the virtual agent response messages. If not empty, only emits messages from this platform in the response. Valid values are the enum names of platform.
    "resetContexts": 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.
      "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. Format: `projects//agent/sessions//entityTypes/`, or `projects//agent/environments//users//sessions//entityTypes/`. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. `` must be the display name of an existing entity type in the same agent that will be overridden or supplemented.
      },
    ],
    "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 the Dialogflow web console. The headers defined within this field will overwrite the headers configured through the Dialogflow console if there is a conflict. Header names are case-insensitive. Google's specified headers are not allowed. Including: "Host", "Content-Length", "Connection", "From", "User-Agent", "Accept-Encoding", "If-Modified-Since", "If-None-Match", "X-Forwarded-For", etc.
      "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.
  "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 on how to generate the output audio content. If this audio config is supplied in a request, it overrides all existing text-to-speech settings applied to the agent. # 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.
        "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. For more information, see the [cancel slot filling documentation](https://cloud.google.com/dialogflow/es/docs/intents-actions-parameters#cancel).
    "diagnosticInfo": { # Free-form diagnostic information for the associated detect intent request. The fields of this data can change without notice, so you should not write code that depends on its structure. The data may contain: - webhook call latency - webhook errors
      "a_key": "", # Properties of the object.
    },
    "fulfillmentMessages": [ # The collection of rich messages to present to the user.
      { # A rich response message. Corresponds to the intent `Response` field in the Dialogflow console. For more information, see [Rich response messages](https://cloud.google.com/dialogflow/docs/intents-rich-messages).
        "basicCard": { # The basic card message. Useful for displaying information. # The basic card response 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
            "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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                "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. # The card response.
          "buttons": [ # Optional. The collection of card buttons.
            { # 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. # The carousel card response 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                "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. # The image response.
          "accessibilityText": "A String", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
          "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. # The 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. # The list card response 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                "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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                "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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                "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. # The quick replies response.
          "quickReplies": [ # Optional. The collection of quick replies.
            "A String",
          ],
          "title": "A String", # Optional. The title of the collection of quick replies.
        },
        "simpleResponses": { # The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. # The voice and text-only responses 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. # The 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
            "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.
        },
        "text": { # The text response message. # The 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. Read-only. Information about all followup intents that have this intent as a direct or indirect parent. We populate this field only in the output.
        { # 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. Format: `projects//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.
        { # A rich response message. Corresponds to the intent `Response` field in the Dialogflow console. For more information, see [Rich response messages](https://cloud.google.com/dialogflow/docs/intents-rich-messages).
          "basicCard": { # The basic card message. Useful for displaying information. # The basic card response 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
              "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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                  "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. # The card response.
            "buttons": [ # Optional. The collection of card buttons.
              { # 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. # The carousel card response 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                  "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. # The image response.
            "accessibilityText": "A String", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
            "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. # The 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. # The list card response 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                  "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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                  "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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
                  "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. # The quick replies response.
            "quickReplies": [ # Optional. The collection of quick replies.
              "A String",
            ],
            "title": "A String", # Optional. The title of the collection of quick replies.
          },
          "simpleResponses": { # The collection of simple response candidates. This message in `QueryResult.fulfillment_messages` and `WebhookResponse.fulfillment_messages` should contain only one `SimpleResponse`. # The voice and text-only responses 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. # The 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", # Optional. A text description of the image to be used for accessibility, e.g., screen readers.
              "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.
          },
          "text": { # The text response message. # The 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.
      "name": "A String", # Optional. The unique identifier of this intent. Required for Intents.UpdateIntent and Intents.BatchUpdateIntents methods. Format: `projects//agent/intents/`.
      "outputContexts": [ # Optional. The collection of contexts that are activated when the intent is matched. Context messages in this collection should not set the parameters field. Setting the `lifespan_count` to 0 will reset the context when the intent is matched. Format: `projects//agent/sessions/-/contexts/`.
        { # 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. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
          "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.
            "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", # Read-only after creation. The unique identifier of the parent intent in the chain of followup intents. You can set this field when creating an intent, for example with CreateIntent or BatchUpdateIntents, in order to make this intent a followup intent. It identifies the parent followup intent. Format: `projects//agent/intents/`.
      "priority": 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. Read-only. The unique identifier of the root intent in the chain of followup intents. It identifies the correct followup intents chain for this intent. We populate this field only in the output. Format: `projects//agent/intents/`.
      "trainingPhrases": [ # Optional. The collection of examples that the agent is trained on.
        { # 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.
    "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. Format: `projects//agent/sessions//contexts/`, or `projects//agent/environments//users//sessions//contexts/`. The `Context ID` is always converted to lowercase, may only contain characters in `a-zA-Z0-9_-%` and may be at most 250 bytes long. If `Environment ID` is not specified, we assume default 'draft' environment. If `User ID` is not specified, we assume default '-' user. The following context names are reserved for internal use by Dialogflow. You should not use these contexts or create contexts with these names: * `__system_counters__` * `*_id_dialog_context` * `*_dialog_params_size`
        "parameters": { # Optional. The collection of parameters associated with this context. Depending on your protocol or client library language, this is a map, associative array, symbol table, dictionary, or JSON object composed of a collection of (MapKey, MapValue) pairs: * MapKey type: string * MapKey value: parameter name * MapValue type: If parameter's entity type is a composite entity then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.
          "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 then use map, otherwise, depending on the parameter value type, it could be one of string, number, boolean, null, list or map. * MapValue value: If parameter's entity type is a composite entity then use map from composite entity property names to property values, otherwise, use parameter value.
      "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 DetectIntent, it needs to be configured in DetectIntentRequest.query_params. For StreamingDetectIntent, it needs to be configured in StreamingDetectIntentRequest.query_params. And for Participants.AnalyzeContent and Participants.StreamingAnalyzeContent, it needs to be configured in ConversationProfile.human_agent_assistant_config # 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. See: https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values for how to interpret the result. # 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.
  },
}