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
@@ -1153,6 +1153,178 @@ class RegionUrlMap(pulumi.CustomResource):
1153
1153
  ],
1154
1154
  }])
1155
1155
  ```
1156
+ ### Region Url Map Path Matcher Default Route Action
1157
+
1158
+ ```python
1159
+ import pulumi
1160
+ import pulumi_gcp as gcp
1161
+
1162
+ default = gcp.compute.RegionHealthCheck("default",
1163
+ region="us-central1",
1164
+ name="health-check",
1165
+ check_interval_sec=1,
1166
+ timeout_sec=1,
1167
+ http_health_check={
1168
+ "port": 80,
1169
+ "request_path": "/",
1170
+ })
1171
+ login = gcp.compute.RegionBackendService("login",
1172
+ region="us-central1",
1173
+ name="login",
1174
+ protocol="HTTP",
1175
+ load_balancing_scheme="INTERNAL_MANAGED",
1176
+ timeout_sec=10,
1177
+ health_checks=default.id)
1178
+ home = gcp.compute.RegionBackendService("home",
1179
+ region="us-central1",
1180
+ name="home",
1181
+ protocol="HTTP",
1182
+ load_balancing_scheme="INTERNAL_MANAGED",
1183
+ timeout_sec=10,
1184
+ health_checks=default.id)
1185
+ regionurlmap = gcp.compute.RegionUrlMap("regionurlmap",
1186
+ region="us-central1",
1187
+ name="regionurlmap",
1188
+ description="a description",
1189
+ default_service=home.id,
1190
+ host_rules=[{
1191
+ "hosts": ["mysite.com"],
1192
+ "path_matcher": "allpaths",
1193
+ }],
1194
+ path_matchers=[{
1195
+ "name": "allpaths",
1196
+ "default_route_action": {
1197
+ "cors_policy": {
1198
+ "disabled": False,
1199
+ "allow_credentials": True,
1200
+ "allow_headers": ["foobar"],
1201
+ "allow_methods": [
1202
+ "GET",
1203
+ "POST",
1204
+ ],
1205
+ "allow_origins": ["example.com"],
1206
+ "expose_headers": ["foobar"],
1207
+ "max_age": 60,
1208
+ },
1209
+ "fault_injection_policy": {
1210
+ "abort": {
1211
+ "http_status": 500,
1212
+ "percentage": 0.5,
1213
+ },
1214
+ "delay": {
1215
+ "fixed_delay": {
1216
+ "nanos": 500,
1217
+ "seconds": "0",
1218
+ },
1219
+ "percentage": 0.5,
1220
+ },
1221
+ },
1222
+ "request_mirror_policy": {
1223
+ "backend_service": home.id,
1224
+ },
1225
+ "retry_policy": {
1226
+ "num_retries": 3,
1227
+ "per_try_timeout": {
1228
+ "nanos": 500,
1229
+ "seconds": "0",
1230
+ },
1231
+ "retry_conditions": [
1232
+ "5xx",
1233
+ "gateway-error",
1234
+ ],
1235
+ },
1236
+ "timeout": {
1237
+ "nanos": 500,
1238
+ "seconds": "0",
1239
+ },
1240
+ "url_rewrite": {
1241
+ "host_rewrite": "dev.example.com",
1242
+ "path_prefix_rewrite": "/v1/api/",
1243
+ },
1244
+ "weighted_backend_services": [
1245
+ {
1246
+ "backend_service": home.id,
1247
+ "header_action": {
1248
+ "request_headers_to_adds": [
1249
+ {
1250
+ "header_name": "foo-request-1",
1251
+ "header_value": "bar",
1252
+ "replace": True,
1253
+ },
1254
+ {
1255
+ "header_name": "foo-request-2",
1256
+ "header_value": "bar",
1257
+ "replace": True,
1258
+ },
1259
+ ],
1260
+ "request_headers_to_removes": ["fizz"],
1261
+ "response_headers_to_adds": [
1262
+ {
1263
+ "header_name": "foo-response-1",
1264
+ "header_value": "bar",
1265
+ "replace": True,
1266
+ },
1267
+ {
1268
+ "header_name": "foo-response-2",
1269
+ "header_value": "bar",
1270
+ "replace": True,
1271
+ },
1272
+ ],
1273
+ "response_headers_to_removes": ["buzz"],
1274
+ },
1275
+ "weight": 100,
1276
+ },
1277
+ {
1278
+ "backend_service": login.id,
1279
+ "header_action": {
1280
+ "request_headers_to_adds": [
1281
+ {
1282
+ "header_name": "foo-request-1",
1283
+ "header_value": "bar",
1284
+ "replace": True,
1285
+ },
1286
+ {
1287
+ "header_name": "foo-request-2",
1288
+ "header_value": "bar",
1289
+ "replace": True,
1290
+ },
1291
+ ],
1292
+ "request_headers_to_removes": ["fizz"],
1293
+ "response_headers_to_adds": [
1294
+ {
1295
+ "header_name": "foo-response-1",
1296
+ "header_value": "bar",
1297
+ "replace": True,
1298
+ },
1299
+ {
1300
+ "header_name": "foo-response-2",
1301
+ "header_value": "bar",
1302
+ "replace": True,
1303
+ },
1304
+ ],
1305
+ "response_headers_to_removes": ["buzz"],
1306
+ },
1307
+ "weight": 200,
1308
+ },
1309
+ ],
1310
+ },
1311
+ "path_rules": [
1312
+ {
1313
+ "paths": ["/home"],
1314
+ "service": home.id,
1315
+ },
1316
+ {
1317
+ "paths": ["/login"],
1318
+ "service": login.id,
1319
+ },
1320
+ ],
1321
+ }],
1322
+ tests=[{
1323
+ "service": home.id,
1324
+ "host": "hi.com",
1325
+ "path": "/home",
1326
+ }])
1327
+ ```
1156
1328
 
1157
1329
  ## Import
1158
1330
 
@@ -1831,6 +2003,178 @@ class RegionUrlMap(pulumi.CustomResource):
1831
2003
  ],
1832
2004
  }])
1833
2005
  ```
