pulumi-gcp 9.3.0a1759387993__py3-none-any.whl → 9.3.0a1759868184__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 (76) hide show
  1. pulumi_gcp/__init__.py +32 -0
  2. pulumi_gcp/apigee/__init__.py +1 -0
  3. pulumi_gcp/apigee/api_deployment.py +372 -0
  4. pulumi_gcp/apihub/plugin.py +1 -1
  5. pulumi_gcp/artifactregistry/__init__.py +2 -0
  6. pulumi_gcp/artifactregistry/get_maven_artifacts.py +164 -0
  7. pulumi_gcp/artifactregistry/get_npm_packages.py +164 -0
  8. pulumi_gcp/artifactregistry/outputs.py +165 -0
  9. pulumi_gcp/cloudrunv2/_inputs.py +823 -15
  10. pulumi_gcp/cloudrunv2/outputs.py +1749 -743
  11. pulumi_gcp/cloudrunv2/worker_pool.py +110 -0
  12. pulumi_gcp/compute/_inputs.py +28 -0
  13. pulumi_gcp/compute/outputs.py +20 -1
  14. pulumi_gcp/compute/vpn_tunnel.py +97 -23
  15. pulumi_gcp/compute/wire_group.py +2 -0
  16. pulumi_gcp/dataloss/_inputs.py +970 -30
  17. pulumi_gcp/dataloss/outputs.py +850 -20
  18. pulumi_gcp/dataloss/prevention_discovery_config.py +54 -0
  19. pulumi_gcp/diagflow/_inputs.py +66 -0
  20. pulumi_gcp/diagflow/conversation_profile.py +84 -0
  21. pulumi_gcp/diagflow/outputs.py +57 -0
  22. pulumi_gcp/discoveryengine/__init__.py +1 -0
  23. pulumi_gcp/discoveryengine/_inputs.py +187 -0
  24. pulumi_gcp/discoveryengine/data_connector.py +1368 -0
  25. pulumi_gcp/discoveryengine/outputs.py +135 -0
  26. pulumi_gcp/discoveryengine/search_engine.py +47 -0
  27. pulumi_gcp/gkebackup/_inputs.py +111 -0
  28. pulumi_gcp/gkebackup/backup_plan.py +72 -0
  29. pulumi_gcp/gkebackup/outputs.py +84 -0
  30. pulumi_gcp/kms/__init__.py +1 -0
  31. pulumi_gcp/kms/_inputs.py +43 -0
  32. pulumi_gcp/kms/organization_kaj_policy_config.py +290 -0
  33. pulumi_gcp/kms/outputs.py +43 -0
  34. pulumi_gcp/logging/metric.py +2 -2
  35. pulumi_gcp/looker/instance.py +51 -0
  36. pulumi_gcp/managedkafka/connect_cluster.py +20 -82
  37. pulumi_gcp/managedkafka/connector.py +24 -94
  38. pulumi_gcp/netapp/_inputs.py +28 -5
  39. pulumi_gcp/netapp/outputs.py +19 -3
  40. pulumi_gcp/netapp/storage_pool.py +56 -0
  41. pulumi_gcp/netapp/volume.py +28 -0
  42. pulumi_gcp/networkconnectivity/spoke.py +14 -14
  43. pulumi_gcp/networksecurity/mirroring_endpoint_group.py +211 -23
  44. pulumi_gcp/oracledatabase/odb_network.py +101 -2
  45. pulumi_gcp/orgpolicy/policy.py +2 -2
  46. pulumi_gcp/privilegedaccessmanager/_inputs.py +27 -4
  47. pulumi_gcp/privilegedaccessmanager/outputs.py +31 -6
  48. pulumi_gcp/pubsub/get_subscription.py +12 -1
  49. pulumi_gcp/pubsub/get_topic.py +15 -4
  50. pulumi_gcp/pubsub/subscription.py +153 -7
  51. pulumi_gcp/pubsub/topic.py +145 -3
  52. pulumi_gcp/pulumi-plugin.json +1 -1
  53. pulumi_gcp/saasruntime/__init__.py +1 -0
  54. pulumi_gcp/saasruntime/_inputs.py +60 -0
  55. pulumi_gcp/saasruntime/outputs.py +55 -0
  56. pulumi_gcp/saasruntime/rollout_kind.py +1086 -0
  57. pulumi_gcp/sql/_inputs.py +122 -3
  58. pulumi_gcp/sql/database_instance.py +47 -0
  59. pulumi_gcp/sql/get_database_instance.py +12 -1
  60. pulumi_gcp/sql/outputs.py +233 -2
  61. pulumi_gcp/storage/bucket.py +52 -24
  62. pulumi_gcp/storage/get_insights_dataset_config.py +12 -1
  63. pulumi_gcp/storage/insights_dataset_config.py +49 -0
  64. pulumi_gcp/storage/insights_report_config.py +47 -0
  65. pulumi_gcp/vertex/_inputs.py +339 -1
  66. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  67. pulumi_gcp/vertex/ai_endpoint_with_model_garden_deployment.py +102 -0
  68. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  69. pulumi_gcp/vertex/ai_index.py +74 -2
  70. pulumi_gcp/vertex/ai_index_endpoint.py +54 -0
  71. pulumi_gcp/vertex/get_ai_index.py +12 -1
  72. pulumi_gcp/vertex/outputs.py +303 -1
  73. {pulumi_gcp-9.3.0a1759387993.dist-info → pulumi_gcp-9.3.0a1759868184.dist-info}/METADATA +1 -1
  74. {pulumi_gcp-9.3.0a1759387993.dist-info → pulumi_gcp-9.3.0a1759868184.dist-info}/RECORD +76 -70
  75. {pulumi_gcp-9.3.0a1759387993.dist-info → pulumi_gcp-9.3.0a1759868184.dist-info}/WHEEL +0 -0
  76. {pulumi_gcp-9.3.0a1759387993.dist-info → pulumi_gcp-9.3.0a1759868184.dist-info}/top_level.txt +0 -0
