pulumi-gcp 7.8.0a1706829616__py3-none-any.whl → 7.8.0a1706905467__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. pulumi_gcp/__init__.py +30 -0
  2. pulumi_gcp/artifactregistry/repository.py +26 -28
  3. pulumi_gcp/cloudrun/_inputs.py +87 -4
  4. pulumi_gcp/cloudrun/outputs.py +152 -4
  5. pulumi_gcp/composer/_inputs.py +63 -0
  6. pulumi_gcp/composer/outputs.py +136 -0
  7. pulumi_gcp/compute/_inputs.py +8 -18
  8. pulumi_gcp/compute/backend_service.py +28 -0
  9. pulumi_gcp/compute/outputs.py +10 -20
  10. pulumi_gcp/compute/region_backend_service.py +30 -0
  11. pulumi_gcp/config/__init__.pyi +4 -0
  12. pulumi_gcp/config/vars.py +8 -0
  13. pulumi_gcp/discoveryengine/__init__.py +8 -0
  14. pulumi_gcp/discoveryengine/data_store.py +734 -0
  15. pulumi_gcp/eventarc/_inputs.py +2 -2
  16. pulumi_gcp/eventarc/outputs.py +2 -2
  17. pulumi_gcp/firebase/_inputs.py +4 -2
  18. pulumi_gcp/firebase/extensions_instance.py +6 -8
  19. pulumi_gcp/firebase/outputs.py +4 -2
  20. pulumi_gcp/firestore/backup_schedule.py +36 -12
  21. pulumi_gcp/firestore/database.py +0 -8
  22. pulumi_gcp/firestore/document.py +0 -68
  23. pulumi_gcp/firestore/field.py +22 -102
  24. pulumi_gcp/firestore/index.py +4 -42
  25. pulumi_gcp/gkehub/feature.py +2 -2
  26. pulumi_gcp/provider.py +40 -0
  27. pulumi_gcp/pubsub/_inputs.py +26 -4
  28. pulumi_gcp/pubsub/outputs.py +45 -8
  29. pulumi_gcp/pubsub/subscription.py +82 -0
  30. pulumi_gcp/securityposture/__init__.py +11 -0
  31. pulumi_gcp/securityposture/_inputs.py +1364 -0
  32. pulumi_gcp/securityposture/outputs.py +1372 -0
  33. pulumi_gcp/securityposture/posture.py +828 -0
  34. pulumi_gcp/securityposture/posture_deployment.py +872 -0
  35. pulumi_gcp/vertex/_inputs.py +156 -0
  36. pulumi_gcp/vertex/ai_feature_online_store_featureview.py +259 -3
  37. pulumi_gcp/vertex/outputs.py +170 -0
  38. pulumi_gcp/workflows/workflow.py +75 -7
  39. pulumi_gcp/workstations/_inputs.py +38 -0
  40. pulumi_gcp/workstations/outputs.py +30 -0
  41. pulumi_gcp/workstations/workstation_config.py +54 -0
  42. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/METADATA +1 -1
  43. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/RECORD +45 -38
  44. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/WHEEL +0 -0
  45. {pulumi_gcp-7.8.0a1706829616.dist-info → pulumi_gcp-7.8.0a1706905467.dist-info}/top_level.txt +0 -0
pulumi_gcp/__init__.py CHANGED
@@ -110,6 +110,8 @@ if typing.TYPE_CHECKING:
110
110
  deploymentmanager = __deploymentmanager
111
111
  import pulumi_gcp.diagflow as __diagflow
112
112
  diagflow = __diagflow
113
+ import pulumi_gcp.discoveryengine as __discoveryengine
114
+ discoveryengine = __discoveryengine
113
115
  import pulumi_gcp.dns as __dns
114
116
  dns = __dns
115
117
  import pulumi_gcp.edgecontainer as __edgecontainer
@@ -200,6 +202,8 @@ if typing.TYPE_CHECKING:
200
202
  securesourcemanager = __securesourcemanager
201
203
  import pulumi_gcp.securitycenter as __securitycenter
202
204
  securitycenter = __securitycenter
205
+ import pulumi_gcp.securityposture as __securityposture
206
+ securityposture = __securityposture
203
207
  import pulumi_gcp.serviceaccount as __serviceaccount
