pulumi-gcp 8.35.0a1750142992__py3-none-any.whl → 8.35.0a1750229953__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. pulumi_gcp/__init__.py +8 -0
  2. pulumi_gcp/backupdisasterrecovery/backup_plan.py +100 -7
  3. pulumi_gcp/backupdisasterrecovery/backup_plan_association.py +35 -7
  4. pulumi_gcp/backupdisasterrecovery/get_backup_plan.py +12 -1
  5. pulumi_gcp/bigqueryanalyticshub/listing.py +108 -0
  6. pulumi_gcp/compute/_inputs.py +2028 -175
  7. pulumi_gcp/compute/disk.py +7 -7
  8. pulumi_gcp/compute/outputs.py +1483 -110
  9. pulumi_gcp/compute/region_url_map.py +344 -0
  10. pulumi_gcp/compute/target_http_proxy.py +118 -0
  11. pulumi_gcp/compute/target_https_proxy.py +132 -0
  12. pulumi_gcp/compute/url_map.py +344 -0
  13. pulumi_gcp/compute/vpn_tunnel.py +178 -0
  14. pulumi_gcp/dataplex/__init__.py +1 -0
  15. pulumi_gcp/dataplex/get_data_quality_rules.py +169 -0
  16. pulumi_gcp/dataplex/outputs.py +420 -0
  17. pulumi_gcp/diagflow/__init__.py +1 -0
  18. pulumi_gcp/diagflow/_inputs.py +939 -0
  19. pulumi_gcp/diagflow/cx_agent.py +34 -0
  20. pulumi_gcp/diagflow/cx_tool.py +899 -0
  21. pulumi_gcp/diagflow/outputs.py +780 -0
  22. pulumi_gcp/firestore/field.py +6 -6
  23. pulumi_gcp/gkehub/membership_binding.py +6 -6
  24. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  25. pulumi_gcp/gkehub/namespace.py +4 -4
  26. pulumi_gcp/gkehub/scope_rbac_role_binding.py +8 -8
  27. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  28. pulumi_gcp/integrationconnectors/_inputs.py +24 -1
  29. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  30. pulumi_gcp/integrationconnectors/outputs.py +15 -1
  31. pulumi_gcp/managedkafka/connect_cluster.py +4 -4
  32. pulumi_gcp/managedkafka/connector.py +4 -4
  33. pulumi_gcp/netapp/_inputs.py +23 -0
  34. pulumi_gcp/netapp/outputs.py +16 -0
  35. pulumi_gcp/netapp/storage_pool.py +108 -0
  36. pulumi_gcp/networkconnectivity/_inputs.py +71 -1
  37. pulumi_gcp/networkconnectivity/outputs.py +64 -1
  38. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  39. pulumi_gcp/notebooks/runtime.py +4 -0
  40. pulumi_gcp/orgpolicy/policy.py +2 -2
  41. pulumi_gcp/pubsub/subscription.py +6 -6
  42. pulumi_gcp/pulumi-plugin.json +1 -1
  43. pulumi_gcp/redis/_inputs.py +77 -0
  44. pulumi_gcp/redis/cluster.py +32 -0
  45. pulumi_gcp/redis/outputs.py +63 -0
  46. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  47. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  48. pulumi_gcp/vertex/ai_index_endpoint_deployed_index.py +99 -64
  49. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750229953.dist-info}/METADATA +1 -1
  50. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750229953.dist-info}/RECORD +52 -50
  51. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750229953.dist-info}/WHEEL +0 -0
  52. {pulumi_gcp-8.35.0a1750142992.dist-info → pulumi_gcp-8.35.0a1750229953.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,899 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by pulumi-language-python. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import builtins
6
+ import copy
7
+ import warnings
8
+ import sys
9
+ import pulumi
10
+ import pulumi.runtime
11
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
12
+ if sys.version_info >= (3, 11):
13
+ from typing import NotRequired, TypedDict, TypeAlias
14
+ else:
15
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
16
+ from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
19
+
20
+ __all__ = ['CxToolArgs', 'CxTool']
21
+
22
+ @pulumi.input_type
23
+ class CxToolArgs:
24
+ def __init__(__self__, *,
25
+ description: pulumi.Input[builtins.str],
26
+ display_name: pulumi.Input[builtins.str],
27
+ data_store_spec: Optional[pulumi.Input['CxToolDataStoreSpecArgs']] = None,
28
+ function_spec: Optional[pulumi.Input['CxToolFunctionSpecArgs']] = None,
29
+ open_api_spec: Optional[pulumi.Input['CxToolOpenApiSpecArgs']] = None,
30
+ parent: Optional[pulumi.Input[builtins.str]] = None):
31
+ """
32
+ The set of arguments for constructing a CxTool resource.
33
+ :param pulumi.Input[builtins.str] description: High level description of the Tool and its usage.
34
+
35
+
36
+ - - -
37
+ :param pulumi.Input[builtins.str] display_name: The human-readable name of the tool, unique within the agent.
38
+ :param pulumi.Input['CxToolDataStoreSpecArgs'] data_store_spec: Data store search tool specification.
39
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
40
+ Structure is documented below.
41
+ :param pulumi.Input['CxToolFunctionSpecArgs'] function_spec: Client side executed function specification.
42
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
43
+ Structure is documented below.
44
+ :param pulumi.Input['CxToolOpenApiSpecArgs'] open_api_spec: OpenAPI specification of the Tool.
45
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
46
+ Structure is documented below.
47
+ :param pulumi.Input[builtins.str] parent: The agent to create a Tool for.
48
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
49
+ """
50
+ pulumi.set(__self__, "description", description)
51
+ pulumi.set(__self__, "display_name", display_name)
52
+ if data_store_spec is not None:
53
+ pulumi.set(__self__, "data_store_spec", data_store_spec)
54
+ if function_spec is not None:
55
+ pulumi.set(__self__, "function_spec", function_spec)
56
+ if open_api_spec is not None:
57
+ pulumi.set(__self__, "open_api_spec", open_api_spec)
58
+ if parent is not None:
59
+ pulumi.set(__self__, "parent", parent)
60
+
61
+ @property
62
+ @pulumi.getter
63
+ def description(self) -> pulumi.Input[builtins.str]:
64
+ """
65
+ High level description of the Tool and its usage.
66
+
67
+
68
+ - - -
69
+ """
70
+ return pulumi.get(self, "description")
71
+
72
+ @description.setter
73
+ def description(self, value: pulumi.Input[builtins.str]):
74
+ pulumi.set(self, "description", value)
75
+
76
+ @property
77
+ @pulumi.getter(name="displayName")
78
+ def display_name(self) -> pulumi.Input[builtins.str]:
79
+ """
80
+ The human-readable name of the tool, unique within the agent.
81
+ """
82
+ return pulumi.get(self, "display_name")
83
+
84
+ @display_name.setter
85
+ def display_name(self, value: pulumi.Input[builtins.str]):
86
+ pulumi.set(self, "display_name", value)
87
+
88
+ @property
89
+ @pulumi.getter(name="dataStoreSpec")
90
+ def data_store_spec(self) -> Optional[pulumi.Input['CxToolDataStoreSpecArgs']]:
91
+ """
92
+ Data store search tool specification.
93
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
94
+ Structure is documented below.
95
+ """
96
+ return pulumi.get(self, "data_store_spec")
97
+
98
+ @data_store_spec.setter
99
+ def data_store_spec(self, value: Optional[pulumi.Input['CxToolDataStoreSpecArgs']]):
100
+ pulumi.set(self, "data_store_spec", value)
101
+
102
+ @property
103
+ @pulumi.getter(name="functionSpec")
104
+ def function_spec(self) -> Optional[pulumi.Input['CxToolFunctionSpecArgs']]:
105
+ """
106
+ Client side executed function specification.
107
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
108
+ Structure is documented below.
109
+ """
110
+ return pulumi.get(self, "function_spec")
111
+
112
+ @function_spec.setter
113
+ def function_spec(self, value: Optional[pulumi.Input['CxToolFunctionSpecArgs']]):
114
+ pulumi.set(self, "function_spec", value)
115
+
116
+ @property
117
+ @pulumi.getter(name="openApiSpec")
118
+ def open_api_spec(self) -> Optional[pulumi.Input['CxToolOpenApiSpecArgs']]:
119
+ """
120
+ OpenAPI specification of the Tool.
121
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
122
+ Structure is documented below.
123
+ """
124
+ return pulumi.get(self, "open_api_spec")
125
+
126
+ @open_api_spec.setter
127
+ def open_api_spec(self, value: Optional[pulumi.Input['CxToolOpenApiSpecArgs']]):
128
+ pulumi.set(self, "open_api_spec", value)
129
+
130
+ @property
131
+ @pulumi.getter
132
+ def parent(self) -> Optional[pulumi.Input[builtins.str]]:
133
+ """
134
+ The agent to create a Tool for.
135
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
136
+ """
137
+ return pulumi.get(self, "parent")
138
+
139
+ @parent.setter
140
+ def parent(self, value: Optional[pulumi.Input[builtins.str]]):
141
+ pulumi.set(self, "parent", value)
142
+
143
+
144
+ @pulumi.input_type
145
+ class _CxToolState:
146
+ def __init__(__self__, *,
147
+ data_store_spec: Optional[pulumi.Input['CxToolDataStoreSpecArgs']] = None,
148
+ description: Optional[pulumi.Input[builtins.str]] = None,
149
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
150
+ function_spec: Optional[pulumi.Input['CxToolFunctionSpecArgs']] = None,
151
+ name: Optional[pulumi.Input[builtins.str]] = None,
152
+ open_api_spec: Optional[pulumi.Input['CxToolOpenApiSpecArgs']] = None,
153
+ parent: Optional[pulumi.Input[builtins.str]] = None,
154
+ tool_type: Optional[pulumi.Input[builtins.str]] = None):
155
+ """
156
+ Input properties used for looking up and filtering CxTool resources.
157
+ :param pulumi.Input['CxToolDataStoreSpecArgs'] data_store_spec: Data store search tool specification.
158
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
159
+ Structure is documented below.
160
+ :param pulumi.Input[builtins.str] description: High level description of the Tool and its usage.
161
+
162
+
163
+ - - -
164
+ :param pulumi.Input[builtins.str] display_name: The human-readable name of the tool, unique within the agent.
165
+ :param pulumi.Input['CxToolFunctionSpecArgs'] function_spec: Client side executed function specification.
166
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
167
+ Structure is documented below.
168
+ :param pulumi.Input[builtins.str] name: The unique identifier of the Tool.
169
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/tools/<Tool ID>.
170
+ :param pulumi.Input['CxToolOpenApiSpecArgs'] open_api_spec: OpenAPI specification of the Tool.
171
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
172
+ Structure is documented below.
173
+ :param pulumi.Input[builtins.str] parent: The agent to create a Tool for.
174
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
175
+ :param pulumi.Input[builtins.str] tool_type: The tool type.
176
+ """
177
+ if data_store_spec is not None:
178
+ pulumi.set(__self__, "data_store_spec", data_store_spec)
179
+ if description is not None:
180
+ pulumi.set(__self__, "description", description)
181
+ if display_name is not None:
182
+ pulumi.set(__self__, "display_name", display_name)
183
+ if function_spec is not None:
184
+ pulumi.set(__self__, "function_spec", function_spec)
185
+ if name is not None:
186
+ pulumi.set(__self__, "name", name)
187
+ if open_api_spec is not None:
188
+ pulumi.set(__self__, "open_api_spec", open_api_spec)
189
+ if parent is not None:
190
+ pulumi.set(__self__, "parent", parent)
191
+ if tool_type is not None:
192
+ pulumi.set(__self__, "tool_type", tool_type)
193
+
194
+ @property
195
+ @pulumi.getter(name="dataStoreSpec")
196
+ def data_store_spec(self) -> Optional[pulumi.Input['CxToolDataStoreSpecArgs']]:
197
+ """
198
+ Data store search tool specification.
199
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
200
+ Structure is documented below.
201
+ """
202
+ return pulumi.get(self, "data_store_spec")
203
+
204
+ @data_store_spec.setter
205
+ def data_store_spec(self, value: Optional[pulumi.Input['CxToolDataStoreSpecArgs']]):
206
+ pulumi.set(self, "data_store_spec", value)
207
+
208
+ @property
209
+ @pulumi.getter
210
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
211
+ """
212
+ High level description of the Tool and its usage.
213
+
214
+
215
+ - - -
216
+ """
217
+ return pulumi.get(self, "description")
218
+
219
+ @description.setter
220
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
221
+ pulumi.set(self, "description", value)
222
+
223
+ @property
224
+ @pulumi.getter(name="displayName")
225
+ def display_name(self) -> Optional[pulumi.Input[builtins.str]]:
226
+ """
227
+ The human-readable name of the tool, unique within the agent.
228
+ """
229
+ return pulumi.get(self, "display_name")
230
+
231
+ @display_name.setter
232
+ def display_name(self, value: Optional[pulumi.Input[builtins.str]]):
233
+ pulumi.set(self, "display_name", value)
234
+
235
+ @property
236
+ @pulumi.getter(name="functionSpec")
237
+ def function_spec(self) -> Optional[pulumi.Input['CxToolFunctionSpecArgs']]:
238
+ """
239
+ Client side executed function specification.
240
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
241
+ Structure is documented below.
242
+ """
243
+ return pulumi.get(self, "function_spec")
244
+
245
+ @function_spec.setter
246
+ def function_spec(self, value: Optional[pulumi.Input['CxToolFunctionSpecArgs']]):
247
+ pulumi.set(self, "function_spec", value)
248
+
249
+ @property
250
+ @pulumi.getter
251
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
252
+ """
253
+ The unique identifier of the Tool.
254
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/tools/<Tool ID>.
255
+ """
256
+ return pulumi.get(self, "name")
257
+
258
+ @name.setter
259
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
260
+ pulumi.set(self, "name", value)
261
+
262
+ @property
263
+ @pulumi.getter(name="openApiSpec")
264
+ def open_api_spec(self) -> Optional[pulumi.Input['CxToolOpenApiSpecArgs']]:
265
+ """
266
+ OpenAPI specification of the Tool.
267
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
268
+ Structure is documented below.
269
+ """
270
+ return pulumi.get(self, "open_api_spec")
271
+
272
+ @open_api_spec.setter
273
+ def open_api_spec(self, value: Optional[pulumi.Input['CxToolOpenApiSpecArgs']]):
274
+ pulumi.set(self, "open_api_spec", value)
275
+
276
+ @property
277
+ @pulumi.getter
278
+ def parent(self) -> Optional[pulumi.Input[builtins.str]]:
279
+ """
280
+ The agent to create a Tool for.
281
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
282
+ """
283
+ return pulumi.get(self, "parent")
284
+
285
+ @parent.setter
286
+ def parent(self, value: Optional[pulumi.Input[builtins.str]]):
287
+ pulumi.set(self, "parent", value)
288
+
289
+ @property
290
+ @pulumi.getter(name="toolType")
291
+ def tool_type(self) -> Optional[pulumi.Input[builtins.str]]:
292
+ """
293
+ The tool type.
294
+ """
295
+ return pulumi.get(self, "tool_type")
296
+
297
+ @tool_type.setter
298
+ def tool_type(self, value: Optional[pulumi.Input[builtins.str]]):
299
+ pulumi.set(self, "tool_type", value)
300
+
301
+
302
+ @pulumi.type_token("gcp:diagflow/cxTool:CxTool")
303
+ class CxTool(pulumi.CustomResource):
304
+ @overload
305
+ def __init__(__self__,
306
+ resource_name: str,
307
+ opts: Optional[pulumi.ResourceOptions] = None,
308
+ data_store_spec: Optional[pulumi.Input[Union['CxToolDataStoreSpecArgs', 'CxToolDataStoreSpecArgsDict']]] = None,
309
+ description: Optional[pulumi.Input[builtins.str]] = None,
310
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
311
+ function_spec: Optional[pulumi.Input[Union['CxToolFunctionSpecArgs', 'CxToolFunctionSpecArgsDict']]] = None,
312
+ open_api_spec: Optional[pulumi.Input[Union['CxToolOpenApiSpecArgs', 'CxToolOpenApiSpecArgsDict']]] = None,
313
+ parent: Optional[pulumi.Input[builtins.str]] = None,
314
+ __props__=None):
315
+ """
316
+ A tool provides a list of actions which are available to the Playbook to attain its goal.
317
+ A Tool consists of a description of the tool's usage and a specification of the tool which contains the schema and authentication information.
318
+
319
+ To get more information about Tool, see:
320
+
321
+ * [API documentation](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools)
322
+ * How-to Guides
323
+ * [Official Documentation](https://cloud.google.com/dialogflow/cx/docs)
324
+
325
+ ## Example Usage
326
+
327
+ ### Dialogflowcx Tool Open Api
328
+
329
+ ```python
330
+ import pulumi
331
+ import pulumi_gcp as gcp
332
+ import pulumi_std as std
333
+
334
+ agent = gcp.diagflow.CxAgent("agent",
335
+ display_name="dialogflowcx-agent-open-api",
336
+ location="global",
337
+ default_language_code="en",
338
+ time_zone="America/New_York",
339
+ description="Example description.")
340
+ open_api_tool = gcp.diagflow.CxTool("open_api_tool",
341
+ parent=agent.id,
342
+ display_name="Example Open API Tool",
343
+ description="Example Description",
344
+ open_api_spec={
345
+ "authentication": {
346
+ "oauth_config": {
347
+ "oauth_grant_type": "CLIENT_CREDENTIAL",
348
+ "client_id": "example client ID",
349
+ "client_secret": "example client secret",
350
+ "scopes": ["example scope"],
351
+ "secret_version_for_client_secret": "projects/-/secrets/-/versions/-",
352
+ "token_endpoint": "https://example.com/oauth/token",
353
+ },
354
+ },
355
+ "tls_config": {
356
+ "ca_certs": [{
357
+ "display_name": "example ca cert name",
358
+ "cert": std.base64encode(input="example cert").result,
359
+ }],
360
+ },
361
+ "service_directory_config": {
362
+ "service": "projects/-/locations/-/namespaces/-/services/-",
363
+ },
364
+ "text_schema": \"\"\" {
365
+ "openapi": "3.0.0",
366
+ "info": {
367
+ "title": "Time API",
368
+ "version": "1.0.0",
369
+ "description": "A simple API to get the current time."
370
+ },
371
+ "servers": [
372
+ {
373
+ "url": "https://example-api-endpoint.com"
374
+ }
375
+ ],
376
+ "paths": {
377
+ "/time": {
378
+ "get": {
379
+ "operationId": "getCurrentTime",
380
+ "summary": "Gets the current server time.",
381
+ "responses": {
382
+ "200": {
383
+ "description": "Successful response with the current time.",
384
+ "content": {
385
+ "application/json": {
386
+ "schema": {
387
+ "type": "object",
388
+ "properties": {
389
+ "currentTime": {
390
+ "type": "string",
391
+ "format": "date-time",
392
+ "description": "The current time in ISO 8601 format."
393
+ }
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
401
+ }
402
+ }
403
+ }
404
+ \"\"\",
405
+ })
406
+ ```
407
+ ### Dialogflowcx Tool Data Store
408
+
409
+ ```python
410
+ import pulumi
411
+ import pulumi_gcp as gcp
412
+
413
+ my_datastore = gcp.discoveryengine.DataStore("my_datastore",
414
+ location="global",
415
+ data_store_id="datastore-tool-test-_29439",
416
+ display_name="datastore for Tool test",
417
+ industry_vertical="GENERIC",
418
+ content_config="NO_CONTENT",
419
+ solution_types=["SOLUTION_TYPE_CHAT"])
420
+ agent = gcp.diagflow.CxAgent("agent",
421
+ display_name="dialogflowcx-agent-data-store",
422
+ location="global",
423
+ default_language_code="en",
424
+ time_zone="America/New_York",
425
+ description="Example description.",
426
+ delete_chat_engine_on_destroy=True,
427
+ opts = pulumi.ResourceOptions(depends_on=[my_datastore]))
428
+ project = gcp.organizations.get_project()
429
+ data_store_tool = gcp.diagflow.CxTool("data_store_tool",
430
+ parent=agent.id,
431
+ display_name="Example Data Store Tool",
432
+ description="Example Description",
433
+ data_store_spec={
434
+ "data_store_connections": [{
435
+ "data_store_type": "UNSTRUCTURED",
436
+ "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}"),
437
+ "document_processing_mode": "DOCUMENTS",
438
+ }],
439
+ "fallback_prompt": {},
440
+ },
441
+ opts = pulumi.ResourceOptions(depends_on=[
442
+ my_datastore,
443
+ agent,
444
+ ]))
445
+ ```
446
+ ### Dialogflowcx Tool Function
447
+
448
+ ```python
449
+ import pulumi
450
+ import pulumi_gcp as gcp
451
+
452
+ agent = gcp.diagflow.CxAgent("agent",
453
+ display_name="dialogflowcx-agent-fucntion",
454
+ location="global",
455
+ default_language_code="en",
456
+ time_zone="America/New_York",
457
+ description="Example description.")
458
+ function_tool = gcp.diagflow.CxTool("function_tool",
459
+ parent=agent.id,
460
+ display_name="Example Function Tool",
461
+ description="Example Description",
462
+ function_spec={
463
+ "input_schema": \"\"\" {
464
+ "type": "object",
465
+ "properties": {
466
+ "message_to_echo": {
467
+ "type": "string",
468
+ "description": "The message that should be echoed back."
469
+ }
470
+ },
471
+ "required": [
472
+ "message_to_echo"
473
+ ]
474
+ }
475
+ \"\"\",
476
+ "output_schema": \"\"\" {
477
+ "type": "object",
478
+ "properties": {
479
+ "echoed_message": {
480
+ "type": "string",
481
+ "description": "The message that is echoed back."
482
+ }
483
+ }
484
+ }
485
+ \"\"\",
486
+ })
487
+ ```
488
+
489
+ ## Import
490
+
491
+ Tool can be imported using any of these accepted formats:
492
+
493
+ * `{{parent}}/tools/{{name}}`
494
+
495
+ * `{{parent}}/{{name}}`
496
+
497
+ When using the `pulumi import` command, Tool can be imported using one of the formats above. For example:
498
+
499
+ ```sh
500
+ $ pulumi import gcp:diagflow/cxTool:CxTool default {{parent}}/tools/{{name}}
501
+ ```
502
+
503
+ ```sh
504
+ $ pulumi import gcp:diagflow/cxTool:CxTool default {{parent}}/{{name}}
505
+ ```
506
+
507
+ :param str resource_name: The name of the resource.
508
+ :param pulumi.ResourceOptions opts: Options for the resource.
509
+ :param pulumi.Input[Union['CxToolDataStoreSpecArgs', 'CxToolDataStoreSpecArgsDict']] data_store_spec: Data store search tool specification.
510
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
511
+ Structure is documented below.
512
+ :param pulumi.Input[builtins.str] description: High level description of the Tool and its usage.
513
+
514
+
515
+ - - -
516
+ :param pulumi.Input[builtins.str] display_name: The human-readable name of the tool, unique within the agent.
517
+ :param pulumi.Input[Union['CxToolFunctionSpecArgs', 'CxToolFunctionSpecArgsDict']] function_spec: Client side executed function specification.
518
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
519
+ Structure is documented below.
520
+ :param pulumi.Input[Union['CxToolOpenApiSpecArgs', 'CxToolOpenApiSpecArgsDict']] open_api_spec: OpenAPI specification of the Tool.
521
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
522
+ Structure is documented below.
523
+ :param pulumi.Input[builtins.str] parent: The agent to create a Tool for.
524
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
525
+ """
526
+ ...
527
+ @overload
528
+ def __init__(__self__,
529
+ resource_name: str,
530
+ args: CxToolArgs,
531
+ opts: Optional[pulumi.ResourceOptions] = None):
532
+ """
533
+ A tool provides a list of actions which are available to the Playbook to attain its goal.
534
+ A Tool consists of a description of the tool's usage and a specification of the tool which contains the schema and authentication information.
535
+
536
+ To get more information about Tool, see:
537
+
538
+ * [API documentation](https://cloud.google.com/dialogflow/cx/docs/reference/rest/v3/projects.locations.agents.tools)
539
+ * How-to Guides
540
+ * [Official Documentation](https://cloud.google.com/dialogflow/cx/docs)
541
+
542
+ ## Example Usage
543
+
544
+ ### Dialogflowcx Tool Open Api
545
+
546
+ ```python
547
+ import pulumi
548
+ import pulumi_gcp as gcp
549
+ import pulumi_std as std
550
+
551
+ agent = gcp.diagflow.CxAgent("agent",
552
+ display_name="dialogflowcx-agent-open-api",
553
+ location="global",
554
+ default_language_code="en",
555
+ time_zone="America/New_York",
556
+ description="Example description.")
557
+ open_api_tool = gcp.diagflow.CxTool("open_api_tool",
558
+ parent=agent.id,
559
+ display_name="Example Open API Tool",
560
+ description="Example Description",
561
+ open_api_spec={
562
+ "authentication": {
563
+ "oauth_config": {
564
+ "oauth_grant_type": "CLIENT_CREDENTIAL",
565
+ "client_id": "example client ID",
566
+ "client_secret": "example client secret",
567
+ "scopes": ["example scope"],
568
+ "secret_version_for_client_secret": "projects/-/secrets/-/versions/-",
569
+ "token_endpoint": "https://example.com/oauth/token",
570
+ },
571
+ },
572
+ "tls_config": {
573
+ "ca_certs": [{
574
+ "display_name": "example ca cert name",
575
+ "cert": std.base64encode(input="example cert").result,
576
+ }],
577
+ },
578
+ "service_directory_config": {
579
+ "service": "projects/-/locations/-/namespaces/-/services/-",
580
+ },
581
+ "text_schema": \"\"\" {
582
+ "openapi": "3.0.0",
583
+ "info": {
584
+ "title": "Time API",
585
+ "version": "1.0.0",
586
+ "description": "A simple API to get the current time."
587
+ },
588
+ "servers": [
589
+ {
590
+ "url": "https://example-api-endpoint.com"
591
+ }
592
+ ],
593
+ "paths": {
594
+ "/time": {
595
+ "get": {
596
+ "operationId": "getCurrentTime",
597
+ "summary": "Gets the current server time.",
598
+ "responses": {
599
+ "200": {
600
+ "description": "Successful response with the current time.",
601
+ "content": {
602
+ "application/json": {
603
+ "schema": {
604
+ "type": "object",
605
+ "properties": {
606
+ "currentTime": {
607
+ "type": "string",
608
+ "format": "date-time",
609
+ "description": "The current time in ISO 8601 format."
610
+ }
611
+ }
612
+ }
613
+ }
614
+ }
615
+ }
616
+ }
617
+ }
618
+ }
619
+ }
620
+ }
621
+ \"\"\",
622
+ })
623
+ ```
624
+ ### Dialogflowcx Tool Data Store
625
+
626
+ ```python
627
+ import pulumi
628
+ import pulumi_gcp as gcp
629
+
630
+ my_datastore = gcp.discoveryengine.DataStore("my_datastore",
631
+ location="global",
632
+ data_store_id="datastore-tool-test-_29439",
633
+ display_name="datastore for Tool test",
634
+ industry_vertical="GENERIC",
635
+ content_config="NO_CONTENT",
636
+ solution_types=["SOLUTION_TYPE_CHAT"])
637
+ agent = gcp.diagflow.CxAgent("agent",
638
+ display_name="dialogflowcx-agent-data-store",
639
+ location="global",
640
+ default_language_code="en",
641
+ time_zone="America/New_York",
642
+ description="Example description.",
643
+ delete_chat_engine_on_destroy=True,
644
+ opts = pulumi.ResourceOptions(depends_on=[my_datastore]))
645
+ project = gcp.organizations.get_project()
646
+ data_store_tool = gcp.diagflow.CxTool("data_store_tool",
647
+ parent=agent.id,
648
+ display_name="Example Data Store Tool",
649
+ description="Example Description",
650
+ data_store_spec={
651
+ "data_store_connections": [{
652
+ "data_store_type": "UNSTRUCTURED",
653
+ "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}"),
654
+ "document_processing_mode": "DOCUMENTS",
655
+ }],
656
+ "fallback_prompt": {},
657
+ },
658
+ opts = pulumi.ResourceOptions(depends_on=[
659
+ my_datastore,
660
+ agent,
661
+ ]))
662
+ ```
663
+ ### Dialogflowcx Tool Function
664
+
665
+ ```python
666
+ import pulumi
667
+ import pulumi_gcp as gcp
668
+
669
+ agent = gcp.diagflow.CxAgent("agent",
670
+ display_name="dialogflowcx-agent-fucntion",
671
+ location="global",
672
+ default_language_code="en",
673
+ time_zone="America/New_York",
674
+ description="Example description.")
675
+ function_tool = gcp.diagflow.CxTool("function_tool",
676
+ parent=agent.id,
677
+ display_name="Example Function Tool",
678
+ description="Example Description",
679
+ function_spec={
680
+ "input_schema": \"\"\" {
681
+ "type": "object",
682
+ "properties": {
683
+ "message_to_echo": {
684
+ "type": "string",
685
+ "description": "The message that should be echoed back."
686
+ }
687
+ },
688
+ "required": [
689
+ "message_to_echo"
690
+ ]
691
+ }
692
+ \"\"\",
693
+ "output_schema": \"\"\" {
694
+ "type": "object",
695
+ "properties": {
696
+ "echoed_message": {
697
+ "type": "string",
698
+ "description": "The message that is echoed back."
699
+ }
700
+ }
701
+ }
702
+ \"\"\",
703
+ })
704
+ ```
705
+
706
+ ## Import
707
+
708
+ Tool can be imported using any of these accepted formats:
709
+
710
+ * `{{parent}}/tools/{{name}}`
711
+
712
+ * `{{parent}}/{{name}}`
713
+
714
+ When using the `pulumi import` command, Tool can be imported using one of the formats above. For example:
715
+
716
+ ```sh
717
+ $ pulumi import gcp:diagflow/cxTool:CxTool default {{parent}}/tools/{{name}}
718
+ ```
719
+
720
+ ```sh
721
+ $ pulumi import gcp:diagflow/cxTool:CxTool default {{parent}}/{{name}}
722
+ ```
723
+
724
+ :param str resource_name: The name of the resource.
725
+ :param CxToolArgs args: The arguments to use to populate this resource's properties.
726
+ :param pulumi.ResourceOptions opts: Options for the resource.
727
+ """
728
+ ...
729
+ def __init__(__self__, resource_name: str, *args, **kwargs):
730
+ resource_args, opts = _utilities.get_resource_args_opts(CxToolArgs, pulumi.ResourceOptions, *args, **kwargs)
731
+ if resource_args is not None:
732
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
733
+ else:
734
+ __self__._internal_init(resource_name, *args, **kwargs)
735
+
736
+ def _internal_init(__self__,
737
+ resource_name: str,
738
+ opts: Optional[pulumi.ResourceOptions] = None,
739
+ data_store_spec: Optional[pulumi.Input[Union['CxToolDataStoreSpecArgs', 'CxToolDataStoreSpecArgsDict']]] = None,
740
+ description: Optional[pulumi.Input[builtins.str]] = None,
741
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
742
+ function_spec: Optional[pulumi.Input[Union['CxToolFunctionSpecArgs', 'CxToolFunctionSpecArgsDict']]] = None,
743
+ open_api_spec: Optional[pulumi.Input[Union['CxToolOpenApiSpecArgs', 'CxToolOpenApiSpecArgsDict']]] = None,
744
+ parent: Optional[pulumi.Input[builtins.str]] = None,
745
+ __props__=None):
746
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
747
+ if not isinstance(opts, pulumi.ResourceOptions):
748
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
749
+ if opts.id is None:
750
+ if __props__ is not None:
751
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
752
+ __props__ = CxToolArgs.__new__(CxToolArgs)
753
+
754
+ __props__.__dict__["data_store_spec"] = data_store_spec
755
+ if description is None and not opts.urn:
756
+ raise TypeError("Missing required property 'description'")
757
+ __props__.__dict__["description"] = description
758
+ if display_name is None and not opts.urn:
759
+ raise TypeError("Missing required property 'display_name'")
760
+ __props__.__dict__["display_name"] = display_name
761
+ __props__.__dict__["function_spec"] = function_spec
762
+ __props__.__dict__["open_api_spec"] = open_api_spec
763
+ __props__.__dict__["parent"] = parent
764
+ __props__.__dict__["name"] = None
765
+ __props__.__dict__["tool_type"] = None
766
+ super(CxTool, __self__).__init__(
767
+ 'gcp:diagflow/cxTool:CxTool',
768
+ resource_name,
769
+ __props__,
770
+ opts)
771
+
772
+ @staticmethod
773
+ def get(resource_name: str,
774
+ id: pulumi.Input[str],
775
+ opts: Optional[pulumi.ResourceOptions] = None,
776
+ data_store_spec: Optional[pulumi.Input[Union['CxToolDataStoreSpecArgs', 'CxToolDataStoreSpecArgsDict']]] = None,
777
+ description: Optional[pulumi.Input[builtins.str]] = None,
778
+ display_name: Optional[pulumi.Input[builtins.str]] = None,
779
+ function_spec: Optional[pulumi.Input[Union['CxToolFunctionSpecArgs', 'CxToolFunctionSpecArgsDict']]] = None,
780
+ name: Optional[pulumi.Input[builtins.str]] = None,
781
+ open_api_spec: Optional[pulumi.Input[Union['CxToolOpenApiSpecArgs', 'CxToolOpenApiSpecArgsDict']]] = None,
782
+ parent: Optional[pulumi.Input[builtins.str]] = None,
783
+ tool_type: Optional[pulumi.Input[builtins.str]] = None) -> 'CxTool':
784
+ """
785
+ Get an existing CxTool resource's state with the given name, id, and optional extra
786
+ properties used to qualify the lookup.
787
+
788
+ :param str resource_name: The unique name of the resulting resource.
789
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
790
+ :param pulumi.ResourceOptions opts: Options for the resource.
791
+ :param pulumi.Input[Union['CxToolDataStoreSpecArgs', 'CxToolDataStoreSpecArgsDict']] data_store_spec: Data store search tool specification.
792
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
793
+ Structure is documented below.
794
+ :param pulumi.Input[builtins.str] description: High level description of the Tool and its usage.
795
+
796
+
797
+ - - -
798
+ :param pulumi.Input[builtins.str] display_name: The human-readable name of the tool, unique within the agent.
799
+ :param pulumi.Input[Union['CxToolFunctionSpecArgs', 'CxToolFunctionSpecArgsDict']] function_spec: Client side executed function specification.
800
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
801
+ Structure is documented below.
802
+ :param pulumi.Input[builtins.str] name: The unique identifier of the Tool.
803
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/tools/<Tool ID>.
804
+ :param pulumi.Input[Union['CxToolOpenApiSpecArgs', 'CxToolOpenApiSpecArgsDict']] open_api_spec: OpenAPI specification of the Tool.
805
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
806
+ Structure is documented below.
807
+ :param pulumi.Input[builtins.str] parent: The agent to create a Tool for.
808
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
809
+ :param pulumi.Input[builtins.str] tool_type: The tool type.
810
+ """
811
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
812
+
813
+ __props__ = _CxToolState.__new__(_CxToolState)
814
+
815
+ __props__.__dict__["data_store_spec"] = data_store_spec
816
+ __props__.__dict__["description"] = description
817
+ __props__.__dict__["display_name"] = display_name
818
+ __props__.__dict__["function_spec"] = function_spec
819
+ __props__.__dict__["name"] = name
820
+ __props__.__dict__["open_api_spec"] = open_api_spec
821
+ __props__.__dict__["parent"] = parent
822
+ __props__.__dict__["tool_type"] = tool_type
823
+ return CxTool(resource_name, opts=opts, __props__=__props__)
824
+
825
+ @property
826
+ @pulumi.getter(name="dataStoreSpec")
827
+ def data_store_spec(self) -> pulumi.Output[Optional['outputs.CxToolDataStoreSpec']]:
828
+ """
829
+ Data store search tool specification.
830
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
831
+ Structure is documented below.
832
+ """
833
+ return pulumi.get(self, "data_store_spec")
834
+
835
+ @property
836
+ @pulumi.getter
837
+ def description(self) -> pulumi.Output[builtins.str]:
838
+ """
839
+ High level description of the Tool and its usage.
840
+
841
+
842
+ - - -
843
+ """
844
+ return pulumi.get(self, "description")
845
+
846
+ @property
847
+ @pulumi.getter(name="displayName")
848
+ def display_name(self) -> pulumi.Output[builtins.str]:
849
+ """
850
+ The human-readable name of the tool, unique within the agent.
851
+ """
852
+ return pulumi.get(self, "display_name")
853
+
854
+ @property
855
+ @pulumi.getter(name="functionSpec")
856
+ def function_spec(self) -> pulumi.Output[Optional['outputs.CxToolFunctionSpec']]:
857
+ """
858
+ Client side executed function specification.
859
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
860
+ Structure is documented below.
861
+ """
862
+ return pulumi.get(self, "function_spec")
863
+
864
+ @property
865
+ @pulumi.getter
866
+ def name(self) -> pulumi.Output[builtins.str]:
867
+ """
868
+ The unique identifier of the Tool.
869
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>/tools/<Tool ID>.
870
+ """
871
+ return pulumi.get(self, "name")
872
+
873
+ @property
874
+ @pulumi.getter(name="openApiSpec")
875
+ def open_api_spec(self) -> pulumi.Output[Optional['outputs.CxToolOpenApiSpec']]:
876
+ """
877
+ OpenAPI specification of the Tool.
878
+ This field is part of a union field `specification`: Only one of `openApiSpec`, `dataStoreSpec`, or `functionSpec` may be set.
879
+ Structure is documented below.
880
+ """
881
+ return pulumi.get(self, "open_api_spec")
882
+
883
+ @property
884
+ @pulumi.getter
885
+ def parent(self) -> pulumi.Output[Optional[builtins.str]]:
886
+ """
887
+ The agent to create a Tool for.
888
+ Format: projects/<Project ID>/locations/<Location ID>/agents/<Agent ID>.
889
+ """
890
+ return pulumi.get(self, "parent")
891
+
892
+ @property
893
+ @pulumi.getter(name="toolType")
894
+ def tool_type(self) -> pulumi.Output[builtins.str]:
895
+ """
896
+ The tool type.
897
+ """
898
+ return pulumi.get(self, "tool_type")
899
+