@@ -23,6 +23,8 @@ __all__ = [
23
23
  'ChatEngineChatEngineMetadata',
24
24
  'ChatEngineCommonConfig',
25
25
  'CmekConfigSingleRegionKey',
26
+ 'DataConnectorEntity',
27
+ 'DataConnectorError',
26
28
  'DataStoreAdvancedSiteSearchConfig',
27
29
  'DataStoreDocumentProcessingConfig',
28
30
  'DataStoreDocumentProcessingConfigChunkingConfig',
@@ -405,6 +407,139 @@ class CmekConfigSingleRegionKey(dict):
405
407
  return pulumi.get(self, "kms_key")
406
408
 
407
409
 
410
+ @pulumi.output_type
411
+ class DataConnectorEntity(dict):
412
+ @staticmethod
413
+ def __key_warning(key: str):
414
+ suggest = None
415
+ if key == "dataStore":
416
+ suggest = "data_store"
417
+ elif key == "entityName":
418
+ suggest = "entity_name"
419
+ elif key == "keyPropertyMappings":
420
+ suggest = "key_property_mappings"
421
+
422
+ if suggest:
423
+ pulumi.log.warn(f"Key '{key}' not found in DataConnectorEntity. Access the value via the '{suggest}' property getter instead.")
424
+
425
+ def __getitem__(self, key: str) -> Any:
426
+ DataConnectorEntity.__key_warning(key)
427
+ return super().__getitem__(key)
428
+
429
+ def get(self, key: str, default = None) -> Any:
430
+ DataConnectorEntity.__key_warning(key)
431
+ return super().get(key, default)
432
+
433
+ def __init__(__self__, *,
434
+ data_store: Optional[_builtins.str] = None,
435
+ entity_name: Optional[_builtins.str] = None,
436
+ key_property_mappings: Optional[Mapping[str, _builtins.str]] = None,
437
+ params: Optional[Mapping[str, _builtins.str]] = None):
438
+ """
439
+ :param _builtins.str data_store: (Output)
440
+ The full resource name of the associated data store for the source
441
+ entity.
442
+ Format: `projects/*/locations/*/collections/*/dataStores/*`.
443
+ When the connector is initialized by the DataConnectorService.SetUpDataConnector
444
+ method, a DataStore is automatically created for each source entity.
445
+ :param _builtins.str entity_name: The name of the entity. Supported values by data source:
446
+ * Salesforce: `Lead`, `Opportunity`, `Contact`, `Account`, `Case`, `Contract`, `Campaign`
447
+ * Jira: project, issue, attachment, comment, worklog
448
+ * Confluence: `Content`, `Space`
449
+ :param Mapping[str, _builtins.str] key_property_mappings: Attributes for indexing.
450
+ Key: Field name.
451
+ Value: The key property to map a field to, such as `title`, and
452
+ `description`. Supported key properties:
453
+ :param Mapping[str, _builtins.str] params: The parameters for the entity to facilitate data ingestion.
454
+ """
455
+ if data_store is not None:
456
+ pulumi.set(__self__, "data_store", data_store)
457
+ if entity_name is not None:
458
+ pulumi.set(__self__, "entity_name", entity_name)
459
+ if key_property_mappings is not None:
460
+ pulumi.set(__self__, "key_property_mappings", key_property_mappings)
461
+ if params is not None:
462
+ pulumi.set(__self__, "params", params)
463
+
464
+ @_builtins.property
465
+ @pulumi.getter(name="dataStore")
466
+ def data_store(self) -> Optional[_builtins.str]:
467
+ """
468
+ (Output)
469
+ The full resource name of the associated data store for the source
470
+ entity.
471
+ Format: `projects/*/locations/*/collections/*/dataStores/*`.
472
+ When the connector is initialized by the DataConnectorService.SetUpDataConnector
473
+ method, a DataStore is automatically created for each source entity.
474
+ """
475
+ return pulumi.get(self, "data_store")
476
+
477
+ @_builtins.property
478
+ @pulumi.getter(name="entityName")
479
+ def entity_name(self) -> Optional[_builtins.str]:
480
+ """
481
+ The name of the entity. Supported values by data source:
482
+ * Salesforce: `Lead`, `Opportunity`, `Contact`, `Account`, `Case`, `Contract`, `Campaign`
483
+ * Jira: project, issue, attachment, comment, worklog
484
+ * Confluence: `Content`, `Space`
485
+ """
486
+ return pulumi.get(self, "entity_name")
487
+
488
+ @_builtins.property
489
+ @pulumi.getter(name="keyPropertyMappings")
490
+ def key_property_mappings(self) -> Optional[Mapping[str, _builtins.str]]:
491
+ """
492
+ Attributes for indexing.
493
+ Key: Field name.
494
+ Value: The key property to map a field to, such as `title`, and
495
+ `description`. Supported key properties:
496
+ """
497
+ return pulumi.get(self, "key_property_mappings")
498
+
499
+ @_builtins.property
500
+ @pulumi.getter
501
+ def params(self) -> Optional[Mapping[str, _builtins.str]]:
502
+ """
503
+ The parameters for the entity to facilitate data ingestion.
504
+ """
505
+ return pulumi.get(self, "params")
506
+
507
+
508
+ @pulumi.output_type
509
+ class DataConnectorError(dict):
510
+ def __init__(__self__, *,
511
+ code: Optional[_builtins.int] = None,
512
+ message: Optional[_builtins.str] = None):
513
+ """
514
+ :param _builtins.int code: (Output)
515
+ The status code, which should be an enum value of google.rpc.Code.
516
+ :param _builtins.str message: (Output)
517
+ A developer-facing error message, which should be in English.
518
+ """
519
+ if code is not None:
520
+ pulumi.set(__self__, "code", code)
521
+ if message is not None:
522
+ pulumi.set(__self__, "message", message)
523
+
524
+ @_builtins.property
525
+ @pulumi.getter
526
+ def code(self) -> Optional[_builtins.int]:
527
+ """
528
+ (Output)
529
+ The status code, which should be an enum value of google.rpc.Code.
530
+ """
531
+ return pulumi.get(self, "code")
532
+
533
+ @_builtins.property
534
+ @pulumi.getter
535
+ def message(self) -> Optional[_builtins.str]:
536
+ """
537
+ (Output)
538
+ A developer-facing error message, which should be in English.
539
+ """
540
+ return pulumi.get(self, "message")
541
+
542
+
408
543
  @pulumi.output_type
409
544
  class DataStoreAdvancedSiteSearchConfig(dict):
410
545
  @staticmethod
@@ -29,6 +29,7 @@ class SearchEngineArgs:
29
29
  search_engine_config: pulumi.Input['SearchEngineSearchEngineConfigArgs'],
30
30
  app_type: Optional[pulumi.Input[_builtins.str]] = None,
31
31
  common_config: Optional[pulumi.Input['SearchEngineCommonConfigArgs']] = None,
32
+ features: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
32
33
  industry_vertical: Optional[pulumi.Input[_builtins.str]] = None,
33
34
  project: Optional[pulumi.Input[_builtins.str]] = None):