204
208
  serviceaccount = __serviceaccount
205
209
  import pulumi_gcp.servicedirectory as __servicedirectory
@@ -283,6 +287,7 @@ else:
283
287
  datastream = _utilities.lazy_import('pulumi_gcp.datastream')
284
288
  deploymentmanager = _utilities.lazy_import('pulumi_gcp.deploymentmanager')
285
289
  diagflow = _utilities.lazy_import('pulumi_gcp.diagflow')
290
+ discoveryengine = _utilities.lazy_import('pulumi_gcp.discoveryengine')
286
291
  dns = _utilities.lazy_import('pulumi_gcp.dns')
287
292
  edgecontainer = _utilities.lazy_import('pulumi_gcp.edgecontainer')
288
293
  edgenetwork = _utilities.lazy_import('pulumi_gcp.edgenetwork')
@@ -328,6 +333,7 @@ else:
328
333
  secretmanager = _utilities.lazy_import('pulumi_gcp.secretmanager')
329
334
  securesourcemanager = _utilities.lazy_import('pulumi_gcp.securesourcemanager')
330
335
  securitycenter = _utilities.lazy_import('pulumi_gcp.securitycenter')
336
+ securityposture = _utilities.lazy_import('pulumi_gcp.securityposture')
331
337
  serviceaccount = _utilities.lazy_import('pulumi_gcp.serviceaccount')
332
338
  servicedirectory = _utilities.lazy_import('pulumi_gcp.servicedirectory')
333
339
  servicenetworking = _utilities.lazy_import('pulumi_gcp.servicenetworking')
@@ -3852,6 +3858,14 @@ _utilities.register(
3852
3858
  "gcp:diagflow/intent:Intent": "Intent"
3853
3859
  }
3854
3860
  },
3861
+ {
3862
+ "pkg": "gcp",
3863
+ "mod": "discoveryengine/dataStore",
3864
+ "fqn": "pulumi_gcp.discoveryengine",
3865
+ "classes": {
3866
+ "gcp:discoveryengine/dataStore:DataStore": "DataStore"
3867
+ }
3868
+ },
3855
3869
  {
3856
3870
  "pkg": "gcp",
3857
3871
  "mod": "dns/dnsManagedZoneIamBinding",
@@ -6348,6 +6362,22 @@ _utilities.register(
6348
6362
  "gcp:securitycenter/sourceIamPolicy:SourceIamPolicy": "SourceIamPolicy"
6349
6363
  }
6350
6364
  },
