in src/dfcx_scrapi/core/intents.py [0:0]
def update_intent(
self,
intent_id: str = None,
obj: types.Intent = None,
language_code: str = None,
**kwargs) -> types.Intent:
"""Updates a single Intent object based on provided arguments.
Args:
intent_id: the destination Intent ID. Must be formatted properly
for Intent IDs in CX.
obj: The CX Intent object in proper format. This can also be
extracted by using the get_intent() method.
language_code: Language code of the intents being uploaded. Ref:
https://cloud.google.com/dialogflow/cx/docs/reference/language
Returns:
The updated intent object.
"""
if obj:
intent = obj
intent.name = intent_id
else:
if not intent_id:
intent_id = self.intent_id
intent = self.get_intent(intent_id)
# set intent attributes from kwargs
for key, value in kwargs.items():
setattr(intent, key, value)
paths = kwargs.keys()
mask = field_mask_pb2.FieldMask(paths=paths)
client_options = self._set_region(intent_id)
client = services.intents.IntentsClient(
client_options=client_options, credentials=self.creds
)
request = types.intent.UpdateIntentRequest()
request.intent = intent
request.update_mask = mask
if language_code:
request.language_code = language_code
response = client.update_intent(request)
return response