34
35
  """
@@ -44,6 +45,7 @@ class SearchEngineArgs:
44
45
  The supported values: 'APP_TYPE_UNSPECIFIED', 'APP_TYPE_INTRANET'.
45
46
  :param pulumi.Input['SearchEngineCommonConfigArgs'] common_config: Common config spec that specifies the metadata of the engine.
46
47
  Structure is documented below.
48
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] features: A map of the feature config for the engine to opt in or opt out of features.
47
49
  :param pulumi.Input[_builtins.str] industry_vertical: The industry vertical that the engine registers. The restriction of the Engine industry vertical is based on DataStore: If unspecified, default to GENERIC. Vertical on Engine has to match vertical of the DataStore liniked to the engine.
48
50
  Default value is `GENERIC`.
49
51
  Possible values are: `GENERIC`, `MEDIA`, `HEALTHCARE_FHIR`.
@@ -60,6 +62,8 @@ class SearchEngineArgs:
60
62
  pulumi.set(__self__, "app_type", app_type)
61
63
  if common_config is not None:
62
64
  pulumi.set(__self__, "common_config", common_config)
65
+ if features is not None:
66
+ pulumi.set(__self__, "features", features)
63
67
  if industry_vertical is not None:
64
68
  pulumi.set(__self__, "industry_vertical", industry_vertical)
65
69
  if project is not None:
@@ -164,6 +168,18 @@ class SearchEngineArgs:
164
168
  def common_config(self, value: Optional[pulumi.Input['SearchEngineCommonConfigArgs']]):
165
169
  pulumi.set(self, "common_config", value)
166
170
 
171
+ @_builtins.property
172
+ @pulumi.getter
173
+ def features(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
174
+ """
175
+ A map of the feature config for the engine to opt in or opt out of features.
176
+ """
177
+ return pulumi.get(self, "features")
178
+
179
+ @features.setter
180
+ def features(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
181
+ pulumi.set(self, "features", value)
182
+
167
183
  @_builtins.property
168
184
  @pulumi.getter(name="industryVertical")
169
185
  def industry_vertical(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -202,6 +218,7 @@ class _SearchEngineState:
202
218
  data_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
203
219
  display_name: Optional[pulumi.Input[_builtins.str]] = None,
204
220
  engine_id: Optional[pulumi.Input[_builtins.str]] = None,
221
+ features: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
205
222
  industry_vertical: Optional[pulumi.Input[_builtins.str]] = None,
206
223
  location: Optional[pulumi.Input[_builtins.str]] = None,
207
224
  name: Optional[pulumi.Input[_builtins.str]] = None,
@@ -219,6 +236,7 @@ class _SearchEngineState:
219
236
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] data_store_ids: The data stores associated with this engine. For SOLUTION_TYPE_SEARCH type of engines, they can only associate with at most one data store.
220
237
  :param pulumi.Input[_builtins.str] display_name: Required. The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
221
238
  :param pulumi.Input[_builtins.str] engine_id: Unique ID to use for Search Engine App.
239
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] features: A map of the feature config for the engine to opt in or opt out of features.
222
240
  :param pulumi.Input[_builtins.str] industry_vertical: The industry vertical that the engine registers. The restriction of the Engine industry vertical is based on DataStore: If unspecified, default to GENERIC. Vertical on Engine has to match vertical of the DataStore liniked to the engine.
223
241
  Default value is `GENERIC`.
224
242
  Possible values are: `GENERIC`, `MEDIA`, `HEALTHCARE_FHIR`.
@@ -247,6 +265,8 @@ class _SearchEngineState:
247
265
  pulumi.set(__self__, "display_name", display_name)
248
266
  if engine_id is not None:
249
267
  pulumi.set(__self__, "engine_id", engine_id)
268
+ if features is not None:
269
+ pulumi.set(__self__, "features", features)
250
270
  if industry_vertical is not None:
251
271
  pulumi.set(__self__, "industry_vertical", industry_vertical)
252
272
  if location is not None:
@@ -346,6 +366,18 @@ class _SearchEngineState:
346
366
  def engine_id(self, value: Optional[pulumi.Input[_builtins.str]]):
347
367
  pulumi.set(self, "engine_id", value)
348
368
 
369
+ @_builtins.property
370
+ @pulumi.getter
371
+ def features(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
372
+ """
373
+ A map of the feature config for the engine to opt in or opt out of features.
374
+ """
375
+ return pulumi.get(self, "features")
376
+
377
+ @features.setter
378
+ def features(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
379
+ pulumi.set(self, "features", value)
380
+
349
381
  @_builtins.property
350
382
  @pulumi.getter(name="industryVertical")
351
383
  def industry_vertical(self) -> Optional[pulumi.Input[_builtins.str]]:
@@ -438,6 +470,7 @@ class SearchEngine(pulumi.CustomResource):
438
470
  data_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
439
471
  display_name: Optional[pulumi.Input[_builtins.str]] = None,
440
472
  engine_id: Optional[pulumi.Input[_builtins.str]] = None,
473
+ features: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
441
474
  industry_vertical: Optional[pulumi.Input[_builtins.str]] = None,
442
475
  location: Optional[pulumi.Input[_builtins.str]] = None,
443
476
  project: Optional[pulumi.Input[_builtins.str]] = None,
@@ -534,6 +567,7 @@ class SearchEngine(pulumi.CustomResource):
534
567
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] data_store_ids: The data stores associated with this engine. For SOLUTION_TYPE_SEARCH type of engines, they can only associate with at most one data store.
535
568
  :param pulumi.Input[_builtins.str] display_name: Required. The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
536
569
  :param pulumi.Input[_builtins.str] engine_id: Unique ID to use for Search Engine App.
570
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] features: A map of the feature config for the engine to opt in or opt out of features.
537
571
  :param pulumi.Input[_builtins.str] industry_vertical: The industry vertical that the engine registers. The restriction of the Engine industry vertical is based on DataStore: If unspecified, default to GENERIC. Vertical on Engine has to match vertical of the DataStore liniked to the engine.
538
572
  Default value is `GENERIC`.
539
573
  Possible values are: `GENERIC`, `MEDIA`, `HEALTHCARE_FHIR`.
@@ -651,6 +685,7 @@ class SearchEngine(pulumi.CustomResource):
651
685
  data_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
652
686
  display_name: Optional[pulumi.Input[_builtins.str]] = None,
653
687
  engine_id: Optional[pulumi.Input[_builtins.str]] = None,
688
+ features: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
654
689
  industry_vertical: Optional[pulumi.Input[_builtins.str]] = None,
655
690
  location: Optional[pulumi.Input[_builtins.str]] = None,
656
691
  project: Optional[pulumi.Input[_builtins.str]] = None,
@@ -678,6 +713,7 @@ class SearchEngine(pulumi.CustomResource):
678
713
  if engine_id is None and not opts.urn:
679
714
  raise TypeError("Missing required property 'engine_id'")
680
715
  __props__.__dict__["engine_id"] = engine_id
716
+ __props__.__dict__["features"] = features
681
717
  __props__.__dict__["industry_vertical"] = industry_vertical
682
718
  if location is None and not opts.urn:
683
719
  raise TypeError("Missing required property 'location'")
@@ -706,6 +742,7 @@ class SearchEngine(pulumi.CustomResource):
706
742
  data_store_ids: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
707
743
  display_name: Optional[pulumi.Input[_builtins.str]] = None,
708
744
  engine_id: Optional[pulumi.Input[_builtins.str]] = None,
745
+ features: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
709
746
  industry_vertical: Optional[pulumi.Input[_builtins.str]] = None,
710
747
  location: Optional[pulumi.Input[_builtins.str]] = None,
711
748
  name: Optional[pulumi.Input[_builtins.str]] = None,
@@ -728,6 +765,7 @@ class SearchEngine(pulumi.CustomResource):
728
765
  :param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] data_store_ids: The data stores associated with this engine. For SOLUTION_TYPE_SEARCH type of engines, they can only associate with at most one data store.
729
766
  :param pulumi.Input[_builtins.str] display_name: Required. The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
730
767
  :param pulumi.Input[_builtins.str] engine_id: Unique ID to use for Search Engine App.
768
+ :param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] features: A map of the feature config for the engine to opt in or opt out of features.
731
769
  :param pulumi.Input[_builtins.str] industry_vertical: The industry vertical that the engine registers. The restriction of the Engine industry vertical is based on DataStore: If unspecified, default to GENERIC. Vertical on Engine has to match vertical of the DataStore liniked to the engine.
732
770
  Default value is `GENERIC`.
733
771
  Possible values are: `GENERIC`, `MEDIA`, `HEALTHCARE_FHIR`.
@@ -753,6 +791,7 @@ class SearchEngine(pulumi.CustomResource):
753
791
  __props__.__dict__["data_store_ids"] = data_store_ids
754
792
  __props__.__dict__["display_name"] = display_name
755
793
  __props__.__dict__["engine_id"] = engine_id
794
+ __props__.__dict__["features"] = features
756
795
  __props__.__dict__["industry_vertical"] = industry_vertical
757
796
  __props__.__dict__["location"] = location
758
797
  __props__.__dict__["name"] = name
@@ -819,6 +858,14 @@ class SearchEngine(pulumi.CustomResource):
819
858
  """
