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 google.cloud.dialogflowcx_v3.types.fulfillment

# -*- 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
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
import proto  # type: ignore

from google.cloud.dialogflowcx_v3.types import response_message
from google.protobuf import struct_pb2  # type: ignore


__protobuf__ = proto.module(
    package="google.cloud.dialogflow.cx.v3", 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][google.cloud.dialogflow.cx.v3.Page] or [Form][google.cloud.dialogflow.cx.v3.Form] lifecycle. For example, when a [DetectIntentRequest][google.cloud.dialogflow.cx.v3.DetectIntentRequest] drives a session to enter a new page, the page's entry fulfillment can add a static response to the [QueryResult][google.cloud.dialogflow.cx.v3.QueryResult] in the returning [DetectIntentResponse][google.cloud.dialogflow.cx.v3.DetectIntentResponse], call the webhook (for example, to load user data from a database), or both. Attributes: messages (Sequence[google.cloud.dialogflowcx_v3.types.ResponseMessage]): 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[google.cloud.dialogflowcx_v3.types.Fulfillment.SetParameterAction]): Set parameter values before executing the webhook. conditional_cases (Sequence[google.cloud.dialogflowcx_v3.types.Fulfillment.ConditionalCases]): 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[google.cloud.dialogflowcx_v3.types.Fulfillment.ConditionalCases.Case]): 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 <https://cloud.google.com/dialogflow/cx/docs/reference/condition>`__. case_content (Sequence[google.cloud.dialogflowcx_v3.types.Fulfillment.ConditionalCases.Case.CaseContent]): 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 (google.cloud.dialogflowcx_v3.types.ResponseMessage): Returned message. additional_cases (google.cloud.dialogflowcx_v3.types.Fulfillment.ConditionalCases): 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))