2006
+ ### Region Url Map Path Matcher Default Route Action
2007
+
2008
+ ```python
2009
+ import pulumi
2010
+ import pulumi_gcp as gcp
2011
+
2012
+ default = gcp.compute.RegionHealthCheck("default",
2013
+ region="us-central1",
2014
+ name="health-check",
2015
+ check_interval_sec=1,
2016
+ timeout_sec=1,
2017
+ http_health_check={
2018
+ "port": 80,
2019
+ "request_path": "/",
2020
+ })
2021
+ login = gcp.compute.RegionBackendService("login",
2022
+ region="us-central1",
2023
+ name="login",
2024
+ protocol="HTTP",
2025
+ load_balancing_scheme="INTERNAL_MANAGED",
2026
+ timeout_sec=10,
2027
+ health_checks=default.id)
2028
+ home = gcp.compute.RegionBackendService("home",
2029
+ region="us-central1",
2030
+ name="home",
2031
+ protocol="HTTP",
2032
+ load_balancing_scheme="INTERNAL_MANAGED",
2033
+ timeout_sec=10,
2034
+ health_checks=default.id)
2035
+ regionurlmap = gcp.compute.RegionUrlMap("regionurlmap",
2036
+ region="us-central1",
2037
+ name="regionurlmap",
2038
+ description="a description",
2039
+ default_service=home.id,
2040
+ host_rules=[{
2041
+ "hosts": ["mysite.com"],
2042
+ "path_matcher": "allpaths",
2043
+ }],
2044
+ path_matchers=[{
2045
+ "name": "allpaths",
2046
+ "default_route_action": {
2047
+ "cors_policy": {
2048
+ "disabled": False,
2049
+ "allow_credentials": True,
2050
+ "allow_headers": ["foobar"],
2051
+ "allow_methods": [
2052
+ "GET",
2053
+ "POST",
2054
+ ],
2055
+ "allow_origins": ["example.com"],
2056
+ "expose_headers": ["foobar"],
2057
+ "max_age": 60,
2058
+ },
2059
+ "fault_injection_policy": {
2060
+ "abort": {
2061
+ "http_status": 500,
2062
+ "percentage": 0.5,
2063
+ },
2064
+ "delay": {
2065
+ "fixed_delay": {
2066
+ "nanos": 500,
2067
+ "seconds": "0",
2068
+ },
2069
+ "percentage": 0.5,
2070
+ },
2071
+ },
2072
+ "request_mirror_policy": {
2073
+ "backend_service": home.id,
2074
+ },
2075
+ "retry_policy": {
2076
+ "num_retries": 3,
2077
+ "per_try_timeout": {
2078
+ "nanos": 500,
2079
+ "seconds": "0",
2080
+ },
2081
+ "retry_conditions": [
2082
+ "5xx",
2083
+ "gateway-error",
2084
+ ],
2085
+ },
2086
+ "timeout": {
2087
+ "nanos": 500,
2088
+ "seconds": "0",
2089
+ },
2090
+ "url_rewrite": {
2091
+ "host_rewrite": "dev.example.com",
2092
+ "path_prefix_rewrite": "/v1/api/",
2093
+ },
2094
+ "weighted_backend_services": [
2095
+ {
2096
+ "backend_service": home.id,
2097
+ "header_action": {
2098
+ "request_headers_to_adds": [
2099
+ {
2100
+ "header_name": "foo-request-1",
2101
+ "header_value": "bar",
2102
+ "replace": True,
2103
+ },
2104
+ {
2105
+ "header_name": "foo-request-2",
2106
+ "header_value": "bar",
2107
+ "replace": True,
2108
+ },
2109
+ ],
2110
+ "request_headers_to_removes": ["fizz"],
2111
+ "response_headers_to_adds": [
2112
+ {
2113
+ "header_name": "foo-response-1",
2114
+ "header_value": "bar",
2115
+ "replace": True,
2116
+ },
2117
+ {
2118
+ "header_name": "foo-response-2",
2119
+ "header_value": "bar",
2120
+ "replace": True,
2121
+ },
2122
+ ],
2123
+ "response_headers_to_removes": ["buzz"],
2124
+ },
2125
+ "weight": 100,
2126
+ },
2127
+ {
2128
+ "backend_service": login.id,
2129
+ "header_action": {
2130
+ "request_headers_to_adds": [
2131
+ {
2132
+ "header_name": "foo-request-1",
2133
+ "header_value": "bar",
2134
+ "replace": True,
2135
+ },
2136
+ {
2137
+ "header_name": "foo-request-2",
2138
+ "header_value": "bar",
2139
+ "replace": True,
2140
+ },
2141
+ ],
2142
+ "request_headers_to_removes": ["fizz"],
2143
+ "response_headers_to_adds": [
2144
+ {
2145
+ "header_name": "foo-response-1",
2146
+ "header_value": "bar",
2147
+ "replace": True,
2148
+ },
2149
+ {
2150
+ "header_name": "foo-response-2",
2151
+ "header_value": "bar",
2152
+ "replace": True,
2153
+ },
2154
+ ],
2155
+ "response_headers_to_removes": ["buzz"],
2156
+ },
2157
+ "weight": 200,
2158
+ },
2159
+ ],
2160
+ },
2161
+ "path_rules": [
2162
+ {
2163
+ "paths": ["/home"],
2164
+ "service": home.id,
2165
+ },
2166
+ {
2167
+ "paths": ["/login"],
2168
+ "service": login.id,
2169
+ },
2170
+ ],
2171
+ }],
2172
+ tests=[{
2173
+ "service": home.id,
2174
+ "host": "hi.com",
2175
+ "path": "/home",
2176
+ }])
2177
+ ```
1834
2178
 