820
859
  return pulumi.get(self, "engine_id")
821
860
 
861
+ @_builtins.property
862
+ @pulumi.getter
863
+ def features(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
864
+ """
865
+ A map of the feature config for the engine to opt in or opt out of features.
866
+ """
867
+ return pulumi.get(self, "features")
868
+
822
869
  @_builtins.property
823
870
  @pulumi.getter(name="industryVertical")
824
871
  def industry_vertical(self) -> pulumi.Output[Optional[_builtins.str]]:
@@ -23,6 +23,10 @@ __all__ = [
23
23
  'BackupPlanBackupConfigSelectedApplicationsArgsDict',
24
24
  'BackupPlanBackupConfigSelectedApplicationsNamespacedNameArgs',
25
25
  'BackupPlanBackupConfigSelectedApplicationsNamespacedNameArgsDict',
26
+ 'BackupPlanBackupConfigSelectedNamespaceLabelsArgs',
27
+ 'BackupPlanBackupConfigSelectedNamespaceLabelsArgsDict',
28
+ 'BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgs',
29
+ 'BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgsDict',
26
30
  'BackupPlanBackupConfigSelectedNamespacesArgs',
27
31
  'BackupPlanBackupConfigSelectedNamespacesArgsDict',
28
32
  'BackupPlanBackupScheduleArgs',
@@ -118,6 +122,11 @@ if not MYPY:
118
122
  A list of namespaced Kubernetes Resources.
119
123
  Structure is documented below.
120
124
  """
125
+ selected_namespace_labels: NotRequired[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsArgsDict']]
126
+ """
127
+ If set, include just the resources in the listed namespace Labels.
128
+ Structure is documented below.
129
+ """
121
130
  selected_namespaces: NotRequired[pulumi.Input['BackupPlanBackupConfigSelectedNamespacesArgsDict']]
122
131
  """
123
132
  If set, include just the resources in the listed namespaces.
@@ -135,6 +144,7 @@ class BackupPlanBackupConfigArgs:
135
144
  include_volume_data: Optional[pulumi.Input[_builtins.bool]] = None,
136
145
  permissive_mode: Optional[pulumi.Input[_builtins.bool]] = None,
137
146
  selected_applications: Optional[pulumi.Input['BackupPlanBackupConfigSelectedApplicationsArgs']] = None,
147
+ selected_namespace_labels: Optional[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsArgs']] = None,
138
148
  selected_namespaces: Optional[pulumi.Input['BackupPlanBackupConfigSelectedNamespacesArgs']] = None):
139
149
  """
140
150
  :param pulumi.Input[_builtins.bool] all_namespaces: If True, include all namespaced resources.
@@ -150,6 +160,8 @@ class BackupPlanBackupConfigArgs:
150
160
  non-standard or requires additional setup to restore.
151
161
  :param pulumi.Input['BackupPlanBackupConfigSelectedApplicationsArgs'] selected_applications: A list of namespaced Kubernetes Resources.
152
162
  Structure is documented below.
163
+ :param pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsArgs'] selected_namespace_labels: If set, include just the resources in the listed namespace Labels.
164
+ Structure is documented below.
153
165
  :param pulumi.Input['BackupPlanBackupConfigSelectedNamespacesArgs'] selected_namespaces: If set, include just the resources in the listed namespaces.
154
166
  Structure is documented below.
155
167
  """
@@ -165,6 +177,8 @@ class BackupPlanBackupConfigArgs:
165
177
  pulumi.set(__self__, "permissive_mode", permissive_mode)
166
178
  if selected_applications is not None:
167
179
  pulumi.set(__self__, "selected_applications", selected_applications)
180
+ if selected_namespace_labels is not None:
181
+ pulumi.set(__self__, "selected_namespace_labels", selected_namespace_labels)
168
182
  if selected_namespaces is not None:
169
183
  pulumi.set(__self__, "selected_namespaces", selected_namespaces)
170
184
 
@@ -247,6 +261,19 @@ class BackupPlanBackupConfigArgs:
247
261
  def selected_applications(self, value: Optional[pulumi.Input['BackupPlanBackupConfigSelectedApplicationsArgs']]):
248
262
  pulumi.set(self, "selected_applications", value)
249
263
 
264
+ @_builtins.property
265
+ @pulumi.getter(name="selectedNamespaceLabels")
266
+ def selected_namespace_labels(self) -> Optional[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsArgs']]:
267
+ """
268
+ If set, include just the resources in the listed namespace Labels.
269
+ Structure is documented below.
270
+ """
271
+ return pulumi.get(self, "selected_namespace_labels")
272
+
273
+ @selected_namespace_labels.setter
274
+ def selected_namespace_labels(self, value: Optional[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsArgs']]):
275
+ pulumi.set(self, "selected_namespace_labels", value)
276
+
250
277
  @_builtins.property
251
278
  @pulumi.getter(name="selectedNamespaces")
252
279
  def selected_namespaces(self) -> Optional[pulumi.Input['BackupPlanBackupConfigSelectedNamespacesArgs']]:
@@ -376,6 +403,90 @@ class BackupPlanBackupConfigSelectedApplicationsNamespacedNameArgs:
376
403
  pulumi.set(self, "namespace", value)
377
404
 
378
405
 
406
+ if not MYPY:
407
+ class BackupPlanBackupConfigSelectedNamespaceLabelsArgsDict(TypedDict):
408
+ resource_labels: pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgsDict']]]
409
+ """
410
+ A list of Kubernetes Namespace labels.
411
+ Structure is documented below.
412
+ """
413
+ elif False:
414
+ BackupPlanBackupConfigSelectedNamespaceLabelsArgsDict: TypeAlias = Mapping[str, Any]
415
+
416
+ @pulumi.input_type
417
+ class BackupPlanBackupConfigSelectedNamespaceLabelsArgs:
418
+ def __init__(__self__, *,
419
+ resource_labels: pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgs']]]):
420
+ """
421
+ :param pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgs']]] resource_labels: A list of Kubernetes Namespace labels.
422
+ Structure is documented below.
423
+ """
424
+ pulumi.set(__self__, "resource_labels", resource_labels)
425
+
426
+ @_builtins.property
427
+ @pulumi.getter(name="resourceLabels")
428
+ def resource_labels(self) -> pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgs']]]:
429
+ """
430
+ A list of Kubernetes Namespace labels.
431
+ Structure is documented below.
432
+ """
433
+ return pulumi.get(self, "resource_labels")
434
+
435
+ @resource_labels.setter
436
+ def resource_labels(self, value: pulumi.Input[Sequence[pulumi.Input['BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgs']]]):
437
+ pulumi.set(self, "resource_labels", value)
438
+
439
+
440
+ if not MYPY:
441
+ class BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgsDict(TypedDict):
442
+ key: pulumi.Input[_builtins.str]
443
+ """
444
+ The key of the kubernetes label.
445
+ """
446
+ value: pulumi.Input[_builtins.str]
447
+ """
448
+ The value of the Label.
449
+ """
450
+ elif False:
451
+ BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgsDict: TypeAlias = Mapping[str, Any]
452
+
453
+ @pulumi.input_type
454
+ class BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgs:
455
+ def __init__(__self__, *,
456
+ key: pulumi.Input[_builtins.str],
457
+ value: pulumi.Input[_builtins.str]):
458
+ """
459
+ :param pulumi.Input[_builtins.str] key: The key of the kubernetes label.
460
+ :param pulumi.Input[_builtins.str] value: The value of the Label.
461
+ """
462
+ pulumi.set(__self__, "key", key)
463
+ pulumi.set(__self__, "value", value)
464
+
465
+ @_builtins.property
466
+ @pulumi.getter
467
+ def key(self) -> pulumi.Input[_builtins.str]:
468
+ """
469
+ The key of the kubernetes label.
470
+ """
471
+ return pulumi.get(self, "key")
472
+
473
+ @key.setter
474
+ def key(self, value: pulumi.Input[_builtins.str]):
475
+ pulumi.set(self, "key", value)
476
+
477
+ @_builtins.property
478
+ @pulumi.getter
479
+ def value(self) -> pulumi.Input[_builtins.str]:
480
+ """
481
+ The value of the Label.
482
+ """
483
+ return pulumi.get(self, "value")
484
+
485
+ @value.setter
486
+ def value(self, value: pulumi.Input[_builtins.str]):
487
+ pulumi.set(self, "value", value)
488
+
489
+
379
490
  if not MYPY:
380
491
  class BackupPlanBackupConfigSelectedNamespacesArgsDict(TypedDict):
381
492
  namespaces: pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]
@@ -660,6 +660,42 @@ class BackupPlan(pulumi.CustomResource):
660
660
  },
661
661
  })
662
662
  ```
663
+ ### Gkebackup Backupplan Nslabels
664
+
665
+ ```python
666
+ import pulumi
667
+ import pulumi_gcp as gcp
668
+
669
+ primary = gcp.container.Cluster("primary",
670
+ name="nslabels-cluster",
671
+ location="us-central1",
672
+ initial_node_count=1,
673
+ workload_identity_config={
674
+ "workload_pool": "my-project-name.svc.id.goog",
675
+ },
676
+ addons_config={
677
+ "gke_backup_agent_config": {
678
+ "enabled": True,
679
+ },
680
+ },
681
+ deletion_protection=True,
682
+ network="default",
683
+ subnetwork="default")
684
+ nslabels = gcp.gkebackup.BackupPlan("nslabels",
685
+ name="nslabels-plan",
686
+ cluster=primary.id,
687
+ location="us-central1",
688
+ backup_config={
689
+ "include_volume_data": True,
690
+ "include_secrets": True,
691
+ "selected_namespace_labels": {
692
+ "resource_labels": [{
693
+ "key": "key1",
694
+ "value": "value1",
695
+ }],
696
+ },
697
+ })
698
+ ```
663
699
  ### Gkebackup Backupplan Full
664
700
 
665
701
  ```python
@@ -1077,6 +1113,42 @@ class BackupPlan(pulumi.CustomResource):
1077
1113
  },
1078
1114
  })
