As of January 1, 2020 this library no longer supports Python 2 on the latest released version. Library versions released prior to that date will continue to be available. For more information please visit Python 2 support on Google Cloud.

Source code for

# -*- coding: utf-8 -*-
# Copyright 2020 Google LLC
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# See the License for the specific language governing permissions and
# limitations under the License.
import proto  # type: ignore

from import response_message
from google.protobuf import struct_pb2  # type: ignore

__protobuf__ = proto.module(
    package="", manifest={"Fulfillment",},

[docs]class Fulfillment(proto.Message): r"""A fulfillment can do one or more of the following actions at the same time: - Generate rich message responses. - Set parameter values. - Call the webhook. Fulfillments can be called at various stages in the [Page][] or [Form][] lifecycle. For example, when a [DetectIntentRequest][] drives a session to enter a new page, the page's entry fulfillment can add a static response to the [QueryResult][] in the returning [DetectIntentResponse][], call the webhook (for example, to load user data from a database), or both. Attributes: messages (Sequence[]): The list of rich message responses to present to the user. webhook (str): The webhook to call. Format: ``projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/webhooks/<Webhook ID>``. return_partial_responses (bool): Whether Dialogflow should return currently queued fulfillment response messages in streaming APIs. If a webhook is specified, it happens before Dialogflow invokes webhook. Warning: 1) This flag only affects streaming API. Responses are still queued and returned once in non-streaming API. 2) The flag can be enabled in any fulfillment but only the first 3 partial responses will be returned. You may only want to apply it to fulfillments that have slow webhooks. tag (str): The tag used by the webhook to identify which fulfillment is being called. This field is required if ``webhook`` is specified. set_parameter_actions (Sequence[]): Set parameter values before executing the webhook. conditional_cases (Sequence[]): Conditional cases for this fulfillment. """
[docs] class SetParameterAction(proto.Message): r"""Setting a parameter value. Attributes: parameter (str): Display name of the parameter. value (google.protobuf.struct_pb2.Value): The new value of the parameter. A null value clears the parameter. """ parameter = proto.Field(proto.STRING, number=1,) value = proto.Field(proto.MESSAGE, number=2, message=struct_pb2.Value,)
[docs] class ConditionalCases(proto.Message): r"""A list of cascading if-else conditions. Cases are mutually exclusive. The first one with a matching condition is selected, all the rest ignored. Attributes: cases (Sequence[]): A list of cascading if-else conditions. """
[docs] class Case(proto.Message): r"""Each case has a Boolean condition. When it is evaluated to be True, the corresponding messages will be selected and evaluated recursively. Attributes: condition (str): The condition to activate and select this case. Empty means the condition is always true. The condition is evaluated against [form parameters][Form.parameters] or [session parameters][SessionInfo.parameters]. See the `conditions reference <>`__. case_content (Sequence[]): A list of case content. """
[docs] class CaseContent(proto.Message): r"""The list of messages or conditional cases to activate for this case. Attributes: message ( Returned message. additional_cases ( Additional cases to be evaluated. """ message = proto.Field( proto.MESSAGE, number=1, oneof="cases_or_message", message=response_message.ResponseMessage, ) additional_cases = proto.Field( proto.MESSAGE, number=2, oneof="cases_or_message", message="Fulfillment.ConditionalCases", )
condition = proto.Field(proto.STRING, number=1,) case_content = proto.RepeatedField( proto.MESSAGE, number=2, message="Fulfillment.ConditionalCases.Case.CaseContent", )
cases = proto.RepeatedField( proto.MESSAGE, number=1, message="Fulfillment.ConditionalCases.Case", )
messages = proto.RepeatedField( proto.MESSAGE, number=1, message=response_message.ResponseMessage, ) webhook = proto.Field(proto.STRING, number=2,) return_partial_responses = proto.Field(proto.BOOL, number=8,) tag = proto.Field(proto.STRING, number=3,) set_parameter_actions = proto.RepeatedField( proto.MESSAGE, number=4, message=SetParameterAction, ) conditional_cases = proto.RepeatedField( proto.MESSAGE, number=5, message=ConditionalCases, )
__all__ = tuple(sorted(__protobuf__.manifest))