1835
2179
  ## Import
1836
2180
 
@@ -165,6 +165,7 @@ class _TargetHttpProxyState:
165
165
  def __init__(__self__, *,
166
166
  creation_timestamp: Optional[pulumi.Input[builtins.str]] = None,
167
167
  description: Optional[pulumi.Input[builtins.str]] = None,
168
+ fingerprint: Optional[pulumi.Input[builtins.str]] = None,
168
169
  http_keep_alive_timeout_sec: Optional[pulumi.Input[builtins.int]] = None,
169
170
  name: Optional[pulumi.Input[builtins.str]] = None,
170
171
  project: Optional[pulumi.Input[builtins.str]] = None,
@@ -176,6 +177,11 @@ class _TargetHttpProxyState:
176
177
  Input properties used for looking up and filtering TargetHttpProxy resources.
177
178
  :param pulumi.Input[builtins.str] creation_timestamp: Creation timestamp in RFC3339 text format.
178
179
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
180
+ :param pulumi.Input[builtins.str] fingerprint: Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking.
181
+ This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to
182
+ patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet.
183
+ To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.
184
+ A base64-encoded string.
179
185
  :param pulumi.Input[builtins.int] http_keep_alive_timeout_sec: Specifies how long to keep a connection open, after completing a response,
180
186
  while there is no matching traffic (in seconds). If an HTTP keepalive is
181
187
  not specified, a default value will be used. For Global
@@ -208,6 +214,8 @@ class _TargetHttpProxyState:
208
214
  pulumi.set(__self__, "creation_timestamp", creation_timestamp)
209
215
  if description is not None:
210
216
  pulumi.set(__self__, "description", description)
217
+ if fingerprint is not None:
218
+ pulumi.set(__self__, "fingerprint", fingerprint)
211
219
  if http_keep_alive_timeout_sec is not None:
212
220
  pulumi.set(__self__, "http_keep_alive_timeout_sec", http_keep_alive_timeout_sec)
213
221
  if name is not None:
@@ -247,6 +255,22 @@ class _TargetHttpProxyState:
247
255
  def description(self, value: Optional[pulumi.Input[builtins.str]]):
248
256
  pulumi.set(self, "description", value)
249
257
 
258
+ @property
259
+ @pulumi.getter
260
+ def fingerprint(self) -> Optional[pulumi.Input[builtins.str]]:
261
+ """
262
+ Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking.
263
+ This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to
264
+ patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet.
265
+ To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.
266
+ A base64-encoded string.
267
+ """
268
+ return pulumi.get(self, "fingerprint")
269
+
270
+ @fingerprint.setter
271
+ def fingerprint(self, value: Optional[pulumi.Input[builtins.str]]):
272
+ pulumi.set(self, "fingerprint", value)
273
+
250
274
  @property
251
275
  @pulumi.getter(name="httpKeepAliveTimeoutSec")
252
276
  def http_keep_alive_timeout_sec(self) -> Optional[pulumi.Input[builtins.int]]:
@@ -467,6 +491,43 @@ class TargetHttpProxy(pulumi.CustomResource):
467
491
  name="test-https-redirect-proxy",
468
492
  url_map=default_url_map.id)