1079
1115
  ```
1116
+ ### Gkebackup Backupplan Nslabels
1117
+
1118
+ ```python
1119
+ import pulumi
1120
+ import pulumi_gcp as gcp
1121
+
1122
+ primary = gcp.container.Cluster("primary",
1123
+ name="nslabels-cluster",
1124
+ location="us-central1",
1125
+ initial_node_count=1,
1126
+ workload_identity_config={
1127
+ "workload_pool": "my-project-name.svc.id.goog",
1128
+ },
1129
+ addons_config={
1130
+ "gke_backup_agent_config": {
1131
+ "enabled": True,
1132
+ },
1133
+ },
1134
+ deletion_protection=True,
1135
+ network="default",
1136
+ subnetwork="default")
1137
+ nslabels = gcp.gkebackup.BackupPlan("nslabels",
1138
+ name="nslabels-plan",
1139
+ cluster=primary.id,
1140
+ location="us-central1",
1141
+ backup_config={
1142
+ "include_volume_data": True,
1143
+ "include_secrets": True,
1144
+ "selected_namespace_labels": {
1145
+ "resource_labels": [{
1146
+ "key": "key1",
1147
+ "value": "value1",
1148
+ }],
1149
+ },
1150
+ })
1151
+ ```
1080
1152
  ### Gkebackup Backupplan Full
1081
1153
 
1082
1154
  ```python
