1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. diagflow
  5. CxToolVersion
Google Cloud v9.11.0 published on Tuesday, Feb 3, 2026 by Pulumi
gcp logo
Google Cloud v9.11.0 published on Tuesday, Feb 3, 2026 by Pulumi

    Tool version is a snapshot of the tool at certain timestamp.

    To get more information about ToolVersion, see:

    Example Usage

    Dialogflowcx Tool Version Open Api

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    import * as std from "@pulumi/std";
    
    const agent = new gcp.diagflow.CxAgent("agent", {
        displayName: "dialogflowcx-agent-open-api",
        location: "global",
        defaultLanguageCode: "en",
        timeZone: "America/New_York",
        description: "Example description.",
    });
    const tool = new gcp.diagflow.CxTool("tool", {
        parent: agent.id,
        displayName: "open-api-tool",
        description: "Example Description",
        openApiSpec: {
            authentication: {
                oauthConfig: {
                    oauthGrantType: "CLIENT_CREDENTIAL",
                    clientId: "example client ID",
                    clientSecret: "example client secret",
                    scopes: ["example scope"],
                    secretVersionForClientSecret: "projects/-/secrets/-/versions/-",
                    tokenEndpoint: "https://example.com/oauth/token",
                },
            },
            tlsConfig: {
                caCerts: [{
                    displayName: "example ca cert name",
                    cert: std.base64encode({
                        input: "example cert",
                    }).then(invoke => invoke.result),
                }],
            },
            serviceDirectoryConfig: {
                service: "projects/-/locations/-/namespaces/-/services/-",
            },
            textSchema: `      {
            \\"openapi\\": \\"3.0.0\\",
            \\"info\\": {
              \\"title\\": \\"Time API\\",
              \\"version\\": \\"1.0.0\\",
              \\"description\\": \\"A simple API to get the current time.\\"
            },
            \\"servers\\": [
              {
                \\"url\\": \\"https://example-api-endpoint.com\\"
              }
            ],
            \\"paths\\": {
              \\"/time\\": {
                \\"get\\": {
                  \\"operationId\\": \\"getCurrentTime\\",
                  \\"summary\\": \\"Gets the current server time.\\",
                  \\"responses\\": {
                    \\"200\\": {
                      \\"description\\": \\"Successful response with the current time.\\",
                      \\"content\\": {
                        \\"application/json\\": {
                          \\"schema\\": {
                            \\"type\\": \\"object\\",
                            \\"properties\\": {
                              \\"currentTime\\": {
                                \\"type\\": \\"string\\",
                                \\"format\\": \\"date-time\\",
                                \\"description\\": \\"The current time in ISO 8601 format.\\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    `,
        },
    });
    const openApiToolVersion = new gcp.diagflow.CxToolVersion("open_api_tool_version", {
        parent: tool.id,
        displayName: "Example Open API Tool Version",
        tool: {
            displayName: "open-api-tool",
            description: "Example Description",
            openApiSpec: {
                authentication: {
                    oauthConfig: {
                        oauthGrantType: "CLIENT_CREDENTIAL",
                        clientId: "example client ID",
                        clientSecret: "example client secret",
                        scopes: ["example scope"],
                        secretVersionForClientSecret: "projects/-/secrets/-/versions/-",
                        tokenEndpoint: "https://example.com/oauth/token",
                    },
                },
                tlsConfig: {
                    caCerts: [{
                        displayName: "example ca cert name",
                        cert: std.base64encode({
                            input: "example cert",
                        }).then(invoke => invoke.result),
                    }],
                },
                serviceDirectoryConfig: {
                    service: "projects/-/locations/-/namespaces/-/services/-",
                },
                textSchema: `      {
            \\"openapi\\": \\"3.0.0\\",
            \\"info\\": {
              \\"title\\": \\"Time API\\",
              \\"version\\": \\"1.0.0\\",
              \\"description\\": \\"A simple API to get the current time.\\"
            },
            \\"servers\\": [
              {
                \\"url\\": \\"https://example-api-endpoint.com\\"
              }
            ],
            \\"paths\\": {
              \\"/time\\": {
                \\"get\\": {
                  \\"operationId\\": \\"getCurrentTime\\",
                  \\"summary\\": \\"Gets the current server time.\\",
                  \\"responses\\": {
                    \\"200\\": {
                      \\"description\\": \\"Successful response with the current time.\\",
                      \\"content\\": {
                        \\"application/json\\": {
                          \\"schema\\": {
                            \\"type\\": \\"object\\",
                            \\"properties\\": {
                              \\"currentTime\\": {
                                \\"type\\": \\"string\\",
                                \\"format\\": \\"date-time\\",
                                \\"description\\": \\"The current time in ISO 8601 format.\\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    `,
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    import pulumi_std as std
    
    agent = gcp.diagflow.CxAgent("agent",
        display_name="dialogflowcx-agent-open-api",
        location="global",
        default_language_code="en",
        time_zone="America/New_York",
        description="Example description.")
    tool = gcp.diagflow.CxTool("tool",
        parent=agent.id,
        display_name="open-api-tool",
        description="Example Description",
        open_api_spec={
            "authentication": {
                "oauth_config": {
                    "oauth_grant_type": "CLIENT_CREDENTIAL",
                    "client_id": "example client ID",
                    "client_secret": "example client secret",
                    "scopes": ["example scope"],
                    "secret_version_for_client_secret": "projects/-/secrets/-/versions/-",
                    "token_endpoint": "https://example.com/oauth/token",
                },
            },
            "tls_config": {
                "ca_certs": [{
                    "display_name": "example ca cert name",
                    "cert": std.base64encode(input="example cert").result,
                }],
            },
            "service_directory_config": {
                "service": "projects/-/locations/-/namespaces/-/services/-",
            },
            "text_schema": """      {
            \"openapi\": \"3.0.0\",
            \"info\": {
              \"title\": \"Time API\",
              \"version\": \"1.0.0\",
              \"description\": \"A simple API to get the current time.\"
            },
            \"servers\": [
              {
                \"url\": \"https://example-api-endpoint.com\"
              }
            ],
            \"paths\": {
              \"/time\": {
                \"get\": {
                  \"operationId\": \"getCurrentTime\",
                  \"summary\": \"Gets the current server time.\",
                  \"responses\": {
                    \"200\": {
                      \"description\": \"Successful response with the current time.\",
                      \"content\": {
                        \"application/json\": {
                          \"schema\": {
                            \"type\": \"object\",
                            \"properties\": {
                              \"currentTime\": {
                                \"type\": \"string\",
                                \"format\": \"date-time\",
                                \"description\": \"The current time in ISO 8601 format.\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    """,
        })
    open_api_tool_version = gcp.diagflow.CxToolVersion("open_api_tool_version",
        parent=tool.id,
        display_name="Example Open API Tool Version",
        tool={
            "display_name": "open-api-tool",
            "description": "Example Description",
            "open_api_spec": {
                "authentication": {
                    "oauth_config": {
                        "oauth_grant_type": "CLIENT_CREDENTIAL",
                        "client_id": "example client ID",
                        "client_secret": "example client secret",
                        "scopes": ["example scope"],
                        "secret_version_for_client_secret": "projects/-/secrets/-/versions/-",
                        "token_endpoint": "https://example.com/oauth/token",
                    },
                },
                "tls_config": {
                    "ca_certs": [{
                        "display_name": "example ca cert name",
                        "cert": std.base64encode(input="example cert").result,
                    }],
                },
                "service_directory_config": {
                    "service": "projects/-/locations/-/namespaces/-/services/-",
                },
                "text_schema": """      {
            \"openapi\": \"3.0.0\",
            \"info\": {
              \"title\": \"Time API\",
              \"version\": \"1.0.0\",
              \"description\": \"A simple API to get the current time.\"
            },
            \"servers\": [
              {
                \"url\": \"https://example-api-endpoint.com\"
              }
            ],
            \"paths\": {
              \"/time\": {
                \"get\": {
                  \"operationId\": \"getCurrentTime\",
                  \"summary\": \"Gets the current server time.\",
                  \"responses\": {
                    \"200\": {
                      \"description\": \"Successful response with the current time.\",
                      \"content\": {
                        \"application/json\": {
                          \"schema\": {
                            \"type\": \"object\",
                            \"properties\": {
                              \"currentTime\": {
                                \"type\": \"string\",
                                \"format\": \"date-time\",
                                \"description\": \"The current time in ISO 8601 format.\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    """,
            },
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/diagflow"
    	"github.com/pulumi/pulumi-std/sdk/go/std"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		agent, err := diagflow.NewCxAgent(ctx, "agent", &diagflow.CxAgentArgs{
    			DisplayName:         pulumi.String("dialogflowcx-agent-open-api"),
    			Location:            pulumi.String("global"),
    			DefaultLanguageCode: pulumi.String("en"),
    			TimeZone:            pulumi.String("America/New_York"),
    			Description:         pulumi.String("Example description."),
    		})
    		if err != nil {
    			return err
    		}
    		invokeBase64encode, err := std.Base64encode(ctx, &std.Base64encodeArgs{
    			Input: "example cert",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		tool, err := diagflow.NewCxTool(ctx, "tool", &diagflow.CxToolArgs{
    			Parent:      agent.ID(),
    			DisplayName: pulumi.String("open-api-tool"),
    			Description: pulumi.String("Example Description"),
    			OpenApiSpec: &diagflow.CxToolOpenApiSpecArgs{
    				Authentication: &diagflow.CxToolOpenApiSpecAuthenticationArgs{
    					OauthConfig: &diagflow.CxToolOpenApiSpecAuthenticationOauthConfigArgs{
    						OauthGrantType: pulumi.String("CLIENT_CREDENTIAL"),
    						ClientId:       pulumi.String("example client ID"),
    						ClientSecret:   pulumi.String("example client secret"),
    						Scopes: pulumi.StringArray{
    							pulumi.String("example scope"),
    						},
    						SecretVersionForClientSecret: pulumi.String("projects/-/secrets/-/versions/-"),
    						TokenEndpoint:                pulumi.String("https://example.com/oauth/token"),
    					},
    				},
    				TlsConfig: &diagflow.CxToolOpenApiSpecTlsConfigArgs{
    					CaCerts: diagflow.CxToolOpenApiSpecTlsConfigCaCertArray{
    						&diagflow.CxToolOpenApiSpecTlsConfigCaCertArgs{
    							DisplayName: pulumi.String("example ca cert name"),
    							Cert:        pulumi.String(invokeBase64encode.Result),
    						},
    					},
    				},
    				ServiceDirectoryConfig: &diagflow.CxToolOpenApiSpecServiceDirectoryConfigArgs{
    					Service: pulumi.String("projects/-/locations/-/namespaces/-/services/-"),
    				},
    				TextSchema: pulumi.String(`      {
            \"openapi\": \"3.0.0\",
            \"info\": {
              \"title\": \"Time API\",
              \"version\": \"1.0.0\",
              \"description\": \"A simple API to get the current time.\"
            },
            \"servers\": [
              {
                \"url\": \"https://example-api-endpoint.com\"
              }
            ],
            \"paths\": {
              \"/time\": {
                \"get\": {
                  \"operationId\": \"getCurrentTime\",
                  \"summary\": \"Gets the current server time.\",
                  \"responses\": {
                    \"200\": {
                      \"description\": \"Successful response with the current time.\",
                      \"content\": {
                        \"application/json\": {
                          \"schema\": {
                            \"type\": \"object\",
                            \"properties\": {
                              \"currentTime\": {
                                \"type\": \"string\",
                                \"format\": \"date-time\",
                                \"description\": \"The current time in ISO 8601 format.\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    `),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		invokeBase64encode1, err := std.Base64encode(ctx, &std.Base64encodeArgs{
    			Input: "example cert",
    		}, nil)
    		if err != nil {
    			return err
    		}
    		_, err = diagflow.NewCxToolVersion(ctx, "open_api_tool_version", &diagflow.CxToolVersionArgs{
    			Parent:      tool.ID(),
    			DisplayName: pulumi.String("Example Open API Tool Version"),
    			Tool: &diagflow.CxToolVersionToolArgs{
    				DisplayName: pulumi.String("open-api-tool"),
    				Description: pulumi.String("Example Description"),
    				OpenApiSpec: &diagflow.CxToolVersionToolOpenApiSpecArgs{
    					Authentication: &diagflow.CxToolVersionToolOpenApiSpecAuthenticationArgs{
    						OauthConfig: &diagflow.CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs{
    							OauthGrantType: pulumi.String("CLIENT_CREDENTIAL"),
    							ClientId:       pulumi.String("example client ID"),
    							ClientSecret:   pulumi.String("example client secret"),
    							Scopes: pulumi.StringArray{
    								pulumi.String("example scope"),
    							},
    							SecretVersionForClientSecret: pulumi.String("projects/-/secrets/-/versions/-"),
    							TokenEndpoint:                pulumi.String("https://example.com/oauth/token"),
    						},
    					},
    					TlsConfig: &diagflow.CxToolVersionToolOpenApiSpecTlsConfigArgs{
    						CaCerts: diagflow.CxToolVersionToolOpenApiSpecTlsConfigCaCertArray{
    							&diagflow.CxToolVersionToolOpenApiSpecTlsConfigCaCertArgs{
    								DisplayName: pulumi.String("example ca cert name"),
    								Cert:        pulumi.String(invokeBase64encode1.Result),
    							},
    						},
    					},
    					ServiceDirectoryConfig: &diagflow.CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs{
    						Service: pulumi.String("projects/-/locations/-/namespaces/-/services/-"),
    					},
    					TextSchema: pulumi.String(`      {
            \"openapi\": \"3.0.0\",
            \"info\": {
              \"title\": \"Time API\",
              \"version\": \"1.0.0\",
              \"description\": \"A simple API to get the current time.\"
            },
            \"servers\": [
              {
                \"url\": \"https://example-api-endpoint.com\"
              }
            ],
            \"paths\": {
              \"/time\": {
                \"get\": {
                  \"operationId\": \"getCurrentTime\",
                  \"summary\": \"Gets the current server time.\",
                  \"responses\": {
                    \"200\": {
                      \"description\": \"Successful response with the current time.\",
                      \"content\": {
                        \"application/json\": {
                          \"schema\": {
                            \"type\": \"object\",
                            \"properties\": {
                              \"currentTime\": {
                                \"type\": \"string\",
                                \"format\": \"date-time\",
                                \"description\": \"The current time in ISO 8601 format.\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    `),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    using Std = Pulumi.Std;
    
    return await Deployment.RunAsync(() => 
    {
        var agent = new Gcp.Diagflow.CxAgent("agent", new()
        {
            DisplayName = "dialogflowcx-agent-open-api",
            Location = "global",
            DefaultLanguageCode = "en",
            TimeZone = "America/New_York",
            Description = "Example description.",
        });
    
        var tool = new Gcp.Diagflow.CxTool("tool", new()
        {
            Parent = agent.Id,
            DisplayName = "open-api-tool",
            Description = "Example Description",
            OpenApiSpec = new Gcp.Diagflow.Inputs.CxToolOpenApiSpecArgs
            {
                Authentication = new Gcp.Diagflow.Inputs.CxToolOpenApiSpecAuthenticationArgs
                {
                    OauthConfig = new Gcp.Diagflow.Inputs.CxToolOpenApiSpecAuthenticationOauthConfigArgs
                    {
                        OauthGrantType = "CLIENT_CREDENTIAL",
                        ClientId = "example client ID",
                        ClientSecret = "example client secret",
                        Scopes = new[]
                        {
                            "example scope",
                        },
                        SecretVersionForClientSecret = "projects/-/secrets/-/versions/-",
                        TokenEndpoint = "https://example.com/oauth/token",
                    },
                },
                TlsConfig = new Gcp.Diagflow.Inputs.CxToolOpenApiSpecTlsConfigArgs
                {
                    CaCerts = new[]
                    {
                        new Gcp.Diagflow.Inputs.CxToolOpenApiSpecTlsConfigCaCertArgs
                        {
                            DisplayName = "example ca cert name",
                            Cert = Std.Base64encode.Invoke(new()
                            {
                                Input = "example cert",
                            }).Apply(invoke => invoke.Result),
                        },
                    },
                },
                ServiceDirectoryConfig = new Gcp.Diagflow.Inputs.CxToolOpenApiSpecServiceDirectoryConfigArgs
                {
                    Service = "projects/-/locations/-/namespaces/-/services/-",
                },
                TextSchema = @"      {
            \""openapi\"": \""3.0.0\"",
            \""info\"": {
              \""title\"": \""Time API\"",
              \""version\"": \""1.0.0\"",
              \""description\"": \""A simple API to get the current time.\""
            },
            \""servers\"": [
              {
                \""url\"": \""https://example-api-endpoint.com\""
              }
            ],
            \""paths\"": {
              \""/time\"": {
                \""get\"": {
                  \""operationId\"": \""getCurrentTime\"",
                  \""summary\"": \""Gets the current server time.\"",
                  \""responses\"": {
                    \""200\"": {
                      \""description\"": \""Successful response with the current time.\"",
                      \""content\"": {
                        \""application/json\"": {
                          \""schema\"": {
                            \""type\"": \""object\"",
                            \""properties\"": {
                              \""currentTime\"": {
                                \""type\"": \""string\"",
                                \""format\"": \""date-time\"",
                                \""description\"": \""The current time in ISO 8601 format.\""
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    ",
            },
        });
    
        var openApiToolVersion = new Gcp.Diagflow.CxToolVersion("open_api_tool_version", new()
        {
            Parent = tool.Id,
            DisplayName = "Example Open API Tool Version",
            Tool = new Gcp.Diagflow.Inputs.CxToolVersionToolArgs
            {
                DisplayName = "open-api-tool",
                Description = "Example Description",
                OpenApiSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecArgs
                {
                    Authentication = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecAuthenticationArgs
                    {
                        OauthConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs
                        {
                            OauthGrantType = "CLIENT_CREDENTIAL",
                            ClientId = "example client ID",
                            ClientSecret = "example client secret",
                            Scopes = new[]
                            {
                                "example scope",
                            },
                            SecretVersionForClientSecret = "projects/-/secrets/-/versions/-",
                            TokenEndpoint = "https://example.com/oauth/token",
                        },
                    },
                    TlsConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecTlsConfigArgs
                    {
                        CaCerts = new[]
                        {
                            new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecTlsConfigCaCertArgs
                            {
                                DisplayName = "example ca cert name",
                                Cert = Std.Base64encode.Invoke(new()
                                {
                                    Input = "example cert",
                                }).Apply(invoke => invoke.Result),
                            },
                        },
                    },
                    ServiceDirectoryConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs
                    {
                        Service = "projects/-/locations/-/namespaces/-/services/-",
                    },
                    TextSchema = @"      {
            \""openapi\"": \""3.0.0\"",
            \""info\"": {
              \""title\"": \""Time API\"",
              \""version\"": \""1.0.0\"",
              \""description\"": \""A simple API to get the current time.\""
            },
            \""servers\"": [
              {
                \""url\"": \""https://example-api-endpoint.com\""
              }
            ],
            \""paths\"": {
              \""/time\"": {
                \""get\"": {
                  \""operationId\"": \""getCurrentTime\"",
                  \""summary\"": \""Gets the current server time.\"",
                  \""responses\"": {
                    \""200\"": {
                      \""description\"": \""Successful response with the current time.\"",
                      \""content\"": {
                        \""application/json\"": {
                          \""schema\"": {
                            \""type\"": \""object\"",
                            \""properties\"": {
                              \""currentTime\"": {
                                \""type\"": \""string\"",
                                \""format\"": \""date-time\"",
                                \""description\"": \""The current time in ISO 8601 format.\""
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
    ",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.diagflow.CxAgent;
    import com.pulumi.gcp.diagflow.CxAgentArgs;
    import com.pulumi.gcp.diagflow.CxTool;
    import com.pulumi.gcp.diagflow.CxToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolOpenApiSpecArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolOpenApiSpecAuthenticationArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolOpenApiSpecAuthenticationOauthConfigArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolOpenApiSpecTlsConfigArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolOpenApiSpecServiceDirectoryConfigArgs;
    import com.pulumi.std.StdFunctions;
    import com.pulumi.std.inputs.Base64encodeArgs;
    import com.pulumi.gcp.diagflow.CxToolVersion;
    import com.pulumi.gcp.diagflow.CxToolVersionArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolOpenApiSpecArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolOpenApiSpecAuthenticationArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolOpenApiSpecTlsConfigArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var agent = new CxAgent("agent", CxAgentArgs.builder()
                .displayName("dialogflowcx-agent-open-api")
                .location("global")
                .defaultLanguageCode("en")
                .timeZone("America/New_York")
                .description("Example description.")
                .build());
    
            var tool = new CxTool("tool", CxToolArgs.builder()
                .parent(agent.id())
                .displayName("open-api-tool")
                .description("Example Description")
                .openApiSpec(CxToolOpenApiSpecArgs.builder()
                    .authentication(CxToolOpenApiSpecAuthenticationArgs.builder()
                        .oauthConfig(CxToolOpenApiSpecAuthenticationOauthConfigArgs.builder()
                            .oauthGrantType("CLIENT_CREDENTIAL")
                            .clientId("example client ID")
                            .clientSecret("example client secret")
                            .scopes("example scope")
                            .secretVersionForClientSecret("projects/-/secrets/-/versions/-")
                            .tokenEndpoint("https://example.com/oauth/token")
                            .build())
                        .build())
                    .tlsConfig(CxToolOpenApiSpecTlsConfigArgs.builder()
                        .caCerts(CxToolOpenApiSpecTlsConfigCaCertArgs.builder()
                            .displayName("example ca cert name")
                            .cert(StdFunctions.base64encode(Base64encodeArgs.builder()
                                .input("example cert")
                                .build()).result())
                            .build())
                        .build())
                    .serviceDirectoryConfig(CxToolOpenApiSpecServiceDirectoryConfigArgs.builder()
                        .service("projects/-/locations/-/namespaces/-/services/-")
                        .build())
                    .textSchema("""
          {
            \"openapi\": \"3.0.0\",
            \"info\": {
              \"title\": \"Time API\",
              \"version\": \"1.0.0\",
              \"description\": \"A simple API to get the current time.\"
            },
            \"servers\": [
              {
                \"url\": \"https://example-api-endpoint.com\"
              }
            ],
            \"paths\": {
              \"/time\": {
                \"get\": {
                  \"operationId\": \"getCurrentTime\",
                  \"summary\": \"Gets the current server time.\",
                  \"responses\": {
                    \"200\": {
                      \"description\": \"Successful response with the current time.\",
                      \"content\": {
                        \"application/json\": {
                          \"schema\": {
                            \"type\": \"object\",
                            \"properties\": {
                              \"currentTime\": {
                                \"type\": \"string\",
                                \"format\": \"date-time\",
                                \"description\": \"The current time in ISO 8601 format.\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
                    """)
                    .build())
                .build());
    
            var openApiToolVersion = new CxToolVersion("openApiToolVersion", CxToolVersionArgs.builder()
                .parent(tool.id())
                .displayName("Example Open API Tool Version")
                .tool(CxToolVersionToolArgs.builder()
                    .displayName("open-api-tool")
                    .description("Example Description")
                    .openApiSpec(CxToolVersionToolOpenApiSpecArgs.builder()
                        .authentication(CxToolVersionToolOpenApiSpecAuthenticationArgs.builder()
                            .oauthConfig(CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs.builder()
                                .oauthGrantType("CLIENT_CREDENTIAL")
                                .clientId("example client ID")
                                .clientSecret("example client secret")
                                .scopes("example scope")
                                .secretVersionForClientSecret("projects/-/secrets/-/versions/-")
                                .tokenEndpoint("https://example.com/oauth/token")
                                .build())
                            .build())
                        .tlsConfig(CxToolVersionToolOpenApiSpecTlsConfigArgs.builder()
                            .caCerts(CxToolVersionToolOpenApiSpecTlsConfigCaCertArgs.builder()
                                .displayName("example ca cert name")
                                .cert(StdFunctions.base64encode(Base64encodeArgs.builder()
                                    .input("example cert")
                                    .build()).result())
                                .build())
                            .build())
                        .serviceDirectoryConfig(CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs.builder()
                            .service("projects/-/locations/-/namespaces/-/services/-")
                            .build())
                        .textSchema("""
          {
            \"openapi\": \"3.0.0\",
            \"info\": {
              \"title\": \"Time API\",
              \"version\": \"1.0.0\",
              \"description\": \"A simple API to get the current time.\"
            },
            \"servers\": [
              {
                \"url\": \"https://example-api-endpoint.com\"
              }
            ],
            \"paths\": {
              \"/time\": {
                \"get\": {
                  \"operationId\": \"getCurrentTime\",
                  \"summary\": \"Gets the current server time.\",
                  \"responses\": {
                    \"200\": {
                      \"description\": \"Successful response with the current time.\",
                      \"content\": {
                        \"application/json\": {
                          \"schema\": {
                            \"type\": \"object\",
                            \"properties\": {
                              \"currentTime\": {
                                \"type\": \"string\",
                                \"format\": \"date-time\",
                                \"description\": \"The current time in ISO 8601 format.\"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
                        """)
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      agent:
        type: gcp:diagflow:CxAgent
        properties:
          displayName: dialogflowcx-agent-open-api
          location: global
          defaultLanguageCode: en
          timeZone: America/New_York
          description: Example description.
      tool:
        type: gcp:diagflow:CxTool
        properties:
          parent: ${agent.id}
          displayName: open-api-tool
          description: Example Description
          openApiSpec:
            authentication:
              oauthConfig:
                oauthGrantType: CLIENT_CREDENTIAL
                clientId: example client ID
                clientSecret: example client secret
                scopes:
                  - example scope
                secretVersionForClientSecret: projects/-/secrets/-/versions/-
                tokenEndpoint: https://example.com/oauth/token
            tlsConfig:
              caCerts:
                - displayName: example ca cert name
                  cert:
                    fn::invoke:
                      function: std:base64encode
                      arguments:
                        input: example cert
                      return: result
            serviceDirectoryConfig:
              service: projects/-/locations/-/namespaces/-/services/-
            textSchema: |2
                    {
                      \"openapi\": \"3.0.0\",
                      \"info\": {
                        \"title\": \"Time API\",
                        \"version\": \"1.0.0\",
                        \"description\": \"A simple API to get the current time.\"
                      },
                      \"servers\": [
                        {
                          \"url\": \"https://example-api-endpoint.com\"
                        }
                      ],
                      \"paths\": {
                        \"/time\": {
                          \"get\": {
                            \"operationId\": \"getCurrentTime\",
                            \"summary\": \"Gets the current server time.\",
                            \"responses\": {
                              \"200\": {
                                \"description\": \"Successful response with the current time.\",
                                \"content\": {
                                  \"application/json\": {
                                    \"schema\": {
                                      \"type\": \"object\",
                                      \"properties\": {
                                        \"currentTime\": {
                                          \"type\": \"string\",
                                          \"format\": \"date-time\",
                                          \"description\": \"The current time in ISO 8601 format.\"
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
      openApiToolVersion:
        type: gcp:diagflow:CxToolVersion
        name: open_api_tool_version
        properties:
          parent: ${tool.id}
          displayName: Example Open API Tool Version
          tool:
            displayName: open-api-tool
            description: Example Description
            openApiSpec:
              authentication:
                oauthConfig:
                  oauthGrantType: CLIENT_CREDENTIAL
                  clientId: example client ID
                  clientSecret: example client secret
                  scopes:
                    - example scope
                  secretVersionForClientSecret: projects/-/secrets/-/versions/-
                  tokenEndpoint: https://example.com/oauth/token
              tlsConfig:
                caCerts:
                  - displayName: example ca cert name
                    cert:
                      fn::invoke:
                        function: std:base64encode
                        arguments:
                          input: example cert
                        return: result
              serviceDirectoryConfig:
                service: projects/-/locations/-/namespaces/-/services/-
              textSchema: |2
                      {
                        \"openapi\": \"3.0.0\",
                        \"info\": {
                          \"title\": \"Time API\",
                          \"version\": \"1.0.0\",
                          \"description\": \"A simple API to get the current time.\"
                        },
                        \"servers\": [
                          {
                            \"url\": \"https://example-api-endpoint.com\"
                          }
                        ],
                        \"paths\": {
                          \"/time\": {
                            \"get\": {
                              \"operationId\": \"getCurrentTime\",
                              \"summary\": \"Gets the current server time.\",
                              \"responses\": {
                                \"200\": {
                                  \"description\": \"Successful response with the current time.\",
                                  \"content\": {
                                    \"application/json\": {
                                      \"schema\": {
                                        \"type\": \"object\",
                                        \"properties\": {
                                          \"currentTime\": {
                                            \"type\": \"string\",
                                            \"format\": \"date-time\",
                                            \"description\": \"The current time in ISO 8601 format.\"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
    

    Dialogflowcx Tool Version Data Store

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const myDatastore = new gcp.discoveryengine.DataStore("my_datastore", {
        location: "global",
        dataStoreId: "datastore-tool-version",
        displayName: "datastore for Tool test",
        industryVertical: "GENERIC",
        contentConfig: "NO_CONTENT",
        solutionTypes: ["SOLUTION_TYPE_CHAT"],
    });
    const agent = new gcp.diagflow.CxAgent("agent", {
        displayName: "dialogflowcx-agent-data-store",
        location: "global",
        defaultLanguageCode: "en",
        timeZone: "America/New_York",
        description: "Example description.",
        deleteChatEngineOnDestroy: true,
    }, {
        dependsOn: [myDatastore],
    });
    const project = gcp.organizations.getProject({});
    const tool = new gcp.diagflow.CxTool("tool", {
        parent: agent.id,
        displayName: "datastore-tool",
        description: "Example Description",
        dataStoreSpec: {
            dataStoreConnections: [{
                dataStoreType: "UNSTRUCTURED",
                dataStore: pulumi.all([project, myDatastore.dataStoreId]).apply(([project, dataStoreId]) => `projects/${project.number}/locations/global/collections/default_collection/dataStores/${dataStoreId}`),
                documentProcessingMode: "DOCUMENTS",
            }],
            fallbackPrompt: {},
        },
    }, {
        dependsOn: [
            myDatastore,
            agent,
        ],
    });
    const dataStoreToolVersion = new gcp.diagflow.CxToolVersion("data_store_tool_version", {
        parent: tool.id,
        displayName: "Example Data Store Tool Version",
        tool: {
            displayName: "datastore-tool",
            description: "Example Description",
            dataStoreSpec: {
                dataStoreConnections: [{
                    dataStoreType: "UNSTRUCTURED",
                    dataStore: pulumi.all([project, myDatastore.dataStoreId]).apply(([project, dataStoreId]) => `projects/${project.number}/locations/global/collections/default_collection/dataStores/${dataStoreId}`),
                    documentProcessingMode: "DOCUMENTS",
                }],
                fallbackPrompt: {},
            },
        },
    }, {
        dependsOn: [
            myDatastore,
            agent,
        ],
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    my_datastore = gcp.discoveryengine.DataStore("my_datastore",
        location="global",
        data_store_id="datastore-tool-version",
        display_name="datastore for Tool test",
        industry_vertical="GENERIC",
        content_config="NO_CONTENT",
        solution_types=["SOLUTION_TYPE_CHAT"])
    agent = gcp.diagflow.CxAgent("agent",
        display_name="dialogflowcx-agent-data-store",
        location="global",
        default_language_code="en",
        time_zone="America/New_York",
        description="Example description.",
        delete_chat_engine_on_destroy=True,
        opts = pulumi.ResourceOptions(depends_on=[my_datastore]))
    project = gcp.organizations.get_project()
    tool = gcp.diagflow.CxTool("tool",
        parent=agent.id,
        display_name="datastore-tool",
        description="Example Description",
        data_store_spec={
            "data_store_connections": [{
                "data_store_type": "UNSTRUCTURED",
                "data_store": my_datastore.data_store_id.apply(lambda data_store_id: f"projects/{project.number}/locations/global/collections/default_collection/dataStores/{data_store_id}"),
                "document_processing_mode": "DOCUMENTS",
            }],
            "fallback_prompt": {},
        },
        opts = pulumi.ResourceOptions(depends_on=[
                my_datastore,
                agent,
            ]))
    data_store_tool_version = gcp.diagflow.CxToolVersion("data_store_tool_version",
        parent=tool.id,
        display_name="Example Data Store Tool Version",
        tool={
            "display_name": "datastore-tool",
            "description": "Example Description",
            "data_store_spec": {
                "data_store_connections": [{
                    "data_store_type": "UNSTRUCTURED",
                    "data_store": my_datastore.data_store_id.apply(lambda data_store_id: f"projects/{project.number}/locations/global/collections/default_collection/dataStores/{data_store_id}"),
                    "document_processing_mode": "DOCUMENTS",
                }],
                "fallback_prompt": {},
            },
        },
        opts = pulumi.ResourceOptions(depends_on=[
                my_datastore,
                agent,
            ]))
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/diagflow"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/discoveryengine"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		myDatastore, err := discoveryengine.NewDataStore(ctx, "my_datastore", &discoveryengine.DataStoreArgs{
    			Location:         pulumi.String("global"),
    			DataStoreId:      pulumi.String("datastore-tool-version"),
    			DisplayName:      pulumi.String("datastore for Tool test"),
    			IndustryVertical: pulumi.String("GENERIC"),
    			ContentConfig:    pulumi.String("NO_CONTENT"),
    			SolutionTypes: pulumi.StringArray{
    				pulumi.String("SOLUTION_TYPE_CHAT"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		agent, err := diagflow.NewCxAgent(ctx, "agent", &diagflow.CxAgentArgs{
    			DisplayName:               pulumi.String("dialogflowcx-agent-data-store"),
    			Location:                  pulumi.String("global"),
    			DefaultLanguageCode:       pulumi.String("en"),
    			TimeZone:                  pulumi.String("America/New_York"),
    			Description:               pulumi.String("Example description."),
    			DeleteChatEngineOnDestroy: pulumi.Bool(true),
    		}, pulumi.DependsOn([]pulumi.Resource{
    			myDatastore,
    		}))
    		if err != nil {
    			return err
    		}
    		project, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
    		if err != nil {
    			return err
    		}
    		tool, err := diagflow.NewCxTool(ctx, "tool", &diagflow.CxToolArgs{
    			Parent:      agent.ID(),
    			DisplayName: pulumi.String("datastore-tool"),
    			Description: pulumi.String("Example Description"),
    			DataStoreSpec: &diagflow.CxToolDataStoreSpecArgs{
    				DataStoreConnections: diagflow.CxToolDataStoreSpecDataStoreConnectionArray{
    					&diagflow.CxToolDataStoreSpecDataStoreConnectionArgs{
    						DataStoreType: pulumi.String("UNSTRUCTURED"),
    						DataStore: myDatastore.DataStoreId.ApplyT(func(dataStoreId string) (string, error) {
    							return fmt.Sprintf("projects/%v/locations/global/collections/default_collection/dataStores/%v", project.Number, dataStoreId), nil
    						}).(pulumi.StringOutput),
    						DocumentProcessingMode: pulumi.String("DOCUMENTS"),
    					},
    				},
    				FallbackPrompt: &diagflow.CxToolDataStoreSpecFallbackPromptArgs{},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			myDatastore,
    			agent,
    		}))
    		if err != nil {
    			return err
    		}
    		_, err = diagflow.NewCxToolVersion(ctx, "data_store_tool_version", &diagflow.CxToolVersionArgs{
    			Parent:      tool.ID(),
    			DisplayName: pulumi.String("Example Data Store Tool Version"),
    			Tool: &diagflow.CxToolVersionToolArgs{
    				DisplayName: pulumi.String("datastore-tool"),
    				Description: pulumi.String("Example Description"),
    				DataStoreSpec: &diagflow.CxToolVersionToolDataStoreSpecArgs{
    					DataStoreConnections: diagflow.CxToolVersionToolDataStoreSpecDataStoreConnectionArray{
    						&diagflow.CxToolVersionToolDataStoreSpecDataStoreConnectionArgs{
    							DataStoreType: pulumi.String("UNSTRUCTURED"),
    							DataStore: myDatastore.DataStoreId.ApplyT(func(dataStoreId string) (string, error) {
    								return fmt.Sprintf("projects/%v/locations/global/collections/default_collection/dataStores/%v", project.Number, dataStoreId), nil
    							}).(pulumi.StringOutput),
    							DocumentProcessingMode: pulumi.String("DOCUMENTS"),
    						},
    					},
    					FallbackPrompt: &diagflow.CxToolVersionToolDataStoreSpecFallbackPromptArgs{},
    				},
    			},
    		}, pulumi.DependsOn([]pulumi.Resource{
    			myDatastore,
    			agent,
    		}))
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var myDatastore = new Gcp.DiscoveryEngine.DataStore("my_datastore", new()
        {
            Location = "global",
            DataStoreId = "datastore-tool-version",
            DisplayName = "datastore for Tool test",
            IndustryVertical = "GENERIC",
            ContentConfig = "NO_CONTENT",
            SolutionTypes = new[]
            {
                "SOLUTION_TYPE_CHAT",
            },
        });
    
        var agent = new Gcp.Diagflow.CxAgent("agent", new()
        {
            DisplayName = "dialogflowcx-agent-data-store",
            Location = "global",
            DefaultLanguageCode = "en",
            TimeZone = "America/New_York",
            Description = "Example description.",
            DeleteChatEngineOnDestroy = true,
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                myDatastore,
            },
        });
    
        var project = Gcp.Organizations.GetProject.Invoke();
    
        var tool = new Gcp.Diagflow.CxTool("tool", new()
        {
            Parent = agent.Id,
            DisplayName = "datastore-tool",
            Description = "Example Description",
            DataStoreSpec = new Gcp.Diagflow.Inputs.CxToolDataStoreSpecArgs
            {
                DataStoreConnections = new[]
                {
                    new Gcp.Diagflow.Inputs.CxToolDataStoreSpecDataStoreConnectionArgs
                    {
                        DataStoreType = "UNSTRUCTURED",
                        DataStore = Output.Tuple(project, myDatastore.DataStoreId).Apply(values =>
                        {
                            var project = values.Item1;
                            var dataStoreId = values.Item2;
                            return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/locations/global/collections/default_collection/dataStores/{dataStoreId}";
                        }),
                        DocumentProcessingMode = "DOCUMENTS",
                    },
                },
                FallbackPrompt = null,
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                myDatastore,
                agent,
            },
        });
    
        var dataStoreToolVersion = new Gcp.Diagflow.CxToolVersion("data_store_tool_version", new()
        {
            Parent = tool.Id,
            DisplayName = "Example Data Store Tool Version",
            Tool = new Gcp.Diagflow.Inputs.CxToolVersionToolArgs
            {
                DisplayName = "datastore-tool",
                Description = "Example Description",
                DataStoreSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolDataStoreSpecArgs
                {
                    DataStoreConnections = new[]
                    {
                        new Gcp.Diagflow.Inputs.CxToolVersionToolDataStoreSpecDataStoreConnectionArgs
                        {
                            DataStoreType = "UNSTRUCTURED",
                            DataStore = Output.Tuple(project, myDatastore.DataStoreId).Apply(values =>
                            {
                                var project = values.Item1;
                                var dataStoreId = values.Item2;
                                return $"projects/{project.Apply(getProjectResult => getProjectResult.Number)}/locations/global/collections/default_collection/dataStores/{dataStoreId}";
                            }),
                            DocumentProcessingMode = "DOCUMENTS",
                        },
                    },
                    FallbackPrompt = null,
                },
            },
        }, new CustomResourceOptions
        {
            DependsOn =
            {
                myDatastore,
                agent,
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.discoveryengine.DataStore;
    import com.pulumi.gcp.discoveryengine.DataStoreArgs;
    import com.pulumi.gcp.diagflow.CxAgent;
    import com.pulumi.gcp.diagflow.CxAgentArgs;
    import com.pulumi.gcp.organizations.OrganizationsFunctions;
    import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
    import com.pulumi.gcp.diagflow.CxTool;
    import com.pulumi.gcp.diagflow.CxToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolDataStoreSpecArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolDataStoreSpecFallbackPromptArgs;
    import com.pulumi.gcp.diagflow.CxToolVersion;
    import com.pulumi.gcp.diagflow.CxToolVersionArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolDataStoreSpecArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolDataStoreSpecFallbackPromptArgs;
    import com.pulumi.resources.CustomResourceOptions;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var myDatastore = new DataStore("myDatastore", DataStoreArgs.builder()
                .location("global")
                .dataStoreId("datastore-tool-version")
                .displayName("datastore for Tool test")
                .industryVertical("GENERIC")
                .contentConfig("NO_CONTENT")
                .solutionTypes("SOLUTION_TYPE_CHAT")
                .build());
    
            var agent = new CxAgent("agent", CxAgentArgs.builder()
                .displayName("dialogflowcx-agent-data-store")
                .location("global")
                .defaultLanguageCode("en")
                .timeZone("America/New_York")
                .description("Example description.")
                .deleteChatEngineOnDestroy(true)
                .build(), CustomResourceOptions.builder()
                    .dependsOn(myDatastore)
                    .build());
    
            final var project = OrganizationsFunctions.getProject(GetProjectArgs.builder()
                .build());
    
            var tool = new CxTool("tool", CxToolArgs.builder()
                .parent(agent.id())
                .displayName("datastore-tool")
                .description("Example Description")
                .dataStoreSpec(CxToolDataStoreSpecArgs.builder()
                    .dataStoreConnections(CxToolDataStoreSpecDataStoreConnectionArgs.builder()
                        .dataStoreType("UNSTRUCTURED")
                        .dataStore(myDatastore.dataStoreId().applyValue(_dataStoreId -> String.format("projects/%s/locations/global/collections/default_collection/dataStores/%s", project.number(),_dataStoreId)))
                        .documentProcessingMode("DOCUMENTS")
                        .build())
                    .fallbackPrompt(CxToolDataStoreSpecFallbackPromptArgs.builder()
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        myDatastore,
                        agent)
                    .build());
    
            var dataStoreToolVersion = new CxToolVersion("dataStoreToolVersion", CxToolVersionArgs.builder()
                .parent(tool.id())
                .displayName("Example Data Store Tool Version")
                .tool(CxToolVersionToolArgs.builder()
                    .displayName("datastore-tool")
                    .description("Example Description")
                    .dataStoreSpec(CxToolVersionToolDataStoreSpecArgs.builder()
                        .dataStoreConnections(CxToolVersionToolDataStoreSpecDataStoreConnectionArgs.builder()
                            .dataStoreType("UNSTRUCTURED")
                            .dataStore(myDatastore.dataStoreId().applyValue(_dataStoreId -> String.format("projects/%s/locations/global/collections/default_collection/dataStores/%s", project.number(),_dataStoreId)))
                            .documentProcessingMode("DOCUMENTS")
                            .build())
                        .fallbackPrompt(CxToolVersionToolDataStoreSpecFallbackPromptArgs.builder()
                            .build())
                        .build())
                    .build())
                .build(), CustomResourceOptions.builder()
                    .dependsOn(                
                        myDatastore,
                        agent)
                    .build());
    
        }
    }
    
    resources:
      agent:
        type: gcp:diagflow:CxAgent
        properties:
          displayName: dialogflowcx-agent-data-store
          location: global
          defaultLanguageCode: en
          timeZone: America/New_York
          description: Example description.
          deleteChatEngineOnDestroy: true
        options:
          dependsOn:
            - ${myDatastore}
      tool:
        type: gcp:diagflow:CxTool
        properties:
          parent: ${agent.id}
          displayName: datastore-tool
          description: Example Description
          dataStoreSpec:
            dataStoreConnections:
              - dataStoreType: UNSTRUCTURED
                dataStore: projects/${project.number}/locations/global/collections/default_collection/dataStores/${myDatastore.dataStoreId}
                documentProcessingMode: DOCUMENTS
            fallbackPrompt: {}
        options:
          dependsOn:
            - ${myDatastore}
            - ${agent}
      myDatastore:
        type: gcp:discoveryengine:DataStore
        name: my_datastore
        properties:
          location: global
          dataStoreId: datastore-tool-version
          displayName: datastore for Tool test
          industryVertical: GENERIC
          contentConfig: NO_CONTENT
          solutionTypes:
            - SOLUTION_TYPE_CHAT
      dataStoreToolVersion:
        type: gcp:diagflow:CxToolVersion
        name: data_store_tool_version
        properties:
          parent: ${tool.id}
          displayName: Example Data Store Tool Version
          tool:
            displayName: datastore-tool
            description: Example Description
            dataStoreSpec:
              dataStoreConnections:
                - dataStoreType: UNSTRUCTURED
                  dataStore: projects/${project.number}/locations/global/collections/default_collection/dataStores/${myDatastore.dataStoreId}
                  documentProcessingMode: DOCUMENTS
              fallbackPrompt: {}
        options:
          dependsOn:
            - ${myDatastore}
            - ${agent}
    variables:
      project:
        fn::invoke:
          function: gcp:organizations:getProject
          arguments: {}
    

    Dialogflowcx Tool Version Function

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const agent = new gcp.diagflow.CxAgent("agent", {
        displayName: "dialogflowcx-agent-fucntion",
        location: "global",
        defaultLanguageCode: "en",
        timeZone: "America/New_York",
        description: "Example description.",
    });
    const tool = new gcp.diagflow.CxTool("tool", {
        parent: agent.id,
        displayName: "function-tool",
        description: "Example Description",
        functionSpec: {
            inputSchema: `      {
            \\"type\\": \\"object\\",
            \\"properties\\": {
              \\"message_to_echo\\": {
                \\"type\\": \\"string\\",
                \\"description\\": \\"The message that should be echoed back.\\"
              }
            },
            \\"required\\": [
              \\"message_to_echo\\"
            ]
          }
    `,
            outputSchema: `      {
            \\"type\\": \\"object\\",
            \\"properties\\": {
              \\"echoed_message\\": {
                \\"type\\": \\"string\\",
                \\"description\\": \\"The message that is echoed back.\\"
              }
            }
          }
    `,
        },
    });
    const functionToolVersion = new gcp.diagflow.CxToolVersion("function_tool_version", {
        parent: tool.id,
        displayName: "Example Function Tool Version",
        tool: {
            displayName: "function-tool",
            description: "Example Description",
            functionSpec: {
                inputSchema: `        {
              \\"type\\": \\"object\\",
              \\"properties\\": {
                \\"message_to_echo\\": {
                  \\"type\\": \\"string\\",
                  \\"description\\": \\"The message that should be echoed back.\\"
                }
              },
              \\"required\\": [
                \\"message_to_echo\\"
              ]
            }
    `,
                outputSchema: `        {
              \\"type\\": \\"object\\",
              \\"properties\\": {
                \\"echoed_message\\": {
                  \\"type\\": \\"string\\",
                  \\"description\\": \\"The message that is echoed back.\\"
                }
              }
            }
    `,
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    agent = gcp.diagflow.CxAgent("agent",
        display_name="dialogflowcx-agent-fucntion",
        location="global",
        default_language_code="en",
        time_zone="America/New_York",
        description="Example description.")
    tool = gcp.diagflow.CxTool("tool",
        parent=agent.id,
        display_name="function-tool",
        description="Example Description",
        function_spec={
            "input_schema": """      {
            \"type\": \"object\",
            \"properties\": {
              \"message_to_echo\": {
                \"type\": \"string\",
                \"description\": \"The message that should be echoed back.\"
              }
            },
            \"required\": [
              \"message_to_echo\"
            ]
          }
    """,
            "output_schema": """      {
            \"type\": \"object\",
            \"properties\": {
              \"echoed_message\": {
                \"type\": \"string\",
                \"description\": \"The message that is echoed back.\"
              }
            }
          }
    """,
        })
    function_tool_version = gcp.diagflow.CxToolVersion("function_tool_version",
        parent=tool.id,
        display_name="Example Function Tool Version",
        tool={
            "display_name": "function-tool",
            "description": "Example Description",
            "function_spec": {
                "input_schema": """        {
              \"type\": \"object\",
              \"properties\": {
                \"message_to_echo\": {
                  \"type\": \"string\",
                  \"description\": \"The message that should be echoed back.\"
                }
              },
              \"required\": [
                \"message_to_echo\"
              ]
            }
    """,
                "output_schema": """        {
              \"type\": \"object\",
              \"properties\": {
                \"echoed_message\": {
                  \"type\": \"string\",
                  \"description\": \"The message that is echoed back.\"
                }
              }
            }
    """,
            },
        })
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/diagflow"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		agent, err := diagflow.NewCxAgent(ctx, "agent", &diagflow.CxAgentArgs{
    			DisplayName:         pulumi.String("dialogflowcx-agent-fucntion"),
    			Location:            pulumi.String("global"),
    			DefaultLanguageCode: pulumi.String("en"),
    			TimeZone:            pulumi.String("America/New_York"),
    			Description:         pulumi.String("Example description."),
    		})
    		if err != nil {
    			return err
    		}
    		tool, err := diagflow.NewCxTool(ctx, "tool", &diagflow.CxToolArgs{
    			Parent:      agent.ID(),
    			DisplayName: pulumi.String("function-tool"),
    			Description: pulumi.String("Example Description"),
    			FunctionSpec: &diagflow.CxToolFunctionSpecArgs{
    				InputSchema: pulumi.String(`      {
            \"type\": \"object\",
            \"properties\": {
              \"message_to_echo\": {
                \"type\": \"string\",
                \"description\": \"The message that should be echoed back.\"
              }
            },
            \"required\": [
              \"message_to_echo\"
            ]
          }
    `),
    				OutputSchema: pulumi.String(`      {
            \"type\": \"object\",
            \"properties\": {
              \"echoed_message\": {
                \"type\": \"string\",
                \"description\": \"The message that is echoed back.\"
              }
            }
          }
    `),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = diagflow.NewCxToolVersion(ctx, "function_tool_version", &diagflow.CxToolVersionArgs{
    			Parent:      tool.ID(),
    			DisplayName: pulumi.String("Example Function Tool Version"),
    			Tool: &diagflow.CxToolVersionToolArgs{
    				DisplayName: pulumi.String("function-tool"),
    				Description: pulumi.String("Example Description"),
    				FunctionSpec: &diagflow.CxToolVersionToolFunctionSpecArgs{
    					InputSchema: pulumi.String(`        {
              \"type\": \"object\",
              \"properties\": {
                \"message_to_echo\": {
                  \"type\": \"string\",
                  \"description\": \"The message that should be echoed back.\"
                }
              },
              \"required\": [
                \"message_to_echo\"
              ]
            }
    `),
    					OutputSchema: pulumi.String(`        {
              \"type\": \"object\",
              \"properties\": {
                \"echoed_message\": {
                  \"type\": \"string\",
                  \"description\": \"The message that is echoed back.\"
                }
              }
            }
    `),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var agent = new Gcp.Diagflow.CxAgent("agent", new()
        {
            DisplayName = "dialogflowcx-agent-fucntion",
            Location = "global",
            DefaultLanguageCode = "en",
            TimeZone = "America/New_York",
            Description = "Example description.",
        });
    
        var tool = new Gcp.Diagflow.CxTool("tool", new()
        {
            Parent = agent.Id,
            DisplayName = "function-tool",
            Description = "Example Description",
            FunctionSpec = new Gcp.Diagflow.Inputs.CxToolFunctionSpecArgs
            {
                InputSchema = @"      {
            \""type\"": \""object\"",
            \""properties\"": {
              \""message_to_echo\"": {
                \""type\"": \""string\"",
                \""description\"": \""The message that should be echoed back.\""
              }
            },
            \""required\"": [
              \""message_to_echo\""
            ]
          }
    ",
                OutputSchema = @"      {
            \""type\"": \""object\"",
            \""properties\"": {
              \""echoed_message\"": {
                \""type\"": \""string\"",
                \""description\"": \""The message that is echoed back.\""
              }
            }
          }
    ",
            },
        });
    
        var functionToolVersion = new Gcp.Diagflow.CxToolVersion("function_tool_version", new()
        {
            Parent = tool.Id,
            DisplayName = "Example Function Tool Version",
            Tool = new Gcp.Diagflow.Inputs.CxToolVersionToolArgs
            {
                DisplayName = "function-tool",
                Description = "Example Description",
                FunctionSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolFunctionSpecArgs
                {
                    InputSchema = @"        {
              \""type\"": \""object\"",
              \""properties\"": {
                \""message_to_echo\"": {
                  \""type\"": \""string\"",
                  \""description\"": \""The message that should be echoed back.\""
                }
              },
              \""required\"": [
                \""message_to_echo\""
              ]
            }
    ",
                    OutputSchema = @"        {
              \""type\"": \""object\"",
              \""properties\"": {
                \""echoed_message\"": {
                  \""type\"": \""string\"",
                  \""description\"": \""The message that is echoed back.\""
                }
              }
            }
    ",
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.diagflow.CxAgent;
    import com.pulumi.gcp.diagflow.CxAgentArgs;
    import com.pulumi.gcp.diagflow.CxTool;
    import com.pulumi.gcp.diagflow.CxToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolFunctionSpecArgs;
    import com.pulumi.gcp.diagflow.CxToolVersion;
    import com.pulumi.gcp.diagflow.CxToolVersionArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolFunctionSpecArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var agent = new CxAgent("agent", CxAgentArgs.builder()
                .displayName("dialogflowcx-agent-fucntion")
                .location("global")
                .defaultLanguageCode("en")
                .timeZone("America/New_York")
                .description("Example description.")
                .build());
    
            var tool = new CxTool("tool", CxToolArgs.builder()
                .parent(agent.id())
                .displayName("function-tool")
                .description("Example Description")
                .functionSpec(CxToolFunctionSpecArgs.builder()
                    .inputSchema("""
          {
            \"type\": \"object\",
            \"properties\": {
              \"message_to_echo\": {
                \"type\": \"string\",
                \"description\": \"The message that should be echoed back.\"
              }
            },
            \"required\": [
              \"message_to_echo\"
            ]
          }
                    """)
                    .outputSchema("""
          {
            \"type\": \"object\",
            \"properties\": {
              \"echoed_message\": {
                \"type\": \"string\",
                \"description\": \"The message that is echoed back.\"
              }
            }
          }
                    """)
                    .build())
                .build());
    
            var functionToolVersion = new CxToolVersion("functionToolVersion", CxToolVersionArgs.builder()
                .parent(tool.id())
                .displayName("Example Function Tool Version")
                .tool(CxToolVersionToolArgs.builder()
                    .displayName("function-tool")
                    .description("Example Description")
                    .functionSpec(CxToolVersionToolFunctionSpecArgs.builder()
                        .inputSchema("""
            {
              \"type\": \"object\",
              \"properties\": {
                \"message_to_echo\": {
                  \"type\": \"string\",
                  \"description\": \"The message that should be echoed back.\"
                }
              },
              \"required\": [
                \"message_to_echo\"
              ]
            }
                        """)
                        .outputSchema("""
            {
              \"type\": \"object\",
              \"properties\": {
                \"echoed_message\": {
                  \"type\": \"string\",
                  \"description\": \"The message that is echoed back.\"
                }
              }
            }
                        """)
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      agent:
        type: gcp:diagflow:CxAgent
        properties:
          displayName: dialogflowcx-agent-fucntion
          location: global
          defaultLanguageCode: en
          timeZone: America/New_York
          description: Example description.
      tool:
        type: gcp:diagflow:CxTool
        properties:
          parent: ${agent.id}
          displayName: function-tool
          description: Example Description
          functionSpec:
            inputSchema: |2
                    {
                      \"type\": \"object\",
                      \"properties\": {
                        \"message_to_echo\": {
                          \"type\": \"string\",
                          \"description\": \"The message that should be echoed back.\"
                        }
                      },
                      \"required\": [
                        \"message_to_echo\"
                      ]
                    }
            outputSchema: |2
                    {
                      \"type\": \"object\",
                      \"properties\": {
                        \"echoed_message\": {
                          \"type\": \"string\",
                          \"description\": \"The message that is echoed back.\"
                        }
                      }
                    }
      functionToolVersion:
        type: gcp:diagflow:CxToolVersion
        name: function_tool_version
        properties:
          parent: ${tool.id}
          displayName: Example Function Tool Version
          tool:
            displayName: function-tool
            description: Example Description
            functionSpec:
              inputSchema: |2
                        {
                          \"type\": \"object\",
                          \"properties\": {
                            \"message_to_echo\": {
                              \"type\": \"string\",
                              \"description\": \"The message that should be echoed back.\"
                            }
                          },
                          \"required\": [
                            \"message_to_echo\"
                          ]
                        }
              outputSchema: |2
                        {
                          \"type\": \"object\",
                          \"properties\": {
                            \"echoed_message\": {
                              \"type\": \"string\",
                              \"description\": \"The message that is echoed back.\"
                            }
                          }
                        }
    

    Dialogflowcx Tool Version Connector

    import * as pulumi from "@pulumi/pulumi";
    import * as gcp from "@pulumi/gcp";
    
    const agent = new gcp.diagflow.CxAgent("agent", {
        displayName: "dialogflowcx-agent-connector",
        location: "us-central1",
        defaultLanguageCode: "en",
        timeZone: "America/New_York",
        description: "Example description.",
        deleteChatEngineOnDestroy: true,
    });
    const bqDataset = new gcp.bigquery.Dataset("bq_dataset", {
        datasetId: "example_dataset",
        friendlyName: "test",
        description: "This is a test description",
        location: "us-central1",
        deleteContentsOnDestroy: true,
    });
    const testProject = gcp.organizations.getProject({});
    const integrationConnector = new gcp.integrationconnectors.Connection("integration_connector", {
        name: "example-connection",
        location: "us-central1",
        connectorVersion: pulumi.interpolate`projects/${agent.project}/locations/global/providers/gcp/connectors/bigquery/versions/1`,
        description: "tf created description",
        configVariables: [
            {
                key: "dataset_id",
                stringValue: bqDataset.datasetId,
            },
            {
                key: "project_id",
                stringValue: agent.project,
            },
            {
                key: "support_native_data_type",
                booleanValue: false,
            },
            {
                key: "proxy_enabled",
                booleanValue: false,
            },
        ],
        serviceAccount: testProject.then(testProject => `${testProject.number}-compute@developer.gserviceaccount.com`),
        authConfig: {
            authType: "AUTH_TYPE_UNSPECIFIED",
        },
    });
    const bqTable = new gcp.bigquery.Table("bq_table", {
        deletionProtection: false,
        datasetId: bqDataset.datasetId,
        tableId: "example_table",
    });
    const connectorSaDatasetPerms = new gcp.bigquery.DatasetIamMember("connector_sa_dataset_perms", {
        project: testProject.then(testProject => testProject.projectId),
        datasetId: bqDataset.datasetId,
        role: "roles/bigquery.dataEditor",
        member: testProject.then(testProject => `serviceAccount:${testProject.number}-compute@developer.gserviceaccount.com`),
    });
    const tool = new gcp.diagflow.CxTool("tool", {
        parent: agent.id,
        displayName: "connector-tool",
        description: "Example Description",
        connectorSpec: {
            name: pulumi.interpolate`projects/${agent.project}/locations/us-central1/connections/${integrationConnector.name}`,
            actions: [
                {
                    connectionActionId: "ExecuteCustomQuery",
                    inputFields: ["test1"],
                    outputFields: ["test1"],
                },
                {
                    entityOperation: {
                        entityId: bqTable.tableId,
                        operation: "LIST",
                    },
                },
            ],
        },
    });
    const connectorToolVersion = new gcp.diagflow.CxToolVersion("connector_tool_version", {
        parent: tool.id,
        displayName: "Example Connector Tool Version",
        tool: {
            displayName: "connector-tool",
            description: "Example Description",
            connectorSpec: {
                name: pulumi.interpolate`projects/${agent.project}/locations/us-central1/connections/${integrationConnector.name}`,
                actions: [
                    {
                        connectionActionId: "ExecuteCustomQuery",
                        inputFields: ["test1"],
                        outputFields: ["test1"],
                    },
                    {
                        entityOperation: {
                            entityId: bqTable.tableId,
                            operation: "LIST",
                        },
                    },
                ],
            },
        },
    });
    
    import pulumi
    import pulumi_gcp as gcp
    
    agent = gcp.diagflow.CxAgent("agent",
        display_name="dialogflowcx-agent-connector",
        location="us-central1",
        default_language_code="en",
        time_zone="America/New_York",
        description="Example description.",
        delete_chat_engine_on_destroy=True)
    bq_dataset = gcp.bigquery.Dataset("bq_dataset",
        dataset_id="example_dataset",
        friendly_name="test",
        description="This is a test description",
        location="us-central1",
        delete_contents_on_destroy=True)
    test_project = gcp.organizations.get_project()
    integration_connector = gcp.integrationconnectors.Connection("integration_connector",
        name="example-connection",
        location="us-central1",
        connector_version=agent.project.apply(lambda project: f"projects/{project}/locations/global/providers/gcp/connectors/bigquery/versions/1"),
        description="tf created description",
        config_variables=[
            {
                "key": "dataset_id",
                "string_value": bq_dataset.dataset_id,
            },
            {
                "key": "project_id",
                "string_value": agent.project,
            },
            {
                "key": "support_native_data_type",
                "boolean_value": False,
            },
            {
                "key": "proxy_enabled",
                "boolean_value": False,
            },
        ],
        service_account=f"{test_project.number}-compute@developer.gserviceaccount.com",
        auth_config={
            "auth_type": "AUTH_TYPE_UNSPECIFIED",
        })
    bq_table = gcp.bigquery.Table("bq_table",
        deletion_protection=False,
        dataset_id=bq_dataset.dataset_id,
        table_id="example_table")
    connector_sa_dataset_perms = gcp.bigquery.DatasetIamMember("connector_sa_dataset_perms",
        project=test_project.project_id,
        dataset_id=bq_dataset.dataset_id,
        role="roles/bigquery.dataEditor",
        member=f"serviceAccount:{test_project.number}-compute@developer.gserviceaccount.com")
    tool = gcp.diagflow.CxTool("tool",
        parent=agent.id,
        display_name="connector-tool",
        description="Example Description",
        connector_spec={
            "name": pulumi.Output.all(
                project=agent.project,
                name=integration_connector.name
    ).apply(lambda resolved_outputs: f"projects/{resolved_outputs['project']}/locations/us-central1/connections/{resolved_outputs['name']}")
    ,
            "actions": [
                {
                    "connection_action_id": "ExecuteCustomQuery",
                    "input_fields": ["test1"],
                    "output_fields": ["test1"],
                },
                {
                    "entity_operation": {
                        "entity_id": bq_table.table_id,
                        "operation": "LIST",
                    },
                },
            ],
        })
    connector_tool_version = gcp.diagflow.CxToolVersion("connector_tool_version",
        parent=tool.id,
        display_name="Example Connector Tool Version",
        tool={
            "display_name": "connector-tool",
            "description": "Example Description",
            "connector_spec": {
                "name": pulumi.Output.all(
                    project=agent.project,
                    name=integration_connector.name
    ).apply(lambda resolved_outputs: f"projects/{resolved_outputs['project']}/locations/us-central1/connections/{resolved_outputs['name']}")
    ,
                "actions": [
                    {
                        "connection_action_id": "ExecuteCustomQuery",
                        "input_fields": ["test1"],
                        "output_fields": ["test1"],
                    },
                    {
                        "entity_operation": {
                            "entity_id": bq_table.table_id,
                            "operation": "LIST",
                        },
                    },
                ],
            },
        })
    
    package main
    
    import (
    	"fmt"
    
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/bigquery"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/diagflow"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/integrationconnectors"
    	"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/organizations"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		agent, err := diagflow.NewCxAgent(ctx, "agent", &diagflow.CxAgentArgs{
    			DisplayName:               pulumi.String("dialogflowcx-agent-connector"),
    			Location:                  pulumi.String("us-central1"),
    			DefaultLanguageCode:       pulumi.String("en"),
    			TimeZone:                  pulumi.String("America/New_York"),
    			Description:               pulumi.String("Example description."),
    			DeleteChatEngineOnDestroy: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		bqDataset, err := bigquery.NewDataset(ctx, "bq_dataset", &bigquery.DatasetArgs{
    			DatasetId:               pulumi.String("example_dataset"),
    			FriendlyName:            pulumi.String("test"),
    			Description:             pulumi.String("This is a test description"),
    			Location:                pulumi.String("us-central1"),
    			DeleteContentsOnDestroy: pulumi.Bool(true),
    		})
    		if err != nil {
    			return err
    		}
    		testProject, err := organizations.LookupProject(ctx, &organizations.LookupProjectArgs{}, nil)
    		if err != nil {
    			return err
    		}
    		integrationConnector, err := integrationconnectors.NewConnection(ctx, "integration_connector", &integrationconnectors.ConnectionArgs{
    			Name:     pulumi.String("example-connection"),
    			Location: pulumi.String("us-central1"),
    			ConnectorVersion: agent.Project.ApplyT(func(project string) (string, error) {
    				return fmt.Sprintf("projects/%v/locations/global/providers/gcp/connectors/bigquery/versions/1", project), nil
    			}).(pulumi.StringOutput),
    			Description: pulumi.String("tf created description"),
    			ConfigVariables: integrationconnectors.ConnectionConfigVariableArray{
    				&integrationconnectors.ConnectionConfigVariableArgs{
    					Key:         pulumi.String("dataset_id"),
    					StringValue: bqDataset.DatasetId,
    				},
    				&integrationconnectors.ConnectionConfigVariableArgs{
    					Key:         pulumi.String("project_id"),
    					StringValue: agent.Project,
    				},
    				&integrationconnectors.ConnectionConfigVariableArgs{
    					Key:          pulumi.String("support_native_data_type"),
    					BooleanValue: pulumi.Bool(false),
    				},
    				&integrationconnectors.ConnectionConfigVariableArgs{
    					Key:          pulumi.String("proxy_enabled"),
    					BooleanValue: pulumi.Bool(false),
    				},
    			},
    			ServiceAccount: pulumi.Sprintf("%v-compute@developer.gserviceaccount.com", testProject.Number),
    			AuthConfig: &integrationconnectors.ConnectionAuthConfigArgs{
    				AuthType: pulumi.String("AUTH_TYPE_UNSPECIFIED"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		bqTable, err := bigquery.NewTable(ctx, "bq_table", &bigquery.TableArgs{
    			DeletionProtection: pulumi.Bool(false),
    			DatasetId:          bqDataset.DatasetId,
    			TableId:            pulumi.String("example_table"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = bigquery.NewDatasetIamMember(ctx, "connector_sa_dataset_perms", &bigquery.DatasetIamMemberArgs{
    			Project:   pulumi.String(testProject.ProjectId),
    			DatasetId: bqDataset.DatasetId,
    			Role:      pulumi.String("roles/bigquery.dataEditor"),
    			Member:    pulumi.Sprintf("serviceAccount:%v-compute@developer.gserviceaccount.com", testProject.Number),
    		})
    		if err != nil {
    			return err
    		}
    		tool, err := diagflow.NewCxTool(ctx, "tool", &diagflow.CxToolArgs{
    			Parent:      agent.ID(),
    			DisplayName: pulumi.String("connector-tool"),
    			Description: pulumi.String("Example Description"),
    			ConnectorSpec: &diagflow.CxToolConnectorSpecArgs{
    				Name: pulumi.All(agent.Project, integrationConnector.Name).ApplyT(func(_args []interface{}) (string, error) {
    					project := _args[0].(string)
    					name := _args[1].(string)
    					return fmt.Sprintf("projects/%v/locations/us-central1/connections/%v", project, name), nil
    				}).(pulumi.StringOutput),
    				Actions: diagflow.CxToolConnectorSpecActionArray{
    					&diagflow.CxToolConnectorSpecActionArgs{
    						ConnectionActionId: pulumi.String("ExecuteCustomQuery"),
    						InputFields: pulumi.StringArray{
    							pulumi.String("test1"),
    						},
    						OutputFields: pulumi.StringArray{
    							pulumi.String("test1"),
    						},
    					},
    					&diagflow.CxToolConnectorSpecActionArgs{
    						EntityOperation: &diagflow.CxToolConnectorSpecActionEntityOperationArgs{
    							EntityId:  bqTable.TableId,
    							Operation: pulumi.String("LIST"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = diagflow.NewCxToolVersion(ctx, "connector_tool_version", &diagflow.CxToolVersionArgs{
    			Parent:      tool.ID(),
    			DisplayName: pulumi.String("Example Connector Tool Version"),
    			Tool: &diagflow.CxToolVersionToolArgs{
    				DisplayName: pulumi.String("connector-tool"),
    				Description: pulumi.String("Example Description"),
    				ConnectorSpec: &diagflow.CxToolVersionToolConnectorSpecArgs{
    					Name: pulumi.All(agent.Project, integrationConnector.Name).ApplyT(func(_args []interface{}) (string, error) {
    						project := _args[0].(string)
    						name := _args[1].(string)
    						return fmt.Sprintf("projects/%v/locations/us-central1/connections/%v", project, name), nil
    					}).(pulumi.StringOutput),
    					Actions: diagflow.CxToolVersionToolConnectorSpecActionArray{
    						&diagflow.CxToolVersionToolConnectorSpecActionArgs{
    							ConnectionActionId: pulumi.String("ExecuteCustomQuery"),
    							InputFields: pulumi.StringArray{
    								pulumi.String("test1"),
    							},
    							OutputFields: pulumi.StringArray{
    								pulumi.String("test1"),
    							},
    						},
    						&diagflow.CxToolVersionToolConnectorSpecActionArgs{
    							EntityOperation: &diagflow.CxToolVersionToolConnectorSpecActionEntityOperationArgs{
    								EntityId:  bqTable.TableId,
    								Operation: pulumi.String("LIST"),
    							},
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Gcp = Pulumi.Gcp;
    
    return await Deployment.RunAsync(() => 
    {
        var agent = new Gcp.Diagflow.CxAgent("agent", new()
        {
            DisplayName = "dialogflowcx-agent-connector",
            Location = "us-central1",
            DefaultLanguageCode = "en",
            TimeZone = "America/New_York",
            Description = "Example description.",
            DeleteChatEngineOnDestroy = true,
        });
    
        var bqDataset = new Gcp.BigQuery.Dataset("bq_dataset", new()
        {
            DatasetId = "example_dataset",
            FriendlyName = "test",
            Description = "This is a test description",
            Location = "us-central1",
            DeleteContentsOnDestroy = true,
        });
    
        var testProject = Gcp.Organizations.GetProject.Invoke();
    
        var integrationConnector = new Gcp.IntegrationConnectors.Connection("integration_connector", new()
        {
            Name = "example-connection",
            Location = "us-central1",
            ConnectorVersion = agent.Project.Apply(project => $"projects/{project}/locations/global/providers/gcp/connectors/bigquery/versions/1"),
            Description = "tf created description",
            ConfigVariables = new[]
            {
                new Gcp.IntegrationConnectors.Inputs.ConnectionConfigVariableArgs
                {
                    Key = "dataset_id",
                    StringValue = bqDataset.DatasetId,
                },
                new Gcp.IntegrationConnectors.Inputs.ConnectionConfigVariableArgs
                {
                    Key = "project_id",
                    StringValue = agent.Project,
                },
                new Gcp.IntegrationConnectors.Inputs.ConnectionConfigVariableArgs
                {
                    Key = "support_native_data_type",
                    BooleanValue = false,
                },
                new Gcp.IntegrationConnectors.Inputs.ConnectionConfigVariableArgs
                {
                    Key = "proxy_enabled",
                    BooleanValue = false,
                },
            },
            ServiceAccount = $"{testProject.Apply(getProjectResult => getProjectResult.Number)}-compute@developer.gserviceaccount.com",
            AuthConfig = new Gcp.IntegrationConnectors.Inputs.ConnectionAuthConfigArgs
            {
                AuthType = "AUTH_TYPE_UNSPECIFIED",
            },
        });
    
        var bqTable = new Gcp.BigQuery.Table("bq_table", new()
        {
            DeletionProtection = false,
            DatasetId = bqDataset.DatasetId,
            TableId = "example_table",
        });
    
        var connectorSaDatasetPerms = new Gcp.BigQuery.DatasetIamMember("connector_sa_dataset_perms", new()
        {
            Project = testProject.Apply(getProjectResult => getProjectResult.ProjectId),
            DatasetId = bqDataset.DatasetId,
            Role = "roles/bigquery.dataEditor",
            Member = $"serviceAccount:{testProject.Apply(getProjectResult => getProjectResult.Number)}-compute@developer.gserviceaccount.com",
        });
    
        var tool = new Gcp.Diagflow.CxTool("tool", new()
        {
            Parent = agent.Id,
            DisplayName = "connector-tool",
            Description = "Example Description",
            ConnectorSpec = new Gcp.Diagflow.Inputs.CxToolConnectorSpecArgs
            {
                Name = Output.Tuple(agent.Project, integrationConnector.Name).Apply(values =>
                {
                    var project = values.Item1;
                    var name = values.Item2;
                    return $"projects/{project}/locations/us-central1/connections/{name}";
                }),
                Actions = new[]
                {
                    new Gcp.Diagflow.Inputs.CxToolConnectorSpecActionArgs
                    {
                        ConnectionActionId = "ExecuteCustomQuery",
                        InputFields = new[]
                        {
                            "test1",
                        },
                        OutputFields = new[]
                        {
                            "test1",
                        },
                    },
                    new Gcp.Diagflow.Inputs.CxToolConnectorSpecActionArgs
                    {
                        EntityOperation = new Gcp.Diagflow.Inputs.CxToolConnectorSpecActionEntityOperationArgs
                        {
                            EntityId = bqTable.TableId,
                            Operation = "LIST",
                        },
                    },
                },
            },
        });
    
        var connectorToolVersion = new Gcp.Diagflow.CxToolVersion("connector_tool_version", new()
        {
            Parent = tool.Id,
            DisplayName = "Example Connector Tool Version",
            Tool = new Gcp.Diagflow.Inputs.CxToolVersionToolArgs
            {
                DisplayName = "connector-tool",
                Description = "Example Description",
                ConnectorSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecArgs
                {
                    Name = Output.Tuple(agent.Project, integrationConnector.Name).Apply(values =>
                    {
                        var project = values.Item1;
                        var name = values.Item2;
                        return $"projects/{project}/locations/us-central1/connections/{name}";
                    }),
                    Actions = new[]
                    {
                        new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecActionArgs
                        {
                            ConnectionActionId = "ExecuteCustomQuery",
                            InputFields = new[]
                            {
                                "test1",
                            },
                            OutputFields = new[]
                            {
                                "test1",
                            },
                        },
                        new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecActionArgs
                        {
                            EntityOperation = new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecActionEntityOperationArgs
                            {
                                EntityId = bqTable.TableId,
                                Operation = "LIST",
                            },
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.gcp.diagflow.CxAgent;
    import com.pulumi.gcp.diagflow.CxAgentArgs;
    import com.pulumi.gcp.bigquery.Dataset;
    import com.pulumi.gcp.bigquery.DatasetArgs;
    import com.pulumi.gcp.organizations.OrganizationsFunctions;
    import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
    import com.pulumi.gcp.integrationconnectors.Connection;
    import com.pulumi.gcp.integrationconnectors.ConnectionArgs;
    import com.pulumi.gcp.integrationconnectors.inputs.ConnectionConfigVariableArgs;
    import com.pulumi.gcp.integrationconnectors.inputs.ConnectionAuthConfigArgs;
    import com.pulumi.gcp.bigquery.Table;
    import com.pulumi.gcp.bigquery.TableArgs;
    import com.pulumi.gcp.bigquery.DatasetIamMember;
    import com.pulumi.gcp.bigquery.DatasetIamMemberArgs;
    import com.pulumi.gcp.diagflow.CxTool;
    import com.pulumi.gcp.diagflow.CxToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolConnectorSpecArgs;
    import com.pulumi.gcp.diagflow.CxToolVersion;
    import com.pulumi.gcp.diagflow.CxToolVersionArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolArgs;
    import com.pulumi.gcp.diagflow.inputs.CxToolVersionToolConnectorSpecArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var agent = new CxAgent("agent", CxAgentArgs.builder()
                .displayName("dialogflowcx-agent-connector")
                .location("us-central1")
                .defaultLanguageCode("en")
                .timeZone("America/New_York")
                .description("Example description.")
                .deleteChatEngineOnDestroy(true)
                .build());
    
            var bqDataset = new Dataset("bqDataset", DatasetArgs.builder()
                .datasetId("example_dataset")
                .friendlyName("test")
                .description("This is a test description")
                .location("us-central1")
                .deleteContentsOnDestroy(true)
                .build());
    
            final var testProject = OrganizationsFunctions.getProject(GetProjectArgs.builder()
                .build());
    
            var integrationConnector = new Connection("integrationConnector", ConnectionArgs.builder()
                .name("example-connection")
                .location("us-central1")
                .connectorVersion(agent.project().applyValue(_project -> String.format("projects/%s/locations/global/providers/gcp/connectors/bigquery/versions/1", _project)))
                .description("tf created description")
                .configVariables(            
                    ConnectionConfigVariableArgs.builder()
                        .key("dataset_id")
                        .stringValue(bqDataset.datasetId())
                        .build(),
                    ConnectionConfigVariableArgs.builder()
                        .key("project_id")
                        .stringValue(agent.project())
                        .build(),
                    ConnectionConfigVariableArgs.builder()
                        .key("support_native_data_type")
                        .booleanValue(false)
                        .build(),
                    ConnectionConfigVariableArgs.builder()
                        .key("proxy_enabled")
                        .booleanValue(false)
                        .build())
                .serviceAccount(String.format("%s-compute@developer.gserviceaccount.com", testProject.number()))
                .authConfig(ConnectionAuthConfigArgs.builder()
                    .authType("AUTH_TYPE_UNSPECIFIED")
                    .build())
                .build());
    
            var bqTable = new Table("bqTable", TableArgs.builder()
                .deletionProtection(false)
                .datasetId(bqDataset.datasetId())
                .tableId("example_table")
                .build());
    
            var connectorSaDatasetPerms = new DatasetIamMember("connectorSaDatasetPerms", DatasetIamMemberArgs.builder()
                .project(testProject.projectId())
                .datasetId(bqDataset.datasetId())
                .role("roles/bigquery.dataEditor")
                .member(String.format("serviceAccount:%s-compute@developer.gserviceaccount.com", testProject.number()))
                .build());
    
            var tool = new CxTool("tool", CxToolArgs.builder()
                .parent(agent.id())
                .displayName("connector-tool")
                .description("Example Description")
                .connectorSpec(CxToolConnectorSpecArgs.builder()
                    .name(Output.tuple(agent.project(), integrationConnector.name()).applyValue(values -> {
                        var project = values.t1;
                        var name = values.t2;
                        return String.format("projects/%s/locations/us-central1/connections/%s", project,name);
                    }))
                    .actions(                
                        CxToolConnectorSpecActionArgs.builder()
                            .connectionActionId("ExecuteCustomQuery")
                            .inputFields("test1")
                            .outputFields("test1")
                            .build(),
                        CxToolConnectorSpecActionArgs.builder()
                            .entityOperation(CxToolConnectorSpecActionEntityOperationArgs.builder()
                                .entityId(bqTable.tableId())
                                .operation("LIST")
                                .build())
                            .build())
                    .build())
                .build());
    
            var connectorToolVersion = new CxToolVersion("connectorToolVersion", CxToolVersionArgs.builder()
                .parent(tool.id())
                .displayName("Example Connector Tool Version")
                .tool(CxToolVersionToolArgs.builder()
                    .displayName("connector-tool")
                    .description("Example Description")
                    .connectorSpec(CxToolVersionToolConnectorSpecArgs.builder()
                        .name(Output.tuple(agent.project(), integrationConnector.name()).applyValue(values -> {
                            var project = values.t1;
                            var name = values.t2;
                            return String.format("projects/%s/locations/us-central1/connections/%s", project,name);
                        }))
                        .actions(                    
                            CxToolVersionToolConnectorSpecActionArgs.builder()
                                .connectionActionId("ExecuteCustomQuery")
                                .inputFields("test1")
                                .outputFields("test1")
                                .build(),
                            CxToolVersionToolConnectorSpecActionArgs.builder()
                                .entityOperation(CxToolVersionToolConnectorSpecActionEntityOperationArgs.builder()
                                    .entityId(bqTable.tableId())
                                    .operation("LIST")
                                    .build())
                                .build())
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      agent:
        type: gcp:diagflow:CxAgent
        properties:
          displayName: dialogflowcx-agent-connector
          location: us-central1
          defaultLanguageCode: en
          timeZone: America/New_York
          description: Example description.
          deleteChatEngineOnDestroy: true
      integrationConnector:
        type: gcp:integrationconnectors:Connection
        name: integration_connector
        properties:
          name: example-connection
          location: us-central1
          connectorVersion: projects/${agent.project}/locations/global/providers/gcp/connectors/bigquery/versions/1
          description: tf created description
          configVariables:
            - key: dataset_id
              stringValue: ${bqDataset.datasetId}
            - key: project_id
              stringValue: ${agent.project}
            - key: support_native_data_type
              booleanValue: false
            - key: proxy_enabled
              booleanValue: false
          serviceAccount: ${testProject.number}-compute@developer.gserviceaccount.com
          authConfig:
            authType: AUTH_TYPE_UNSPECIFIED
      bqDataset:
        type: gcp:bigquery:Dataset
        name: bq_dataset
        properties:
          datasetId: example_dataset
          friendlyName: test
          description: This is a test description
          location: us-central1
          deleteContentsOnDestroy: true
      bqTable:
        type: gcp:bigquery:Table
        name: bq_table
        properties:
          deletionProtection: false
          datasetId: ${bqDataset.datasetId}
          tableId: example_table
      connectorSaDatasetPerms:
        type: gcp:bigquery:DatasetIamMember
        name: connector_sa_dataset_perms
        properties:
          project: ${testProject.projectId}
          datasetId: ${bqDataset.datasetId}
          role: roles/bigquery.dataEditor
          member: serviceAccount:${testProject.number}-compute@developer.gserviceaccount.com
      tool:
        type: gcp:diagflow:CxTool
        properties:
          parent: ${agent.id}
          displayName: connector-tool
          description: Example Description
          connectorSpec:
            name: projects/${agent.project}/locations/us-central1/connections/${integrationConnector.name}
            actions:
              - connectionActionId: ExecuteCustomQuery
                inputFields:
                  - test1
                outputFields:
                  - test1
              - entityOperation:
                  entityId: ${bqTable.tableId}
                  operation: LIST
      connectorToolVersion:
        type: gcp:diagflow:CxToolVersion
        name: connector_tool_version
        properties:
          parent: ${tool.id}
          displayName: Example Connector Tool Version
          tool:
            displayName: connector-tool
            description: Example Description
            connectorSpec:
              name: projects/${agent.project}/locations/us-central1/connections/${integrationConnector.name}
              actions:
                - connectionActionId: ExecuteCustomQuery
                  inputFields:
                    - test1
                  outputFields:
                    - test1
                - entityOperation:
                    entityId: ${bqTable.tableId}
                    operation: LIST
    variables:
      testProject:
        fn::invoke:
          function: gcp:organizations:getProject
          arguments: {}
    

    Create CxToolVersion Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new CxToolVersion(name: string, args: CxToolVersionArgs, opts?: CustomResourceOptions);
    @overload
    def CxToolVersion(resource_name: str,
                      args: CxToolVersionArgs,
                      opts: Optional[ResourceOptions] = None)
    
    @overload
    def CxToolVersion(resource_name: str,
                      opts: Optional[ResourceOptions] = None,
                      display_name: Optional[str] = None,
                      parent: Optional[str] = None,
                      tool: Optional[CxToolVersionToolArgs] = None)
    func NewCxToolVersion(ctx *Context, name string, args CxToolVersionArgs, opts ...ResourceOption) (*CxToolVersion, error)
    public CxToolVersion(string name, CxToolVersionArgs args, CustomResourceOptions? opts = null)
    public CxToolVersion(String name, CxToolVersionArgs args)
    public CxToolVersion(String name, CxToolVersionArgs args, CustomResourceOptions options)
    
    type: gcp:diagflow:CxToolVersion
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args CxToolVersionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args CxToolVersionArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args CxToolVersionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args CxToolVersionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args CxToolVersionArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var cxToolVersionResource = new Gcp.Diagflow.CxToolVersion("cxToolVersionResource", new()
    {
        DisplayName = "string",
        Parent = "string",
        Tool = new Gcp.Diagflow.Inputs.CxToolVersionToolArgs
        {
            Description = "string",
            DisplayName = "string",
            ConnectorSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecArgs
            {
                Actions = new[]
                {
                    new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecActionArgs
                    {
                        ConnectionActionId = "string",
                        EntityOperation = new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecActionEntityOperationArgs
                        {
                            EntityId = "string",
                            Operation = "string",
                        },
                        InputFields = new[]
                        {
                            "string",
                        },
                        OutputFields = new[]
                        {
                            "string",
                        },
                    },
                },
                Name = "string",
                EndUserAuthConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecEndUserAuthConfigArgs
                {
                    Oauth2AuthCodeConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfigArgs
                    {
                        OauthToken = "string",
                    },
                    Oauth2JwtBearerConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfigArgs
                    {
                        ClientKey = "string",
                        Issuer = "string",
                        Subject = "string",
                    },
                },
            },
            DataStoreSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolDataStoreSpecArgs
            {
                DataStoreConnections = new[]
                {
                    new Gcp.Diagflow.Inputs.CxToolVersionToolDataStoreSpecDataStoreConnectionArgs
                    {
                        DataStore = "string",
                        DataStoreType = "string",
                        DocumentProcessingMode = "string",
                    },
                },
                FallbackPrompt = null,
            },
            FunctionSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolFunctionSpecArgs
            {
                InputSchema = "string",
                OutputSchema = "string",
            },
            Name = "string",
            OpenApiSpec = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecArgs
            {
                TextSchema = "string",
                Authentication = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecAuthenticationArgs
                {
                    ApiKeyConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfigArgs
                    {
                        KeyName = "string",
                        RequestLocation = "string",
                        ApiKey = "string",
                        SecretVersionForApiKey = "string",
                    },
                    BearerTokenConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfigArgs
                    {
                        SecretVersionForToken = "string",
                        Token = "string",
                    },
                    OauthConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs
                    {
                        ClientId = "string",
                        OauthGrantType = "string",
                        TokenEndpoint = "string",
                        ClientSecret = "string",
                        Scopes = new[]
                        {
                            "string",
                        },
                        SecretVersionForClientSecret = "string",
                    },
                    ServiceAgentAuthConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfigArgs
                    {
                        ServiceAgentAuth = "string",
                    },
                },
                ServiceDirectoryConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs
                {
                    Service = "string",
                },
                TlsConfig = new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecTlsConfigArgs
                {
                    CaCerts = new[]
                    {
                        new Gcp.Diagflow.Inputs.CxToolVersionToolOpenApiSpecTlsConfigCaCertArgs
                        {
                            Cert = "string",
                            DisplayName = "string",
                        },
                    },
                },
            },
            ToolType = "string",
        },
    });
    
    example, err := diagflow.NewCxToolVersion(ctx, "cxToolVersionResource", &diagflow.CxToolVersionArgs{
    	DisplayName: pulumi.String("string"),
    	Parent:      pulumi.String("string"),
    	Tool: &diagflow.CxToolVersionToolArgs{
    		Description: pulumi.String("string"),
    		DisplayName: pulumi.String("string"),
    		ConnectorSpec: &diagflow.CxToolVersionToolConnectorSpecArgs{
    			Actions: diagflow.CxToolVersionToolConnectorSpecActionArray{
    				&diagflow.CxToolVersionToolConnectorSpecActionArgs{
    					ConnectionActionId: pulumi.String("string"),
    					EntityOperation: &diagflow.CxToolVersionToolConnectorSpecActionEntityOperationArgs{
    						EntityId:  pulumi.String("string"),
    						Operation: pulumi.String("string"),
    					},
    					InputFields: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					OutputFields: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    				},
    			},
    			Name: pulumi.String("string"),
    			EndUserAuthConfig: &diagflow.CxToolVersionToolConnectorSpecEndUserAuthConfigArgs{
    				Oauth2AuthCodeConfig: &diagflow.CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfigArgs{
    					OauthToken: pulumi.String("string"),
    				},
    				Oauth2JwtBearerConfig: &diagflow.CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfigArgs{
    					ClientKey: pulumi.String("string"),
    					Issuer:    pulumi.String("string"),
    					Subject:   pulumi.String("string"),
    				},
    			},
    		},
    		DataStoreSpec: &diagflow.CxToolVersionToolDataStoreSpecArgs{
    			DataStoreConnections: diagflow.CxToolVersionToolDataStoreSpecDataStoreConnectionArray{
    				&diagflow.CxToolVersionToolDataStoreSpecDataStoreConnectionArgs{
    					DataStore:              pulumi.String("string"),
    					DataStoreType:          pulumi.String("string"),
    					DocumentProcessingMode: pulumi.String("string"),
    				},
    			},
    			FallbackPrompt: &diagflow.CxToolVersionToolDataStoreSpecFallbackPromptArgs{},
    		},
    		FunctionSpec: &diagflow.CxToolVersionToolFunctionSpecArgs{
    			InputSchema:  pulumi.String("string"),
    			OutputSchema: pulumi.String("string"),
    		},
    		Name: pulumi.String("string"),
    		OpenApiSpec: &diagflow.CxToolVersionToolOpenApiSpecArgs{
    			TextSchema: pulumi.String("string"),
    			Authentication: &diagflow.CxToolVersionToolOpenApiSpecAuthenticationArgs{
    				ApiKeyConfig: &diagflow.CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfigArgs{
    					KeyName:                pulumi.String("string"),
    					RequestLocation:        pulumi.String("string"),
    					ApiKey:                 pulumi.String("string"),
    					SecretVersionForApiKey: pulumi.String("string"),
    				},
    				BearerTokenConfig: &diagflow.CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfigArgs{
    					SecretVersionForToken: pulumi.String("string"),
    					Token:                 pulumi.String("string"),
    				},
    				OauthConfig: &diagflow.CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs{
    					ClientId:       pulumi.String("string"),
    					OauthGrantType: pulumi.String("string"),
    					TokenEndpoint:  pulumi.String("string"),
    					ClientSecret:   pulumi.String("string"),
    					Scopes: pulumi.StringArray{
    						pulumi.String("string"),
    					},
    					SecretVersionForClientSecret: pulumi.String("string"),
    				},
    				ServiceAgentAuthConfig: &diagflow.CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfigArgs{
    					ServiceAgentAuth: pulumi.String("string"),
    				},
    			},
    			ServiceDirectoryConfig: &diagflow.CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs{
    				Service: pulumi.String("string"),
    			},
    			TlsConfig: &diagflow.CxToolVersionToolOpenApiSpecTlsConfigArgs{
    				CaCerts: diagflow.CxToolVersionToolOpenApiSpecTlsConfigCaCertArray{
    					&diagflow.CxToolVersionToolOpenApiSpecTlsConfigCaCertArgs{
    						Cert:        pulumi.String("string"),
    						DisplayName: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		ToolType: pulumi.String("string"),
    	},
    })
    
    var cxToolVersionResource = new CxToolVersion("cxToolVersionResource", CxToolVersionArgs.builder()
        .displayName("string")
        .parent("string")
        .tool(CxToolVersionToolArgs.builder()
            .description("string")
            .displayName("string")
            .connectorSpec(CxToolVersionToolConnectorSpecArgs.builder()
                .actions(CxToolVersionToolConnectorSpecActionArgs.builder()
                    .connectionActionId("string")
                    .entityOperation(CxToolVersionToolConnectorSpecActionEntityOperationArgs.builder()
                        .entityId("string")
                        .operation("string")
                        .build())
                    .inputFields("string")
                    .outputFields("string")
                    .build())
                .name("string")
                .endUserAuthConfig(CxToolVersionToolConnectorSpecEndUserAuthConfigArgs.builder()
                    .oauth2AuthCodeConfig(CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfigArgs.builder()
                        .oauthToken("string")
                        .build())
                    .oauth2JwtBearerConfig(CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfigArgs.builder()
                        .clientKey("string")
                        .issuer("string")
                        .subject("string")
                        .build())
                    .build())
                .build())
            .dataStoreSpec(CxToolVersionToolDataStoreSpecArgs.builder()
                .dataStoreConnections(CxToolVersionToolDataStoreSpecDataStoreConnectionArgs.builder()
                    .dataStore("string")
                    .dataStoreType("string")
                    .documentProcessingMode("string")
                    .build())
                .fallbackPrompt(CxToolVersionToolDataStoreSpecFallbackPromptArgs.builder()
                    .build())
                .build())
            .functionSpec(CxToolVersionToolFunctionSpecArgs.builder()
                .inputSchema("string")
                .outputSchema("string")
                .build())
            .name("string")
            .openApiSpec(CxToolVersionToolOpenApiSpecArgs.builder()
                .textSchema("string")
                .authentication(CxToolVersionToolOpenApiSpecAuthenticationArgs.builder()
                    .apiKeyConfig(CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfigArgs.builder()
                        .keyName("string")
                        .requestLocation("string")
                        .apiKey("string")
                        .secretVersionForApiKey("string")
                        .build())
                    .bearerTokenConfig(CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfigArgs.builder()
                        .secretVersionForToken("string")
                        .token("string")
                        .build())
                    .oauthConfig(CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs.builder()
                        .clientId("string")
                        .oauthGrantType("string")
                        .tokenEndpoint("string")
                        .clientSecret("string")
                        .scopes("string")
                        .secretVersionForClientSecret("string")
                        .build())
                    .serviceAgentAuthConfig(CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfigArgs.builder()
                        .serviceAgentAuth("string")
                        .build())
                    .build())
                .serviceDirectoryConfig(CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs.builder()
                    .service("string")
                    .build())
                .tlsConfig(CxToolVersionToolOpenApiSpecTlsConfigArgs.builder()
                    .caCerts(CxToolVersionToolOpenApiSpecTlsConfigCaCertArgs.builder()
                        .cert("string")
                        .displayName("string")
                        .build())
                    .build())
                .build())
            .toolType("string")
            .build())
        .build());
    
    cx_tool_version_resource = gcp.diagflow.CxToolVersion("cxToolVersionResource",
        display_name="string",
        parent="string",
        tool={
            "description": "string",
            "display_name": "string",
            "connector_spec": {
                "actions": [{
                    "connection_action_id": "string",
                    "entity_operation": {
                        "entity_id": "string",
                        "operation": "string",
                    },
                    "input_fields": ["string"],
                    "output_fields": ["string"],
                }],
                "name": "string",
                "end_user_auth_config": {
                    "oauth2_auth_code_config": {
                        "oauth_token": "string",
                    },
                    "oauth2_jwt_bearer_config": {
                        "client_key": "string",
                        "issuer": "string",
                        "subject": "string",
                    },
                },
            },
            "data_store_spec": {
                "data_store_connections": [{
                    "data_store": "string",
                    "data_store_type": "string",
                    "document_processing_mode": "string",
                }],
                "fallback_prompt": {},
            },
            "function_spec": {
                "input_schema": "string",
                "output_schema": "string",
            },
            "name": "string",
            "open_api_spec": {
                "text_schema": "string",
                "authentication": {
                    "api_key_config": {
                        "key_name": "string",
                        "request_location": "string",
                        "api_key": "string",
                        "secret_version_for_api_key": "string",
                    },
                    "bearer_token_config": {
                        "secret_version_for_token": "string",
                        "token": "string",
                    },
                    "oauth_config": {
                        "client_id": "string",
                        "oauth_grant_type": "string",
                        "token_endpoint": "string",
                        "client_secret": "string",
                        "scopes": ["string"],
                        "secret_version_for_client_secret": "string",
                    },
                    "service_agent_auth_config": {
                        "service_agent_auth": "string",
                    },
                },
                "service_directory_config": {
                    "service": "string",
                },
                "tls_config": {
                    "ca_certs": [{
                        "cert": "string",
                        "display_name": "string",
                    }],
                },
            },
            "tool_type": "string",
        })
    
    const cxToolVersionResource = new gcp.diagflow.CxToolVersion("cxToolVersionResource", {
        displayName: "string",
        parent: "string",
        tool: {
            description: "string",
            displayName: "string",
            connectorSpec: {
                actions: [{
                    connectionActionId: "string",
                    entityOperation: {
                        entityId: "string",
                        operation: "string",
                    },
                    inputFields: ["string"],
                    outputFields: ["string"],
                }],
                name: "string",
                endUserAuthConfig: {
                    oauth2AuthCodeConfig: {
                        oauthToken: "string",
                    },
                    oauth2JwtBearerConfig: {
                        clientKey: "string",
                        issuer: "string",
                        subject: "string",
                    },
                },
            },
            dataStoreSpec: {
                dataStoreConnections: [{
                    dataStore: "string",
                    dataStoreType: "string",
                    documentProcessingMode: "string",
                }],
                fallbackPrompt: {},
            },
            functionSpec: {
                inputSchema: "string",
                outputSchema: "string",
            },
            name: "string",
            openApiSpec: {
                textSchema: "string",
                authentication: {
                    apiKeyConfig: {
                        keyName: "string",
                        requestLocation: "string",
                        apiKey: "string",
                        secretVersionForApiKey: "string",
                    },
                    bearerTokenConfig: {
                        secretVersionForToken: "string",
                        token: "string",
                    },
                    oauthConfig: {
                        clientId: "string",
                        oauthGrantType: "string",
                        tokenEndpoint: "string",
                        clientSecret: "string",
                        scopes: ["string"],
                        secretVersionForClientSecret: "string",
                    },
                    serviceAgentAuthConfig: {
                        serviceAgentAuth: "string",
                    },
                },
                serviceDirectoryConfig: {
                    service: "string",
                },
                tlsConfig: {
                    caCerts: [{
                        cert: "string",
                        displayName: "string",
                    }],
                },
            },
            toolType: "string",
        },
    });
    
    type: gcp:diagflow:CxToolVersion
    properties:
        displayName: string
        parent: string
        tool:
            connectorSpec:
                actions:
                    - connectionActionId: string
                      entityOperation:
                        entityId: string
                        operation: string
                      inputFields:
                        - string
                      outputFields:
                        - string
                endUserAuthConfig:
                    oauth2AuthCodeConfig:
                        oauthToken: string
                    oauth2JwtBearerConfig:
                        clientKey: string
                        issuer: string
                        subject: string
                name: string
            dataStoreSpec:
                dataStoreConnections:
                    - dataStore: string
                      dataStoreType: string
                      documentProcessingMode: string
                fallbackPrompt: {}
            description: string
            displayName: string
            functionSpec:
                inputSchema: string
                outputSchema: string
            name: string
            openApiSpec:
                authentication:
                    apiKeyConfig:
                        apiKey: string
                        keyName: string
                        requestLocation: string
                        secretVersionForApiKey: string
                    bearerTokenConfig:
                        secretVersionForToken: string
                        token: string
                    oauthConfig:
                        clientId: string
                        clientSecret: string
                        oauthGrantType: string
                        scopes:
                            - string
                        secretVersionForClientSecret: string
                        tokenEndpoint: string
                    serviceAgentAuthConfig:
                        serviceAgentAuth: string
                serviceDirectoryConfig:
                    service: string
                textSchema: string
                tlsConfig:
                    caCerts:
                        - cert: string
                          displayName: string
            toolType: string
    

    CxToolVersion Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The CxToolVersion resource accepts the following input properties:

    DisplayName string
    The display name of the tool version.
    Parent string
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    Tool CxToolVersionTool
    Snapshot of the tool to be associated with this version. Structure is documented below.
    DisplayName string
    The display name of the tool version.
    Parent string
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    Tool CxToolVersionToolArgs
    Snapshot of the tool to be associated with this version. Structure is documented below.
    displayName String
    The display name of the tool version.
    parent String
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool CxToolVersionTool
    Snapshot of the tool to be associated with this version. Structure is documented below.
    displayName string
    The display name of the tool version.
    parent string
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool CxToolVersionTool
    Snapshot of the tool to be associated with this version. Structure is documented below.
    display_name str
    The display name of the tool version.
    parent str
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool CxToolVersionToolArgs
    Snapshot of the tool to be associated with this version. Structure is documented below.
    displayName String
    The display name of the tool version.
    parent String
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool Property Map
    Snapshot of the tool to be associated with this version. Structure is documented below.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the CxToolVersion resource produces the following output properties:

    CreateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    UpdateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    CreateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    Id string
    The provider-assigned unique ID for this managed resource.
    Name string
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    UpdateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    createTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    updateTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    createTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    id string
    The provider-assigned unique ID for this managed resource.
    name string
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    updateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    create_time str
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    id str
    The provider-assigned unique ID for this managed resource.
    name str
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    update_time str
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    createTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    id String
    The provider-assigned unique ID for this managed resource.
    name String
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    updateTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

    Look up Existing CxToolVersion Resource

    Get an existing CxToolVersion resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: CxToolVersionState, opts?: CustomResourceOptions): CxToolVersion
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            create_time: Optional[str] = None,
            display_name: Optional[str] = None,
            name: Optional[str] = None,
            parent: Optional[str] = None,
            tool: Optional[CxToolVersionToolArgs] = None,
            update_time: Optional[str] = None) -> CxToolVersion
    func GetCxToolVersion(ctx *Context, name string, id IDInput, state *CxToolVersionState, opts ...ResourceOption) (*CxToolVersion, error)
    public static CxToolVersion Get(string name, Input<string> id, CxToolVersionState? state, CustomResourceOptions? opts = null)
    public static CxToolVersion get(String name, Output<String> id, CxToolVersionState state, CustomResourceOptions options)
    resources:  _:    type: gcp:diagflow:CxToolVersion    get:      id: ${id}
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    CreateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    DisplayName string
    The display name of the tool version.
    Name string
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    Parent string
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    Tool CxToolVersionTool
    Snapshot of the tool to be associated with this version. Structure is documented below.
    UpdateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    CreateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    DisplayName string
    The display name of the tool version.
    Name string
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    Parent string
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    Tool CxToolVersionToolArgs
    Snapshot of the tool to be associated with this version. Structure is documented below.
    UpdateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    createTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    displayName String
    The display name of the tool version.
    name String
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    parent String
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool CxToolVersionTool
    Snapshot of the tool to be associated with this version. Structure is documented below.
    updateTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    createTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    displayName string
    The display name of the tool version.
    name string
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    parent string
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool CxToolVersionTool
    Snapshot of the tool to be associated with this version. Structure is documented below.
    updateTime string
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    create_time str
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    display_name str
    The display name of the tool version.
    name str
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    parent str
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool CxToolVersionToolArgs
    Snapshot of the tool to be associated with this version. Structure is documented below.
    update_time str
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    createTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".
    displayName String
    The display name of the tool version.
    name String
    The unique identifier of the tool version. Format: projects//locations//agents//tools//versions/.
    parent String
    The tool to create a Version for. Format: projects//locations//agents//tools/.
    tool Property Map
    Snapshot of the tool to be associated with this version. Structure is documented below.
    updateTime String
    Last time the tool version was created or modified. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

    Supporting Types

    CxToolVersionTool, CxToolVersionToolArgs

    Description string
    High level description of the Tool and its usage.
    DisplayName string
    The human-readable name of the tool, unique within the agent.
    ConnectorSpec CxToolVersionToolConnectorSpec
    Integration connectors tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, functionSpec, or connectorSpec may be set. Structure is documented below.
    DataStoreSpec CxToolVersionToolDataStoreSpec
    Data store search tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    FunctionSpec CxToolVersionToolFunctionSpec
    Client side executed function specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    Name string
    (Output) The unique identifier of the Tool. Format: projects//locations//agents//tools/.
    OpenApiSpec CxToolVersionToolOpenApiSpec
    OpenAPI specification of the Tool. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    ToolType string
    (Output) The tool type.
    Description string
    High level description of the Tool and its usage.
    DisplayName string
    The human-readable name of the tool, unique within the agent.
    ConnectorSpec CxToolVersionToolConnectorSpec
    Integration connectors tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, functionSpec, or connectorSpec may be set. Structure is documented below.
    DataStoreSpec CxToolVersionToolDataStoreSpec
    Data store search tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    FunctionSpec CxToolVersionToolFunctionSpec
    Client side executed function specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    Name string
    (Output) The unique identifier of the Tool. Format: projects//locations//agents//tools/.
    OpenApiSpec CxToolVersionToolOpenApiSpec
    OpenAPI specification of the Tool. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    ToolType string
    (Output) The tool type.
    description String
    High level description of the Tool and its usage.
    displayName String
    The human-readable name of the tool, unique within the agent.
    connectorSpec CxToolVersionToolConnectorSpec
    Integration connectors tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, functionSpec, or connectorSpec may be set. Structure is documented below.
    dataStoreSpec CxToolVersionToolDataStoreSpec
    Data store search tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    functionSpec CxToolVersionToolFunctionSpec
    Client side executed function specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    name String
    (Output) The unique identifier of the Tool. Format: projects//locations//agents//tools/.
    openApiSpec CxToolVersionToolOpenApiSpec
    OpenAPI specification of the Tool. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    toolType String
    (Output) The tool type.
    description string
    High level description of the Tool and its usage.
    displayName string
    The human-readable name of the tool, unique within the agent.
    connectorSpec CxToolVersionToolConnectorSpec
    Integration connectors tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, functionSpec, or connectorSpec may be set. Structure is documented below.
    dataStoreSpec CxToolVersionToolDataStoreSpec
    Data store search tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    functionSpec CxToolVersionToolFunctionSpec
    Client side executed function specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    name string
    (Output) The unique identifier of the Tool. Format: projects//locations//agents//tools/.
    openApiSpec CxToolVersionToolOpenApiSpec
    OpenAPI specification of the Tool. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    toolType string
    (Output) The tool type.
    description str
    High level description of the Tool and its usage.
    display_name str
    The human-readable name of the tool, unique within the agent.
    connector_spec CxToolVersionToolConnectorSpec
    Integration connectors tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, functionSpec, or connectorSpec may be set. Structure is documented below.
    data_store_spec CxToolVersionToolDataStoreSpec
    Data store search tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    function_spec CxToolVersionToolFunctionSpec
    Client side executed function specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    name str
    (Output) The unique identifier of the Tool. Format: projects//locations//agents//tools/.
    open_api_spec CxToolVersionToolOpenApiSpec
    OpenAPI specification of the Tool. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    tool_type str
    (Output) The tool type.
    description String
    High level description of the Tool and its usage.
    displayName String
    The human-readable name of the tool, unique within the agent.
    connectorSpec Property Map
    Integration connectors tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, functionSpec, or connectorSpec may be set. Structure is documented below.
    dataStoreSpec Property Map
    Data store search tool specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    functionSpec Property Map
    Client side executed function specification. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    name String
    (Output) The unique identifier of the Tool. Format: projects//locations//agents//tools/.
    openApiSpec Property Map
    OpenAPI specification of the Tool. This field is part of a union field specification: Only one of openApiSpec, dataStoreSpec, or functionSpec may be set. Structure is documented below.
    toolType String
    (Output) The tool type.

    CxToolVersionToolConnectorSpec, CxToolVersionToolConnectorSpecArgs

    Actions List<CxToolVersionToolConnectorSpecAction>
    Actions for the tool to use. Structure is documented below.
    Name string
    The full resource name of the referenced Integration Connectors Connection. Format: projects//locations//connections/*
    EndUserAuthConfig CxToolVersionToolConnectorSpecEndUserAuthConfig
    Integration Connectors end-user authentication configuration. If configured, the end-user authentication fields will be passed in the Integration Connectors API request and override the admin, default authentication configured for the Connection. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override properties: Structure is documented below.
    Actions []CxToolVersionToolConnectorSpecAction
    Actions for the tool to use. Structure is documented below.
    Name string
    The full resource name of the referenced Integration Connectors Connection. Format: projects//locations//connections/*
    EndUserAuthConfig CxToolVersionToolConnectorSpecEndUserAuthConfig
    Integration Connectors end-user authentication configuration. If configured, the end-user authentication fields will be passed in the Integration Connectors API request and override the admin, default authentication configured for the Connection. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override properties: Structure is documented below.
    actions List<CxToolVersionToolConnectorSpecAction>
    Actions for the tool to use. Structure is documented below.
    name String
    The full resource name of the referenced Integration Connectors Connection. Format: projects//locations//connections/*
    endUserAuthConfig CxToolVersionToolConnectorSpecEndUserAuthConfig
    Integration Connectors end-user authentication configuration. If configured, the end-user authentication fields will be passed in the Integration Connectors API request and override the admin, default authentication configured for the Connection. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override properties: Structure is documented below.
    actions CxToolVersionToolConnectorSpecAction[]
    Actions for the tool to use. Structure is documented below.
    name string
    The full resource name of the referenced Integration Connectors Connection. Format: projects//locations//connections/*
    endUserAuthConfig CxToolVersionToolConnectorSpecEndUserAuthConfig
    Integration Connectors end-user authentication configuration. If configured, the end-user authentication fields will be passed in the Integration Connectors API request and override the admin, default authentication configured for the Connection. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override properties: Structure is documented below.
    actions Sequence[CxToolVersionToolConnectorSpecAction]
    Actions for the tool to use. Structure is documented below.
    name str
    The full resource name of the referenced Integration Connectors Connection. Format: projects//locations//connections/*
    end_user_auth_config CxToolVersionToolConnectorSpecEndUserAuthConfig
    Integration Connectors end-user authentication configuration. If configured, the end-user authentication fields will be passed in the Integration Connectors API request and override the admin, default authentication configured for the Connection. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override properties: Structure is documented below.
    actions List<Property Map>
    Actions for the tool to use. Structure is documented below.
    name String
    The full resource name of the referenced Integration Connectors Connection. Format: projects//locations//connections/*
    endUserAuthConfig Property Map
    Integration Connectors end-user authentication configuration. If configured, the end-user authentication fields will be passed in the Integration Connectors API request and override the admin, default authentication configured for the Connection. Note: The Connection must have authentication override enabled in order to specify an EUC configuration here - otherwise, the ConnectorTool creation will fail. See: https://cloud.google.com/application-integration/docs/configure-connectors-task#configure-authentication-override properties: Structure is documented below.

    CxToolVersionToolConnectorSpecAction, CxToolVersionToolConnectorSpecActionArgs

    ConnectionActionId string
    ID of a Connection action for the tool to use. This field is part of a required union field action_spec.
    EntityOperation CxToolVersionToolConnectorSpecActionEntityOperation
    Entity operation configuration for the tool to use. This field is part of a required union field action_spec. Structure is documented below.
    InputFields List<string>
    Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
    OutputFields List<string>
    Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
    ConnectionActionId string
    ID of a Connection action for the tool to use. This field is part of a required union field action_spec.
    EntityOperation CxToolVersionToolConnectorSpecActionEntityOperation
    Entity operation configuration for the tool to use. This field is part of a required union field action_spec. Structure is documented below.
    InputFields []string
    Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
    OutputFields []string
    Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
    connectionActionId String
    ID of a Connection action for the tool to use. This field is part of a required union field action_spec.
    entityOperation CxToolVersionToolConnectorSpecActionEntityOperation
    Entity operation configuration for the tool to use. This field is part of a required union field action_spec. Structure is documented below.
    inputFields List<String>
    Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
    outputFields List<String>
    Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
    connectionActionId string
    ID of a Connection action for the tool to use. This field is part of a required union field action_spec.
    entityOperation CxToolVersionToolConnectorSpecActionEntityOperation
    Entity operation configuration for the tool to use. This field is part of a required union field action_spec. Structure is documented below.
    inputFields string[]
    Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
    outputFields string[]
    Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
    connection_action_id str
    ID of a Connection action for the tool to use. This field is part of a required union field action_spec.
    entity_operation CxToolVersionToolConnectorSpecActionEntityOperation
    Entity operation configuration for the tool to use. This field is part of a required union field action_spec. Structure is documented below.
    input_fields Sequence[str]
    Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
    output_fields Sequence[str]
    Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.
    connectionActionId String
    ID of a Connection action for the tool to use. This field is part of a required union field action_spec.
    entityOperation Property Map
    Entity operation configuration for the tool to use. This field is part of a required union field action_spec. Structure is documented below.
    inputFields List<String>
    Entity fields to use as inputs for the operation. If no fields are specified, all fields of the Entity will be used.
    outputFields List<String>
    Entity fields to return from the operation. If no fields are specified, all fields of the Entity will be returned.

    CxToolVersionToolConnectorSpecActionEntityOperation, CxToolVersionToolConnectorSpecActionEntityOperationArgs

    EntityId string
    ID of the entity.
    Operation string
    The operation to perform on the entity. Possible values are: LIST, CREATE, UPDATE, DELETE, GET.
    EntityId string
    ID of the entity.
    Operation string
    The operation to perform on the entity. Possible values are: LIST, CREATE, UPDATE, DELETE, GET.
    entityId String
    ID of the entity.
    operation String
    The operation to perform on the entity. Possible values are: LIST, CREATE, UPDATE, DELETE, GET.
    entityId string
    ID of the entity.
    operation string
    The operation to perform on the entity. Possible values are: LIST, CREATE, UPDATE, DELETE, GET.
    entity_id str
    ID of the entity.
    operation str
    The operation to perform on the entity. Possible values are: LIST, CREATE, UPDATE, DELETE, GET.
    entityId String
    ID of the entity.
    operation String
    The operation to perform on the entity. Possible values are: LIST, CREATE, UPDATE, DELETE, GET.

    CxToolVersionToolConnectorSpecEndUserAuthConfig, CxToolVersionToolConnectorSpecEndUserAuthConfigArgs

    Oauth2AuthCodeConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig
    Oauth 2.0 Authorization Code authentication. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.
    Oauth2JwtBearerConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig

    JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.

    <a name=<span pulumi-lang-nodejs=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-dotnet=""NestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-go=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-python=""nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config"" pulumi-lang-yaml=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-java=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"">"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config">The oauth2_auth_code_config block supports:

    Oauth2AuthCodeConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig
    Oauth 2.0 Authorization Code authentication. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.
    Oauth2JwtBearerConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig

    JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.

    <a name=<span pulumi-lang-nodejs=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-dotnet=""NestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-go=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-python=""nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config"" pulumi-lang-yaml=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-java=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"">"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config">The oauth2_auth_code_config block supports:

    oauth2AuthCodeConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig
    Oauth 2.0 Authorization Code authentication. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.
    oauth2JwtBearerConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig

    JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.

    <a name=<span pulumi-lang-nodejs=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-dotnet=""NestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-go=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-python=""nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config"" pulumi-lang-yaml=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-java=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"">"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config">The oauth2_auth_code_config block supports:

    oauth2AuthCodeConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig
    Oauth 2.0 Authorization Code authentication. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.
    oauth2JwtBearerConfig CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig

    JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.

    <a name=<span pulumi-lang-nodejs=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-dotnet=""NestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-go=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-python=""nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config"" pulumi-lang-yaml=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-java=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"">"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config">The oauth2_auth_code_config block supports:

    oauth2_auth_code_config CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig
    Oauth 2.0 Authorization Code authentication. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.
    oauth2_jwt_bearer_config CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig

    JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.

    <a name=<span pulumi-lang-nodejs=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-dotnet=""NestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-go=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-python=""nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config"" pulumi-lang-yaml=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-java=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"">"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config">The oauth2_auth_code_config block supports:

    oauth2AuthCodeConfig Property Map
    Oauth 2.0 Authorization Code authentication. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.
    oauth2JwtBearerConfig Property Map

    JWT Profile Oauth 2.0 Authorization Grant authentication.. This field is part of a union field end_user_auth_config. Only one of oauth2AuthCodeConfig or oauth2JwtBearerConfig may be set. Structure is documented below.

    <a name=<span pulumi-lang-nodejs=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-dotnet=""NestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-go=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-python=""nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config"" pulumi-lang-yaml=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"" pulumi-lang-java=""nestedToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig"">"nested_tool_connector_spec_end_user_auth_config_oauth2_auth_code_config">The oauth2_auth_code_config block supports:

    CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfig, CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2AuthCodeConfigArgs

    OauthToken string
    Oauth token value or parameter name to pass it through.
    OauthToken string
    Oauth token value or parameter name to pass it through.
    oauthToken String
    Oauth token value or parameter name to pass it through.
    oauthToken string
    Oauth token value or parameter name to pass it through.
    oauth_token str
    Oauth token value or parameter name to pass it through.
    oauthToken String
    Oauth token value or parameter name to pass it through.

    CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfig, CxToolVersionToolConnectorSpecEndUserAuthConfigOauth2JwtBearerConfigArgs

    ClientKey string
    Client key value or parameter name to pass it through.
    Issuer string
    Issuer value or parameter name to pass it through.
    Subject string
    Subject value or parameter name to pass it through.
    ClientKey string
    Client key value or parameter name to pass it through.
    Issuer string
    Issuer value or parameter name to pass it through.
    Subject string
    Subject value or parameter name to pass it through.
    clientKey String
    Client key value or parameter name to pass it through.
    issuer String
    Issuer value or parameter name to pass it through.
    subject String
    Subject value or parameter name to pass it through.
    clientKey string
    Client key value or parameter name to pass it through.
    issuer string
    Issuer value or parameter name to pass it through.
    subject string
    Subject value or parameter name to pass it through.
    client_key str
    Client key value or parameter name to pass it through.
    issuer str
    Issuer value or parameter name to pass it through.
    subject str
    Subject value or parameter name to pass it through.
    clientKey String
    Client key value or parameter name to pass it through.
    issuer String
    Issuer value or parameter name to pass it through.
    subject String
    Subject value or parameter name to pass it through.

    CxToolVersionToolDataStoreSpec, CxToolVersionToolDataStoreSpecArgs

    DataStoreConnections List<CxToolVersionToolDataStoreSpecDataStoreConnection>
    List of data stores to search. Structure is documented below.
    FallbackPrompt CxToolVersionToolDataStoreSpecFallbackPrompt
    Fallback prompt configurations to use.
    DataStoreConnections []CxToolVersionToolDataStoreSpecDataStoreConnection
    List of data stores to search. Structure is documented below.
    FallbackPrompt CxToolVersionToolDataStoreSpecFallbackPrompt
    Fallback prompt configurations to use.
    dataStoreConnections List<CxToolVersionToolDataStoreSpecDataStoreConnection>
    List of data stores to search. Structure is documented below.
    fallbackPrompt CxToolVersionToolDataStoreSpecFallbackPrompt
    Fallback prompt configurations to use.
    dataStoreConnections CxToolVersionToolDataStoreSpecDataStoreConnection[]
    List of data stores to search. Structure is documented below.
    fallbackPrompt CxToolVersionToolDataStoreSpecFallbackPrompt
    Fallback prompt configurations to use.
    data_store_connections Sequence[CxToolVersionToolDataStoreSpecDataStoreConnection]
    List of data stores to search. Structure is documented below.
    fallback_prompt CxToolVersionToolDataStoreSpecFallbackPrompt
    Fallback prompt configurations to use.
    dataStoreConnections List<Property Map>
    List of data stores to search. Structure is documented below.
    fallbackPrompt Property Map
    Fallback prompt configurations to use.

    CxToolVersionToolDataStoreSpecDataStoreConnection, CxToolVersionToolDataStoreSpecDataStoreConnectionArgs

    DataStore string
    The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}
    DataStoreType string
    The type of the connected data store. See DataStoreType for valid values.
    DocumentProcessingMode string
    The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode. See DocumentProcessingMode for valid values.
    DataStore string
    The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}
    DataStoreType string
    The type of the connected data store. See DataStoreType for valid values.
    DocumentProcessingMode string
    The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode. See DocumentProcessingMode for valid values.
    dataStore String
    The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}
    dataStoreType String
    The type of the connected data store. See DataStoreType for valid values.
    documentProcessingMode String
    The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode. See DocumentProcessingMode for valid values.
    dataStore string
    The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}
    dataStoreType string
    The type of the connected data store. See DataStoreType for valid values.
    documentProcessingMode string
    The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode. See DocumentProcessingMode for valid values.
    data_store str
    The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}
    data_store_type str
    The type of the connected data store. See DataStoreType for valid values.
    document_processing_mode str
    The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode. See DocumentProcessingMode for valid values.
    dataStore String
    The full name of the referenced data store. Formats: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore} projects/{project}/locations/{location}/dataStores/{dataStore}
    dataStoreType String
    The type of the connected data store. See DataStoreType for valid values.
    documentProcessingMode String
    The document processing mode for the data store connection. Should only be set for PUBLIC_WEB and UNSTRUCTURED data stores. If not set it is considered as DOCUMENTS, as this is the legacy mode. See DocumentProcessingMode for valid values.

    CxToolVersionToolFunctionSpec, CxToolVersionToolFunctionSpecArgs

    InputSchema string
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function's parameters as properties of the object
    OutputSchema string
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function's parameters as properties of the object
    InputSchema string
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function's parameters as properties of the object
    OutputSchema string
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function's parameters as properties of the object
    inputSchema String
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function's parameters as properties of the object
    outputSchema String
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function's parameters as properties of the object
    inputSchema string
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function's parameters as properties of the object
    outputSchema string
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function's parameters as properties of the object
    input_schema str
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function's parameters as properties of the object
    output_schema str
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function's parameters as properties of the object
    inputSchema String
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the input of the function. This input is a JSON object that contains the function's parameters as properties of the object
    outputSchema String
    Optional. The JSON schema is encapsulated in a google.protobuf.Struct to describe the output of the function. This output is a JSON object that contains the function's parameters as properties of the object

    CxToolVersionToolOpenApiSpec, CxToolVersionToolOpenApiSpecArgs

    TextSchema string
    The OpenAPI schema specified as a text. This field is part of a union field schema: only one of textSchema may be set.
    Authentication CxToolVersionToolOpenApiSpecAuthentication
    Optional. Authentication information required by the API. Structure is documented below.
    ServiceDirectoryConfig CxToolVersionToolOpenApiSpecServiceDirectoryConfig
    Optional. Service Directory configuration. Structure is documented below.
    TlsConfig CxToolVersionToolOpenApiSpecTlsConfig
    Optional. TLS configuration for the HTTPS verification. Structure is documented below.
    TextSchema string
    The OpenAPI schema specified as a text. This field is part of a union field schema: only one of textSchema may be set.
    Authentication CxToolVersionToolOpenApiSpecAuthentication
    Optional. Authentication information required by the API. Structure is documented below.
    ServiceDirectoryConfig CxToolVersionToolOpenApiSpecServiceDirectoryConfig
    Optional. Service Directory configuration. Structure is documented below.
    TlsConfig CxToolVersionToolOpenApiSpecTlsConfig
    Optional. TLS configuration for the HTTPS verification. Structure is documented below.
    textSchema String
    The OpenAPI schema specified as a text. This field is part of a union field schema: only one of textSchema may be set.
    authentication CxToolVersionToolOpenApiSpecAuthentication
    Optional. Authentication information required by the API. Structure is documented below.
    serviceDirectoryConfig CxToolVersionToolOpenApiSpecServiceDirectoryConfig
    Optional. Service Directory configuration. Structure is documented below.
    tlsConfig CxToolVersionToolOpenApiSpecTlsConfig
    Optional. TLS configuration for the HTTPS verification. Structure is documented below.
    textSchema string
    The OpenAPI schema specified as a text. This field is part of a union field schema: only one of textSchema may be set.
    authentication CxToolVersionToolOpenApiSpecAuthentication
    Optional. Authentication information required by the API. Structure is documented below.
    serviceDirectoryConfig CxToolVersionToolOpenApiSpecServiceDirectoryConfig
    Optional. Service Directory configuration. Structure is documented below.
    tlsConfig CxToolVersionToolOpenApiSpecTlsConfig
    Optional. TLS configuration for the HTTPS verification. Structure is documented below.
    text_schema str
    The OpenAPI schema specified as a text. This field is part of a union field schema: only one of textSchema may be set.
    authentication CxToolVersionToolOpenApiSpecAuthentication
    Optional. Authentication information required by the API. Structure is documented below.
    service_directory_config CxToolVersionToolOpenApiSpecServiceDirectoryConfig
    Optional. Service Directory configuration. Structure is documented below.
    tls_config CxToolVersionToolOpenApiSpecTlsConfig
    Optional. TLS configuration for the HTTPS verification. Structure is documented below.
    textSchema String
    The OpenAPI schema specified as a text. This field is part of a union field schema: only one of textSchema may be set.
    authentication Property Map
    Optional. Authentication information required by the API. Structure is documented below.
    serviceDirectoryConfig Property Map
    Optional. Service Directory configuration. Structure is documented below.
    tlsConfig Property Map
    Optional. TLS configuration for the HTTPS verification. Structure is documented below.

    CxToolVersionToolOpenApiSpecAuthentication, CxToolVersionToolOpenApiSpecAuthenticationArgs

    ApiKeyConfig CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig
    Config for API key auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    BearerTokenConfig CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig
    Config for bearer token auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    OauthConfig CxToolVersionToolOpenApiSpecAuthenticationOauthConfig
    Config for OAuth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    ServiceAgentAuthConfig CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig
    Config for Diglogflow service agent auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    ApiKeyConfig CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig
    Config for API key auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    BearerTokenConfig CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig
    Config for bearer token auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    OauthConfig CxToolVersionToolOpenApiSpecAuthenticationOauthConfig
    Config for OAuth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    ServiceAgentAuthConfig CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig
    Config for Diglogflow service agent auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    apiKeyConfig CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig
    Config for API key auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    bearerTokenConfig CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig
    Config for bearer token auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    oauthConfig CxToolVersionToolOpenApiSpecAuthenticationOauthConfig
    Config for OAuth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    serviceAgentAuthConfig CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig
    Config for Diglogflow service agent auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    apiKeyConfig CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig
    Config for API key auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    bearerTokenConfig CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig
    Config for bearer token auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    oauthConfig CxToolVersionToolOpenApiSpecAuthenticationOauthConfig
    Config for OAuth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    serviceAgentAuthConfig CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig
    Config for Diglogflow service agent auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    api_key_config CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig
    Config for API key auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    bearer_token_config CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig
    Config for bearer token auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    oauth_config CxToolVersionToolOpenApiSpecAuthenticationOauthConfig
    Config for OAuth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    service_agent_auth_config CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig
    Config for Diglogflow service agent auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    apiKeyConfig Property Map
    Config for API key auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    bearerTokenConfig Property Map
    Config for bearer token auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    oauthConfig Property Map
    Config for OAuth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.
    serviceAgentAuthConfig Property Map
    Config for Diglogflow service agent auth. This field is part of a union field auth_config: Only one of apiKeyConfig, oauthConfig, serviceAgentAuthConfig, or bearerTokenConfig may be set. Structure is documented below.

    CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfig, CxToolVersionToolOpenApiSpecAuthenticationApiKeyConfigArgs

    KeyName string
    The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    RequestLocation string
    Key location in the request. See RequestLocation for valid values.
    ApiKey string
    Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    SecretVersionForApiKey string
    Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the apiKey field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    KeyName string
    The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    RequestLocation string
    Key location in the request. See RequestLocation for valid values.
    ApiKey string
    Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    SecretVersionForApiKey string
    Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the apiKey field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    keyName String
    The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation String
    Key location in the request. See RequestLocation for valid values.
    apiKey String
    Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    secretVersionForApiKey String
    Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the apiKey field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    keyName string
    The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation string
    Key location in the request. See RequestLocation for valid values.
    apiKey string
    Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    secretVersionForApiKey string
    Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the apiKey field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    key_name str
    The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    request_location str
    Key location in the request. See RequestLocation for valid values.
    api_key str
    Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    secret_version_for_api_key str
    Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the apiKey field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    keyName String
    The parameter name or the header name of the API key. E.g., If the API request is "https://example.com/act?X-Api-Key=", "X-Api-Key" would be the parameter name.
    requestLocation String
    Key location in the request. See RequestLocation for valid values.
    apiKey String
    Optional. The API key. If the `secretVersionForApiKey`` field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    secretVersionForApiKey String
    Optional. The name of the SecretManager secret version resource storing the API key. If this field is set, the apiKey field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}

    CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfig, CxToolVersionToolOpenApiSpecAuthenticationBearerTokenConfigArgs

    SecretVersionForToken string
    Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the token field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    Token string
    Optional. The text token appended to the text Bearer to the request Authorization header. Session parameters reference can be used to pass the token dynamically, e.g. $session.params.parameter-id. Note: This property is sensitive and will not be displayed in the plan.
    SecretVersionForToken string
    Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the token field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    Token string
    Optional. The text token appended to the text Bearer to the request Authorization header. Session parameters reference can be used to pass the token dynamically, e.g. $session.params.parameter-id. Note: This property is sensitive and will not be displayed in the plan.
    secretVersionForToken String
    Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the token field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    token String
    Optional. The text token appended to the text Bearer to the request Authorization header. Session parameters reference can be used to pass the token dynamically, e.g. $session.params.parameter-id. Note: This property is sensitive and will not be displayed in the plan.
    secretVersionForToken string
    Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the token field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    token string
    Optional. The text token appended to the text Bearer to the request Authorization header. Session parameters reference can be used to pass the token dynamically, e.g. $session.params.parameter-id. Note: This property is sensitive and will not be displayed in the plan.
    secret_version_for_token str
    Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the token field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    token str
    Optional. The text token appended to the text Bearer to the request Authorization header. Session parameters reference can be used to pass the token dynamically, e.g. $session.params.parameter-id. Note: This property is sensitive and will not be displayed in the plan.
    secretVersionForToken String
    Optional. The name of the SecretManager secret version resource storing the Bearer token. If this field is set, the token field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    token String
    Optional. The text token appended to the text Bearer to the request Authorization header. Session parameters reference can be used to pass the token dynamically, e.g. $session.params.parameter-id. Note: This property is sensitive and will not be displayed in the plan.

    CxToolVersionToolOpenApiSpecAuthenticationOauthConfig, CxToolVersionToolOpenApiSpecAuthenticationOauthConfigArgs

    ClientId string
    The client ID from the OAuth provider.
    OauthGrantType string
    OAuth grant types. See OauthGrantType for valid values
    TokenEndpoint string
    The token endpoint in the OAuth provider to exchange for an access token.
    ClientSecret string
    Optional. The client secret from the OAuth provider. If the secretVersionForClientSecret field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    Scopes List<string>
    Optional. The OAuth scopes to grant.
    SecretVersionForClientSecret string
    Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the clientSecret field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    ClientId string
    The client ID from the OAuth provider.
    OauthGrantType string
    OAuth grant types. See OauthGrantType for valid values
    TokenEndpoint string
    The token endpoint in the OAuth provider to exchange for an access token.
    ClientSecret string
    Optional. The client secret from the OAuth provider. If the secretVersionForClientSecret field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    Scopes []string
    Optional. The OAuth scopes to grant.
    SecretVersionForClientSecret string
    Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the clientSecret field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    clientId String
    The client ID from the OAuth provider.
    oauthGrantType String
    OAuth grant types. See OauthGrantType for valid values
    tokenEndpoint String
    The token endpoint in the OAuth provider to exchange for an access token.
    clientSecret String
    Optional. The client secret from the OAuth provider. If the secretVersionForClientSecret field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    scopes List<String>
    Optional. The OAuth scopes to grant.
    secretVersionForClientSecret String
    Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the clientSecret field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    clientId string
    The client ID from the OAuth provider.
    oauthGrantType string
    OAuth grant types. See OauthGrantType for valid values
    tokenEndpoint string
    The token endpoint in the OAuth provider to exchange for an access token.
    clientSecret string
    Optional. The client secret from the OAuth provider. If the secretVersionForClientSecret field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    scopes string[]
    Optional. The OAuth scopes to grant.
    secretVersionForClientSecret string
    Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the clientSecret field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    client_id str
    The client ID from the OAuth provider.
    oauth_grant_type str
    OAuth grant types. See OauthGrantType for valid values
    token_endpoint str
    The token endpoint in the OAuth provider to exchange for an access token.
    client_secret str
    Optional. The client secret from the OAuth provider. If the secretVersionForClientSecret field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    scopes Sequence[str]
    Optional. The OAuth scopes to grant.
    secret_version_for_client_secret str
    Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the clientSecret field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}
    clientId String
    The client ID from the OAuth provider.
    oauthGrantType String
    OAuth grant types. See OauthGrantType for valid values
    tokenEndpoint String
    The token endpoint in the OAuth provider to exchange for an access token.
    clientSecret String
    Optional. The client secret from the OAuth provider. If the secretVersionForClientSecret field is set, this field will be ignored. Note: This property is sensitive and will not be displayed in the plan.
    scopes List<String>
    Optional. The OAuth scopes to grant.
    secretVersionForClientSecret String
    Optional. The name of the SecretManager secret version resource storing the client secret. If this field is set, the clientSecret field will be ignored. Format: projects/{project}/secrets/{secret}/versions/{version}

    CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfig, CxToolVersionToolOpenApiSpecAuthenticationServiceAgentAuthConfigArgs

    ServiceAgentAuth string
    Optional. Indicate the auth token type generated from the Diglogflow service agent. The generated token is sent in the Authorization header. See ServiceAgentAuth for valid values.
    ServiceAgentAuth string
    Optional. Indicate the auth token type generated from the Diglogflow service agent. The generated token is sent in the Authorization header. See ServiceAgentAuth for valid values.
    serviceAgentAuth String
    Optional. Indicate the auth token type generated from the Diglogflow service agent. The generated token is sent in the Authorization header. See ServiceAgentAuth for valid values.
    serviceAgentAuth string
    Optional. Indicate the auth token type generated from the Diglogflow service agent. The generated token is sent in the Authorization header. See ServiceAgentAuth for valid values.
    service_agent_auth str
    Optional. Indicate the auth token type generated from the Diglogflow service agent. The generated token is sent in the Authorization header. See ServiceAgentAuth for valid values.
    serviceAgentAuth String
    Optional. Indicate the auth token type generated from the Diglogflow service agent. The generated token is sent in the Authorization header. See ServiceAgentAuth for valid values.

    CxToolVersionToolOpenApiSpecServiceDirectoryConfig, CxToolVersionToolOpenApiSpecServiceDirectoryConfigArgs

    Service string
    The name of Service Directory service. Format: projects//locations//namespaces//services/. LocationID of the service directory must be the same as the location of the agent.
    Service string
    The name of Service Directory service. Format: projects//locations//namespaces//services/. LocationID of the service directory must be the same as the location of the agent.
    service String
    The name of Service Directory service. Format: projects//locations//namespaces//services/. LocationID of the service directory must be the same as the location of the agent.
    service string
    The name of Service Directory service. Format: projects//locations//namespaces//services/. LocationID of the service directory must be the same as the location of the agent.
    service str
    The name of Service Directory service. Format: projects//locations//namespaces//services/. LocationID of the service directory must be the same as the location of the agent.
    service String
    The name of Service Directory service. Format: projects//locations//namespaces//services/. LocationID of the service directory must be the same as the location of the agent.

    CxToolVersionToolOpenApiSpecTlsConfig, CxToolVersionToolOpenApiSpecTlsConfigArgs

    CaCerts List<CxToolVersionToolOpenApiSpecTlsConfigCaCert>
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    CaCerts []CxToolVersionToolOpenApiSpecTlsConfigCaCert
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<CxToolVersionToolOpenApiSpecTlsConfigCaCert>
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts CxToolVersionToolOpenApiSpecTlsConfigCaCert[]
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    ca_certs Sequence[CxToolVersionToolOpenApiSpecTlsConfigCaCert]
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.
    caCerts List<Property Map>
    Specifies a list of allowed custom CA certificates for HTTPS verification. Structure is documented below.

    CxToolVersionToolOpenApiSpecTlsConfigCaCert, CxToolVersionToolOpenApiSpecTlsConfigCaCertArgs

    Cert string

    The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command:

    openssl x509 -req -days 200 -in example.com.csr \
    -signkey example.com.key \
    -out example.com.crt \
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    

    A base64-encoded string.

    DisplayName string
    The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    Cert string

    The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command:

    openssl x509 -req -days 200 -in example.com.csr \
    -signkey example.com.key \
    -out example.com.crt \
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    

    A base64-encoded string.

    DisplayName string
    The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert String

    The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command:

    openssl x509 -req -days 200 -in example.com.csr \
    -signkey example.com.key \
    -out example.com.crt \
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    

    A base64-encoded string.

    displayName String
    The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert string

    The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command:

    openssl x509 -req -days 200 -in example.com.csr \
    -signkey example.com.key \
    -out example.com.crt \
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    

    A base64-encoded string.

    displayName string
    The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert str

    The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command:

    openssl x509 -req -days 200 -in example.com.csr \
    -signkey example.com.key \
    -out example.com.crt \
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    

    A base64-encoded string.

    display_name str
    The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.
    cert String

    The allowed custom CA certificates (in DER format) for HTTPS verification. This overrides the default SSL trust store. If this is empty or unspecified, Dialogflow will use Google's default trust store to verify certificates. N.B. Make sure the HTTPS server certificates are signed with "subject alt name". For instance a certificate can be self-signed using the following command:

    openssl x509 -req -days 200 -in example.com.csr \
    -signkey example.com.key \
    -out example.com.crt \
    -extfile <(printf "\nsubjectAltName='DNS:www.example.com'")
    

    A base64-encoded string.

    displayName String
    The name of the allowed custom CA certificates. This can be used to disambiguate the custom CA certificates.

    Import

    ToolVersion can be imported using any of these accepted formats:

    • {{parent}}/versions/{{name}}

    • {{parent}}/{{name}}

    When using the pulumi import command, ToolVersion can be imported using one of the formats above. For example:

    $ pulumi import gcp:diagflow/cxToolVersion:CxToolVersion default {{parent}}/versions/{{name}}
    
    $ pulumi import gcp:diagflow/cxToolVersion:CxToolVersion default {{parent}}/{{name}}
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    Google Cloud (GCP) Classic pulumi/pulumi-gcp
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the google-beta Terraform Provider.
    gcp logo
    Google Cloud v9.11.0 published on Tuesday, Feb 3, 2026 by Pulumi
      Meet Neo: Your AI Platform Teammate