pulumi-gcp 8.18.0a1738650987__py3-none-any.whl → 8.19.0__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 (130) hide show
  1. pulumi_gcp/__init__.py +104 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +288 -78
  3. pulumi_gcp/accesscontextmanager/outputs.py +186 -54
  4. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +28 -0
  5. pulumi_gcp/alloydb/user.py +10 -1
  6. pulumi_gcp/appengine/_inputs.py +3 -0
  7. pulumi_gcp/appengine/outputs.py +2 -0
  8. pulumi_gcp/assuredworkloads/workload.py +7 -7
  9. pulumi_gcp/beyondcorp/__init__.py +9 -0
  10. pulumi_gcp/beyondcorp/_inputs.py +319 -0
  11. pulumi_gcp/beyondcorp/application.py +604 -0
  12. pulumi_gcp/beyondcorp/application_iam_binding.py +1049 -0
  13. pulumi_gcp/beyondcorp/application_iam_member.py +1049 -0
  14. pulumi_gcp/beyondcorp/application_iam_policy.py +868 -0
  15. pulumi_gcp/beyondcorp/get_application_iam_policy.py +174 -0
  16. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +180 -0
  17. pulumi_gcp/beyondcorp/outputs.py +187 -0
  18. pulumi_gcp/beyondcorp/security_gateway.py +52 -25
  19. pulumi_gcp/beyondcorp/security_gateway_iam_binding.py +1075 -0
  20. pulumi_gcp/beyondcorp/security_gateway_iam_member.py +1075 -0
  21. pulumi_gcp/beyondcorp/security_gateway_iam_policy.py +894 -0
  22. pulumi_gcp/bigquery/_inputs.py +33 -0
  23. pulumi_gcp/bigquery/dataset.py +7 -7
  24. pulumi_gcp/bigquery/outputs.py +36 -0
  25. pulumi_gcp/bigquery/table.py +61 -7
  26. pulumi_gcp/bigqueryanalyticshub/__init__.py +1 -0
  27. pulumi_gcp/bigqueryanalyticshub/_inputs.py +318 -0
  28. pulumi_gcp/bigqueryanalyticshub/listing_subscription.py +808 -0
  29. pulumi_gcp/bigqueryanalyticshub/outputs.py +263 -0
  30. pulumi_gcp/certificateauthority/_inputs.py +54 -0
  31. pulumi_gcp/certificateauthority/authority.py +149 -3
  32. pulumi_gcp/certificateauthority/get_authority.py +15 -4
  33. pulumi_gcp/certificateauthority/outputs.py +81 -0
  34. pulumi_gcp/chronicle/retrohunt.py +0 -16
  35. pulumi_gcp/cloudquota/s_quota_adjuster_settings.py +23 -23
  36. pulumi_gcp/cloudrunv2/_inputs.py +112 -0
  37. pulumi_gcp/cloudrunv2/outputs.py +144 -1
  38. pulumi_gcp/cloudrunv2/service.py +2 -0
  39. pulumi_gcp/colab/__init__.py +2 -0
  40. pulumi_gcp/colab/_inputs.py +655 -0
  41. pulumi_gcp/colab/notebook_execution.py +1259 -0
  42. pulumi_gcp/colab/outputs.py +512 -0
  43. pulumi_gcp/colab/runtime.py +266 -2
  44. pulumi_gcp/colab/runtime_template.py +79 -3
  45. pulumi_gcp/colab/schedule.py +1318 -0
  46. pulumi_gcp/compute/__init__.py +1 -0
  47. pulumi_gcp/compute/_inputs.py +213 -9
  48. pulumi_gcp/compute/firewall_policy.py +54 -43
  49. pulumi_gcp/compute/forwarding_rule.py +103 -0
  50. pulumi_gcp/compute/get_forwarding_rule.py +12 -1
  51. pulumi_gcp/compute/get_network.py +3 -3
  52. pulumi_gcp/compute/interconnect_attachment.py +12 -0
  53. pulumi_gcp/compute/network.py +7 -7
  54. pulumi_gcp/compute/network_firewall_policy_packet_mirroring_rule.py +1011 -0
  55. pulumi_gcp/compute/outputs.py +193 -6
  56. pulumi_gcp/compute/public_advertised_prefix.py +35 -7
  57. pulumi_gcp/compute/public_delegated_prefix.py +171 -7
  58. pulumi_gcp/compute/region_resize_request.py +21 -22
  59. pulumi_gcp/compute/resize_request.py +22 -23
  60. pulumi_gcp/compute/router_peer.py +112 -0
  61. pulumi_gcp/compute/subnetwork.py +14 -7
  62. pulumi_gcp/container/_inputs.py +133 -21
  63. pulumi_gcp/container/outputs.py +154 -13
  64. pulumi_gcp/dataproc/_inputs.py +34 -0
  65. pulumi_gcp/dataproc/outputs.py +37 -0
  66. pulumi_gcp/dataproc/workflow_template.py +47 -0
  67. pulumi_gcp/datastream/connection_profile.py +120 -46
  68. pulumi_gcp/discoveryengine/chat_engine.py +7 -7
  69. pulumi_gcp/filestore/_inputs.py +222 -0
  70. pulumi_gcp/filestore/get_instance.py +23 -1
  71. pulumi_gcp/filestore/instance.py +86 -0
  72. pulumi_gcp/filestore/outputs.py +282 -0
  73. pulumi_gcp/firestore/field.py +60 -0
  74. pulumi_gcp/gemini/__init__.py +2 -0
  75. pulumi_gcp/gemini/logging_setting.py +671 -0
  76. pulumi_gcp/gemini/release_channel_setting.py +639 -0
  77. pulumi_gcp/gkehub/_inputs.py +20 -0
  78. pulumi_gcp/gkehub/membership_binding.py +6 -6
  79. pulumi_gcp/gkehub/membership_rbac_role_binding.py +4 -4
  80. pulumi_gcp/gkehub/namespace.py +4 -4
  81. pulumi_gcp/gkehub/outputs.py +26 -1
  82. pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -4
  83. pulumi_gcp/iap/tunnel_dest_group.py +2 -2
  84. pulumi_gcp/integrationconnectors/managed_zone.py +8 -8
  85. pulumi_gcp/memorystore/_inputs.py +296 -0
  86. pulumi_gcp/memorystore/instance.py +32 -28
  87. pulumi_gcp/memorystore/outputs.py +224 -0
  88. pulumi_gcp/monitoring/_inputs.py +12 -9
  89. pulumi_gcp/monitoring/outputs.py +8 -6
  90. pulumi_gcp/netapp/storage_pool.py +1 -1
  91. pulumi_gcp/networkconnectivity/spoke.py +76 -14
  92. pulumi_gcp/networkservices/_inputs.py +89 -0
  93. pulumi_gcp/networkservices/outputs.py +75 -0
  94. pulumi_gcp/orgpolicy/policy.py +2 -2
  95. pulumi_gcp/parametermanager/__init__.py +5 -0
  96. pulumi_gcp/parametermanager/get_parameter_version.py +216 -0
  97. pulumi_gcp/parametermanager/get_parameter_version_render.py +199 -0
  98. pulumi_gcp/parametermanager/get_parameters.py +140 -0
  99. pulumi_gcp/parametermanager/get_regional_parameter_version.py +235 -0
  100. pulumi_gcp/parametermanager/get_regional_parameter_version_render.py +220 -0
  101. pulumi_gcp/parametermanager/outputs.py +156 -0
  102. pulumi_gcp/privilegedaccessmanager/entitlement.py +14 -0
  103. pulumi_gcp/pubsub/_inputs.py +264 -0
  104. pulumi_gcp/pubsub/outputs.py +353 -0
  105. pulumi_gcp/pubsub/subscription.py +6 -6
  106. pulumi_gcp/pubsub/topic.py +70 -0
  107. pulumi_gcp/pulumi-plugin.json +1 -1
  108. pulumi_gcp/resourcemanager/lien.py +12 -0
  109. pulumi_gcp/secretmanager/regional_secret.py +4 -0
  110. pulumi_gcp/secretmanager/regional_secret_version.py +12 -0
  111. pulumi_gcp/secretmanager/secret.py +4 -0
  112. pulumi_gcp/secretmanager/secret_version.py +12 -0
  113. pulumi_gcp/securesourcemanager/branch_rule.py +4 -0
  114. pulumi_gcp/securesourcemanager/repository.py +4 -0
  115. pulumi_gcp/securityposture/posture.py +4 -0
  116. pulumi_gcp/securityposture/posture_deployment.py +4 -0
  117. pulumi_gcp/serviceaccount/get_s.py +98 -8
  118. pulumi_gcp/spanner/_inputs.py +68 -0
  119. pulumi_gcp/spanner/backup_schedule.py +70 -4
  120. pulumi_gcp/spanner/outputs.py +60 -0
  121. pulumi_gcp/storage/bucket_object.py +8 -0
  122. pulumi_gcp/storage/get_bucket_object_content.py +4 -4
  123. pulumi_gcp/vertex/ai_endpoint.py +4 -4
  124. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +4 -4
  125. pulumi_gcp/workbench/instance.py +70 -2
  126. pulumi_gcp/workflows/workflow.py +175 -0
  127. {pulumi_gcp-8.18.0a1738650987.dist-info → pulumi_gcp-8.19.0.dist-info}/METADATA +1 -1
  128. {pulumi_gcp-8.18.0a1738650987.dist-info → pulumi_gcp-8.19.0.dist-info}/RECORD +130 -110
  129. {pulumi_gcp-8.18.0a1738650987.dist-info → pulumi_gcp-8.19.0.dist-info}/WHEEL +0 -0
  130. {pulumi_gcp-8.18.0a1738650987.dist-info → pulumi_gcp-8.19.0.dist-info}/top_level.txt +0 -0