@@ -20,6 +20,8 @@ __all__ = [
20
20
  'BackupPlanBackupConfigEncryptionKey',
21
21
  'BackupPlanBackupConfigSelectedApplications',
22
22
  'BackupPlanBackupConfigSelectedApplicationsNamespacedName',
23
+ 'BackupPlanBackupConfigSelectedNamespaceLabels',
24
+ 'BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabel',
23
25
  'BackupPlanBackupConfigSelectedNamespaces',
24
26
  'BackupPlanBackupSchedule',
25
27
  'BackupPlanBackupScheduleRpoConfig',
@@ -68,6 +70,8 @@ class BackupPlanBackupConfig(dict):
68
70
  suggest = "permissive_mode"
69
71
  elif key == "selectedApplications":
70
72
  suggest = "selected_applications"
73
+ elif key == "selectedNamespaceLabels":
74
+ suggest = "selected_namespace_labels"
71
75
  elif key == "selectedNamespaces":
72
76
  suggest = "selected_namespaces"
73
77
 
@@ -89,6 +93,7 @@ class BackupPlanBackupConfig(dict):
89
93
  include_volume_data: Optional[_builtins.bool] = None,
90
94
  permissive_mode: Optional[_builtins.bool] = None,
91
95
  selected_applications: Optional['outputs.BackupPlanBackupConfigSelectedApplications'] = None,
96
+ selected_namespace_labels: Optional['outputs.BackupPlanBackupConfigSelectedNamespaceLabels'] = None,
92
97
  selected_namespaces: Optional['outputs.BackupPlanBackupConfigSelectedNamespaces'] = None):
