blob: 3585b68e99014bb453ce7375e244182daea28c99 [file] [log] [blame] [edit]
---
# ----------------------------------------------------------------------------
#
# *** AUTO GENERATED CODE *** Type: MMv1 ***
#
# ----------------------------------------------------------------------------
#
# This file is automatically generated by Magic Modules and manual
# changes will be clobbered when the file is regenerated.
#
# Please read more about how to change this file in
# .github/CONTRIBUTING.md.
#
# ----------------------------------------------------------------------------
subcategory: "Dialogflow CX"
description: |-
Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data.
---
# google\_dialogflow\_cx\_agent
Agents are best described as Natural Language Understanding (NLU) modules that transform user requests into actionable data. You can include agents in your app, product, or service to determine user intent and respond to the user in a natural way.
To get more information about Agent, see:
* [API documentation](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents)
* How-to Guides
* [Official Documentation](https://cloud.google.com/dialogflow/cx/docs)
~> **Warning:** All arguments including the following potentially sensitive
values will be stored in the raw state as plain text: `git_integration_settings.github_settings.access_token`.
[Read more about sensitive data in state](https://www.terraform.io/language/state/sensitive-data).
<div class = "oics-button" style="float: right; margin: 0 0 -15px">
<a href="https://console.cloud.google.com/cloudshell/open?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Fterraform-google-modules%2Fdocs-examples.git&cloudshell_working_dir=dialogflowcx_agent_full&cloudshell_image=gcr.io%2Fcloudshell-images%2Fcloudshell%3Alatest&open_in_editor=main.tf&cloudshell_print=.%2Fmotd&cloudshell_tutorial=.%2Ftutorial.md" target="_blank">
<img alt="Open in Cloud Shell" src="//gstatic.com/cloudssh/images/open-btn.svg" style="max-height: 44px; margin: 32px auto; max-width: 100%;">
</a>
</div>
## Example Usage - Dialogflowcx Agent Full
```hcl
resource "google_storage_bucket" "bucket" {
name = "dialogflowcx-bucket"
location = "US"
uniform_bucket_level_access = true
}
resource "google_dialogflow_cx_agent" "full_agent" {
display_name = "dialogflowcx-agent"
location = "global"
default_language_code = "en"
supported_language_codes = ["fr","de","es"]
time_zone = "America/New_York"
description = "Example description."
avatar_uri = "https://cloud.google.com/_static/images/cloud/icons/favicons/onecloud/super_cloud.png"
enable_stackdriver_logging = true
enable_spell_correction = true
speech_to_text_settings {
enable_speech_adaptation = true
}
advanced_settings {
audio_export_gcs_destination {
uri = "${google_storage_bucket.bucket.url}/prefix-"
}
dtmf_settings {
enabled = true
max_digits = 1
finish_digit = "#"
}
}
git_integration_settings {
github_settings {
display_name = "Github Repo"
repository_uri = "https://api.github.com/repos/githubtraining/hellogitworld"
tracking_branch = "main"
access_token = "secret-token"
branches = ["main"]
}
}
text_to_speech_settings {
synthesize_speech_configs = jsonencode({
en = {
voice = {
name = "en-US-Neural2-A"
}
}
fr = {
voice = {
name = "fr-CA-Neural2-A",
}
}
})
}
}
```
## Argument Reference
The following arguments are supported:
* `location` -
(Required)
The name of the location this agent is located in.
~> **Note:** The first time you are deploying an Agent in your project you must configure location settings.
This is a one time step but at the moment you can only [configure location settings](https://cloud.google.com/dialogflow/cx/docs/concept/region#location-settings) via the Dialogflow CX console.
Another options is to use global location so you don't need to manually configure location settings.
* `display_name` -
(Required)
The human-readable name of the agent, unique within the location.
* `default_language_code` -
(Required)
The default language of the agent as a language tag. [See Language Support](https://cloud.google.com/dialogflow/cx/docs/reference/language)
for a list of the currently supported language codes. This field cannot be updated after creation.
* `time_zone` -
(Required)
The time zone of this agent from the [time zone database](https://www.iana.org/time-zones), e.g., America/New_York,
Europe/Paris.
- - -
* `supported_language_codes` -
(Optional)
The list of all languages supported by this agent (except for the default_language_code).
* `description` -
(Optional)
The description of this agent. The maximum length is 500 characters. If exceeded, the request is rejected.
* `avatar_uri` -
(Optional)
The URI of the agent's avatar. Avatars are used throughout the Dialogflow console and in the self-hosted Web Demo integration.
* `speech_to_text_settings` -
(Optional)
Settings related to speech recognition.
Structure is [documented below](#nested_speech_to_text_settings).
* `security_settings` -
(Optional)
Name of the SecuritySettings reference for the agent. Format: projects/<Project ID>/locations/<Location ID>/securitySettings/<Security Settings ID>.
* `enable_stackdriver_logging` -
(Optional)
Determines whether this agent should log conversation queries.
* `enable_spell_correction` -
(Optional)
Indicates if automatic spell correction is enabled in detect intent requests.
* `advanced_settings` -
(Optional)
Hierarchical advanced settings for this agent. The settings exposed at the lower level overrides the settings exposed at the higher level.
Hierarchy: Agent->Flow->Page->Fulfillment/Parameter.
Structure is [documented below](#nested_advanced_settings).
* `git_integration_settings` -
(Optional)
Git integration settings for this agent.
Structure is [documented below](#nested_git_integration_settings).
* `text_to_speech_settings` -
(Optional)
Settings related to speech synthesizing.
Structure is [documented below](#nested_text_to_speech_settings).
* `project` - (Optional) The ID of the project in which the resource belongs.
If it is not provided, the provider project is used.
<a name="nested_speech_to_text_settings"></a>The `speech_to_text_settings` block supports:
* `enable_speech_adaptation` -
(Optional)
Whether to use speech adaptation for speech recognition.
<a name="nested_advanced_settings"></a>The `advanced_settings` block supports:
* `audio_export_gcs_destination` -
(Optional)
If present, incoming audio is exported by Dialogflow to the configured Google Cloud Storage destination. Exposed at the following levels:
* Agent level
* Flow level
Structure is [documented below](#nested_audio_export_gcs_destination).
* `dtmf_settings` -
(Optional)
Define behaviors for DTMF (dual tone multi frequency). DTMF settings does not override each other. DTMF settings set at different levels define DTMF detections running in parallel. Exposed at the following levels:
* Agent level
* Flow level
* Page level
* Parameter level
Structure is [documented below](#nested_dtmf_settings).
<a name="nested_audio_export_gcs_destination"></a>The `audio_export_gcs_destination` block supports:
* `uri` -
(Optional)
The Google Cloud Storage URI for the exported objects. Whether a full object name, or just a prefix, its usage depends on the Dialogflow operation.
Format: gs://bucket/object-name-or-prefix
<a name="nested_dtmf_settings"></a>The `dtmf_settings` block supports:
* `enabled` -
(Optional)
If true, incoming audio is processed for DTMF (dual tone multi frequency) events. For example, if the caller presses a button on their telephone keypad and DTMF processing is enabled, Dialogflow will detect the event (e.g. a "3" was pressed) in the incoming audio and pass the event to the bot to drive business logic (e.g. when 3 is pressed, return the account balance).
* `max_digits` -
(Optional)
Max length of DTMF digits.
* `finish_digit` -
(Optional)
The digit that terminates a DTMF digit sequence.
<a name="nested_git_integration_settings"></a>The `git_integration_settings` block supports:
* `github_settings` -
(Optional)
Settings of integration with GitHub.
Structure is [documented below](#nested_github_settings).
<a name="nested_github_settings"></a>The `github_settings` block supports:
* `display_name` -
(Optional)
The unique repository display name for the GitHub repository.
* `repository_uri` -
(Optional)
The GitHub repository URI related to the agent.
* `tracking_branch` -
(Optional)
The branch of the GitHub repository tracked for this agent.
* `access_token` -
(Optional)
The access token used to authenticate the access to the GitHub repository.
**Note**: This property is sensitive and will not be displayed in the plan.
* `branches` -
(Optional)
A list of branches configured to be used from Dialogflow.
<a name="nested_text_to_speech_settings"></a>The `text_to_speech_settings` block supports:
* `synthesize_speech_configs` -
(Optional)
Configuration of how speech should be synthesized, mapping from [language](https://cloud.google.com/dialogflow/cx/docs/reference/language) to [SynthesizeSpeechConfig](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents#synthesizespeechconfig).
These settings affect:
* The phone gateway synthesize configuration set via Agent.text_to_speech_settings.
* How speech is synthesized when invoking session APIs. `Agent.text_to_speech_settings` only applies if `OutputAudioConfig.synthesize_speech_config` is not specified.
## Attributes Reference
In addition to the arguments listed above, the following computed attributes are exported:
* `id` - an identifier for the resource with format `projects/{{project}}/locations/{{location}}/agents/{{name}}`
* `name` -
The unique identifier of the agent.
* `start_flow` -
Name of the start flow in this agent. A start flow will be automatically created when the agent is created, and can only be deleted by deleting the agent. Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/flows/<Flow ID>.
## Timeouts
This resource provides the following
[Timeouts](https://developer.hashicorp.com/terraform/plugin/sdkv2/resources/retries-and-customizable-timeouts) configuration options:
- `create` - Default is 40 minutes.
- `update` - Default is 40 minutes.
- `delete` - Default is 20 minutes.
## Import
Agent can be imported using any of these accepted formats:
* `projects/{{project}}/locations/{{location}}/agents/{{name}}`
* `{{project}}/{{location}}/{{name}}`
* `{{location}}/{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Agent using one of the formats above. For example:
```tf
import {
id = "projects/{{project}}/locations/{{location}}/agents/{{name}}"
to = google_dialogflow_cx_agent.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Agent can be imported using one of the formats above. For example:
```
$ terraform import google_dialogflow_cx_agent.default projects/{{project}}/locations/{{location}}/agents/{{name}}
$ terraform import google_dialogflow_cx_agent.default {{project}}/{{location}}/{{name}}
$ terraform import google_dialogflow_cx_agent.default {{location}}/{{name}}
```
## User Project Overrides
This resource supports [User Project Overrides](https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#user_project_override).