pulumi-gcp 8.20.0a1739946722__py3-none-any.whl → 8.21.0a1740551699__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 (189) hide show
  1. pulumi_gcp/__init__.py +48 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +168 -8
  3. pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py +2 -2
  4. pulumi_gcp/accesscontextmanager/outputs.py +104 -8
  5. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +78 -3
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +78 -3
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +78 -3
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +78 -3
  9. pulumi_gcp/alloydb/__init__.py +1 -0
  10. pulumi_gcp/alloydb/get_instance.py +466 -0
  11. pulumi_gcp/alloydb/outputs.py +352 -0
  12. pulumi_gcp/apigateway/get_api_config_iam_policy.py +20 -2
  13. pulumi_gcp/apigateway/get_api_iam_policy.py +20 -2
  14. pulumi_gcp/apigateway/get_gateway_iam_policy.py +22 -2
  15. pulumi_gcp/apigee/get_environment_iam_policy.py +2 -2
  16. pulumi_gcp/artifactregistry/get_repository_iam_policy.py +2 -2
  17. pulumi_gcp/beyondcorp/get_application_iam_policy.py +2 -2
  18. pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +2 -2
  19. pulumi_gcp/bigquery/connection.py +2 -14
  20. pulumi_gcp/bigquery/get_connection_iam_policy.py +2 -2
  21. pulumi_gcp/bigquery/get_table_iam_policy.py +2 -2
  22. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +8 -8
  23. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +8 -8
  24. pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +8 -8
  25. pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +2 -2
  26. pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +2 -2
  27. pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +8 -8
  28. pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +8 -8
  29. pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +8 -8
  30. pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +2 -2
  31. pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py +2 -2
  32. pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py +2 -2
  33. pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py +2 -2
  34. pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +2 -2
  35. pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py +2 -2
  36. pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +2 -2
  37. pulumi_gcp/clouddeploy/get_target_iam_policy.py +2 -2
  38. pulumi_gcp/cloudfunctions/get_function_iam_policy.py +2 -2
  39. pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py +2 -2
  40. pulumi_gcp/cloudrun/_inputs.py +6 -3
  41. pulumi_gcp/cloudrun/get_service_iam_policy.py +2 -2
  42. pulumi_gcp/cloudrun/outputs.py +4 -2
  43. pulumi_gcp/cloudrunv2/get_job_iam_policy.py +2 -2
  44. pulumi_gcp/cloudrunv2/get_service_iam_policy.py +2 -2
  45. pulumi_gcp/cloudtasks/get_queue_iam_policy.py +2 -2
  46. pulumi_gcp/colab/get_runtime_template_iam_policy.py +2 -2
  47. pulumi_gcp/composer/_inputs.py +6 -6
  48. pulumi_gcp/composer/outputs.py +8 -8
  49. pulumi_gcp/compute/_inputs.py +756 -30
  50. pulumi_gcp/compute/firewall_policy_rule.py +0 -2
  51. pulumi_gcp/compute/get_backend_bucket_iam_policy.py +20 -2
  52. pulumi_gcp/compute/get_backend_service_iam_policy.py +20 -2
  53. pulumi_gcp/compute/get_disk_iam_policy.py +2 -2
  54. pulumi_gcp/compute/get_hc_vpn_gateway.py +45 -1
  55. pulumi_gcp/compute/get_image_iam_policy.py +2 -2
  56. pulumi_gcp/compute/get_instance_iam_policy.py +2 -2
  57. pulumi_gcp/compute/get_instance_template_iam_policy.py +2 -2
  58. pulumi_gcp/compute/get_machine_image_iam_policy.py +20 -2
  59. pulumi_gcp/compute/get_region_backend_service_iam_policy.py +22 -2
  60. pulumi_gcp/compute/get_region_disk_iam_policy.py +2 -2
  61. pulumi_gcp/compute/get_snapshot_iam_policy.py +2 -2
  62. pulumi_gcp/compute/get_subnetwork_iam_policy.py +2 -2
  63. pulumi_gcp/compute/ha_vpn_gateway.py +189 -2
  64. pulumi_gcp/compute/instance_template.py +14 -35
  65. pulumi_gcp/compute/outputs.py +796 -18
  66. pulumi_gcp/config/__init__.pyi +2 -0
  67. pulumi_gcp/config/vars.py +4 -0
  68. pulumi_gcp/container/_inputs.py +447 -3
  69. pulumi_gcp/container/outputs.py +469 -5
  70. pulumi_gcp/containeranalysis/get_note_iam_policy.py +2 -2
  71. pulumi_gcp/datacatalog/entry_group_iam_binding.py +8 -8
  72. pulumi_gcp/datacatalog/entry_group_iam_member.py +8 -8
  73. pulumi_gcp/datacatalog/entry_group_iam_policy.py +8 -8
  74. pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +2 -2
  75. pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py +2 -2
  76. pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +2 -2
  77. pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +2 -2
  78. pulumi_gcp/datacatalog/policy_tag_iam_binding.py +8 -8
  79. pulumi_gcp/datacatalog/policy_tag_iam_member.py +8 -8
  80. pulumi_gcp/datacatalog/policy_tag_iam_policy.py +8 -8
  81. pulumi_gcp/datacatalog/tag_template_iam_binding.py +8 -8
  82. pulumi_gcp/datacatalog/tag_template_iam_member.py +8 -8
  83. pulumi_gcp/datacatalog/tag_template_iam_policy.py +8 -8
  84. pulumi_gcp/datacatalog/taxonomy_iam_binding.py +8 -8
  85. pulumi_gcp/datacatalog/taxonomy_iam_member.py +8 -8
  86. pulumi_gcp/datacatalog/taxonomy_iam_policy.py +8 -8
  87. pulumi_gcp/dataform/get_repository_iam_policy.py +22 -2
  88. pulumi_gcp/datafusion/get_instance_iam_policy.py +2 -2
  89. pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +2 -2
  90. pulumi_gcp/dataplex/get_asset_iam_policy.py +2 -2
  91. pulumi_gcp/dataplex/get_datascan_iam_policy.py +2 -2
  92. pulumi_gcp/dataplex/get_entry_group_iam_policy.py +2 -2
  93. pulumi_gcp/dataplex/get_entry_type_iam_policy.py +2 -2
  94. pulumi_gcp/dataplex/get_lake_iam_policy.py +2 -2
  95. pulumi_gcp/dataplex/get_task_iam_policy.py +2 -2
  96. pulumi_gcp/dataplex/get_zone_iam_policy.py +2 -2
  97. pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +2 -2
  98. pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +2 -2
  99. pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +2 -2
  100. pulumi_gcp/dataproc/metastore_federation_iam_binding.py +8 -8
  101. pulumi_gcp/dataproc/metastore_federation_iam_member.py +8 -8
  102. pulumi_gcp/dataproc/metastore_federation_iam_policy.py +8 -8
  103. pulumi_gcp/dataproc/metastore_service_iam_binding.py +8 -8
  104. pulumi_gcp/dataproc/metastore_service_iam_member.py +8 -8
  105. pulumi_gcp/dataproc/metastore_service_iam_policy.py +8 -8
  106. pulumi_gcp/dns/get_managed_zone_iam_policy.py +2 -2
  107. pulumi_gcp/endpoints/get_service_iam_policy.py +2 -2
  108. pulumi_gcp/eventarc/_inputs.py +29 -8
  109. pulumi_gcp/eventarc/google_channel_config.py +58 -46
  110. pulumi_gcp/eventarc/outputs.py +20 -6
  111. pulumi_gcp/eventarc/trigger.py +95 -72
  112. pulumi_gcp/filestore/backup.py +4 -4
  113. pulumi_gcp/firebase/__init__.py +1 -0
  114. pulumi_gcp/firebase/data_connect_service.py +937 -0
  115. pulumi_gcp/gemini/__init__.py +4 -0
  116. pulumi_gcp/gemini/data_sharing_with_google_setting.py +607 -0
  117. pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +608 -0
  118. pulumi_gcp/gemini/get_repository_group_iam_policy.py +2 -2
  119. pulumi_gcp/gemini/logging_setting.py +42 -54
  120. pulumi_gcp/gemini/logging_setting_binding.py +722 -0
  121. pulumi_gcp/gemini/release_channel_setting.py +39 -43
  122. pulumi_gcp/gemini/release_channel_setting_binding.py +734 -0
  123. pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py +2 -2
  124. pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py +2 -2
  125. pulumi_gcp/gkehub/get_feature_iam_policy.py +2 -2
  126. pulumi_gcp/gkehub/get_membership_iam_policy.py +2 -2
  127. pulumi_gcp/gkehub/get_scope_iam_policy.py +2 -2
  128. pulumi_gcp/healthcare/get_consent_store_iam_policy.py +2 -2
  129. pulumi_gcp/iap/get_app_engine_service_iam_policy.py +2 -2
  130. pulumi_gcp/iap/get_app_engine_version_iam_policy.py +2 -2
  131. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +2 -2
  132. pulumi_gcp/iap/get_tunnel_iam_policy.py +2 -2
  133. pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +2 -2
  134. pulumi_gcp/iap/get_web_backend_service_iam_policy.py +2 -2
  135. pulumi_gcp/iap/get_web_iam_policy.py +2 -2
  136. pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +2 -2
  137. pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +2 -2
  138. pulumi_gcp/iap/get_web_type_compute_iam_policy.py +2 -2
  139. pulumi_gcp/kms/get_ekm_connection_iam_policy.py +2 -2
  140. pulumi_gcp/logging/get_log_view_iam_policy.py +2 -2
  141. pulumi_gcp/monitoring/_inputs.py +588 -0
  142. pulumi_gcp/monitoring/outputs.py +410 -0
  143. pulumi_gcp/netapp/__init__.py +1 -0
  144. pulumi_gcp/netapp/volume_quota_rule.py +895 -0
  145. pulumi_gcp/networksecurity/address_group_iam_binding.py +4 -4
  146. pulumi_gcp/networksecurity/address_group_iam_member.py +4 -4
  147. pulumi_gcp/networksecurity/address_group_iam_policy.py +4 -4
  148. pulumi_gcp/networkservices/authz_extension.py +8 -15
  149. pulumi_gcp/networkservices/mesh.py +79 -12
  150. pulumi_gcp/notebooks/get_instance_iam_policy.py +2 -2
  151. pulumi_gcp/notebooks/get_runtime_iam_policy.py +2 -2
  152. pulumi_gcp/provider.py +20 -0
  153. pulumi_gcp/pubsub/get_schema_iam_policy.py +2 -2
  154. pulumi_gcp/pubsub/get_topic_iam_policy.py +2 -2
  155. pulumi_gcp/pulumi-plugin.json +1 -1
  156. pulumi_gcp/runtimeconfig/get_config_iam_policy.py +20 -2
  157. pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +2 -2
  158. pulumi_gcp/secretmanager/get_secret_iam_policy.py +2 -2
  159. pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +2 -2
  160. pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +2 -2
  161. pulumi_gcp/securitycenter/get_source_iam_policy.py +2 -2
  162. pulumi_gcp/securitycenter/get_v2_organization_source_iam_policy.py +2 -2
  163. pulumi_gcp/securitycenter/mute_config.py +136 -3
  164. pulumi_gcp/securitycenter/v2_folder_notification_config.py +2 -14
  165. pulumi_gcp/securitycenter/v2_organization_notification_config.py +2 -14
  166. pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +8 -8
  167. pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +8 -8
  168. pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +8 -8
  169. pulumi_gcp/securitycenter/v2_project_notification_config.py +2 -14
  170. pulumi_gcp/servicedirectory/get_namespace_iam_policy.py +18 -2
  171. pulumi_gcp/servicedirectory/get_service_iam_policy.py +18 -2
  172. pulumi_gcp/sourcerepo/get_repository_iam_policy.py +2 -2
  173. pulumi_gcp/spanner/instance.py +0 -46
  174. pulumi_gcp/sql/_inputs.py +6 -6
  175. pulumi_gcp/sql/outputs.py +4 -4
  176. pulumi_gcp/storage/bucket.py +30 -0
  177. pulumi_gcp/storage/get_bucket_iam_policy.py +2 -2
  178. pulumi_gcp/tags/get_tag_key_iam_policy.py +2 -2
  179. pulumi_gcp/tags/get_tag_value_iam_policy.py +2 -2
  180. pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py +22 -2
  181. pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py +20 -2
  182. pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py +22 -2
  183. pulumi_gcp/workbench/get_instance_iam_policy.py +2 -2
  184. pulumi_gcp/workstations/get_workstation_config_iam_policy.py +24 -2
  185. pulumi_gcp/workstations/get_workstation_iam_policy.py +26 -2
  186. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740551699.dist-info}/METADATA +1 -1
  187. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740551699.dist-info}/RECORD +189 -182
  188. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740551699.dist-info}/WHEEL +1 -1
  189. {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740551699.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,895 @@
1
+ # coding=utf-8
2
+ # *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ # *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+
5
+ import copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from .. import _utilities
16
+
17
+ __all__ = ['VolumeQuotaRuleArgs', 'VolumeQuotaRule']
18
+
19
+ @pulumi.input_type
20
+ class VolumeQuotaRuleArgs:
21
+ def __init__(__self__, *,
22
+ disk_limit_mib: pulumi.Input[int],
23
+ type: pulumi.Input[str],
24
+ volume_name: pulumi.Input[str],
25
+ description: Optional[pulumi.Input[str]] = None,
26
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
27
+ location: Optional[pulumi.Input[str]] = None,
28
+ name: Optional[pulumi.Input[str]] = None,
29
+ project: Optional[pulumi.Input[str]] = None,
30
+ target: Optional[pulumi.Input[str]] = None):
31
+ """
32
+ The set of arguments for constructing a VolumeQuotaRule resource.
33
+ :param pulumi.Input[int] disk_limit_mib: The maximum allowed capacity in MiB.
34
+ :param pulumi.Input[str] type: Types of Quota Rule.
35
+ Possible values are: `INDIVIDUAL_USER_QUOTA`, `INDIVIDUAL_GROUP_QUOTA`, `DEFAULT_USER_QUOTA`, `DEFAULT_GROUP_QUOTA`.
36
+ :param pulumi.Input[str] volume_name: Name of the volume to create the quotaRule in.
37
+ :param pulumi.Input[str] description: Description for the quota rule.
38
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs of the quota rule. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
39
+
40
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
41
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
42
+ :param pulumi.Input[str] location: Loction of the quotaRule. QuotaRules are child resources of volumes and live in the same location.
43
+ :param pulumi.Input[str] name: The resource name of the quotaRule.
44
+
45
+
46
+ - - -
47
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
48
+ If it is not provided, the provider project is used.
49
+ :param pulumi.Input[str] target: The quota rule applies to the specified user or group.
50
+ Valid targets for volumes with NFS protocol enabled:
51
+ - UNIX UID for individual user quota
52
+ - UNIX GID for individual group quota
53
+ Valid targets for volumes with SMB protocol enabled:
54
+ - Windows SID for individual user quota
55
+ Leave empty for default quotas
56
+ """
57
+ pulumi.set(__self__, "disk_limit_mib", disk_limit_mib)
58
+ pulumi.set(__self__, "type", type)
59
+ pulumi.set(__self__, "volume_name", volume_name)
60
+ if description is not None:
61
+ pulumi.set(__self__, "description", description)
62
+ if labels is not None:
63
+ pulumi.set(__self__, "labels", labels)
64
+ if location is not None:
65
+ pulumi.set(__self__, "location", location)
66
+ if name is not None:
67
+ pulumi.set(__self__, "name", name)
68
+ if project is not None:
69
+ pulumi.set(__self__, "project", project)
70
+ if target is not None:
71
+ pulumi.set(__self__, "target", target)
72
+
73
+ @property
74
+ @pulumi.getter(name="diskLimitMib")
75
+ def disk_limit_mib(self) -> pulumi.Input[int]:
76
+ """
77
+ The maximum allowed capacity in MiB.
78
+ """
79
+ return pulumi.get(self, "disk_limit_mib")
80
+
81
+ @disk_limit_mib.setter
82
+ def disk_limit_mib(self, value: pulumi.Input[int]):
83
+ pulumi.set(self, "disk_limit_mib", value)
84
+
85
+ @property
86
+ @pulumi.getter
87
+ def type(self) -> pulumi.Input[str]:
88
+ """
89
+ Types of Quota Rule.
90
+ Possible values are: `INDIVIDUAL_USER_QUOTA`, `INDIVIDUAL_GROUP_QUOTA`, `DEFAULT_USER_QUOTA`, `DEFAULT_GROUP_QUOTA`.
91
+ """
92
+ return pulumi.get(self, "type")
93
+
94
+ @type.setter
95
+ def type(self, value: pulumi.Input[str]):
96
+ pulumi.set(self, "type", value)
97
+
98
+ @property
99
+ @pulumi.getter(name="volumeName")
100
+ def volume_name(self) -> pulumi.Input[str]:
101
+ """
102
+ Name of the volume to create the quotaRule in.
103
+ """
104
+ return pulumi.get(self, "volume_name")
105
+
106
+ @volume_name.setter
107
+ def volume_name(self, value: pulumi.Input[str]):
108
+ pulumi.set(self, "volume_name", value)
109
+
110
+ @property
111
+ @pulumi.getter
112
+ def description(self) -> Optional[pulumi.Input[str]]:
113
+ """
114
+ Description for the quota rule.
115
+ """
116
+ return pulumi.get(self, "description")
117
+
118
+ @description.setter
119
+ def description(self, value: Optional[pulumi.Input[str]]):
120
+ pulumi.set(self, "description", value)
121
+
122
+ @property
123
+ @pulumi.getter
124
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
125
+ """
126
+ Labels as key value pairs of the quota rule. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
127
+
128
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
129
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
130
+ """
131
+ return pulumi.get(self, "labels")
132
+
133
+ @labels.setter
134
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
135
+ pulumi.set(self, "labels", value)
136
+
137
+ @property
138
+ @pulumi.getter
139
+ def location(self) -> Optional[pulumi.Input[str]]:
140
+ """
141
+ Loction of the quotaRule. QuotaRules are child resources of volumes and live in the same location.
142
+ """
143
+ return pulumi.get(self, "location")
144
+
145
+ @location.setter
146
+ def location(self, value: Optional[pulumi.Input[str]]):
147
+ pulumi.set(self, "location", value)
148
+
149
+ @property
150
+ @pulumi.getter
151
+ def name(self) -> Optional[pulumi.Input[str]]:
152
+ """
153
+ The resource name of the quotaRule.
154
+
155
+
156
+ - - -
157
+ """
158
+ return pulumi.get(self, "name")
159
+
160
+ @name.setter
161
+ def name(self, value: Optional[pulumi.Input[str]]):
162
+ pulumi.set(self, "name", value)
163
+
164
+ @property
165
+ @pulumi.getter
166
+ def project(self) -> Optional[pulumi.Input[str]]:
167
+ """
168
+ The ID of the project in which the resource belongs.
169
+ If it is not provided, the provider project is used.
170
+ """
171
+ return pulumi.get(self, "project")
172
+
173
+ @project.setter
174
+ def project(self, value: Optional[pulumi.Input[str]]):
175
+ pulumi.set(self, "project", value)
176
+
177
+ @property
178
+ @pulumi.getter
179
+ def target(self) -> Optional[pulumi.Input[str]]:
180
+ """
181
+ The quota rule applies to the specified user or group.
182
+ Valid targets for volumes with NFS protocol enabled:
183
+ - UNIX UID for individual user quota
184
+ - UNIX GID for individual group quota
185
+ Valid targets for volumes with SMB protocol enabled:
186
+ - Windows SID for individual user quota
187
+ Leave empty for default quotas
188
+ """
189
+ return pulumi.get(self, "target")
190
+
191
+ @target.setter
192
+ def target(self, value: Optional[pulumi.Input[str]]):
193
+ pulumi.set(self, "target", value)
194
+
195
+
196
+ @pulumi.input_type
197
+ class _VolumeQuotaRuleState:
198
+ def __init__(__self__, *,
199
+ create_time: Optional[pulumi.Input[str]] = None,
200
+ description: Optional[pulumi.Input[str]] = None,
201
+ disk_limit_mib: Optional[pulumi.Input[int]] = None,
202
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
203
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
204
+ location: Optional[pulumi.Input[str]] = None,
205
+ name: Optional[pulumi.Input[str]] = None,
206
+ project: Optional[pulumi.Input[str]] = None,
207
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
208
+ state: Optional[pulumi.Input[str]] = None,
209
+ state_details: Optional[pulumi.Input[str]] = None,
210
+ target: Optional[pulumi.Input[str]] = None,
211
+ type: Optional[pulumi.Input[str]] = None,
212
+ volume_name: Optional[pulumi.Input[str]] = None):
213
+ """
214
+ Input properties used for looking up and filtering VolumeQuotaRule resources.
215
+ :param pulumi.Input[str] create_time: Create time of the quota rule. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
216
+ :param pulumi.Input[str] description: Description for the quota rule.
217
+ :param pulumi.Input[int] disk_limit_mib: The maximum allowed capacity in MiB.
218
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
219
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs of the quota rule. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
220
+
221
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
222
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
223
+ :param pulumi.Input[str] location: Loction of the quotaRule. QuotaRules are child resources of volumes and live in the same location.
224
+ :param pulumi.Input[str] name: The resource name of the quotaRule.
225
+
226
+
227
+ - - -
228
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
229
+ If it is not provided, the provider project is used.
230
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
231
+ and default labels configured on the provider.
232
+ :param pulumi.Input[str] state: The state of the quota rule. Possible Values : [STATE_UNSPECIFIED, CREATING, UPDATING, READY, DELETING, ERROR]
233
+ :param pulumi.Input[str] state_details: State details of the quota rule
234
+ :param pulumi.Input[str] target: The quota rule applies to the specified user or group.
235
+ Valid targets for volumes with NFS protocol enabled:
236
+ - UNIX UID for individual user quota
237
+ - UNIX GID for individual group quota
238
+ Valid targets for volumes with SMB protocol enabled:
239
+ - Windows SID for individual user quota
240
+ Leave empty for default quotas
241
+ :param pulumi.Input[str] type: Types of Quota Rule.
242
+ Possible values are: `INDIVIDUAL_USER_QUOTA`, `INDIVIDUAL_GROUP_QUOTA`, `DEFAULT_USER_QUOTA`, `DEFAULT_GROUP_QUOTA`.
243
+ :param pulumi.Input[str] volume_name: Name of the volume to create the quotaRule in.
244
+ """
245
+ if create_time is not None:
246
+ pulumi.set(__self__, "create_time", create_time)
247
+ if description is not None:
248
+ pulumi.set(__self__, "description", description)
249
+ if disk_limit_mib is not None:
250
+ pulumi.set(__self__, "disk_limit_mib", disk_limit_mib)
251
+ if effective_labels is not None:
252
+ pulumi.set(__self__, "effective_labels", effective_labels)
253
+ if labels is not None:
254
+ pulumi.set(__self__, "labels", labels)
255
+ if location is not None:
256
+ pulumi.set(__self__, "location", location)
257
+ if name is not None:
258
+ pulumi.set(__self__, "name", name)
259
+ if project is not None:
260
+ pulumi.set(__self__, "project", project)
261
+ if pulumi_labels is not None:
262
+ pulumi.set(__self__, "pulumi_labels", pulumi_labels)
263
+ if state is not None:
264
+ pulumi.set(__self__, "state", state)
265
+ if state_details is not None:
266
+ pulumi.set(__self__, "state_details", state_details)
267
+ if target is not None:
268
+ pulumi.set(__self__, "target", target)
269
+ if type is not None:
270
+ pulumi.set(__self__, "type", type)
271
+ if volume_name is not None:
272
+ pulumi.set(__self__, "volume_name", volume_name)
273
+
274
+ @property
275
+ @pulumi.getter(name="createTime")
276
+ def create_time(self) -> Optional[pulumi.Input[str]]:
277
+ """
278
+ Create time of the quota rule. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
279
+ """
280
+ return pulumi.get(self, "create_time")
281
+
282
+ @create_time.setter
283
+ def create_time(self, value: Optional[pulumi.Input[str]]):
284
+ pulumi.set(self, "create_time", value)
285
+
286
+ @property
287
+ @pulumi.getter
288
+ def description(self) -> Optional[pulumi.Input[str]]:
289
+ """
290
+ Description for the quota rule.
291
+ """
292
+ return pulumi.get(self, "description")
293
+
294
+ @description.setter
295
+ def description(self, value: Optional[pulumi.Input[str]]):
296
+ pulumi.set(self, "description", value)
297
+
298
+ @property
299
+ @pulumi.getter(name="diskLimitMib")
300
+ def disk_limit_mib(self) -> Optional[pulumi.Input[int]]:
301
+ """
302
+ The maximum allowed capacity in MiB.
303
+ """
304
+ return pulumi.get(self, "disk_limit_mib")
305
+
306
+ @disk_limit_mib.setter
307
+ def disk_limit_mib(self, value: Optional[pulumi.Input[int]]):
308
+ pulumi.set(self, "disk_limit_mib", value)
309
+
310
+ @property
311
+ @pulumi.getter(name="effectiveLabels")
312
+ def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
313
+ """
314
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
315
+ """
316
+ return pulumi.get(self, "effective_labels")
317
+
318
+ @effective_labels.setter
319
+ def effective_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
320
+ pulumi.set(self, "effective_labels", value)
321
+
322
+ @property
323
+ @pulumi.getter
324
+ def labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
325
+ """
326
+ Labels as key value pairs of the quota rule. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
327
+
328
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
329
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
330
+ """
331
+ return pulumi.get(self, "labels")
332
+
333
+ @labels.setter
334
+ def labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
335
+ pulumi.set(self, "labels", value)
336
+
337
+ @property
338
+ @pulumi.getter
339
+ def location(self) -> Optional[pulumi.Input[str]]:
340
+ """
341
+ Loction of the quotaRule. QuotaRules are child resources of volumes and live in the same location.
342
+ """
343
+ return pulumi.get(self, "location")
344
+
345
+ @location.setter
346
+ def location(self, value: Optional[pulumi.Input[str]]):
347
+ pulumi.set(self, "location", value)
348
+
349
+ @property
350
+ @pulumi.getter
351
+ def name(self) -> Optional[pulumi.Input[str]]:
352
+ """
353
+ The resource name of the quotaRule.
354
+
355
+
356
+ - - -
357
+ """
358
+ return pulumi.get(self, "name")
359
+
360
+ @name.setter
361
+ def name(self, value: Optional[pulumi.Input[str]]):
362
+ pulumi.set(self, "name", value)
363
+
364
+ @property
365
+ @pulumi.getter
366
+ def project(self) -> Optional[pulumi.Input[str]]:
367
+ """
368
+ The ID of the project in which the resource belongs.
369
+ If it is not provided, the provider project is used.
370
+ """
371
+ return pulumi.get(self, "project")
372
+
373
+ @project.setter
374
+ def project(self, value: Optional[pulumi.Input[str]]):
375
+ pulumi.set(self, "project", value)
376
+
377
+ @property
378
+ @pulumi.getter(name="pulumiLabels")
379
+ def pulumi_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]:
380
+ """
381
+ The combination of labels configured directly on the resource
382
+ and default labels configured on the provider.
383
+ """
384
+ return pulumi.get(self, "pulumi_labels")
385
+
386
+ @pulumi_labels.setter
387
+ def pulumi_labels(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]):
388
+ pulumi.set(self, "pulumi_labels", value)
389
+
390
+ @property
391
+ @pulumi.getter
392
+ def state(self) -> Optional[pulumi.Input[str]]:
393
+ """
394
+ The state of the quota rule. Possible Values : [STATE_UNSPECIFIED, CREATING, UPDATING, READY, DELETING, ERROR]
395
+ """
396
+ return pulumi.get(self, "state")
397
+
398
+ @state.setter
399
+ def state(self, value: Optional[pulumi.Input[str]]):
400
+ pulumi.set(self, "state", value)
401
+
402
+ @property
403
+ @pulumi.getter(name="stateDetails")
404
+ def state_details(self) -> Optional[pulumi.Input[str]]:
405
+ """
406
+ State details of the quota rule
407
+ """
408
+ return pulumi.get(self, "state_details")
409
+
410
+ @state_details.setter
411
+ def state_details(self, value: Optional[pulumi.Input[str]]):
412
+ pulumi.set(self, "state_details", value)
413
+
414
+ @property
415
+ @pulumi.getter
416
+ def target(self) -> Optional[pulumi.Input[str]]:
417
+ """
418
+ The quota rule applies to the specified user or group.
419
+ Valid targets for volumes with NFS protocol enabled:
420
+ - UNIX UID for individual user quota
421
+ - UNIX GID for individual group quota
422
+ Valid targets for volumes with SMB protocol enabled:
423
+ - Windows SID for individual user quota
424
+ Leave empty for default quotas
425
+ """
426
+ return pulumi.get(self, "target")
427
+
428
+ @target.setter
429
+ def target(self, value: Optional[pulumi.Input[str]]):
430
+ pulumi.set(self, "target", value)
431
+
432
+ @property
433
+ @pulumi.getter
434
+ def type(self) -> Optional[pulumi.Input[str]]:
435
+ """
436
+ Types of Quota Rule.
437
+ Possible values are: `INDIVIDUAL_USER_QUOTA`, `INDIVIDUAL_GROUP_QUOTA`, `DEFAULT_USER_QUOTA`, `DEFAULT_GROUP_QUOTA`.
438
+ """
439
+ return pulumi.get(self, "type")
440
+
441
+ @type.setter
442
+ def type(self, value: Optional[pulumi.Input[str]]):
443
+ pulumi.set(self, "type", value)
444
+
445
+ @property
446
+ @pulumi.getter(name="volumeName")
447
+ def volume_name(self) -> Optional[pulumi.Input[str]]:
448
+ """
449
+ Name of the volume to create the quotaRule in.
450
+ """
451
+ return pulumi.get(self, "volume_name")
452
+
453
+ @volume_name.setter
454
+ def volume_name(self, value: Optional[pulumi.Input[str]]):
455
+ pulumi.set(self, "volume_name", value)
456
+
457
+
458
+ class VolumeQuotaRule(pulumi.CustomResource):
459
+ @overload
460
+ def __init__(__self__,
461
+ resource_name: str,
462
+ opts: Optional[pulumi.ResourceOptions] = None,
463
+ description: Optional[pulumi.Input[str]] = None,
464
+ disk_limit_mib: Optional[pulumi.Input[int]] = None,
465
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
466
+ location: Optional[pulumi.Input[str]] = None,
467
+ name: Optional[pulumi.Input[str]] = None,
468
+ project: Optional[pulumi.Input[str]] = None,
469
+ target: Optional[pulumi.Input[str]] = None,
470
+ type: Optional[pulumi.Input[str]] = None,
471
+ volume_name: Optional[pulumi.Input[str]] = None,
472
+ __props__=None):
473
+ """
474
+ QuotaRule specifies the maximum capacity a user or group can use within a volume. They can be used for creating default and individual quota rules.
475
+
476
+ To get more information about VolumeQuotaRule, see:
477
+
478
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.volumes.quotaRules)
479
+ * How-to Guides
480
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/volumes/overview#volume_user_and_group_quotas)
481
+
482
+ ## Example Usage
483
+
484
+ ### Netapp Volume Quota Rule Basic
485
+
486
+ ```python
487
+ import pulumi
488
+ import pulumi_gcp as gcp
489
+
490
+ default = gcp.compute.get_network(name="test-network")
491
+ default_storage_pool = gcp.netapp.StoragePool("default",
492
+ name="test-pool",
493
+ location="us-west2",
494
+ service_level="PREMIUM",
495
+ capacity_gib="2048",
496
+ network=default.id)
497
+ default_volume = gcp.netapp.Volume("default",
498
+ location=default_storage_pool.location,
499
+ name="test-volume",
500
+ capacity_gib="100",
501
+ share_name="test-volume",
502
+ storage_pool=default_storage_pool.name,
503
+ protocols=["NFSV3"])
504
+ test_quota_rule = gcp.netapp.VolumeQuotaRule("test_quota_rule",
505
+ location=default_volume.location,
506
+ volume_name=default_volume.name,
507
+ type="DEFAULT_USER_QUOTA",
508
+ disk_limit_mib=50,
509
+ name="test-volume-quota-rule",
510
+ opts = pulumi.ResourceOptions(depends_on=[default_volume]))
511
+ ```
512
+
513
+ ## Import
514
+
515
+ VolumeQuotaRule can be imported using any of these accepted formats:
516
+
517
+ * `projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/quotaRules/{{name}}`
518
+
519
+ * `{{project}}/{{location}}/{{volume_name}}/{{name}}`
520
+
521
+ * `{{location}}/{{volume_name}}/{{name}}`
522
+
523
+ When using the `pulumi import` command, VolumeQuotaRule can be imported using one of the formats above. For example:
524
+
525
+ ```sh
526
+ $ pulumi import gcp:netapp/volumeQuotaRule:VolumeQuotaRule default projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/quotaRules/{{name}}
527
+ ```
528
+
529
+ ```sh
530
+ $ pulumi import gcp:netapp/volumeQuotaRule:VolumeQuotaRule default {{project}}/{{location}}/{{volume_name}}/{{name}}
531
+ ```
532
+
533
+ ```sh
534
+ $ pulumi import gcp:netapp/volumeQuotaRule:VolumeQuotaRule default {{location}}/{{volume_name}}/{{name}}
535
+ ```
536
+
537
+ :param str resource_name: The name of the resource.
538
+ :param pulumi.ResourceOptions opts: Options for the resource.
539
+ :param pulumi.Input[str] description: Description for the quota rule.
540
+ :param pulumi.Input[int] disk_limit_mib: The maximum allowed capacity in MiB.
541
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs of the quota rule. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
542
+
543
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
544
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
545
+ :param pulumi.Input[str] location: Loction of the quotaRule. QuotaRules are child resources of volumes and live in the same location.
546
+ :param pulumi.Input[str] name: The resource name of the quotaRule.
547
+
548
+
549
+ - - -
550
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
551
+ If it is not provided, the provider project is used.
552
+ :param pulumi.Input[str] target: The quota rule applies to the specified user or group.
553
+ Valid targets for volumes with NFS protocol enabled:
554
+ - UNIX UID for individual user quota
555
+ - UNIX GID for individual group quota
556
+ Valid targets for volumes with SMB protocol enabled:
557
+ - Windows SID for individual user quota
558
+ Leave empty for default quotas
559
+ :param pulumi.Input[str] type: Types of Quota Rule.
560
+ Possible values are: `INDIVIDUAL_USER_QUOTA`, `INDIVIDUAL_GROUP_QUOTA`, `DEFAULT_USER_QUOTA`, `DEFAULT_GROUP_QUOTA`.
561
+ :param pulumi.Input[str] volume_name: Name of the volume to create the quotaRule in.
562
+ """
563
+ ...
564
+ @overload
565
+ def __init__(__self__,
566
+ resource_name: str,
567
+ args: VolumeQuotaRuleArgs,
568
+ opts: Optional[pulumi.ResourceOptions] = None):
569
+ """
570
+ QuotaRule specifies the maximum capacity a user or group can use within a volume. They can be used for creating default and individual quota rules.
571
+
572
+ To get more information about VolumeQuotaRule, see:
573
+
574
+ * [API documentation](https://cloud.google.com/netapp/volumes/docs/reference/rest/v1/projects.locations.volumes.quotaRules)
575
+ * How-to Guides
576
+ * [Documentation](https://cloud.google.com/netapp/volumes/docs/configure-and-use/volumes/overview#volume_user_and_group_quotas)
577
+
578
+ ## Example Usage
579
+
580
+ ### Netapp Volume Quota Rule Basic
581
+
582
+ ```python
583
+ import pulumi
584
+ import pulumi_gcp as gcp
585
+
586
+ default = gcp.compute.get_network(name="test-network")
587
+ default_storage_pool = gcp.netapp.StoragePool("default",
588
+ name="test-pool",
589
+ location="us-west2",
590
+ service_level="PREMIUM",
591
+ capacity_gib="2048",
592
+ network=default.id)
593
+ default_volume = gcp.netapp.Volume("default",
594
+ location=default_storage_pool.location,
595
+ name="test-volume",
596
+ capacity_gib="100",
597
+ share_name="test-volume",
598
+ storage_pool=default_storage_pool.name,
599
+ protocols=["NFSV3"])
600
+ test_quota_rule = gcp.netapp.VolumeQuotaRule("test_quota_rule",
601
+ location=default_volume.location,
602
+ volume_name=default_volume.name,
603
+ type="DEFAULT_USER_QUOTA",
604
+ disk_limit_mib=50,
605
+ name="test-volume-quota-rule",
606
+ opts = pulumi.ResourceOptions(depends_on=[default_volume]))
607
+ ```
608
+
609
+ ## Import
610
+
611
+ VolumeQuotaRule can be imported using any of these accepted formats:
612
+
613
+ * `projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/quotaRules/{{name}}`
614
+
615
+ * `{{project}}/{{location}}/{{volume_name}}/{{name}}`
616
+
617
+ * `{{location}}/{{volume_name}}/{{name}}`
618
+
619
+ When using the `pulumi import` command, VolumeQuotaRule can be imported using one of the formats above. For example:
620
+
621
+ ```sh
622
+ $ pulumi import gcp:netapp/volumeQuotaRule:VolumeQuotaRule default projects/{{project}}/locations/{{location}}/volumes/{{volume_name}}/quotaRules/{{name}}
623
+ ```
624
+
625
+ ```sh
626
+ $ pulumi import gcp:netapp/volumeQuotaRule:VolumeQuotaRule default {{project}}/{{location}}/{{volume_name}}/{{name}}
627
+ ```
628
+
629
+ ```sh
630
+ $ pulumi import gcp:netapp/volumeQuotaRule:VolumeQuotaRule default {{location}}/{{volume_name}}/{{name}}
631
+ ```
632
+
633
+ :param str resource_name: The name of the resource.
634
+ :param VolumeQuotaRuleArgs args: The arguments to use to populate this resource's properties.
635
+ :param pulumi.ResourceOptions opts: Options for the resource.
636
+ """
637
+ ...
638
+ def __init__(__self__, resource_name: str, *args, **kwargs):
639
+ resource_args, opts = _utilities.get_resource_args_opts(VolumeQuotaRuleArgs, pulumi.ResourceOptions, *args, **kwargs)
640
+ if resource_args is not None:
641
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
642
+ else:
643
+ __self__._internal_init(resource_name, *args, **kwargs)
644
+
645
+ def _internal_init(__self__,
646
+ resource_name: str,
647
+ opts: Optional[pulumi.ResourceOptions] = None,
648
+ description: Optional[pulumi.Input[str]] = None,
649
+ disk_limit_mib: Optional[pulumi.Input[int]] = None,
650
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
651
+ location: Optional[pulumi.Input[str]] = None,
652
+ name: Optional[pulumi.Input[str]] = None,
653
+ project: Optional[pulumi.Input[str]] = None,
654
+ target: Optional[pulumi.Input[str]] = None,
655
+ type: Optional[pulumi.Input[str]] = None,
656
+ volume_name: Optional[pulumi.Input[str]] = None,
657
+ __props__=None):
658
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
659
+ if not isinstance(opts, pulumi.ResourceOptions):
660
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
661
+ if opts.id is None:
662
+ if __props__ is not None:
663
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
664
+ __props__ = VolumeQuotaRuleArgs.__new__(VolumeQuotaRuleArgs)
665
+
666
+ __props__.__dict__["description"] = description
667
+ if disk_limit_mib is None and not opts.urn:
668
+ raise TypeError("Missing required property 'disk_limit_mib'")
669
+ __props__.__dict__["disk_limit_mib"] = disk_limit_mib
670
+ __props__.__dict__["labels"] = labels
671
+ __props__.__dict__["location"] = location
672
+ __props__.__dict__["name"] = name
673
+ __props__.__dict__["project"] = project
674
+ __props__.__dict__["target"] = target
675
+ if type is None and not opts.urn:
676
+ raise TypeError("Missing required property 'type'")
677
+ __props__.__dict__["type"] = type
678
+ if volume_name is None and not opts.urn:
679
+ raise TypeError("Missing required property 'volume_name'")
680
+ __props__.__dict__["volume_name"] = volume_name
681
+ __props__.__dict__["create_time"] = None
682
+ __props__.__dict__["effective_labels"] = None
683
+ __props__.__dict__["pulumi_labels"] = None
684
+ __props__.__dict__["state"] = None
685
+ __props__.__dict__["state_details"] = None
686
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["effectiveLabels", "pulumiLabels"])
687
+ opts = pulumi.ResourceOptions.merge(opts, secret_opts)
688
+ super(VolumeQuotaRule, __self__).__init__(
689
+ 'gcp:netapp/volumeQuotaRule:VolumeQuotaRule',
690
+ resource_name,
691
+ __props__,
692
+ opts)
693
+
694
+ @staticmethod
695
+ def get(resource_name: str,
696
+ id: pulumi.Input[str],
697
+ opts: Optional[pulumi.ResourceOptions] = None,
698
+ create_time: Optional[pulumi.Input[str]] = None,
699
+ description: Optional[pulumi.Input[str]] = None,
700
+ disk_limit_mib: Optional[pulumi.Input[int]] = None,
701
+ effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
702
+ labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
703
+ location: Optional[pulumi.Input[str]] = None,
704
+ name: Optional[pulumi.Input[str]] = None,
705
+ project: Optional[pulumi.Input[str]] = None,
706
+ pulumi_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None,
707
+ state: Optional[pulumi.Input[str]] = None,
708
+ state_details: Optional[pulumi.Input[str]] = None,
709
+ target: Optional[pulumi.Input[str]] = None,
710
+ type: Optional[pulumi.Input[str]] = None,
711
+ volume_name: Optional[pulumi.Input[str]] = None) -> 'VolumeQuotaRule':
712
+ """
713
+ Get an existing VolumeQuotaRule resource's state with the given name, id, and optional extra
714
+ properties used to qualify the lookup.
715
+
716
+ :param str resource_name: The unique name of the resulting resource.
717
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
718
+ :param pulumi.ResourceOptions opts: Options for the resource.
719
+ :param pulumi.Input[str] create_time: Create time of the quota rule. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
720
+ :param pulumi.Input[str] description: Description for the quota rule.
721
+ :param pulumi.Input[int] disk_limit_mib: The maximum allowed capacity in MiB.
722
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] effective_labels: All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
723
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] labels: Labels as key value pairs of the quota rule. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
724
+
725
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
726
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
727
+ :param pulumi.Input[str] location: Loction of the quotaRule. QuotaRules are child resources of volumes and live in the same location.
728
+ :param pulumi.Input[str] name: The resource name of the quotaRule.
729
+
730
+
731
+ - - -
732
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
733
+ If it is not provided, the provider project is used.
734
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
735
+ and default labels configured on the provider.
736
+ :param pulumi.Input[str] state: The state of the quota rule. Possible Values : [STATE_UNSPECIFIED, CREATING, UPDATING, READY, DELETING, ERROR]
737
+ :param pulumi.Input[str] state_details: State details of the quota rule
738
+ :param pulumi.Input[str] target: The quota rule applies to the specified user or group.
739
+ Valid targets for volumes with NFS protocol enabled:
740
+ - UNIX UID for individual user quota
741
+ - UNIX GID for individual group quota
742
+ Valid targets for volumes with SMB protocol enabled:
743
+ - Windows SID for individual user quota
744
+ Leave empty for default quotas
745
+ :param pulumi.Input[str] type: Types of Quota Rule.
746
+ Possible values are: `INDIVIDUAL_USER_QUOTA`, `INDIVIDUAL_GROUP_QUOTA`, `DEFAULT_USER_QUOTA`, `DEFAULT_GROUP_QUOTA`.
747
+ :param pulumi.Input[str] volume_name: Name of the volume to create the quotaRule in.
748
+ """
749
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
750
+
751
+ __props__ = _VolumeQuotaRuleState.__new__(_VolumeQuotaRuleState)
752
+
753
+ __props__.__dict__["create_time"] = create_time
754
+ __props__.__dict__["description"] = description
755
+ __props__.__dict__["disk_limit_mib"] = disk_limit_mib
756
+ __props__.__dict__["effective_labels"] = effective_labels
757
+ __props__.__dict__["labels"] = labels
758
+ __props__.__dict__["location"] = location
759
+ __props__.__dict__["name"] = name
760
+ __props__.__dict__["project"] = project
761
+ __props__.__dict__["pulumi_labels"] = pulumi_labels
762
+ __props__.__dict__["state"] = state
763
+ __props__.__dict__["state_details"] = state_details
764
+ __props__.__dict__["target"] = target
765
+ __props__.__dict__["type"] = type
766
+ __props__.__dict__["volume_name"] = volume_name
767
+ return VolumeQuotaRule(resource_name, opts=opts, __props__=__props__)
768
+
769
+ @property
770
+ @pulumi.getter(name="createTime")
771
+ def create_time(self) -> pulumi.Output[str]:
772
+ """
773
+ Create time of the quota rule. A timestamp in RFC3339 UTC "Zulu" format. Examples: "2023-06-22T09:13:01.617Z".
774
+ """
775
+ return pulumi.get(self, "create_time")
776
+
777
+ @property
778
+ @pulumi.getter
779
+ def description(self) -> pulumi.Output[Optional[str]]:
780
+ """
781
+ Description for the quota rule.
782
+ """
783
+ return pulumi.get(self, "description")
784
+
785
+ @property
786
+ @pulumi.getter(name="diskLimitMib")
787
+ def disk_limit_mib(self) -> pulumi.Output[int]:
788
+ """
789
+ The maximum allowed capacity in MiB.
790
+ """
791
+ return pulumi.get(self, "disk_limit_mib")
792
+
793
+ @property
794
+ @pulumi.getter(name="effectiveLabels")
795
+ def effective_labels(self) -> pulumi.Output[Mapping[str, str]]:
796
+ """
797
+ All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
798
+ """
799
+ return pulumi.get(self, "effective_labels")
800
+
801
+ @property
802
+ @pulumi.getter
803
+ def labels(self) -> pulumi.Output[Optional[Mapping[str, str]]]:
804
+ """
805
+ Labels as key value pairs of the quota rule. Example: `{ "owner": "Bob", "department": "finance", "purpose": "testing" }`.
806
+
807
+ **Note**: This field is non-authoritative, and will only manage the labels present in your configuration.
808
+ Please refer to the field `effective_labels` for all of the labels present on the resource.
809
+ """
810
+ return pulumi.get(self, "labels")
811
+
812
+ @property
813
+ @pulumi.getter
814
+ def location(self) -> pulumi.Output[Optional[str]]:
815
+ """
816
+ Loction of the quotaRule. QuotaRules are child resources of volumes and live in the same location.
817
+ """
818
+ return pulumi.get(self, "location")
819
+
820
+ @property
821
+ @pulumi.getter
822
+ def name(self) -> pulumi.Output[str]:
823
+ """
824
+ The resource name of the quotaRule.
825
+
826
+
827
+ - - -
828
+ """
829
+ return pulumi.get(self, "name")
830
+
831
+ @property
832
+ @pulumi.getter
833
+ def project(self) -> pulumi.Output[str]:
834
+ """
835
+ The ID of the project in which the resource belongs.
836
+ If it is not provided, the provider project is used.
837
+ """
838
+ return pulumi.get(self, "project")
839
+
840
+ @property
841
+ @pulumi.getter(name="pulumiLabels")
842
+ def pulumi_labels(self) -> pulumi.Output[Mapping[str, str]]:
843
+ """
844
+ The combination of labels configured directly on the resource
845
+ and default labels configured on the provider.
846
+ """
847
+ return pulumi.get(self, "pulumi_labels")
848
+
849
+ @property
850
+ @pulumi.getter
851
+ def state(self) -> pulumi.Output[str]:
852
+ """
853
+ The state of the quota rule. Possible Values : [STATE_UNSPECIFIED, CREATING, UPDATING, READY, DELETING, ERROR]
854
+ """
855
+ return pulumi.get(self, "state")
856
+
857
+ @property
858
+ @pulumi.getter(name="stateDetails")
859
+ def state_details(self) -> pulumi.Output[str]:
860
+ """
861
+ State details of the quota rule
862
+ """
863
+ return pulumi.get(self, "state_details")
864
+
865
+ @property
866
+ @pulumi.getter
867
+ def target(self) -> pulumi.Output[Optional[str]]:
868
+ """
869
+ The quota rule applies to the specified user or group.
870
+ Valid targets for volumes with NFS protocol enabled:
871
+ - UNIX UID for individual user quota
872
+ - UNIX GID for individual group quota
873
+ Valid targets for volumes with SMB protocol enabled:
874
+ - Windows SID for individual user quota
875
+ Leave empty for default quotas
876
+ """
877
+ return pulumi.get(self, "target")
878
+
879
+ @property
880
+ @pulumi.getter
881
+ def type(self) -> pulumi.Output[str]:
882
+ """
883
+ Types of Quota Rule.
884
+ Possible values are: `INDIVIDUAL_USER_QUOTA`, `INDIVIDUAL_GROUP_QUOTA`, `DEFAULT_USER_QUOTA`, `DEFAULT_GROUP_QUOTA`.
885
+ """
886
+ return pulumi.get(self, "type")
887
+
888
+ @property
889
+ @pulumi.getter(name="volumeName")
890
+ def volume_name(self) -> pulumi.Output[str]:
891
+ """
892
+ Name of the volume to create the quotaRule in.
893
+ """
894
+ return pulumi.get(self, "volume_name")
895
+