93
98
  """
94
99
  :param _builtins.bool all_namespaces: If True, include all namespaced resources.
@@ -104,6 +109,8 @@ class BackupPlanBackupConfig(dict):
104
109
  non-standard or requires additional setup to restore.
105
110
  :param 'BackupPlanBackupConfigSelectedApplicationsArgs' selected_applications: A list of namespaced Kubernetes Resources.
106
111
  Structure is documented below.
112
+ :param 'BackupPlanBackupConfigSelectedNamespaceLabelsArgs' selected_namespace_labels: If set, include just the resources in the listed namespace Labels.
113
+ Structure is documented below.
107
114
  :param 'BackupPlanBackupConfigSelectedNamespacesArgs' selected_namespaces: If set, include just the resources in the listed namespaces.
108
115
  Structure is documented below.
109
116
  """
@@ -119,6 +126,8 @@ class BackupPlanBackupConfig(dict):
119
126
  pulumi.set(__self__, "permissive_mode", permissive_mode)
120
127
  if selected_applications is not None:
121
128
  pulumi.set(__self__, "selected_applications", selected_applications)
129
+ if selected_namespace_labels is not None:
130
+ pulumi.set(__self__, "selected_namespace_labels", selected_namespace_labels)
122
131
  if selected_namespaces is not None:
123
132
  pulumi.set(__self__, "selected_namespaces", selected_namespaces)
124
133
 
@@ -177,6 +186,15 @@ class BackupPlanBackupConfig(dict):
177
186
  """
178
187
  return pulumi.get(self, "selected_applications")
179
188
 
189
+ @_builtins.property
190
+ @pulumi.getter(name="selectedNamespaceLabels")
191
+ def selected_namespace_labels(self) -> Optional['outputs.BackupPlanBackupConfigSelectedNamespaceLabels']:
192
+ """
193
+ If set, include just the resources in the listed namespace Labels.
194
+ Structure is documented below.
195
+ """
196
+ return pulumi.get(self, "selected_namespace_labels")
197
+
180
198
  @_builtins.property
181
199
  @pulumi.getter(name="selectedNamespaces")
182
200
  def selected_namespaces(self) -> Optional['outputs.BackupPlanBackupConfigSelectedNamespaces']:
@@ -288,6 +306,72 @@ class BackupPlanBackupConfigSelectedApplicationsNamespacedName(dict):
288
306
  return pulumi.get(self, "namespace")
289
307
 
290
308
 
309
+ @pulumi.output_type
310
+ class BackupPlanBackupConfigSelectedNamespaceLabels(dict):
311
+ @staticmethod
312
+ def __key_warning(key: str):
313
+ suggest = None
314
+ if key == "resourceLabels":
315
+ suggest = "resource_labels"
316
+
317
+ if suggest:
318
+ pulumi.log.warn(f"Key '{key}' not found in BackupPlanBackupConfigSelectedNamespaceLabels. Access the value via the '{suggest}' property getter instead.")
319
+
320
+ def __getitem__(self, key: str) -> Any:
321
+ BackupPlanBackupConfigSelectedNamespaceLabels.__key_warning(key)
322
+ return super().__getitem__(key)
323
+
324
+ def get(self, key: str, default = None) -> Any:
325
+ BackupPlanBackupConfigSelectedNamespaceLabels.__key_warning(key)
326
+ return super().get(key, default)
327
+
328
+ def __init__(__self__, *,
329
+ resource_labels: Sequence['outputs.BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabel']):
330
+ """
331
+ :param Sequence['BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabelArgs'] resource_labels: A list of Kubernetes Namespace labels.
332
+ Structure is documented below.
333
+ """
334
+ pulumi.set(__self__, "resource_labels", resource_labels)
335
+
336
+ @_builtins.property
337
+ @pulumi.getter(name="resourceLabels")
338
+ def resource_labels(self) -> Sequence['outputs.BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabel']:
339
+ """
340
+ A list of Kubernetes Namespace labels.
341
+ Structure is documented below.
342
+ """
343
+ return pulumi.get(self, "resource_labels")
344
+
345
+
346
+ @pulumi.output_type
347
+ class BackupPlanBackupConfigSelectedNamespaceLabelsResourceLabel(dict):
348
+ def __init__(__self__, *,
349
+ key: _builtins.str,
350
+ value: _builtins.str):
351
+ """
352
+ :param _builtins.str key: The key of the kubernetes label.
353
+ :param _builtins.str value: The value of the Label.
354
+ """
355
+ pulumi.set(__self__, "key", key)
356
+ pulumi.set(__self__, "value", value)
357
+
358
+ @_builtins.property
359
+ @pulumi.getter
360
+ def key(self) -> _builtins.str:
361
+ """
362
+ The key of the kubernetes label.
363
+ """
364
+ return pulumi.get(self, "key")
365
+
366
+ @_builtins.property
367
+ @pulumi.getter
368
+ def value(self) -> _builtins.str:
369
+ """
370
+ The value of the Label.
371
+ """
372
+ return pulumi.get(self, "value")
373
+
374
+
291
375
  @pulumi.output_type
292
376
  class BackupPlanBackupConfigSelectedNamespaces(dict):
293
377
  def __init__(__self__, *,