6365
+ {
6366
+ "pkg": "gcp",
6367
+ "mod": "securityposture/posture",
6368
+ "fqn": "pulumi_gcp.securityposture",
6369
+ "classes": {
6370
+ "gcp:securityposture/posture:Posture": "Posture"
6371
+ }
6372
+ },
6373
+ {
6374
+ "pkg": "gcp",
6375
+ "mod": "securityposture/postureDeployment",
6376
+ "fqn": "pulumi_gcp.securityposture",
6377
+ "classes": {
6378
+ "gcp:securityposture/postureDeployment:PostureDeployment": "PostureDeployment"
6379
+ }
6380
+ },
6351
6381
  {
6352
6382
  "pkg": "gcp",
6353
6383
  "mod": "serviceaccount/account",
@@ -867,50 +867,49 @@ class Repository(pulumi.CustomResource):
867
867
  import pulumi_gcp as gcp
868
868
 
869
869
  my_repo = gcp.artifactregistry.Repository("my-repo",
870
- location="us-central1",
871
- repository_id="my-repository",
872
- description="example docker repository with cleanup policies",
873
- format="DOCKER",
874
- cleanup_policy_dry_run=False,
875
870
  cleanup_policies=[
876
871
  gcp.artifactregistry.RepositoryCleanupPolicyArgs(
877
- id="delete-prerelease",
878
872
  action="DELETE",
879
873
  condition=gcp.artifactregistry.RepositoryCleanupPolicyConditionArgs(
880
- tag_state="TAGGED",
874
+ older_than="2592000s",
881
875
  tag_prefixes=[
882
876
  "alpha",
883
877
  "v0",
884
878
  ],
885
- older_than="2592000s",
879
+ tag_state="TAGGED",
886
880
  ),
881
+ id="delete-prerelease",
887
882
  ),
888
883
  gcp.artifactregistry.RepositoryCleanupPolicyArgs(
889
- id="keep-tagged-release",
890
884
  action="KEEP",
891
885
  condition=gcp.artifactregistry.RepositoryCleanupPolicyConditionArgs(
892
- tag_state="TAGGED",
893
- tag_prefixes=["release"],
894
886
  package_name_prefixes=[
895
887
  "webapp",
896
888
  "mobile",
897
889
  ],
890
+ tag_prefixes=["release"],
891
+ tag_state="TAGGED",
898
892
  ),
893
+ id="keep-tagged-release",
899
894
  ),
900
895
  gcp.artifactregistry.RepositoryCleanupPolicyArgs(
901
- id="keep-minimum-versions",
902
896
  action="KEEP",
897
+ id="keep-minimum-versions",
903
898
  most_recent_versions=gcp.artifactregistry.RepositoryCleanupPolicyMostRecentVersionsArgs(
899
+ keep_count=5,
904
900
  package_name_prefixes=[
905
901
  "webapp",
906
902
  "mobile",
907
903
  "sandbox",
908
904
  ],
909
- keep_count=5,
910
905
  ),
911
906
  ),
912
907
  ],
913
- opts=pulumi.ResourceOptions(provider=google_beta))
908
+ cleanup_policy_dry_run=False,
909
+ description="example docker repository with cleanup policies",
910
+ format="DOCKER",
911
+ location="us-central1",
912
+ repository_id="my-repository")
914
913
  ```
915
914
  ### Artifact Registry Repository Remote Custom
916
915
 
@@ -1189,50 +1188,49 @@ class Repository(pulumi.CustomResource):
1189
1188
  import pulumi_gcp as gcp
1190
1189
 
1191
1190
  my_repo = gcp.artifactregistry.Repository("my-repo",
1192
- location="us-central1",
1193
- repository_id="my-repository",
1194
- description="example docker repository with cleanup policies",
1195
- format="DOCKER",
1196
- cleanup_policy_dry_run=False,
1197
1191
  cleanup_policies=[
1198
1192
  gcp.artifactregistry.RepositoryCleanupPolicyArgs(
1199
- id="delete-prerelease",
1200
1193
  action="DELETE",
1201
1194
  condition=gcp.artifactregistry.RepositoryCleanupPolicyConditionArgs(
1202
- tag_state="TAGGED",
1195
+ older_than="2592000s",
1203
1196
  tag_prefixes=[
1204
1197
  "alpha",
1205
1198
  "v0",
1206
1199
  ],
1207
- older_than="2592000s",
1200
+ tag_state="TAGGED",
1208
1201
  ),
1202
+ id="delete-prerelease",
1209
1203
  ),
1210
1204
  gcp.artifactregistry.RepositoryCleanupPolicyArgs(
1211
- id="keep-tagged-release",
1212
1205
  action="KEEP",
1213
1206
  condition=gcp.artifactregistry.RepositoryCleanupPolicyConditionArgs(
1214
- tag_state="TAGGED",
1215
- tag_prefixes=["release"],
1216
1207
  package_name_prefixes=[
1217
1208
  "webapp",
1218
1209
  "mobile",
1219
1210
  ],
1211
+ tag_prefixes=["release"],
1212
+ tag_state="TAGGED",
1220
1213
  ),
1214
+ id="keep-tagged-release",
1221
1215
  ),
1222
1216
  gcp.artifactregistry.RepositoryCleanupPolicyArgs(
1223
- id="keep-minimum-versions",
1224
1217
  action="KEEP",
1218
+ id="keep-minimum-versions",
1225
1219
  most_recent_versions=gcp.artifactregistry.RepositoryCleanupPolicyMostRecentVersionsArgs(
1220
+ keep_count=5,
1226
1221
  package_name_prefixes=[
1227
1222
  "webapp",
1228
1223
  "mobile",
1229
1224
  "sandbox",
1230
1225
  ],
1231
- keep_count=5,
1232
1226
  ),
1233
1227
  ),
1234
1228
  ],
1235
- opts=pulumi.ResourceOptions(provider=google_beta))
1229
+ cleanup_policy_dry_run=False,
1230
+ description="example docker repository with cleanup policies",
1231
+ format="DOCKER",
1232
+ location="us-central1",
1233
+ repository_id="my-repository")
1236
1234
  ```