469
493
  ```
494
+ ### Target Http Proxy Fingerprint
495
+
496
+ ```python
497
+ import pulumi
498
+ import pulumi_gcp as gcp
499
+
500
+ default_http_health_check = gcp.compute.HttpHealthCheck("default",
501
+ name="http-health-check",
502
+ request_path="/",
503
+ check_interval_sec=1,
504
+ timeout_sec=1)
505
+ default_backend_service = gcp.compute.BackendService("default",
506
+ name="backend-service",
507
+ port_name="http",
508
+ protocol="HTTP",
509
+ timeout_sec=10,
510
+ health_checks=default_http_health_check.id)
511
+ default_url_map = gcp.compute.URLMap("default",
512
+ name="url-map",
513
+ default_service=default_backend_service.id,
514
+ host_rules=[{
515
+ "hosts": ["mysite.com"],
516
+ "path_matcher": "allpaths",
517
+ }],
518
+ path_matchers=[{
519
+ "name": "allpaths",
520
+ "default_service": default_backend_service.id,
521
+ "path_rules": [{
522
+ "paths": ["/*"],
523
+ "service": default_backend_service.id,
524
+ }],
525
+ }])
526
+ default = gcp.compute.TargetHttpProxy("default",
527
+ name="test-fingerprint-proxy",
528
+ url_map=default_url_map.id)
529
+ pulumi.export("targetHttpProxyFingerprint", default.fingerprint)
530
+ ```
470
531
 
471
532
  ## Import
472
533
 
@@ -629,6 +690,43 @@ class TargetHttpProxy(pulumi.CustomResource):
629
690
  name="test-https-redirect-proxy",
630
691
  url_map=default_url_map.id)
631
692
  ```