@@ -634,18 +634,23 @@ class ConnectionProfile(pulumi.CustomResource):
634
634
  import pulumi_gcp as gcp
635
635
  import pulumi_random as random
636
636
 
637
- default = gcp.compute.Network("default", name="my-network")
637
+ default = gcp.compute.Network("default",
638
+ name="my-network",
639
+ auto_create_subnetworks=False)
640
+ default_subnetwork = gcp.compute.Subnetwork("default",
641
+ name="my-subnetwork",
642
+ ip_cidr_range="10.1.0.0/16",
643
+ region="us-central1",
644
+ network=default.id)
638
645
  private_connection = gcp.datastream.PrivateConnection("private_connection",
639
- display_name="Connection profile",
646
+ display_name="Private connection",
640
647
  location="us-central1",
641
648
  private_connection_id="my-connection",
642
- labels={
643
- "key": "value",
644
- },
645
649
  vpc_peering_config={
646
650
  "vpc": default.id,
647
651
  "subnet": "10.0.0.0/29",
648
652
  })
653
+ nat_vm_ip = gcp.compute.Address("nat_vm_ip", name="nat-vm-ip")
649
654
  instance = gcp.sql.DatabaseInstance("instance",
650
655
  name="my-instance",
651
656
  database_version="POSTGRES_14",
@@ -653,23 +658,9 @@ class ConnectionProfile(pulumi.CustomResource):
653
658
  settings={
654
659
  "tier": "db-f1-micro",
655
660
  "ip_configuration": {
656
- "authorized_networks": [
657
- {
658
- "value": "34.71.242.81",
659
- },
660
- {
661
- "value": "34.72.28.29",
662
- },
663
- {
664
- "value": "34.67.6.157",
665
- },
666
- {
667
- "value": "34.67.234.134",
668
- },
669
- {
670
- "value": "34.72.239.218",
671
- },
672
- ],
661
+ "authorized_networks": [{
662
+ "value": nat_vm_ip.address,
663
+ }],
673
664
  },
674
665
  },
675
666
  deletion_protection=True)