1237
1235
  ### Artifact Registry Repository Remote Custom
1238
1236
 
@@ -46,6 +46,7 @@ __all__ = [
46
46
  'ServiceTemplateSpecContainerStartupProbeTcpSocketArgs',
47
47
  'ServiceTemplateSpecContainerVolumeMountArgs',
48
48
  'ServiceTemplateSpecVolumeArgs',
49
+ 'ServiceTemplateSpecVolumeCsiArgs',
49
50
  'ServiceTemplateSpecVolumeEmptyDirArgs',
50
51
  'ServiceTemplateSpecVolumeSecretArgs',
51
52
  'ServiceTemplateSpecVolumeSecretItemArgs',
@@ -2879,10 +2880,13 @@ class ServiceTemplateSpecContainerVolumeMountArgs:
2879
2880
  class ServiceTemplateSpecVolumeArgs:
2880
2881
  def __init__(__self__, *,
2881
2882
  name: pulumi.Input[str],
2883
+ csi: Optional[pulumi.Input['ServiceTemplateSpecVolumeCsiArgs']] = None,
2882
2884
  empty_dir: Optional[pulumi.Input['ServiceTemplateSpecVolumeEmptyDirArgs']] = None,
2883
2885
  secret: Optional[pulumi.Input['ServiceTemplateSpecVolumeSecretArgs']] = None):
2884
2886
  """
2885
2887
  :param pulumi.Input[str] name: Volume's name.
2888
+ :param pulumi.Input['ServiceTemplateSpecVolumeCsiArgs'] csi: A filesystem specified by the Container Storage Interface (CSI).
2889
+ Structure is documented below.
2886
2890
  :param pulumi.Input['ServiceTemplateSpecVolumeEmptyDirArgs'] empty_dir: Ephemeral storage which can be backed by real disks (HD, SSD), network storage or memory (i.e. tmpfs). For now only in memory (tmpfs) is supported. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).
2887
2891
  Structure is documented below.
2888
2892
  :param pulumi.Input['ServiceTemplateSpecVolumeSecretArgs'] secret: The secret's value will be presented as the content of a file whose
@@ -2891,6 +2895,8 @@ class ServiceTemplateSpecVolumeArgs:
2891
2895
  Structure is documented below.
2892
2896
  """
2893
2897
  pulumi.set(__self__, "name", name)
2898
+ if csi is not None:
2899
+ pulumi.set(__self__, "csi", csi)
2894
2900
  if empty_dir is not None:
2895
2901
  pulumi.set(__self__, "empty_dir", empty_dir)
2896
2902
  if secret is not None:
@@ -2908,6 +2914,19 @@ class ServiceTemplateSpecVolumeArgs:
2908
2914
  def name(self, value: pulumi.Input[str]):
2909
2915
  pulumi.set(self, "name", value)
2910
2916
 
2917
+ @property
2918
+ @pulumi.getter
2919
+ def csi(self) -> Optional[pulumi.Input['ServiceTemplateSpecVolumeCsiArgs']]:
2920
+ """
2921
+ A filesystem specified by the Container Storage Interface (CSI).
2922
+ Structure is documented below.
2923
+ """
2924
+ return pulumi.get(self, "csi")
2925
+
2926
+ @csi.setter
2927
+ def csi(self, value: Optional[pulumi.Input['ServiceTemplateSpecVolumeCsiArgs']]):
2928
+ pulumi.set(self, "csi", value)
2929
+
2911
2930
  @property
2912
2931
  @pulumi.getter(name="emptyDir")
2913
2932
  def empty_dir(self) -> Optional[pulumi.Input['ServiceTemplateSpecVolumeEmptyDirArgs']]:
@@ -2937,6 +2956,74 @@ class ServiceTemplateSpecVolumeArgs:
2937
2956
  pulumi.set(self, "secret", value)
2938
2957
 
2939
2958
 
2959
+ @pulumi.input_type
2960
+ class ServiceTemplateSpecVolumeCsiArgs:
2961
+ def __init__(__self__, *,
2962
+ driver: pulumi.Input[str],
2963
+ read_only: Optional[pulumi.Input[bool]] = None,
2964
+ volume_attributes: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None):
2965
+ """
2966
+ :param pulumi.Input[str] driver: Unique name representing the type of file system to be created. Cloud Run supports the following values:
2967
+ * gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the
2968
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
2969
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
2970
+ :param pulumi.Input[bool] read_only: If true, all mounts created from this volume will be read-only.
2971
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] volume_attributes: Driver-specific attributes. The following options are supported for available drivers:
2972
+ * gcsfuse.run.googleapis.com
2973
+ * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
2974
+
2975
+ - - -
2976
+ """
2977
+ pulumi.set(__self__, "driver", driver)
2978
+ if read_only is not None:
2979
+ pulumi.set(__self__, "read_only", read_only)
2980
+ if volume_attributes is not None:
2981
+ pulumi.set(__self__, "volume_attributes", volume_attributes)
2982
+
2983
+ @property
2984
+ @pulumi.getter
2985
+ def driver(self) -> pulumi.Input[str]:
2986
+ """
2987
+ Unique name representing the type of file system to be created. Cloud Run supports the following values:
2988
+ * gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the
2989
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
2990
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
2991
+ """
2992
+ return pulumi.get(self, "driver")
2993
+
2994
+ @driver.setter
2995
+ def driver(self, value: pulumi.Input[str]):
2996
+ pulumi.set(self, "driver", value)
2997
+
2998
+ @property
2999
+ @pulumi.getter(name="readOnly")
3000
+ def read_only(self) -> Optional[pulumi.Input[bool]]:
3001
+ """
3002
+ If true, all mounts created from this volume will be read-only.
3003
+ """
3004
+ return pulumi.get(self, "read_only")
3005
+
3006
+ @read_only.setter
3007
+ def read_only(self, value: Optional[pulumi.Input[bool]]):
3008
+ pulumi.set(self, "read_only", value)
3009
+
3010
+ @property
3011
+ @pulumi.getter(name="volumeAttributes")
3012
+ def volume_attributes(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
3013
+ """
3014
+ Driver-specific attributes. The following options are supported for available drivers:
3015
+ * gcsfuse.run.googleapis.com
3016
+ * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
3017
+
3018
+ - - -
3019
+ """
3020
+ return pulumi.get(self, "volume_attributes")
3021
+
3022
+ @volume_attributes.setter
3023
+ def volume_attributes(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
3024
+ pulumi.set(self, "volume_attributes", value)
3025
+
3026
+
2940
3027
  @pulumi.input_type
2941
3028
  class ServiceTemplateSpecVolumeEmptyDirArgs:
2942
3029
  def __init__(__self__, *,
@@ -2945,8 +3032,6 @@ class ServiceTemplateSpecVolumeEmptyDirArgs:
2945
3032
  """
2946
3033
  :param pulumi.Input[str] medium: The medium on which the data is stored. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory.
2947
3034
  :param pulumi.Input[str] size_limit: Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
2948
-
2949
- - - -
2950
3035
  """
2951
3036
  if medium is not None:
2952
3037
  pulumi.set(__self__, "medium", medium)
@@ -2970,8 +3055,6 @@ class ServiceTemplateSpecVolumeEmptyDirArgs:
2970
3055
  def size_limit(self) -> Optional[pulumi.Input[str]]:
2971
3056
  """
2972
3057
  Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
2973
-
2974
- - - -
2975
3058
  """
2976
3059
  return pulumi.get(self, "size_limit")
2977
3060
 
@@ -47,6 +47,7 @@ __all__ = [
47
47
  'ServiceTemplateSpecContainerStartupProbeTcpSocket',
48
48
  'ServiceTemplateSpecContainerVolumeMount',
49
49
  'ServiceTemplateSpecVolume',
50
+ 'ServiceTemplateSpecVolumeCsi',
50
51
  'ServiceTemplateSpecVolumeEmptyDir',
51
52
  'ServiceTemplateSpecVolumeSecret',
52
53
  'ServiceTemplateSpecVolumeSecretItem',
@@ -80,6 +81,7 @@ __all__ = [
80
81
  'GetServiceTemplateSpecContainerStartupProbeTcpSocketResult',
81
82
  'GetServiceTemplateSpecContainerVolumeMountResult',
82
83
  'GetServiceTemplateSpecVolumeResult',
84
+ 'GetServiceTemplateSpecVolumeCsiResult',
83
85
  'GetServiceTemplateSpecVolumeEmptyDirResult',
84
86
  'GetServiceTemplateSpecVolumeSecretResult',
85
87
  'GetServiceTemplateSpecVolumeSecretItemResult',
@@ -2795,10 +2797,13 @@ class ServiceTemplateSpecVolume(dict):
2795
2797
 
2796
2798
  def __init__(__self__, *,
2797
2799
  name: str,
2800
+ csi: Optional['outputs.ServiceTemplateSpecVolumeCsi'] = None,
2798
2801
  empty_dir: Optional['outputs.ServiceTemplateSpecVolumeEmptyDir'] = None,
2799
2802
  secret: Optional['outputs.ServiceTemplateSpecVolumeSecret'] = None):
2800
2803
  """
2801
2804
  :param str name: Volume's name.
2805
+ :param 'ServiceTemplateSpecVolumeCsiArgs' csi: A filesystem specified by the Container Storage Interface (CSI).
2806
+ Structure is documented below.
2802
2807
  :param 'ServiceTemplateSpecVolumeEmptyDirArgs' empty_dir: Ephemeral storage which can be backed by real disks (HD, SSD), network storage or memory (i.e. tmpfs). For now only in memory (tmpfs) is supported. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).
2803
2808
  Structure is documented below.
2804
2809
  :param 'ServiceTemplateSpecVolumeSecretArgs' secret: The secret's value will be presented as the content of a file whose
@@ -2807,6 +2812,8 @@ class ServiceTemplateSpecVolume(dict):
2807
2812
  Structure is documented below.
2808
2813
  """
2809
2814
  pulumi.set(__self__, "name", name)
2815
+ if csi is not None:
2816
+ pulumi.set(__self__, "csi", csi)
2810
2817
  if empty_dir is not None:
2811
2818
  pulumi.set(__self__, "empty_dir", empty_dir)
2812
2819
  if secret is not None:
@@ -2820,6 +2827,15 @@ class ServiceTemplateSpecVolume(dict):
2820
2827
  """
2821
2828
  return pulumi.get(self, "name")
2822
2829
 
2830
+ @property
2831
+ @pulumi.getter
2832
+ def csi(self) -> Optional['outputs.ServiceTemplateSpecVolumeCsi']:
2833
+ """
2834
+ A filesystem specified by the Container Storage Interface (CSI).
2835
+ Structure is documented below.
2836
+ """
2837
+ return pulumi.get(self, "csi")
2838
+
2823
2839
  @property
2824
2840
  @pulumi.getter(name="emptyDir")
2825
2841
  def empty_dir(self) -> Optional['outputs.ServiceTemplateSpecVolumeEmptyDir']:
@@ -2841,6 +2857,81 @@ class ServiceTemplateSpecVolume(dict):
2841
2857
  return pulumi.get(self, "secret")
2842
2858
 
2843
2859
 
2860
+ @pulumi.output_type
2861
+ class ServiceTemplateSpecVolumeCsi(dict):
2862
+ @staticmethod
2863
+ def __key_warning(key: str):
2864
+ suggest = None
2865
+ if key == "readOnly":
2866
+ suggest = "read_only"
2867
+ elif key == "volumeAttributes":
2868
+ suggest = "volume_attributes"
2869
+
2870
+ if suggest:
2871
+ pulumi.log.warn(f"Key '{key}' not found in ServiceTemplateSpecVolumeCsi. Access the value via the '{suggest}' property getter instead.")
2872
+
2873
+ def __getitem__(self, key: str) -> Any:
2874
+ ServiceTemplateSpecVolumeCsi.__key_warning(key)
2875
+ return super().__getitem__(key)
2876
+
2877
+ def get(self, key: str, default = None) -> Any:
2878
+ ServiceTemplateSpecVolumeCsi.__key_warning(key)
2879
+ return super().get(key, default)
2880
+
2881
+ def __init__(__self__, *,
2882
+ driver: str,
2883
+ read_only: Optional[bool] = None,
2884
+ volume_attributes: Optional[Mapping[str, str]] = None):
2885
+ """
2886
+ :param str driver: Unique name representing the type of file system to be created. Cloud Run supports the following values:
2887
+ * gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the
2888
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
2889
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
2890
+ :param bool read_only: If true, all mounts created from this volume will be read-only.
2891
+ :param Mapping[str, str] volume_attributes: Driver-specific attributes. The following options are supported for available drivers:
2892
+ * gcsfuse.run.googleapis.com
2893
+ * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
2894
+
2895
+ - - -
2896
+ """
2897
+ pulumi.set(__self__, "driver", driver)
2898
+ if read_only is not None:
2899
+ pulumi.set(__self__, "read_only", read_only)
2900
+ if volume_attributes is not None:
2901
+ pulumi.set(__self__, "volume_attributes", volume_attributes)
2902
+
2903
+ @property
2904
+ @pulumi.getter
2905
+ def driver(self) -> str:
2906
+ """
2907
+ Unique name representing the type of file system to be created. Cloud Run supports the following values:
2908
+ * gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the
2909
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
2910
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
2911
+ """
2912
+ return pulumi.get(self, "driver")
2913
+
2914
+ @property
2915
+ @pulumi.getter(name="readOnly")
2916
+ def read_only(self) -> Optional[bool]:
2917
+ """
2918
+ If true, all mounts created from this volume will be read-only.
2919
+ """
2920
+ return pulumi.get(self, "read_only")
2921
+
2922
+ @property
2923
+ @pulumi.getter(name="volumeAttributes")
2924
+ def volume_attributes(self) -> Optional[Mapping[str, str]]:
2925
+ """
2926
+ Driver-specific attributes. The following options are supported for available drivers:
2927
+ * gcsfuse.run.googleapis.com
2928
+ * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
2929
+
2930
+ - - -
2931
+ """
2932
+ return pulumi.get(self, "volume_attributes")
2933
+
2934
+
2844
2935
  @pulumi.output_type
2845
2936
  class ServiceTemplateSpecVolumeEmptyDir(dict):
2846
2937
  @staticmethod
@@ -2866,8 +2957,6 @@ class ServiceTemplateSpecVolumeEmptyDir(dict):
2866
2957
  """
2867
2958
  :param str medium: The medium on which the data is stored. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory.
2868
2959
  :param str size_limit: Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
2869
-
2870
- - - -
2871
2960
  """
2872
2961
  if medium is not None:
2873
2962
  pulumi.set(__self__, "medium", medium)
@@ -2887,8 +2976,6 @@ class ServiceTemplateSpecVolumeEmptyDir(dict):
2887
2976
  def size_limit(self) -> Optional[str]:
2888
2977
  """
2889
2978
  Limit on the storage usable by this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. This field's values are of the 'Quantity' k8s type: https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/quantity/. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir.
2890
-
2891
- - - -
2892
2979
  """
2893
2980
  return pulumi.get(self, "size_limit")
2894
2981
 
@@ -4640,20 +4727,31 @@ class GetServiceTemplateSpecContainerVolumeMountResult(dict):
4640
4727
  @pulumi.output_type
4641
4728
  class GetServiceTemplateSpecVolumeResult(dict):
4642
4729
  def __init__(__self__, *,
4730
+ csis: Sequence['outputs.GetServiceTemplateSpecVolumeCsiResult'],
4643
4731
  empty_dirs: Sequence['outputs.GetServiceTemplateSpecVolumeEmptyDirResult'],
4644
4732
  name: str,
4645
4733
  secrets: Sequence['outputs.GetServiceTemplateSpecVolumeSecretResult']):
4646
4734
  """
4735
+ :param Sequence['GetServiceTemplateSpecVolumeCsiArgs'] csis: A filesystem specified by the Container Storage Interface (CSI).
4647
4736
  :param Sequence['GetServiceTemplateSpecVolumeEmptyDirArgs'] empty_dirs: Ephemeral storage which can be backed by real disks (HD, SSD), network storage or memory (i.e. tmpfs). For now only in memory (tmpfs) is supported. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).
4648
4737
  :param str name: The name of the Cloud Run Service.
4649
4738
  :param Sequence['GetServiceTemplateSpecVolumeSecretArgs'] secrets: The secret's value will be presented as the content of a file whose
4650
4739
  name is defined in the item path. If no items are defined, the name of
4651
4740
  the file is the secret_name.
4652
4741
  """
4742
+ pulumi.set(__self__, "csis", csis)
4653
4743
  pulumi.set(__self__, "empty_dirs", empty_dirs)
4654
4744
  pulumi.set(__self__, "name", name)
4655
4745
  pulumi.set(__self__, "secrets", secrets)
4656
4746
 
4747
+ @property
4748
+ @pulumi.getter
4749
+ def csis(self) -> Sequence['outputs.GetServiceTemplateSpecVolumeCsiResult']:
4750
+ """
4751
+ A filesystem specified by the Container Storage Interface (CSI).
4752
+ """
4753
+ return pulumi.get(self, "csis")
4754
+
4657
4755
  @property
4658
4756
  @pulumi.getter(name="emptyDirs")
4659
4757
  def empty_dirs(self) -> Sequence['outputs.GetServiceTemplateSpecVolumeEmptyDirResult']:
@@ -4681,6 +4779,56 @@ class GetServiceTemplateSpecVolumeResult(dict):
4681
4779
  return pulumi.get(self, "secrets")
4682
4780
 
4683
4781
 
4782
+ @pulumi.output_type
4783
+ class GetServiceTemplateSpecVolumeCsiResult(dict):
4784
+ def __init__(__self__, *,
4785
+ driver: str,
4786
+ read_only: bool,
4787
+ volume_attributes: Mapping[str, str]):
4788
+ """
4789
+ :param str driver: Unique name representing the type of file system to be created. Cloud Run supports the following values:
4790
+ * gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the
4791
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
4792
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
4793
+ :param bool read_only: If true, all mounts created from this volume will be read-only.
4794
+ :param Mapping[str, str] volume_attributes: Driver-specific attributes. The following options are supported for available drivers:
4795
+ * gcsfuse.run.googleapis.com
4796
+ * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
4797
+ """
4798
+ pulumi.set(__self__, "driver", driver)
4799
+ pulumi.set(__self__, "read_only", read_only)
4800
+ pulumi.set(__self__, "volume_attributes", volume_attributes)
4801
+
4802
+ @property
4803
+ @pulumi.getter
4804
+ def driver(self) -> str:
4805
+ """
4806
+ Unique name representing the type of file system to be created. Cloud Run supports the following values:
4807
+ * gcsfuse.run.googleapis.com: Mount a Google Cloud Storage bucket using GCSFuse. This driver requires the
4808
+ run.googleapis.com/execution-environment annotation to be set to "gen2" and
4809
+ run.googleapis.com/launch-stage set to "BETA" or "ALPHA".
4810
+ """
4811
+ return pulumi.get(self, "driver")
4812
+
4813
+ @property
4814
+ @pulumi.getter(name="readOnly")
4815
+ def read_only(self) -> bool:
4816
+ """
4817
+ If true, all mounts created from this volume will be read-only.
4818
+ """
4819
+ return pulumi.get(self, "read_only")
4820
+
4821
+ @property
4822
+ @pulumi.getter(name="volumeAttributes")
4823
+ def volume_attributes(self) -> Mapping[str, str]:
4824
+ """
4825
+ Driver-specific attributes. The following options are supported for available drivers:
4826
+ * gcsfuse.run.googleapis.com
4827
+ * bucketName: The name of the Cloud Storage Bucket that backs this volume. The Cloud Run Service identity must have access to this bucket.
4828
+ """
4829
+ return pulumi.get(self, "volume_attributes")
4830
+
4831
+
4684
4832
  @pulumi.output_type
4685
4833
  class GetServiceTemplateSpecVolumeEmptyDirResult(dict):
4686
4834
  def __init__(__self__, *,