pulumi-gcp 8.35.0a1750229953__py3-none-any.whl → 8.36.0a1750252522__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.
@@ -0,0 +1,1065 @@
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__ = ['AppProfileArgs', 'AppProfile']
21
+
22
+ @pulumi.input_type
23
+ class AppProfileArgs:
24
+ def __init__(__self__, *,
25
+ app_profile_id: pulumi.Input[builtins.str],
26
+ data_boost_isolation_read_only: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']] = None,
27
+ description: Optional[pulumi.Input[builtins.str]] = None,
28
+ ignore_warnings: Optional[pulumi.Input[builtins.bool]] = None,
29
+ instance: Optional[pulumi.Input[builtins.str]] = None,
30
+ multi_cluster_routing_cluster_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
31
+ multi_cluster_routing_use_any: Optional[pulumi.Input[builtins.bool]] = None,
32
+ project: Optional[pulumi.Input[builtins.str]] = None,
33
+ row_affinity: Optional[pulumi.Input[builtins.bool]] = None,
34
+ single_cluster_routing: Optional[pulumi.Input['AppProfileSingleClusterRoutingArgs']] = None,
35
+ standard_isolation: Optional[pulumi.Input['AppProfileStandardIsolationArgs']] = None):
36
+ """
37
+ The set of arguments for constructing a AppProfile resource.
38
+ :param pulumi.Input[builtins.str] app_profile_id: The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
39
+
40
+
41
+ - - -
42
+ :param pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs'] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature.
43
+ Structure is documented below.
44
+ :param pulumi.Input[builtins.str] description: Long form description of the use case for this app profile.
45
+ :param pulumi.Input[builtins.bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile.
46
+ :param pulumi.Input[builtins.str] instance: The name of the instance to create the app profile within.
47
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] multi_cluster_routing_cluster_ids: The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all
48
+ clusters are eligible.
49
+ :param pulumi.Input[builtins.bool] multi_cluster_routing_use_any: If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available
50
+ in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes
51
+ consistency to improve availability.
52
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
53
+ If it is not provided, the provider project is used.
54
+ :param pulumi.Input[builtins.bool] row_affinity: Must be used with multi-cluster routing. If true, then this app profile will use row affinity sticky routing. With row
55
+ affinity, Bigtable will route single row key requests based on the row key, rather than randomly. Instead, each row key
56
+ will be assigned to a cluster by Cloud Bigtable, and will stick to that cluster. Choosing this option improves
57
+ read-your-writes consistency for most requests under most circumstances, without sacrificing availability. Consistency
58
+ is not guaranteed, as requests may still fail over between clusters in the event of errors or latency.
59
+ :param pulumi.Input['AppProfileSingleClusterRoutingArgs'] single_cluster_routing: Use a single-cluster routing policy.
60
+ Structure is documented below.
61
+ :param pulumi.Input['AppProfileStandardIsolationArgs'] standard_isolation: The standard options used for isolating this app profile's traffic from other use cases.
62
+ Structure is documented below.
63
+ """
64
+ pulumi.set(__self__, "app_profile_id", app_profile_id)
65
+ if data_boost_isolation_read_only is not None:
66
+ pulumi.set(__self__, "data_boost_isolation_read_only", data_boost_isolation_read_only)
67
+ if description is not None:
68
+ pulumi.set(__self__, "description", description)
69
+ if ignore_warnings is not None:
70
+ pulumi.set(__self__, "ignore_warnings", ignore_warnings)
71
+ if instance is not None:
72
+ pulumi.set(__self__, "instance", instance)
73
+ if multi_cluster_routing_cluster_ids is not None:
74
+ pulumi.set(__self__, "multi_cluster_routing_cluster_ids", multi_cluster_routing_cluster_ids)
75
+ if multi_cluster_routing_use_any is not None:
76
+ pulumi.set(__self__, "multi_cluster_routing_use_any", multi_cluster_routing_use_any)
77
+ if project is not None:
78
+ pulumi.set(__self__, "project", project)
79
+ if row_affinity is not None:
80
+ pulumi.set(__self__, "row_affinity", row_affinity)
81
+ if single_cluster_routing is not None:
82
+ pulumi.set(__self__, "single_cluster_routing", single_cluster_routing)
83
+ if standard_isolation is not None:
84
+ pulumi.set(__self__, "standard_isolation", standard_isolation)
85
+
86
+ @property
87
+ @pulumi.getter(name="appProfileId")
88
+ def app_profile_id(self) -> pulumi.Input[builtins.str]:
89
+ """
90
+ The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
91
+
92
+
93
+ - - -
94
+ """
95
+ return pulumi.get(self, "app_profile_id")
96
+
97
+ @app_profile_id.setter
98
+ def app_profile_id(self, value: pulumi.Input[builtins.str]):
99
+ pulumi.set(self, "app_profile_id", value)
100
+
101
+ @property
102
+ @pulumi.getter(name="dataBoostIsolationReadOnly")
103
+ def data_boost_isolation_read_only(self) -> Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]:
104
+ """
105
+ Specifies that this app profile is intended for read-only usage via the Data Boost feature.
106
+ Structure is documented below.
107
+ """
108
+ return pulumi.get(self, "data_boost_isolation_read_only")
109
+
110
+ @data_boost_isolation_read_only.setter
111
+ def data_boost_isolation_read_only(self, value: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]):
112
+ pulumi.set(self, "data_boost_isolation_read_only", value)
113
+
114
+ @property
115
+ @pulumi.getter
116
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
117
+ """
118
+ Long form description of the use case for this app profile.
119
+ """
120
+ return pulumi.get(self, "description")
121
+
122
+ @description.setter
123
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
124
+ pulumi.set(self, "description", value)
125
+
126
+ @property
127
+ @pulumi.getter(name="ignoreWarnings")
128
+ def ignore_warnings(self) -> Optional[pulumi.Input[builtins.bool]]:
129
+ """
130
+ If true, ignore safety checks when deleting/updating the app profile.
131
+ """
132
+ return pulumi.get(self, "ignore_warnings")
133
+
134
+ @ignore_warnings.setter
135
+ def ignore_warnings(self, value: Optional[pulumi.Input[builtins.bool]]):
136
+ pulumi.set(self, "ignore_warnings", value)
137
+
138
+ @property
139
+ @pulumi.getter
140
+ def instance(self) -> Optional[pulumi.Input[builtins.str]]:
141
+ """
142
+ The name of the instance to create the app profile within.
143
+ """
144
+ return pulumi.get(self, "instance")
145
+
146
+ @instance.setter
147
+ def instance(self, value: Optional[pulumi.Input[builtins.str]]):
148
+ pulumi.set(self, "instance", value)
149
+
150
+ @property
151
+ @pulumi.getter(name="multiClusterRoutingClusterIds")
152
+ def multi_cluster_routing_cluster_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
153
+ """
154
+ The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all
155
+ clusters are eligible.
156
+ """
157
+ return pulumi.get(self, "multi_cluster_routing_cluster_ids")
158
+
159
+ @multi_cluster_routing_cluster_ids.setter
160
+ def multi_cluster_routing_cluster_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
161
+ pulumi.set(self, "multi_cluster_routing_cluster_ids", value)
162
+
163
+ @property
164
+ @pulumi.getter(name="multiClusterRoutingUseAny")
165
+ def multi_cluster_routing_use_any(self) -> Optional[pulumi.Input[builtins.bool]]:
166
+ """
167
+ If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available
168
+ in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes
169
+ consistency to improve availability.
170
+ """
171
+ return pulumi.get(self, "multi_cluster_routing_use_any")
172
+
173
+ @multi_cluster_routing_use_any.setter
174
+ def multi_cluster_routing_use_any(self, value: Optional[pulumi.Input[builtins.bool]]):
175
+ pulumi.set(self, "multi_cluster_routing_use_any", value)
176
+
177
+ @property
178
+ @pulumi.getter
179
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
180
+ """
181
+ The ID of the project in which the resource belongs.
182
+ If it is not provided, the provider project is used.
183
+ """
184
+ return pulumi.get(self, "project")
185
+
186
+ @project.setter
187
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
188
+ pulumi.set(self, "project", value)
189
+
190
+ @property
191
+ @pulumi.getter(name="rowAffinity")
192
+ def row_affinity(self) -> Optional[pulumi.Input[builtins.bool]]:
193
+ """
194
+ Must be used with multi-cluster routing. If true, then this app profile will use row affinity sticky routing. With row
195
+ affinity, Bigtable will route single row key requests based on the row key, rather than randomly. Instead, each row key
196
+ will be assigned to a cluster by Cloud Bigtable, and will stick to that cluster. Choosing this option improves
197
+ read-your-writes consistency for most requests under most circumstances, without sacrificing availability. Consistency
198
+ is not guaranteed, as requests may still fail over between clusters in the event of errors or latency.
199
+ """
200
+ return pulumi.get(self, "row_affinity")
201
+
202
+ @row_affinity.setter
203
+ def row_affinity(self, value: Optional[pulumi.Input[builtins.bool]]):
204
+ pulumi.set(self, "row_affinity", value)
205
+
206
+ @property
207
+ @pulumi.getter(name="singleClusterRouting")
208
+ def single_cluster_routing(self) -> Optional[pulumi.Input['AppProfileSingleClusterRoutingArgs']]:
209
+ """
210
+ Use a single-cluster routing policy.
211
+ Structure is documented below.
212
+ """
213
+ return pulumi.get(self, "single_cluster_routing")
214
+
215
+ @single_cluster_routing.setter
216
+ def single_cluster_routing(self, value: Optional[pulumi.Input['AppProfileSingleClusterRoutingArgs']]):
217
+ pulumi.set(self, "single_cluster_routing", value)
218
+
219
+ @property
220
+ @pulumi.getter(name="standardIsolation")
221
+ def standard_isolation(self) -> Optional[pulumi.Input['AppProfileStandardIsolationArgs']]:
222
+ """
223
+ The standard options used for isolating this app profile's traffic from other use cases.
224
+ Structure is documented below.
225
+ """
226
+ return pulumi.get(self, "standard_isolation")
227
+
228
+ @standard_isolation.setter
229
+ def standard_isolation(self, value: Optional[pulumi.Input['AppProfileStandardIsolationArgs']]):
230
+ pulumi.set(self, "standard_isolation", value)
231
+
232
+
233
+ @pulumi.input_type
234
+ class _AppProfileState:
235
+ def __init__(__self__, *,
236
+ app_profile_id: Optional[pulumi.Input[builtins.str]] = None,
237
+ data_boost_isolation_read_only: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']] = None,
238
+ description: Optional[pulumi.Input[builtins.str]] = None,
239
+ ignore_warnings: Optional[pulumi.Input[builtins.bool]] = None,
240
+ instance: Optional[pulumi.Input[builtins.str]] = None,
241
+ multi_cluster_routing_cluster_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
242
+ multi_cluster_routing_use_any: Optional[pulumi.Input[builtins.bool]] = None,
243
+ name: Optional[pulumi.Input[builtins.str]] = None,
244
+ project: Optional[pulumi.Input[builtins.str]] = None,
245
+ row_affinity: Optional[pulumi.Input[builtins.bool]] = None,
246
+ single_cluster_routing: Optional[pulumi.Input['AppProfileSingleClusterRoutingArgs']] = None,
247
+ standard_isolation: Optional[pulumi.Input['AppProfileStandardIsolationArgs']] = None):
248
+ """
249
+ Input properties used for looking up and filtering AppProfile resources.
250
+ :param pulumi.Input[builtins.str] app_profile_id: The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
251
+
252
+
253
+ - - -
254
+ :param pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs'] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature.
255
+ Structure is documented below.
256
+ :param pulumi.Input[builtins.str] description: Long form description of the use case for this app profile.
257
+ :param pulumi.Input[builtins.bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile.
258
+ :param pulumi.Input[builtins.str] instance: The name of the instance to create the app profile within.
259
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] multi_cluster_routing_cluster_ids: The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all
260
+ clusters are eligible.
261
+ :param pulumi.Input[builtins.bool] multi_cluster_routing_use_any: If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available
262
+ in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes
263
+ consistency to improve availability.
264
+ :param pulumi.Input[builtins.str] name: The unique name of the requested app profile. Values are of the form `projects/<project>/instances/<instance>/appProfiles/<appProfileId>`.
265
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
266
+ If it is not provided, the provider project is used.
267
+ :param pulumi.Input[builtins.bool] row_affinity: Must be used with multi-cluster routing. If true, then this app profile will use row affinity sticky routing. With row
268
+ affinity, Bigtable will route single row key requests based on the row key, rather than randomly. Instead, each row key
269
+ will be assigned to a cluster by Cloud Bigtable, and will stick to that cluster. Choosing this option improves
270
+ read-your-writes consistency for most requests under most circumstances, without sacrificing availability. Consistency
271
+ is not guaranteed, as requests may still fail over between clusters in the event of errors or latency.
272
+ :param pulumi.Input['AppProfileSingleClusterRoutingArgs'] single_cluster_routing: Use a single-cluster routing policy.
273
+ Structure is documented below.
274
+ :param pulumi.Input['AppProfileStandardIsolationArgs'] standard_isolation: The standard options used for isolating this app profile's traffic from other use cases.
275
+ Structure is documented below.
276
+ """
277
+ if app_profile_id is not None:
278
+ pulumi.set(__self__, "app_profile_id", app_profile_id)
279
+ if data_boost_isolation_read_only is not None:
280
+ pulumi.set(__self__, "data_boost_isolation_read_only", data_boost_isolation_read_only)
281
+ if description is not None:
282
+ pulumi.set(__self__, "description", description)
283
+ if ignore_warnings is not None:
284
+ pulumi.set(__self__, "ignore_warnings", ignore_warnings)
285
+ if instance is not None:
286
+ pulumi.set(__self__, "instance", instance)
287
+ if multi_cluster_routing_cluster_ids is not None:
288
+ pulumi.set(__self__, "multi_cluster_routing_cluster_ids", multi_cluster_routing_cluster_ids)
289
+ if multi_cluster_routing_use_any is not None:
290
+ pulumi.set(__self__, "multi_cluster_routing_use_any", multi_cluster_routing_use_any)
291
+ if name is not None:
292
+ pulumi.set(__self__, "name", name)
293
+ if project is not None:
294
+ pulumi.set(__self__, "project", project)
295
+ if row_affinity is not None:
296
+ pulumi.set(__self__, "row_affinity", row_affinity)
297
+ if single_cluster_routing is not None:
298
+ pulumi.set(__self__, "single_cluster_routing", single_cluster_routing)
299
+ if standard_isolation is not None:
300
+ pulumi.set(__self__, "standard_isolation", standard_isolation)
301
+
302
+ @property
303
+ @pulumi.getter(name="appProfileId")
304
+ def app_profile_id(self) -> Optional[pulumi.Input[builtins.str]]:
305
+ """
306
+ The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
307
+
308
+
309
+ - - -
310
+ """
311
+ return pulumi.get(self, "app_profile_id")
312
+
313
+ @app_profile_id.setter
314
+ def app_profile_id(self, value: Optional[pulumi.Input[builtins.str]]):
315
+ pulumi.set(self, "app_profile_id", value)
316
+
317
+ @property
318
+ @pulumi.getter(name="dataBoostIsolationReadOnly")
319
+ def data_boost_isolation_read_only(self) -> Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]:
320
+ """
321
+ Specifies that this app profile is intended for read-only usage via the Data Boost feature.
322
+ Structure is documented below.
323
+ """
324
+ return pulumi.get(self, "data_boost_isolation_read_only")
325
+
326
+ @data_boost_isolation_read_only.setter
327
+ def data_boost_isolation_read_only(self, value: Optional[pulumi.Input['AppProfileDataBoostIsolationReadOnlyArgs']]):
328
+ pulumi.set(self, "data_boost_isolation_read_only", value)
329
+
330
+ @property
331
+ @pulumi.getter
332
+ def description(self) -> Optional[pulumi.Input[builtins.str]]:
333
+ """
334
+ Long form description of the use case for this app profile.
335
+ """
336
+ return pulumi.get(self, "description")
337
+
338
+ @description.setter
339
+ def description(self, value: Optional[pulumi.Input[builtins.str]]):
340
+ pulumi.set(self, "description", value)
341
+
342
+ @property
343
+ @pulumi.getter(name="ignoreWarnings")
344
+ def ignore_warnings(self) -> Optional[pulumi.Input[builtins.bool]]:
345
+ """
346
+ If true, ignore safety checks when deleting/updating the app profile.
347
+ """
348
+ return pulumi.get(self, "ignore_warnings")
349
+
350
+ @ignore_warnings.setter
351
+ def ignore_warnings(self, value: Optional[pulumi.Input[builtins.bool]]):
352
+ pulumi.set(self, "ignore_warnings", value)
353
+
354
+ @property
355
+ @pulumi.getter
356
+ def instance(self) -> Optional[pulumi.Input[builtins.str]]:
357
+ """
358
+ The name of the instance to create the app profile within.
359
+ """
360
+ return pulumi.get(self, "instance")
361
+
362
+ @instance.setter
363
+ def instance(self, value: Optional[pulumi.Input[builtins.str]]):
364
+ pulumi.set(self, "instance", value)
365
+
366
+ @property
367
+ @pulumi.getter(name="multiClusterRoutingClusterIds")
368
+ def multi_cluster_routing_cluster_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]:
369
+ """
370
+ The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all
371
+ clusters are eligible.
372
+ """
373
+ return pulumi.get(self, "multi_cluster_routing_cluster_ids")
374
+
375
+ @multi_cluster_routing_cluster_ids.setter
376
+ def multi_cluster_routing_cluster_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]]):
377
+ pulumi.set(self, "multi_cluster_routing_cluster_ids", value)
378
+
379
+ @property
380
+ @pulumi.getter(name="multiClusterRoutingUseAny")
381
+ def multi_cluster_routing_use_any(self) -> Optional[pulumi.Input[builtins.bool]]:
382
+ """
383
+ If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available
384
+ in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes
385
+ consistency to improve availability.
386
+ """
387
+ return pulumi.get(self, "multi_cluster_routing_use_any")
388
+
389
+ @multi_cluster_routing_use_any.setter
390
+ def multi_cluster_routing_use_any(self, value: Optional[pulumi.Input[builtins.bool]]):
391
+ pulumi.set(self, "multi_cluster_routing_use_any", value)
392
+
393
+ @property
394
+ @pulumi.getter
395
+ def name(self) -> Optional[pulumi.Input[builtins.str]]:
396
+ """
397
+ The unique name of the requested app profile. Values are of the form `projects/<project>/instances/<instance>/appProfiles/<appProfileId>`.
398
+ """
399
+ return pulumi.get(self, "name")
400
+
401
+ @name.setter
402
+ def name(self, value: Optional[pulumi.Input[builtins.str]]):
403
+ pulumi.set(self, "name", value)
404
+
405
+ @property
406
+ @pulumi.getter
407
+ def project(self) -> Optional[pulumi.Input[builtins.str]]:
408
+ """
409
+ The ID of the project in which the resource belongs.
410
+ If it is not provided, the provider project is used.
411
+ """
412
+ return pulumi.get(self, "project")
413
+
414
+ @project.setter
415
+ def project(self, value: Optional[pulumi.Input[builtins.str]]):
416
+ pulumi.set(self, "project", value)
417
+
418
+ @property
419
+ @pulumi.getter(name="rowAffinity")
420
+ def row_affinity(self) -> Optional[pulumi.Input[builtins.bool]]:
421
+ """
422
+ Must be used with multi-cluster routing. If true, then this app profile will use row affinity sticky routing. With row
423
+ affinity, Bigtable will route single row key requests based on the row key, rather than randomly. Instead, each row key
424
+ will be assigned to a cluster by Cloud Bigtable, and will stick to that cluster. Choosing this option improves
425
+ read-your-writes consistency for most requests under most circumstances, without sacrificing availability. Consistency
426
+ is not guaranteed, as requests may still fail over between clusters in the event of errors or latency.
427
+ """
428
+ return pulumi.get(self, "row_affinity")
429
+
430
+ @row_affinity.setter
431
+ def row_affinity(self, value: Optional[pulumi.Input[builtins.bool]]):
432
+ pulumi.set(self, "row_affinity", value)
433
+
434
+ @property
435
+ @pulumi.getter(name="singleClusterRouting")
436
+ def single_cluster_routing(self) -> Optional[pulumi.Input['AppProfileSingleClusterRoutingArgs']]:
437
+ """
438
+ Use a single-cluster routing policy.
439
+ Structure is documented below.
440
+ """
441
+ return pulumi.get(self, "single_cluster_routing")
442
+
443
+ @single_cluster_routing.setter
444
+ def single_cluster_routing(self, value: Optional[pulumi.Input['AppProfileSingleClusterRoutingArgs']]):
445
+ pulumi.set(self, "single_cluster_routing", value)
446
+
447
+ @property
448
+ @pulumi.getter(name="standardIsolation")
449
+ def standard_isolation(self) -> Optional[pulumi.Input['AppProfileStandardIsolationArgs']]:
450
+ """
451
+ The standard options used for isolating this app profile's traffic from other use cases.
452
+ Structure is documented below.
453
+ """
454
+ return pulumi.get(self, "standard_isolation")
455
+
456
+ @standard_isolation.setter
457
+ def standard_isolation(self, value: Optional[pulumi.Input['AppProfileStandardIsolationArgs']]):
458
+ pulumi.set(self, "standard_isolation", value)
459
+
460
+
461
+ @pulumi.type_token("gcp:bigtable/appProfile:AppProfile")
462
+ class AppProfile(pulumi.CustomResource):
463
+ @overload
464
+ def __init__(__self__,
465
+ resource_name: str,
466
+ opts: Optional[pulumi.ResourceOptions] = None,
467
+ app_profile_id: Optional[pulumi.Input[builtins.str]] = None,
468
+ data_boost_isolation_read_only: Optional[pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']]] = None,
469
+ description: Optional[pulumi.Input[builtins.str]] = None,
470
+ ignore_warnings: Optional[pulumi.Input[builtins.bool]] = None,
471
+ instance: Optional[pulumi.Input[builtins.str]] = None,
472
+ multi_cluster_routing_cluster_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
473
+ multi_cluster_routing_use_any: Optional[pulumi.Input[builtins.bool]] = None,
474
+ project: Optional[pulumi.Input[builtins.str]] = None,
475
+ row_affinity: Optional[pulumi.Input[builtins.bool]] = None,
476
+ single_cluster_routing: Optional[pulumi.Input[Union['AppProfileSingleClusterRoutingArgs', 'AppProfileSingleClusterRoutingArgsDict']]] = None,
477
+ standard_isolation: Optional[pulumi.Input[Union['AppProfileStandardIsolationArgs', 'AppProfileStandardIsolationArgsDict']]] = None,
478
+ __props__=None):
479
+ """
480
+ App profile is a configuration object describing how Cloud Bigtable should treat traffic from a particular end user application.
481
+
482
+ To get more information about AppProfile, see:
483
+
484
+ * [API documentation](https://cloud.google.com/bigtable/docs/reference/admin/rest/v2/projects.instances.appProfiles)
485
+
486
+ ## Example Usage
487
+
488
+ ### Bigtable App Profile Anycluster
489
+
490
+ ```python
491
+ import pulumi
492
+ import pulumi_gcp as gcp
493
+
494
+ instance = gcp.bigtable.Instance("instance",
495
+ name="bt-instance",
496
+ clusters=[
497
+ {
498
+ "cluster_id": "cluster-1",
499
+ "zone": "us-central1-a",
500
+ "num_nodes": 3,
501
+ "storage_type": "HDD",
502
+ },
503
+ {
504
+ "cluster_id": "cluster-2",
505
+ "zone": "us-central1-b",
506
+ "num_nodes": 3,
507
+ "storage_type": "HDD",
508
+ },
509
+ {
510
+ "cluster_id": "cluster-3",
511
+ "zone": "us-central1-c",
512
+ "num_nodes": 3,
513
+ "storage_type": "HDD",
514
+ },
515
+ ],
516
+ deletion_protection=True)
517
+ ap = gcp.bigtable.AppProfile("ap",
518
+ instance=instance.name,
519
+ app_profile_id="bt-profile",
520
+ multi_cluster_routing_use_any=True,
521
+ ignore_warnings=True)
522
+ ```
523
+ ### Bigtable App Profile Singlecluster
524
+
525
+ ```python
526
+ import pulumi
527
+ import pulumi_gcp as gcp
528
+
529
+ instance = gcp.bigtable.Instance("instance",
530
+ name="bt-instance",
531
+ clusters=[{
532
+ "cluster_id": "cluster-1",
533
+ "zone": "us-central1-b",
534
+ "num_nodes": 3,
535
+ "storage_type": "HDD",
536
+ }],
537
+ deletion_protection=True)
538
+ ap = gcp.bigtable.AppProfile("ap",
539
+ instance=instance.name,
540
+ app_profile_id="bt-profile",
541
+ single_cluster_routing={
542
+ "cluster_id": "cluster-1",
543
+ "allow_transactional_writes": True,
544
+ },
545
+ ignore_warnings=True)
546
+ ```
547
+ ### Bigtable App Profile Multicluster
548
+
549
+ ```python
550
+ import pulumi
551
+ import pulumi_gcp as gcp
552
+
553
+ instance = gcp.bigtable.Instance("instance",
554
+ name="bt-instance",
555
+ clusters=[
556
+ {
557
+ "cluster_id": "cluster-1",
558
+ "zone": "us-central1-a",
559
+ "num_nodes": 3,
560
+ "storage_type": "HDD",
561
+ },
562
+ {
563
+ "cluster_id": "cluster-2",
564
+ "zone": "us-central1-b",
565
+ "num_nodes": 3,
566
+ "storage_type": "HDD",
567
+ },
568
+ {
569
+ "cluster_id": "cluster-3",
570
+ "zone": "us-central1-c",
571
+ "num_nodes": 3,
572
+ "storage_type": "HDD",
573
+ },
574
+ ],
575
+ deletion_protection=True)
576
+ ap = gcp.bigtable.AppProfile("ap",
577
+ instance=instance.name,
578
+ app_profile_id="bt-profile",
579
+ multi_cluster_routing_use_any=True,
580
+ multi_cluster_routing_cluster_ids=[
581
+ "cluster-1",
582
+ "cluster-2",
583
+ ],
584
+ ignore_warnings=True)
585
+ ```
586
+ ### Bigtable App Profile Priority
587
+
588
+ ```python
589
+ import pulumi
590
+ import pulumi_gcp as gcp
591
+
592
+ instance = gcp.bigtable.Instance("instance",
593
+ name="bt-instance",
594
+ clusters=[{
595
+ "cluster_id": "cluster-1",
596
+ "zone": "us-central1-b",
597
+ "num_nodes": 3,
598
+ "storage_type": "HDD",
599
+ }],
600
+ deletion_protection=True)
601
+ ap = gcp.bigtable.AppProfile("ap",
602
+ instance=instance.name,
603
+ app_profile_id="bt-profile",
604
+ single_cluster_routing={
605
+ "cluster_id": "cluster-1",
606
+ "allow_transactional_writes": True,
607
+ },
608
+ standard_isolation={
609
+ "priority": "PRIORITY_LOW",
610
+ },
611
+ ignore_warnings=True)
612
+ ```
613
+
614
+ ## Import
615
+
616
+ AppProfile can be imported using any of these accepted formats:
617
+
618
+ * `projects/{{project}}/instances/{{instance}}/appProfiles/{{app_profile_id}}`
619
+
620
+ * `{{project}}/{{instance}}/{{app_profile_id}}`
621
+
622
+ * `{{instance}}/{{app_profile_id}}`
623
+
624
+ When using the `pulumi import` command, AppProfile can be imported using one of the formats above. For example:
625
+
626
+ ```sh
627
+ $ pulumi import gcp:bigtable/appProfile:AppProfile default projects/{{project}}/instances/{{instance}}/appProfiles/{{app_profile_id}}
628
+ ```
629
+
630
+ ```sh
631
+ $ pulumi import gcp:bigtable/appProfile:AppProfile default {{project}}/{{instance}}/{{app_profile_id}}
632
+ ```
633
+
634
+ ```sh
635
+ $ pulumi import gcp:bigtable/appProfile:AppProfile default {{instance}}/{{app_profile_id}}
636
+ ```
637
+
638
+ :param str resource_name: The name of the resource.
639
+ :param pulumi.ResourceOptions opts: Options for the resource.
640
+ :param pulumi.Input[builtins.str] app_profile_id: The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
641
+
642
+
643
+ - - -
644
+ :param pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature.
645
+ Structure is documented below.
646
+ :param pulumi.Input[builtins.str] description: Long form description of the use case for this app profile.
647
+ :param pulumi.Input[builtins.bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile.
648
+ :param pulumi.Input[builtins.str] instance: The name of the instance to create the app profile within.
649
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] multi_cluster_routing_cluster_ids: The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all
650
+ clusters are eligible.
651
+ :param pulumi.Input[builtins.bool] multi_cluster_routing_use_any: If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available
652
+ in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes
653
+ consistency to improve availability.
654
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
655
+ If it is not provided, the provider project is used.
656
+ :param pulumi.Input[builtins.bool] row_affinity: Must be used with multi-cluster routing. If true, then this app profile will use row affinity sticky routing. With row
657
+ affinity, Bigtable will route single row key requests based on the row key, rather than randomly. Instead, each row key
658
+ will be assigned to a cluster by Cloud Bigtable, and will stick to that cluster. Choosing this option improves
659
+ read-your-writes consistency for most requests under most circumstances, without sacrificing availability. Consistency
660
+ is not guaranteed, as requests may still fail over between clusters in the event of errors or latency.
661
+ :param pulumi.Input[Union['AppProfileSingleClusterRoutingArgs', 'AppProfileSingleClusterRoutingArgsDict']] single_cluster_routing: Use a single-cluster routing policy.
662
+ Structure is documented below.
663
+ :param pulumi.Input[Union['AppProfileStandardIsolationArgs', 'AppProfileStandardIsolationArgsDict']] standard_isolation: The standard options used for isolating this app profile's traffic from other use cases.
664
+ Structure is documented below.
665
+ """
666
+ ...
667
+ @overload
668
+ def __init__(__self__,
669
+ resource_name: str,
670
+ args: AppProfileArgs,
671
+ opts: Optional[pulumi.ResourceOptions] = None):
672
+ """
673
+ App profile is a configuration object describing how Cloud Bigtable should treat traffic from a particular end user application.
674
+
675
+ To get more information about AppProfile, see:
676
+
677
+ * [API documentation](https://cloud.google.com/bigtable/docs/reference/admin/rest/v2/projects.instances.appProfiles)
678
+
679
+ ## Example Usage
680
+
681
+ ### Bigtable App Profile Anycluster
682
+
683
+ ```python
684
+ import pulumi
685
+ import pulumi_gcp as gcp
686
+
687
+ instance = gcp.bigtable.Instance("instance",
688
+ name="bt-instance",
689
+ clusters=[
690
+ {
691
+ "cluster_id": "cluster-1",
692
+ "zone": "us-central1-a",
693
+ "num_nodes": 3,
694
+ "storage_type": "HDD",
695
+ },
696
+ {
697
+ "cluster_id": "cluster-2",
698
+ "zone": "us-central1-b",
699
+ "num_nodes": 3,
700
+ "storage_type": "HDD",
701
+ },
702
+ {
703
+ "cluster_id": "cluster-3",
704
+ "zone": "us-central1-c",
705
+ "num_nodes": 3,
706
+ "storage_type": "HDD",
707
+ },
708
+ ],
709
+ deletion_protection=True)
710
+ ap = gcp.bigtable.AppProfile("ap",
711
+ instance=instance.name,
712
+ app_profile_id="bt-profile",
713
+ multi_cluster_routing_use_any=True,
714
+ ignore_warnings=True)
715
+ ```
716
+ ### Bigtable App Profile Singlecluster
717
+
718
+ ```python
719
+ import pulumi
720
+ import pulumi_gcp as gcp
721
+
722
+ instance = gcp.bigtable.Instance("instance",
723
+ name="bt-instance",
724
+ clusters=[{
725
+ "cluster_id": "cluster-1",
726
+ "zone": "us-central1-b",
727
+ "num_nodes": 3,
728
+ "storage_type": "HDD",
729
+ }],
730
+ deletion_protection=True)
731
+ ap = gcp.bigtable.AppProfile("ap",
732
+ instance=instance.name,
733
+ app_profile_id="bt-profile",
734
+ single_cluster_routing={
735
+ "cluster_id": "cluster-1",
736
+ "allow_transactional_writes": True,
737
+ },
738
+ ignore_warnings=True)
739
+ ```
740
+ ### Bigtable App Profile Multicluster
741
+
742
+ ```python
743
+ import pulumi
744
+ import pulumi_gcp as gcp
745
+
746
+ instance = gcp.bigtable.Instance("instance",
747
+ name="bt-instance",
748
+ clusters=[
749
+ {
750
+ "cluster_id": "cluster-1",
751
+ "zone": "us-central1-a",
752
+ "num_nodes": 3,
753
+ "storage_type": "HDD",
754
+ },
755
+ {
756
+ "cluster_id": "cluster-2",
757
+ "zone": "us-central1-b",
758
+ "num_nodes": 3,
759
+ "storage_type": "HDD",
760
+ },
761
+ {
762
+ "cluster_id": "cluster-3",
763
+ "zone": "us-central1-c",
764
+ "num_nodes": 3,
765
+ "storage_type": "HDD",
766
+ },
767
+ ],
768
+ deletion_protection=True)
769
+ ap = gcp.bigtable.AppProfile("ap",
770
+ instance=instance.name,
771
+ app_profile_id="bt-profile",
772
+ multi_cluster_routing_use_any=True,
773
+ multi_cluster_routing_cluster_ids=[
774
+ "cluster-1",
775
+ "cluster-2",
776
+ ],
777
+ ignore_warnings=True)
778
+ ```
779
+ ### Bigtable App Profile Priority
780
+
781
+ ```python
782
+ import pulumi
783
+ import pulumi_gcp as gcp
784
+
785
+ instance = gcp.bigtable.Instance("instance",
786
+ name="bt-instance",
787
+ clusters=[{
788
+ "cluster_id": "cluster-1",
789
+ "zone": "us-central1-b",
790
+ "num_nodes": 3,
791
+ "storage_type": "HDD",
792
+ }],
793
+ deletion_protection=True)
794
+ ap = gcp.bigtable.AppProfile("ap",
795
+ instance=instance.name,
796
+ app_profile_id="bt-profile",
797
+ single_cluster_routing={
798
+ "cluster_id": "cluster-1",
799
+ "allow_transactional_writes": True,
800
+ },
801
+ standard_isolation={
802
+ "priority": "PRIORITY_LOW",
803
+ },
804
+ ignore_warnings=True)
805
+ ```
806
+
807
+ ## Import
808
+
809
+ AppProfile can be imported using any of these accepted formats:
810
+
811
+ * `projects/{{project}}/instances/{{instance}}/appProfiles/{{app_profile_id}}`
812
+
813
+ * `{{project}}/{{instance}}/{{app_profile_id}}`
814
+
815
+ * `{{instance}}/{{app_profile_id}}`
816
+
817
+ When using the `pulumi import` command, AppProfile can be imported using one of the formats above. For example:
818
+
819
+ ```sh
820
+ $ pulumi import gcp:bigtable/appProfile:AppProfile default projects/{{project}}/instances/{{instance}}/appProfiles/{{app_profile_id}}
821
+ ```
822
+
823
+ ```sh
824
+ $ pulumi import gcp:bigtable/appProfile:AppProfile default {{project}}/{{instance}}/{{app_profile_id}}
825
+ ```
826
+
827
+ ```sh
828
+ $ pulumi import gcp:bigtable/appProfile:AppProfile default {{instance}}/{{app_profile_id}}
829
+ ```
830
+
831
+ :param str resource_name: The name of the resource.
832
+ :param AppProfileArgs args: The arguments to use to populate this resource's properties.
833
+ :param pulumi.ResourceOptions opts: Options for the resource.
834
+ """
835
+ ...
836
+ def __init__(__self__, resource_name: str, *args, **kwargs):
837
+ resource_args, opts = _utilities.get_resource_args_opts(AppProfileArgs, pulumi.ResourceOptions, *args, **kwargs)
838
+ if resource_args is not None:
839
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
840
+ else:
841
+ __self__._internal_init(resource_name, *args, **kwargs)
842
+
843
+ def _internal_init(__self__,
844
+ resource_name: str,
845
+ opts: Optional[pulumi.ResourceOptions] = None,
846
+ app_profile_id: Optional[pulumi.Input[builtins.str]] = None,
847
+ data_boost_isolation_read_only: Optional[pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']]] = None,
848
+ description: Optional[pulumi.Input[builtins.str]] = None,
849
+ ignore_warnings: Optional[pulumi.Input[builtins.bool]] = None,
850
+ instance: Optional[pulumi.Input[builtins.str]] = None,
851
+ multi_cluster_routing_cluster_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
852
+ multi_cluster_routing_use_any: Optional[pulumi.Input[builtins.bool]] = None,
853
+ project: Optional[pulumi.Input[builtins.str]] = None,
854
+ row_affinity: Optional[pulumi.Input[builtins.bool]] = None,
855
+ single_cluster_routing: Optional[pulumi.Input[Union['AppProfileSingleClusterRoutingArgs', 'AppProfileSingleClusterRoutingArgsDict']]] = None,
856
+ standard_isolation: Optional[pulumi.Input[Union['AppProfileStandardIsolationArgs', 'AppProfileStandardIsolationArgsDict']]] = None,
857
+ __props__=None):
858
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
859
+ if not isinstance(opts, pulumi.ResourceOptions):
860
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
861
+ if opts.id is None:
862
+ if __props__ is not None:
863
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
864
+ __props__ = AppProfileArgs.__new__(AppProfileArgs)
865
+
866
+ if app_profile_id is None and not opts.urn:
867
+ raise TypeError("Missing required property 'app_profile_id'")
868
+ __props__.__dict__["app_profile_id"] = app_profile_id
869
+ __props__.__dict__["data_boost_isolation_read_only"] = data_boost_isolation_read_only
870
+ __props__.__dict__["description"] = description
871
+ __props__.__dict__["ignore_warnings"] = ignore_warnings
872
+ __props__.__dict__["instance"] = instance
873
+ __props__.__dict__["multi_cluster_routing_cluster_ids"] = multi_cluster_routing_cluster_ids
874
+ __props__.__dict__["multi_cluster_routing_use_any"] = multi_cluster_routing_use_any
875
+ __props__.__dict__["project"] = project
876
+ __props__.__dict__["row_affinity"] = row_affinity
877
+ __props__.__dict__["single_cluster_routing"] = single_cluster_routing
878
+ __props__.__dict__["standard_isolation"] = standard_isolation
879
+ __props__.__dict__["name"] = None
880
+ alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="gcp:bigquery/appProfile:AppProfile")])
881
+ opts = pulumi.ResourceOptions.merge(opts, alias_opts)
882
+ super(AppProfile, __self__).__init__(
883
+ 'gcp:bigtable/appProfile:AppProfile',
884
+ resource_name,
885
+ __props__,
886
+ opts)
887
+
888
+ @staticmethod
889
+ def get(resource_name: str,
890
+ id: pulumi.Input[str],
891
+ opts: Optional[pulumi.ResourceOptions] = None,
892
+ app_profile_id: Optional[pulumi.Input[builtins.str]] = None,
893
+ data_boost_isolation_read_only: Optional[pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']]] = None,
894
+ description: Optional[pulumi.Input[builtins.str]] = None,
895
+ ignore_warnings: Optional[pulumi.Input[builtins.bool]] = None,
896
+ instance: Optional[pulumi.Input[builtins.str]] = None,
897
+ multi_cluster_routing_cluster_ids: Optional[pulumi.Input[Sequence[pulumi.Input[builtins.str]]]] = None,
898
+ multi_cluster_routing_use_any: Optional[pulumi.Input[builtins.bool]] = None,
899
+ name: Optional[pulumi.Input[builtins.str]] = None,
900
+ project: Optional[pulumi.Input[builtins.str]] = None,
901
+ row_affinity: Optional[pulumi.Input[builtins.bool]] = None,
902
+ single_cluster_routing: Optional[pulumi.Input[Union['AppProfileSingleClusterRoutingArgs', 'AppProfileSingleClusterRoutingArgsDict']]] = None,
903
+ standard_isolation: Optional[pulumi.Input[Union['AppProfileStandardIsolationArgs', 'AppProfileStandardIsolationArgsDict']]] = None) -> 'AppProfile':
904
+ """
905
+ Get an existing AppProfile resource's state with the given name, id, and optional extra
906
+ properties used to qualify the lookup.
907
+
908
+ :param str resource_name: The unique name of the resulting resource.
909
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
910
+ :param pulumi.ResourceOptions opts: Options for the resource.
911
+ :param pulumi.Input[builtins.str] app_profile_id: The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
912
+
913
+
914
+ - - -
915
+ :param pulumi.Input[Union['AppProfileDataBoostIsolationReadOnlyArgs', 'AppProfileDataBoostIsolationReadOnlyArgsDict']] data_boost_isolation_read_only: Specifies that this app profile is intended for read-only usage via the Data Boost feature.
916
+ Structure is documented below.
917
+ :param pulumi.Input[builtins.str] description: Long form description of the use case for this app profile.
918
+ :param pulumi.Input[builtins.bool] ignore_warnings: If true, ignore safety checks when deleting/updating the app profile.
919
+ :param pulumi.Input[builtins.str] instance: The name of the instance to create the app profile within.
920
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] multi_cluster_routing_cluster_ids: The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all
921
+ clusters are eligible.
922
+ :param pulumi.Input[builtins.bool] multi_cluster_routing_use_any: If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available
923
+ in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes
924
+ consistency to improve availability.
925
+ :param pulumi.Input[builtins.str] name: The unique name of the requested app profile. Values are of the form `projects/<project>/instances/<instance>/appProfiles/<appProfileId>`.
926
+ :param pulumi.Input[builtins.str] project: The ID of the project in which the resource belongs.
927
+ If it is not provided, the provider project is used.
928
+ :param pulumi.Input[builtins.bool] row_affinity: Must be used with multi-cluster routing. If true, then this app profile will use row affinity sticky routing. With row
929
+ affinity, Bigtable will route single row key requests based on the row key, rather than randomly. Instead, each row key
930
+ will be assigned to a cluster by Cloud Bigtable, and will stick to that cluster. Choosing this option improves
931
+ read-your-writes consistency for most requests under most circumstances, without sacrificing availability. Consistency
932
+ is not guaranteed, as requests may still fail over between clusters in the event of errors or latency.
933
+ :param pulumi.Input[Union['AppProfileSingleClusterRoutingArgs', 'AppProfileSingleClusterRoutingArgsDict']] single_cluster_routing: Use a single-cluster routing policy.
934
+ Structure is documented below.
935
+ :param pulumi.Input[Union['AppProfileStandardIsolationArgs', 'AppProfileStandardIsolationArgsDict']] standard_isolation: The standard options used for isolating this app profile's traffic from other use cases.
936
+ Structure is documented below.
937
+ """
938
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
939
+
940
+ __props__ = _AppProfileState.__new__(_AppProfileState)
941
+
942
+ __props__.__dict__["app_profile_id"] = app_profile_id
943
+ __props__.__dict__["data_boost_isolation_read_only"] = data_boost_isolation_read_only
944
+ __props__.__dict__["description"] = description
945
+ __props__.__dict__["ignore_warnings"] = ignore_warnings
946
+ __props__.__dict__["instance"] = instance
947
+ __props__.__dict__["multi_cluster_routing_cluster_ids"] = multi_cluster_routing_cluster_ids
948
+ __props__.__dict__["multi_cluster_routing_use_any"] = multi_cluster_routing_use_any
949
+ __props__.__dict__["name"] = name
950
+ __props__.__dict__["project"] = project
951
+ __props__.__dict__["row_affinity"] = row_affinity
952
+ __props__.__dict__["single_cluster_routing"] = single_cluster_routing
953
+ __props__.__dict__["standard_isolation"] = standard_isolation
954
+ return AppProfile(resource_name, opts=opts, __props__=__props__)
955
+
956
+ @property
957
+ @pulumi.getter(name="appProfileId")
958
+ def app_profile_id(self) -> pulumi.Output[builtins.str]:
959
+ """
960
+ The unique name of the app profile in the form `[_a-zA-Z0-9][-_.a-zA-Z0-9]*`.
961
+
962
+
963
+ - - -
964
+ """
965
+ return pulumi.get(self, "app_profile_id")
966
+
967
+ @property
968
+ @pulumi.getter(name="dataBoostIsolationReadOnly")
969
+ def data_boost_isolation_read_only(self) -> pulumi.Output[Optional['outputs.AppProfileDataBoostIsolationReadOnly']]:
970
+ """
971
+ Specifies that this app profile is intended for read-only usage via the Data Boost feature.
972
+ Structure is documented below.
973
+ """
974
+ return pulumi.get(self, "data_boost_isolation_read_only")
975
+
976
+ @property
977
+ @pulumi.getter
978
+ def description(self) -> pulumi.Output[Optional[builtins.str]]:
979
+ """
980
+ Long form description of the use case for this app profile.
981
+ """
982
+ return pulumi.get(self, "description")
983
+
984
+ @property
985
+ @pulumi.getter(name="ignoreWarnings")
986
+ def ignore_warnings(self) -> pulumi.Output[Optional[builtins.bool]]:
987
+ """
988
+ If true, ignore safety checks when deleting/updating the app profile.
989
+ """
990
+ return pulumi.get(self, "ignore_warnings")
991
+
992
+ @property
993
+ @pulumi.getter
994
+ def instance(self) -> pulumi.Output[Optional[builtins.str]]:
995
+ """
996
+ The name of the instance to create the app profile within.
997
+ """
998
+ return pulumi.get(self, "instance")
999
+
1000
+ @property
1001
+ @pulumi.getter(name="multiClusterRoutingClusterIds")
1002
+ def multi_cluster_routing_cluster_ids(self) -> pulumi.Output[Optional[Sequence[builtins.str]]]:
1003
+ """
1004
+ The set of clusters to route to. The order is ignored; clusters will be tried in order of distance. If left empty, all
1005
+ clusters are eligible.
1006
+ """
1007
+ return pulumi.get(self, "multi_cluster_routing_cluster_ids")
1008
+
1009
+ @property
1010
+ @pulumi.getter(name="multiClusterRoutingUseAny")
1011
+ def multi_cluster_routing_use_any(self) -> pulumi.Output[Optional[builtins.bool]]:
1012
+ """
1013
+ If true, read/write requests are routed to the nearest cluster in the instance, and will fail over to the nearest cluster that is available
1014
+ in the event of transient errors or delays. Clusters in a region are considered equidistant. Choosing this option sacrifices read-your-writes
1015
+ consistency to improve availability.
1016
+ """
1017
+ return pulumi.get(self, "multi_cluster_routing_use_any")
1018
+
1019
+ @property
1020
+ @pulumi.getter
1021
+ def name(self) -> pulumi.Output[builtins.str]:
1022
+ """
1023
+ The unique name of the requested app profile. Values are of the form `projects/<project>/instances/<instance>/appProfiles/<appProfileId>`.
1024
+ """
1025
+ return pulumi.get(self, "name")
1026
+
1027
+ @property
1028
+ @pulumi.getter
1029
+ def project(self) -> pulumi.Output[builtins.str]:
1030
+ """
1031
+ The ID of the project in which the resource belongs.
1032
+ If it is not provided, the provider project is used.
1033
+ """
1034
+ return pulumi.get(self, "project")
1035
+
1036
+ @property
1037
+ @pulumi.getter(name="rowAffinity")
1038
+ def row_affinity(self) -> pulumi.Output[Optional[builtins.bool]]:
1039
+ """
1040
+ Must be used with multi-cluster routing. If true, then this app profile will use row affinity sticky routing. With row
1041
+ affinity, Bigtable will route single row key requests based on the row key, rather than randomly. Instead, each row key
1042
+ will be assigned to a cluster by Cloud Bigtable, and will stick to that cluster. Choosing this option improves
1043
+ read-your-writes consistency for most requests under most circumstances, without sacrificing availability. Consistency
1044
+ is not guaranteed, as requests may still fail over between clusters in the event of errors or latency.
1045
+ """
1046
+ return pulumi.get(self, "row_affinity")
1047
+
1048
+ @property
1049
+ @pulumi.getter(name="singleClusterRouting")
1050
+ def single_cluster_routing(self) -> pulumi.Output[Optional['outputs.AppProfileSingleClusterRouting']]:
1051
+ """
1052
+ Use a single-cluster routing policy.
1053
+ Structure is documented below.
1054
+ """
1055
+ return pulumi.get(self, "single_cluster_routing")
1056
+
1057
+ @property
1058
+ @pulumi.getter(name="standardIsolation")
1059
+ def standard_isolation(self) -> pulumi.Output['outputs.AppProfileStandardIsolation']:
1060
+ """
1061
+ The standard options used for isolating this app profile's traffic from other use cases.
1062
+ Structure is documented below.
1063
+ """
1064
+ return pulumi.get(self, "standard_isolation")
1065
+