@@ -683,15 +674,61 @@ class ConnectionProfile(pulumi.CustomResource):
683
674
  name="user",
684
675
  instance=instance.name,
685
676
  password=pwd.result)
677
+ nat_vm = gcp.compute.Instance("nat_vm",
678
+ name="nat-vm",
679
+ machine_type="e2-medium",
680
+ zone="us-central1-a",
681
+ desired_status="RUNNING",
682
+ boot_disk={
683
+ "initialize_params": {
684
+ "image": "debian-cloud/debian-12",
685
+ },
686
+ },
687
+ network_interfaces=[{
688
+ "network": private_connection.vpc_peering_config.vpc,
689
+ "subnetwork": default_subnetwork.self_link,
690
+ "access_configs": [{
691
+ "nat_ip": nat_vm_ip.address,
692
+ }],
693
+ }],
694
+ metadata_startup_script=instance.public_ip_address.apply(lambda public_ip_address: f\"\"\"#! /bin/bash
695
+ # See https://cloud.google.com/datastream/docs/private-connectivity#set-up-reverse-proxy
696
+ export DB_ADDR={public_ip_address}
697
+ export DB_PORT=5432
698
+ echo 1 > /proc/sys/net/ipv4/ip_forward
699
+ md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance"
700
+ vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${{md_url_prefix}}/network-interfaces/0/ip)"
701
+ iptables -t nat -F
702
+ iptables -t nat -A PREROUTING \\
703
+ -p tcp --dport $DB_PORT \\
704
+ -j DNAT \\
705
+ --to-destination $DB_ADDR
706
+ iptables -t nat -A POSTROUTING \\
707
+ -p tcp --dport $DB_PORT \\
708
+ -j SNAT \\
709
+ --to-source $vm_nic_ip
710
+ iptables-save
711
+ \"\"\"))
712
+ rules = gcp.compute.Firewall("rules",
713
+ name="ingress-rule",
714
+ network=private_connection.vpc_peering_config.vpc,
715
+ description="Allow traffic into NAT VM",
716
+ direction="INGRESS",
717
+ allows=[{
718
+ "protocol": "tcp",
719
+ "ports": ["5432"],
720
+ }],
721
+ source_ranges=[private_connection.vpc_peering_config.subnet])
686
722
  default_connection_profile = gcp.datastream.ConnectionProfile("default",
687
723
  display_name="Connection profile",
688
724
  location="us-central1",
689
725
  connection_profile_id="my-profile",
690
726
  postgresql_profile={
691
- "hostname": instance.public_ip_address,
727
+ "hostname": nat_vm.network_interfaces[0].network_ip,
692
728
  "username": user.name,
693
729
  "password": user.password,
694
730
  "database": db.name,
731
+ "port": 5432,
695
732
  },
696
733
  private_connectivity={
697
734
  "private_connection": private_connection.id,
@@ -923,18 +960,23 @@ class ConnectionProfile(pulumi.CustomResource):
923
960
  import pulumi_gcp as gcp
924
961
  import pulumi_random as random
925
962
 
926
- default = gcp.compute.Network("default", name="my-network")
963
+ default = gcp.compute.Network("default",
964
+ name="my-network",
965
+ auto_create_subnetworks=False)
966
+ default_subnetwork = gcp.compute.Subnetwork("default",
967
+ name="my-subnetwork",
968
+ ip_cidr_range="10.1.0.0/16",
969
+ region="us-central1",
970
+ network=default.id)
927
971
  private_connection = gcp.datastream.PrivateConnection("private_connection",
928
- display_name="Connection profile",
972
+ display_name="Private connection",
929
973
  location="us-central1",
930
974
  private_connection_id="my-connection",
931
- labels={
932
- "key": "value",
933
- },
934
975
  vpc_peering_config={
935
976
  "vpc": default.id,
936
977
  "subnet": "10.0.0.0/29",
937
978
  })
979
+ nat_vm_ip = gcp.compute.Address("nat_vm_ip", name="nat-vm-ip")
938
980
  instance = gcp.sql.DatabaseInstance("instance",
939
981
  name="my-instance",
940
982
  database_version="POSTGRES_14",
@@ -942,23 +984,9 @@ class ConnectionProfile(pulumi.CustomResource):
942
984
  settings={
943
985
  "tier": "db-f1-micro",
944
986
  "ip_configuration": {
945
- "authorized_networks": [
946
- {
947
- "value": "34.71.242.81",
948
- },
949
- {
950
- "value": "34.72.28.29",
951
- },
952
- {
953
- "value": "34.67.6.157",
954
- },
955
- {
956
- "value": "34.67.234.134",
957
- },
958
- {
959
- "value": "34.72.239.218",
960
- },
961
- ],
987
+ "authorized_networks": [{
988
+ "value": nat_vm_ip.address,
989
+ }],
962
990
  },
963
991
  },
964
992
  deletion_protection=True)
@@ -972,15 +1000,61 @@ class ConnectionProfile(pulumi.CustomResource):
972
1000
  name="user",
973
1001
  instance=instance.name,
974
1002
  password=pwd.result)
1003
+ nat_vm = gcp.compute.Instance("nat_vm",
1004
+ name="nat-vm",
1005
+ machine_type="e2-medium",
1006
+ zone="us-central1-a",
1007
+ desired_status="RUNNING",
1008
+ boot_disk={
1009
+ "initialize_params": {
1010
+ "image": "debian-cloud/debian-12",
1011
+ },
1012
+ },
1013
+ network_interfaces=[{
1014
+ "network": private_connection.vpc_peering_config.vpc,
1015
+ "subnetwork": default_subnetwork.self_link,
1016
+ "access_configs": [{
1017
+ "nat_ip": nat_vm_ip.address,
1018
+ }],
1019
+ }],
1020
+ metadata_startup_script=instance.public_ip_address.apply(lambda public_ip_address: f\"\"\"#! /bin/bash
1021
+ # See https://cloud.google.com/datastream/docs/private-connectivity#set-up-reverse-proxy
1022
+ export DB_ADDR={public_ip_address}
1023
+ export DB_PORT=5432
1024
+ echo 1 > /proc/sys/net/ipv4/ip_forward
1025
+ md_url_prefix="http://169.254.169.254/computeMetadata/v1/instance"
1026
+ vm_nic_ip="$(curl -H "Metadata-Flavor: Google" ${{md_url_prefix}}/network-interfaces/0/ip)"
1027
+ iptables -t nat -F
1028
+ iptables -t nat -A PREROUTING \\
1029
+ -p tcp --dport $DB_PORT \\
1030
+ -j DNAT \\
1031
+ --to-destination $DB_ADDR
1032
+ iptables -t nat -A POSTROUTING \\
1033
+ -p tcp --dport $DB_PORT \\
1034
+ -j SNAT \\
1035
+ --to-source $vm_nic_ip
1036
+ iptables-save
1037
+ \"\"\"))
1038
+ rules = gcp.compute.Firewall("rules",
1039
+ name="ingress-rule",
1040
+ network=private_connection.vpc_peering_config.vpc,
1041
+ description="Allow traffic into NAT VM",
1042
+ direction="INGRESS",
1043
+ allows=[{
1044
+ "protocol": "tcp",
1045
+ "ports": ["5432"],
1046
+ }],
1047
+ source_ranges=[private_connection.vpc_peering_config.subnet])
975
1048
  default_connection_profile = gcp.datastream.ConnectionProfile("default",
976
1049
  display_name="Connection profile",
977
1050
  location="us-central1",
978
1051
  connection_profile_id="my-profile",
979
1052
  postgresql_profile={
980
- "hostname": instance.public_ip_address,
1053
+ "hostname": nat_vm.network_interfaces[0].network_ip,
981
1054
  "username": user.name,
982
1055
  "password": user.password,
983
1056
  "database": db.name,
1057
+ "port": 5432,
984
1058
  },
985
1059
  private_connectivity={
986
1060
  "private_connection": private_connection.id,
@@ -35,7 +35,7 @@ class ChatEngineArgs:
35
35
  :param pulumi.Input['ChatEngineChatEngineConfigArgs'] chat_engine_config: Configurations for a chat Engine.
36
36
  Structure is documented below.
37
37
  :param pulumi.Input[str] collection_id: The collection ID.
38
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
38
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
39
39
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
40
40
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
41
41
  :param pulumi.Input[str] location: Location.
@@ -85,7 +85,7 @@ class ChatEngineArgs:
85
85
  @pulumi.getter(name="dataStoreIds")
86
86
  def data_store_ids(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]:
87
87
  """
88
- The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
88
+ The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
89
89
  """
90
90
  return pulumi.get(self, "data_store_ids")
91
91
 
@@ -189,7 +189,7 @@ class _ChatEngineState:
189
189
  :param pulumi.Input[str] collection_id: The collection ID.
190
190
  :param pulumi.Input['ChatEngineCommonConfigArgs'] common_config: Common config spec that specifies the metadata of the engine.
191
191
  :param pulumi.Input[str] create_time: Timestamp the Engine was created at.
192
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
192
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
193
193
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
194
194
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
195
195
  :param pulumi.Input[str] industry_vertical: The industry vertical that the chat engine registers. Vertical on Engine has to match vertical of the DataStore linked
@@ -294,7 +294,7 @@ class _ChatEngineState:
294
294
  @pulumi.getter(name="dataStoreIds")
295
295
  def data_store_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
296
296
  """
297
- The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
297
+ The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
298
298
  """
299
299
  return pulumi.get(self, "data_store_ids")
300
300
 
@@ -518,7 +518,7 @@ class ChatEngine(pulumi.CustomResource):
518
518
  Structure is documented below.
519
519
  :param pulumi.Input[str] collection_id: The collection ID.
520
520
  :param pulumi.Input[Union['ChatEngineCommonConfigArgs', 'ChatEngineCommonConfigArgsDict']] common_config: Common config spec that specifies the metadata of the engine.
521
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
521
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
522
522
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
523
523
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
524
524
  :param pulumi.Input[str] industry_vertical: The industry vertical that the chat engine registers. Vertical on Engine has to match vertical of the DataStore linked
@@ -735,7 +735,7 @@ class ChatEngine(pulumi.CustomResource):
735
735
  :param pulumi.Input[str] collection_id: The collection ID.
736
736
  :param pulumi.Input[Union['ChatEngineCommonConfigArgs', 'ChatEngineCommonConfigArgsDict']] common_config: Common config spec that specifies the metadata of the engine.
737
737
  :param pulumi.Input[str] create_time: Timestamp the Engine was created at.
738
- :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
738
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] data_store_ids: The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
739
739
  :param pulumi.Input[str] display_name: The display name of the engine. Should be human readable. UTF-8 encoded string with limit of 1024 characters.
740
740
  :param pulumi.Input[str] engine_id: The ID to use for chat engine.
741
741
  :param pulumi.Input[str] industry_vertical: The industry vertical that the chat engine registers. Vertical on Engine has to match vertical of the DataStore linked
@@ -812,7 +812,7 @@ class ChatEngine(pulumi.CustomResource):
812
812
  @pulumi.getter(name="dataStoreIds")
813
813
  def data_store_ids(self) -> pulumi.Output[Sequence[str]]:
814
814
  """
815
- The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`. Adding or removing data stores will force recreation.
815
+ The data stores associated with this engine. Multiple DataStores in the same Collection can be associated here. All listed DataStores must be `SOLUTION_TYPE_CHAT`.
816
816
  """
817
817
  return pulumi.get(self, "data_store_ids")
818
818
 
@@ -15,10 +15,18 @@ else:
15
15
  from .. import _utilities
16
16
 
17
17
  __all__ = [
18
+ 'InstanceEffectiveReplicationArgs',
19
+ 'InstanceEffectiveReplicationArgsDict',
20
+ 'InstanceEffectiveReplicationReplicaArgs',
21
+ 'InstanceEffectiveReplicationReplicaArgsDict',
18
22
  'InstanceFileSharesArgs',
19
23
  'InstanceFileSharesArgsDict',
20
24
  'InstanceFileSharesNfsExportOptionArgs',
21
25
  'InstanceFileSharesNfsExportOptionArgsDict',
26
+ 'InstanceInitialReplicationArgs',
27
+ 'InstanceInitialReplicationArgsDict',
28
+ 'InstanceInitialReplicationReplicaArgs',
29
+ 'InstanceInitialReplicationReplicaArgsDict',
22
30
  'InstanceNetworkArgs',
23
31
  'InstanceNetworkArgsDict',
24
32
  'InstancePerformanceConfigArgs',
@@ -31,6 +39,128 @@ __all__ = [
31
39
 
32
40
  MYPY = False
33
41
 
42
+ if not MYPY:
43
+ class InstanceEffectiveReplicationArgsDict(TypedDict):
44
+ replicas: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationReplicaArgsDict']]]]
45
+ """
46
+ The replication role.
47
+ Structure is documented below.
48
+ """
49
+ elif False:
50
+ InstanceEffectiveReplicationArgsDict: TypeAlias = Mapping[str, Any]
51
+
52
+ @pulumi.input_type
53
+ class InstanceEffectiveReplicationArgs:
54
+ def __init__(__self__, *,
55
+ replicas: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationReplicaArgs']]]] = None):
56
+ """
57
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationReplicaArgs']]] replicas: The replication role.
58
+ Structure is documented below.
59
+ """
60
+ if replicas is not None:
61
+ pulumi.set(__self__, "replicas", replicas)
62
+
63
+ @property
64
+ @pulumi.getter
65
+ def replicas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationReplicaArgs']]]]:
66
+ """
67
+ The replication role.
68
+ Structure is documented below.
69
+ """
70
+ return pulumi.get(self, "replicas")
71
+
72
+ @replicas.setter
73
+ def replicas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationReplicaArgs']]]]):
74
+ pulumi.set(self, "replicas", value)
75
+
76
+
77
+ if not MYPY:
78
+ class InstanceEffectiveReplicationReplicaArgsDict(TypedDict):
79
+ last_active_sync_time: NotRequired[pulumi.Input[str]]
80
+ """
81
+ (Output)
82
+ Output only. The timestamp of the latest replication snapshot taken on the active instance and is already replicated safely.
83
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
84
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"
85
+ """
86
+ state: NotRequired[pulumi.Input[str]]
87
+ """
88
+ (Output)
89
+ Output only. The replica state
90
+ """
91
+ state_reasons: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]]
92
+ """
93
+ (Output)
94
+ Output only. Additional information about the replication state, if available.
95
+ """
96
+ elif False:
97
+ InstanceEffectiveReplicationReplicaArgsDict: TypeAlias = Mapping[str, Any]
98
+
99
+ @pulumi.input_type
100
+ class InstanceEffectiveReplicationReplicaArgs:
101
+ def __init__(__self__, *,
102
+ last_active_sync_time: Optional[pulumi.Input[str]] = None,
103
+ state: Optional[pulumi.Input[str]] = None,
104
+ state_reasons: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
105
+ """
106
+ :param pulumi.Input[str] last_active_sync_time: (Output)
107
+ Output only. The timestamp of the latest replication snapshot taken on the active instance and is already replicated safely.
108
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
109
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"
110
+ :param pulumi.Input[str] state: (Output)
111
+ Output only. The replica state
112
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] state_reasons: (Output)
113
+ Output only. Additional information about the replication state, if available.
114
+ """
115
+ if last_active_sync_time is not None:
116
+ pulumi.set(__self__, "last_active_sync_time", last_active_sync_time)
117
+ if state is not None:
118
+ pulumi.set(__self__, "state", state)
119
+ if state_reasons is not None:
120
+ pulumi.set(__self__, "state_reasons", state_reasons)
121
+
122
+ @property
123
+ @pulumi.getter(name="lastActiveSyncTime")
124
+ def last_active_sync_time(self) -> Optional[pulumi.Input[str]]:
125
+ """
126
+ (Output)
127
+ Output only. The timestamp of the latest replication snapshot taken on the active instance and is already replicated safely.
128
+ A timestamp in RFC3339 UTC "Zulu" format, with nanosecond resolution and up to nine fractional digits.
129
+ Examples: "2014-10-02T15:01:23Z" and "2014-10-02T15:01:23.045123456Z"
130
+ """
131
+ return pulumi.get(self, "last_active_sync_time")
132
+
133
+ @last_active_sync_time.setter
134
+ def last_active_sync_time(self, value: Optional[pulumi.Input[str]]):
135
+ pulumi.set(self, "last_active_sync_time", value)
136
+
137
+ @property
138
+ @pulumi.getter
139
+ def state(self) -> Optional[pulumi.Input[str]]:
140
+ """
141
+ (Output)
142
+ Output only. The replica state
143
+ """
144
+ return pulumi.get(self, "state")
145
+
146
+ @state.setter
147
+ def state(self, value: Optional[pulumi.Input[str]]):
148
+ pulumi.set(self, "state", value)
149
+
150
+ @property
151
+ @pulumi.getter(name="stateReasons")
152
+ def state_reasons(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
153
+ """
154
+ (Output)
155
+ Output only. Additional information about the replication state, if available.
156
+ """
157
+ return pulumi.get(self, "state_reasons")
158
+
159
+ @state_reasons.setter
160
+ def state_reasons(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
161
+ pulumi.set(self, "state_reasons", value)
162
+
163
+
34
164
  if not MYPY:
35
165
  class InstanceFileSharesArgsDict(TypedDict):
36
166
  capacity_gb: pulumi.Input[int]
@@ -281,6 +411,98 @@ class InstanceFileSharesNfsExportOptionArgs:
281
411
  pulumi.set(self, "squash_mode", value)
282
412
 
283
413
 
414
+ if not MYPY:
415
+ class InstanceInitialReplicationArgsDict(TypedDict):
416
+ replicas: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceInitialReplicationReplicaArgsDict']]]]
417
+ """
418
+ The replication role.
419
+ Structure is documented below.
420
+ """
421
+ role: NotRequired[pulumi.Input[str]]
422
+ """
423
+ The replication role.
424
+ Default value is `STANDBY`.
425
+ Possible values are: `ROLE_UNSPECIFIED`, `ACTIVE`, `STANDBY`.
426
+ """
427
+ elif False:
428
+ InstanceInitialReplicationArgsDict: TypeAlias = Mapping[str, Any]
429
+
430
+ @pulumi.input_type
431
+ class InstanceInitialReplicationArgs:
432
+ def __init__(__self__, *,
433
+ replicas: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceInitialReplicationReplicaArgs']]]] = None,
434
+ role: Optional[pulumi.Input[str]] = None):
435
+ """
436
+ :param pulumi.Input[Sequence[pulumi.Input['InstanceInitialReplicationReplicaArgs']]] replicas: The replication role.
437
+ Structure is documented below.
438
+ :param pulumi.Input[str] role: The replication role.
439
+ Default value is `STANDBY`.
440
+ Possible values are: `ROLE_UNSPECIFIED`, `ACTIVE`, `STANDBY`.
441
+ """
442
+ if replicas is not None:
443
+ pulumi.set(__self__, "replicas", replicas)
444
+ if role is not None:
445
+ pulumi.set(__self__, "role", role)
446
+
447
+ @property
448
+ @pulumi.getter
449
+ def replicas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['InstanceInitialReplicationReplicaArgs']]]]:
450
+ """
451
+ The replication role.
452
+ Structure is documented below.
453
+ """
454
+ return pulumi.get(self, "replicas")
455
+
456
+ @replicas.setter
457
+ def replicas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceInitialReplicationReplicaArgs']]]]):
458
+ pulumi.set(self, "replicas", value)
459
+
460
+ @property
461
+ @pulumi.getter
462
+ def role(self) -> Optional[pulumi.Input[str]]:
463
+ """
464
+ The replication role.
465
+ Default value is `STANDBY`.
466
+ Possible values are: `ROLE_UNSPECIFIED`, `ACTIVE`, `STANDBY`.
467
+ """
468
+ return pulumi.get(self, "role")
469
+
470
+ @role.setter
471
+ def role(self, value: Optional[pulumi.Input[str]]):
472
+ pulumi.set(self, "role", value)
473
+
474
+
475
+ if not MYPY:
476
+ class InstanceInitialReplicationReplicaArgsDict(TypedDict):
477
+ peer_instance: pulumi.Input[str]
478
+ """
479
+ The peer instance.
480
+ """
481
+ elif False:
482
+ InstanceInitialReplicationReplicaArgsDict: TypeAlias = Mapping[str, Any]
483
+
484
+ @pulumi.input_type
485
+ class InstanceInitialReplicationReplicaArgs:
486
+ def __init__(__self__, *,
487
+ peer_instance: pulumi.Input[str]):
488
+ """
489
+ :param pulumi.Input[str] peer_instance: The peer instance.
490
+ """
491
+ pulumi.set(__self__, "peer_instance", peer_instance)
492
+
493
+ @property
494
+ @pulumi.getter(name="peerInstance")
495
+ def peer_instance(self) -> pulumi.Input[str]:
496
+ """
497
+ The peer instance.
498
+ """
499
+ return pulumi.get(self, "peer_instance")
500
+
501
+ @peer_instance.setter
502
+ def peer_instance(self, value: pulumi.Input[str]):
503
+ pulumi.set(self, "peer_instance", value)
504
+
505
+
284
506
  if not MYPY:
285
507
  class InstanceNetworkArgsDict(TypedDict):
286
508
  modes: pulumi.Input[Sequence[pulumi.Input[str]]]
@@ -27,7 +27,7 @@ class GetInstanceResult:
27
27
  """
28
28
  A collection of values returned by getInstance.
29
29
  """
30
- def __init__(__self__, create_time=None, deletion_protection_enabled=None, deletion_protection_reason=None, description=None, effective_labels=None, etag=None, file_shares=None, id=None, kms_key_name=None, labels=None, location=None, name=None, networks=None, performance_configs=None, project=None, protocol=None, pulumi_labels=None, tags=None, tier=None, zone=None):
30
+ def __init__(__self__, create_time=None, deletion_protection_enabled=None, deletion_protection_reason=None, description=None, effective_labels=None, effective_replications=None, etag=None, file_shares=None, id=None, initial_replications=None, kms_key_name=None, labels=None, location=None, name=None, networks=None, performance_configs=None, project=None, protocol=None, pulumi_labels=None, tags=None, tier=None, zone=None):
31
31
  if create_time and not isinstance(create_time, str):
32
32
  raise TypeError("Expected argument 'create_time' to be a str")
33
33
  pulumi.set(__self__, "create_time", create_time)
@@ -43,6 +43,9 @@ class GetInstanceResult:
43
43
  if effective_labels and not isinstance(effective_labels, dict):
44
44
  raise TypeError("Expected argument 'effective_labels' to be a dict")
45
45
  pulumi.set(__self__, "effective_labels", effective_labels)
46
+ if effective_replications and not isinstance(effective_replications, list):
47
+ raise TypeError("Expected argument 'effective_replications' to be a list")
48
+ pulumi.set(__self__, "effective_replications", effective_replications)
46
49
  if etag and not isinstance(etag, str):
47
50
  raise TypeError("Expected argument 'etag' to be a str")
48
51
  pulumi.set(__self__, "etag", etag)
@@ -52,6 +55,9 @@ class GetInstanceResult:
52
55
  if id and not isinstance(id, str):
53
56
  raise TypeError("Expected argument 'id' to be a str")
54
57
  pulumi.set(__self__, "id", id)
58
+ if initial_replications and not isinstance(initial_replications, list):
59
+ raise TypeError("Expected argument 'initial_replications' to be a list")
60
+ pulumi.set(__self__, "initial_replications", initial_replications)
55
61
  if kms_key_name and not isinstance(kms_key_name, str):
56
62
  raise TypeError("Expected argument 'kms_key_name' to be a str")
57
63
  pulumi.set(__self__, "kms_key_name", kms_key_name)
@@ -114,6 +120,11 @@ class GetInstanceResult:
114
120
  def effective_labels(self) -> Mapping[str, str]:
115
121
  return pulumi.get(self, "effective_labels")
116
122
 
123
+ @property
124
+ @pulumi.getter(name="effectiveReplications")
125
+ def effective_replications(self) -> Sequence['outputs.GetInstanceEffectiveReplicationResult']:
126
+ return pulumi.get(self, "effective_replications")
127
+
117
128
  @property
118
129
  @pulumi.getter
119
130
  def etag(self) -> str:
@@ -132,6 +143,11 @@ class GetInstanceResult:
132
143
  """
133
144
  return pulumi.get(self, "id")
134
145
 
146
+ @property
147
+ @pulumi.getter(name="initialReplications")
148
+ def initial_replications(self) -> Sequence['outputs.GetInstanceInitialReplicationResult']:
149
+ return pulumi.get(self, "initial_replications")
150
+
135
151
  @property
136
152
  @pulumi.getter(name="kmsKeyName")
137
153
  def kms_key_name(self) -> str:
@@ -204,9 +220,11 @@ class AwaitableGetInstanceResult(GetInstanceResult):
204
220
  deletion_protection_reason=self.deletion_protection_reason,
205
221
  description=self.description,
206
222
  effective_labels=self.effective_labels,
223
+ effective_replications=self.effective_replications,
207
224
  etag=self.etag,
208
225
  file_shares=self.file_shares,
209
226
  id=self.id,
227
+ initial_replications=self.initial_replications,
210
228
  kms_key_name=self.kms_key_name,
211
229
  labels=self.labels,
212
230
  location=self.location,
@@ -263,9 +281,11 @@ def get_instance(location: Optional[str] = None,
263
281
  deletion_protection_reason=pulumi.get(__ret__, 'deletion_protection_reason'),
264
282
  description=pulumi.get(__ret__, 'description'),
265
283
  effective_labels=pulumi.get(__ret__, 'effective_labels'),
284
+ effective_replications=pulumi.get(__ret__, 'effective_replications'),
266
285
  etag=pulumi.get(__ret__, 'etag'),
267
286
  file_shares=pulumi.get(__ret__, 'file_shares'),
268
287
  id=pulumi.get(__ret__, 'id'),
288
+ initial_replications=pulumi.get(__ret__, 'initial_replications'),
269
289
  kms_key_name=pulumi.get(__ret__, 'kms_key_name'),
270
290
  labels=pulumi.get(__ret__, 'labels'),
271
291
  location=pulumi.get(__ret__, 'location'),
@@ -319,9 +339,11 @@ def get_instance_output(location: Optional[pulumi.Input[Optional[str]]] = None,
319
339
  deletion_protection_reason=pulumi.get(__response__, 'deletion_protection_reason'),
320
340
  description=pulumi.get(__response__, 'description'),
321
341
  effective_labels=pulumi.get(__response__, 'effective_labels'),
342
+ effective_replications=pulumi.get(__response__, 'effective_replications'),
322
343
  etag=pulumi.get(__response__, 'etag'),
323
344
  file_shares=pulumi.get(__response__, 'file_shares'),
324
345
  id=pulumi.get(__response__, 'id'),
346
+ initial_replications=pulumi.get(__response__, 'initial_replications'),
325
347
  kms_key_name=pulumi.get(__response__, 'kms_key_name'),
326
348
  labels=pulumi.get(__response__, 'labels'),
327
349
  location=pulumi.get(__response__, 'location'),