693
+ ### Target Http Proxy Fingerprint
694
+
695
+ ```python
696
+ import pulumi
697
+ import pulumi_gcp as gcp
698
+
699
+ default_http_health_check = gcp.compute.HttpHealthCheck("default",
700
+ name="http-health-check",
701
+ request_path="/",
702
+ check_interval_sec=1,
703
+ timeout_sec=1)
704
+ default_backend_service = gcp.compute.BackendService("default",
705
+ name="backend-service",
706
+ port_name="http",
707
+ protocol="HTTP",
708
+ timeout_sec=10,
709
+ health_checks=default_http_health_check.id)
710
+ default_url_map = gcp.compute.URLMap("default",
711
+ name="url-map",
712
+ default_service=default_backend_service.id,
713
+ host_rules=[{
714
+ "hosts": ["mysite.com"],
715
+ "path_matcher": "allpaths",
716
+ }],
717
+ path_matchers=[{
718
+ "name": "allpaths",
719
+ "default_service": default_backend_service.id,
720
+ "path_rules": [{
721
+ "paths": ["/*"],
722
+ "service": default_backend_service.id,
723
+ }],
724
+ }])
725
+ default = gcp.compute.TargetHttpProxy("default",
726
+ name="test-fingerprint-proxy",
727
+ url_map=default_url_map.id)
728
+ pulumi.export("targetHttpProxyFingerprint", default.fingerprint)
729
+ ```
632
730
 
633
731
  ## Import
634
732
 
@@ -693,6 +791,7 @@ class TargetHttpProxy(pulumi.CustomResource):
693
791
  raise TypeError("Missing required property 'url_map'")
694
792
  __props__.__dict__["url_map"] = url_map
695
793
  __props__.__dict__["creation_timestamp"] = None
794
+ __props__.__dict__["fingerprint"] = None
696
795
  __props__.__dict__["proxy_id"] = None
697
796
  __props__.__dict__["self_link"] = None
698
797
  super(TargetHttpProxy, __self__).__init__(
@@ -707,6 +806,7 @@ class TargetHttpProxy(pulumi.CustomResource):
707
806
  opts: Optional[pulumi.ResourceOptions] = None,
708
807
  creation_timestamp: Optional[pulumi.Input[builtins.str]] = None,
709
808
  description: Optional[pulumi.Input[builtins.str]] = None,
809
+ fingerprint: Optional[pulumi.Input[builtins.str]] = None,
710
810
  http_keep_alive_timeout_sec: Optional[pulumi.Input[builtins.int]] = None,
711
811
  name: Optional[pulumi.Input[builtins.str]] = None,
712
812
  project: Optional[pulumi.Input[builtins.str]] = None,
@@ -723,6 +823,11 @@ class TargetHttpProxy(pulumi.CustomResource):
723
823
  :param pulumi.ResourceOptions opts: Options for the resource.
724
824
  :param pulumi.Input[builtins.str] creation_timestamp: Creation timestamp in RFC3339 text format.
725
825
  :param pulumi.Input[builtins.str] description: An optional description of this resource.
826
+ :param pulumi.Input[builtins.str] fingerprint: Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking.
827
+ This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to
828
+ patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet.
829
+ To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.
830
+ A base64-encoded string.
726
831
  :param pulumi.Input[builtins.int] http_keep_alive_timeout_sec: Specifies how long to keep a connection open, after completing a response,
727
832
  while there is no matching traffic (in seconds). If an HTTP keepalive is
728
833
  not specified, a default value will be used. For Global
@@ -757,6 +862,7 @@ class TargetHttpProxy(pulumi.CustomResource):
757
862
 
758
863
  __props__.__dict__["creation_timestamp"] = creation_timestamp
759
864
  __props__.__dict__["description"] = description
865
+ __props__.__dict__["fingerprint"] = fingerprint
760
866
  __props__.__dict__["http_keep_alive_timeout_sec"] = http_keep_alive_timeout_sec
761
867
  __props__.__dict__["name"] = name
762
868
  __props__.__dict__["project"] = project
@@ -782,6 +888,18 @@ class TargetHttpProxy(pulumi.CustomResource):
782
888
  """
783
889
  return pulumi.get(self, "description")
784
890
 
891
+ @property
892
+ @pulumi.getter
893
+ def fingerprint(self) -> pulumi.Output[builtins.str]:
894
+ """
895
+ Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking.
896
+ This field will be ignored when inserting a TargetHttpProxy. An up-to-date fingerprint must be provided in order to
897
+ patch/update the TargetHttpProxy; otherwise, the request will fail with error 412 conditionNotMet.
898
+ To see the latest fingerprint, make a get() request to retrieve the TargetHttpProxy.
899
+ A base64-encoded string.
900
+ """
901
+ return pulumi.get(self, "fingerprint")
902
+
785
903
  @property
786
904
  @pulumi.getter(name="httpKeepAliveTimeoutSec")
787
905
  def http_keep_alive_timeout_sec(self) -> pulumi.Output[Optional[builtins.int]]: