pulumi-gcp 8.20.0a1739946722__py3-none-any.whl → 8.21.0a1740033009__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.
- pulumi_gcp/__init__.py +48 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +168 -8
- pulumi_gcp/accesscontextmanager/get_access_policy_iam_policy.py +2 -2
- pulumi_gcp/accesscontextmanager/outputs.py +104 -8
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_egress_policy.py +78 -3
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_ingress_policy.py +78 -3
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +78 -3
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +78 -3
- pulumi_gcp/alloydb/__init__.py +1 -0
- pulumi_gcp/alloydb/get_instance.py +466 -0
- pulumi_gcp/alloydb/outputs.py +352 -0
- pulumi_gcp/apigateway/get_api_config_iam_policy.py +20 -2
- pulumi_gcp/apigateway/get_api_iam_policy.py +20 -2
- pulumi_gcp/apigateway/get_gateway_iam_policy.py +22 -2
- pulumi_gcp/apigee/get_environment_iam_policy.py +2 -2
- pulumi_gcp/artifactregistry/get_repository_iam_policy.py +2 -2
- pulumi_gcp/beyondcorp/get_application_iam_policy.py +2 -2
- pulumi_gcp/beyondcorp/get_security_gateway_iam_policy.py +2 -2
- pulumi_gcp/bigquery/connection.py +2 -14
- pulumi_gcp/bigquery/get_connection_iam_policy.py +2 -2
- pulumi_gcp/bigquery/get_table_iam_policy.py +2 -2
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_binding.py +8 -8
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_member.py +8 -8
- pulumi_gcp/bigqueryanalyticshub/data_exchange_iam_policy.py +8 -8
- pulumi_gcp/bigqueryanalyticshub/get_data_exchange_iam_policy.py +2 -2
- pulumi_gcp/bigqueryanalyticshub/get_listing_iam_policy.py +2 -2
- pulumi_gcp/bigqueryanalyticshub/listing_iam_binding.py +8 -8
- pulumi_gcp/bigqueryanalyticshub/listing_iam_member.py +8 -8
- pulumi_gcp/bigqueryanalyticshub/listing_iam_policy.py +8 -8
- pulumi_gcp/bigquerydatapolicy/get_iam_policy.py +2 -2
- pulumi_gcp/binaryauthorization/get_attestor_iam_policy.py +2 -2
- pulumi_gcp/certificateauthority/get_ca_pool_iam_policy.py +2 -2
- pulumi_gcp/certificateauthority/get_certificate_template_iam_policy.py +2 -2
- pulumi_gcp/cloudbuildv2/get_connection_iam_policy.py +2 -2
- pulumi_gcp/clouddeploy/get_custom_target_type_iam_policy.py +2 -2
- pulumi_gcp/clouddeploy/get_delivery_pipeline_iam_policy.py +2 -2
- pulumi_gcp/clouddeploy/get_target_iam_policy.py +2 -2
- pulumi_gcp/cloudfunctions/get_function_iam_policy.py +2 -2
- pulumi_gcp/cloudfunctionsv2/get_function_iam_policy.py +2 -2
- pulumi_gcp/cloudrun/_inputs.py +6 -3
- pulumi_gcp/cloudrun/get_service_iam_policy.py +2 -2
- pulumi_gcp/cloudrun/outputs.py +4 -2
- pulumi_gcp/cloudrunv2/get_job_iam_policy.py +2 -2
- pulumi_gcp/cloudrunv2/get_service_iam_policy.py +2 -2
- pulumi_gcp/cloudtasks/get_queue_iam_policy.py +2 -2
- pulumi_gcp/colab/get_runtime_template_iam_policy.py +2 -2
- pulumi_gcp/composer/_inputs.py +6 -6
- pulumi_gcp/composer/outputs.py +8 -8
- pulumi_gcp/compute/_inputs.py +756 -30
- pulumi_gcp/compute/firewall_policy_rule.py +0 -2
- pulumi_gcp/compute/get_backend_bucket_iam_policy.py +20 -2
- pulumi_gcp/compute/get_backend_service_iam_policy.py +20 -2
- pulumi_gcp/compute/get_disk_iam_policy.py +2 -2
- pulumi_gcp/compute/get_hc_vpn_gateway.py +45 -1
- pulumi_gcp/compute/get_image_iam_policy.py +2 -2
- pulumi_gcp/compute/get_instance_iam_policy.py +2 -2
- pulumi_gcp/compute/get_instance_template_iam_policy.py +2 -2
- pulumi_gcp/compute/get_machine_image_iam_policy.py +20 -2
- pulumi_gcp/compute/get_region_backend_service_iam_policy.py +22 -2
- pulumi_gcp/compute/get_region_disk_iam_policy.py +2 -2
- pulumi_gcp/compute/get_snapshot_iam_policy.py +2 -2
- pulumi_gcp/compute/get_subnetwork_iam_policy.py +2 -2
- pulumi_gcp/compute/ha_vpn_gateway.py +189 -2
- pulumi_gcp/compute/instance_template.py +14 -35
- pulumi_gcp/compute/outputs.py +796 -18
- pulumi_gcp/config/__init__.pyi +2 -0
- pulumi_gcp/config/vars.py +4 -0
- pulumi_gcp/container/_inputs.py +447 -3
- pulumi_gcp/container/outputs.py +469 -5
- pulumi_gcp/containeranalysis/get_note_iam_policy.py +2 -2
- pulumi_gcp/datacatalog/entry_group_iam_binding.py +8 -8
- pulumi_gcp/datacatalog/entry_group_iam_member.py +8 -8
- pulumi_gcp/datacatalog/entry_group_iam_policy.py +8 -8
- pulumi_gcp/datacatalog/get_entry_group_iam_policy.py +2 -2
- pulumi_gcp/datacatalog/get_policy_tag_iam_policy.py +2 -2
- pulumi_gcp/datacatalog/get_tag_template_iam_policy.py +2 -2
- pulumi_gcp/datacatalog/get_taxonomy_iam_policy.py +2 -2
- pulumi_gcp/datacatalog/policy_tag_iam_binding.py +8 -8
- pulumi_gcp/datacatalog/policy_tag_iam_member.py +8 -8
- pulumi_gcp/datacatalog/policy_tag_iam_policy.py +8 -8
- pulumi_gcp/datacatalog/tag_template_iam_binding.py +8 -8
- pulumi_gcp/datacatalog/tag_template_iam_member.py +8 -8
- pulumi_gcp/datacatalog/tag_template_iam_policy.py +8 -8
- pulumi_gcp/datacatalog/taxonomy_iam_binding.py +8 -8
- pulumi_gcp/datacatalog/taxonomy_iam_member.py +8 -8
- pulumi_gcp/datacatalog/taxonomy_iam_policy.py +8 -8
- pulumi_gcp/dataform/get_repository_iam_policy.py +22 -2
- pulumi_gcp/datafusion/get_instance_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_asset_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_datascan_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_entry_type_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_lake_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_task_iam_policy.py +2 -2
- pulumi_gcp/dataplex/get_zone_iam_policy.py +2 -2
- pulumi_gcp/dataproc/get_autoscaling_policy_iam_policy.py +2 -2
- pulumi_gcp/dataproc/get_metastore_federation_iam_policy.py +2 -2
- pulumi_gcp/dataproc/get_metastore_service_iam_policy.py +2 -2
- pulumi_gcp/dataproc/metastore_federation_iam_binding.py +8 -8
- pulumi_gcp/dataproc/metastore_federation_iam_member.py +8 -8
- pulumi_gcp/dataproc/metastore_federation_iam_policy.py +8 -8
- pulumi_gcp/dataproc/metastore_service_iam_binding.py +8 -8
- pulumi_gcp/dataproc/metastore_service_iam_member.py +8 -8
- pulumi_gcp/dataproc/metastore_service_iam_policy.py +8 -8
- pulumi_gcp/dns/get_managed_zone_iam_policy.py +2 -2
- pulumi_gcp/endpoints/get_service_iam_policy.py +2 -2
- pulumi_gcp/eventarc/_inputs.py +29 -8
- pulumi_gcp/eventarc/google_channel_config.py +58 -46
- pulumi_gcp/eventarc/outputs.py +20 -6
- pulumi_gcp/eventarc/trigger.py +95 -72
- pulumi_gcp/filestore/backup.py +4 -4
- pulumi_gcp/firebase/__init__.py +1 -0
- pulumi_gcp/firebase/data_connect_service.py +937 -0
- pulumi_gcp/gemini/__init__.py +4 -0
- pulumi_gcp/gemini/data_sharing_with_google_setting.py +607 -0
- pulumi_gcp/gemini/gemini_gcp_enablement_setting.py +608 -0
- pulumi_gcp/gemini/get_repository_group_iam_policy.py +2 -2
- pulumi_gcp/gemini/logging_setting.py +42 -54
- pulumi_gcp/gemini/logging_setting_binding.py +722 -0
- pulumi_gcp/gemini/release_channel_setting.py +39 -43
- pulumi_gcp/gemini/release_channel_setting_binding.py +734 -0
- pulumi_gcp/gkebackup/get_backup_plan_iam_policy.py +2 -2
- pulumi_gcp/gkebackup/get_restore_plan_iam_policy.py +2 -2
- pulumi_gcp/gkehub/get_feature_iam_policy.py +2 -2
- pulumi_gcp/gkehub/get_membership_iam_policy.py +2 -2
- pulumi_gcp/gkehub/get_scope_iam_policy.py +2 -2
- pulumi_gcp/healthcare/get_consent_store_iam_policy.py +2 -2
- pulumi_gcp/iap/get_app_engine_service_iam_policy.py +2 -2
- pulumi_gcp/iap/get_app_engine_version_iam_policy.py +2 -2
- pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +2 -2
- pulumi_gcp/iap/get_tunnel_iam_policy.py +2 -2
- pulumi_gcp/iap/get_tunnel_instance_iam_policy.py +2 -2
- pulumi_gcp/iap/get_web_backend_service_iam_policy.py +2 -2
- pulumi_gcp/iap/get_web_iam_policy.py +2 -2
- pulumi_gcp/iap/get_web_region_backend_service_iam_policy.py +2 -2
- pulumi_gcp/iap/get_web_type_app_engine_iam_policy.py +2 -2
- pulumi_gcp/iap/get_web_type_compute_iam_policy.py +2 -2
- pulumi_gcp/kms/get_ekm_connection_iam_policy.py +2 -2
- pulumi_gcp/logging/get_log_view_iam_policy.py +2 -2
- pulumi_gcp/monitoring/_inputs.py +588 -0
- pulumi_gcp/monitoring/outputs.py +410 -0
- pulumi_gcp/netapp/__init__.py +1 -0
- pulumi_gcp/netapp/volume_quota_rule.py +895 -0
- pulumi_gcp/networksecurity/address_group_iam_binding.py +4 -4
- pulumi_gcp/networksecurity/address_group_iam_member.py +4 -4
- pulumi_gcp/networksecurity/address_group_iam_policy.py +4 -4
- pulumi_gcp/networkservices/authz_extension.py +8 -15
- pulumi_gcp/networkservices/mesh.py +79 -12
- pulumi_gcp/notebooks/get_instance_iam_policy.py +2 -2
- pulumi_gcp/notebooks/get_runtime_iam_policy.py +2 -2
- pulumi_gcp/provider.py +20 -0
- pulumi_gcp/pubsub/get_schema_iam_policy.py +2 -2
- pulumi_gcp/pubsub/get_topic_iam_policy.py +2 -2
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/runtimeconfig/get_config_iam_policy.py +20 -2
- pulumi_gcp/secretmanager/get_regional_secret_iam_policy.py +2 -2
- pulumi_gcp/secretmanager/get_secret_iam_policy.py +2 -2
- pulumi_gcp/securesourcemanager/get_instance_iam_policy.py +2 -2
- pulumi_gcp/securesourcemanager/get_repository_iam_policy.py +2 -2
- pulumi_gcp/securitycenter/get_source_iam_policy.py +2 -2
- pulumi_gcp/securitycenter/get_v2_organization_source_iam_policy.py +2 -2
- pulumi_gcp/securitycenter/mute_config.py +136 -3
- pulumi_gcp/securitycenter/v2_folder_notification_config.py +2 -14
- pulumi_gcp/securitycenter/v2_organization_notification_config.py +2 -14
- pulumi_gcp/securitycenter/v2_organization_source_iam_binding.py +8 -8
- pulumi_gcp/securitycenter/v2_organization_source_iam_member.py +8 -8
- pulumi_gcp/securitycenter/v2_organization_source_iam_policy.py +8 -8
- pulumi_gcp/securitycenter/v2_project_notification_config.py +2 -14
- pulumi_gcp/servicedirectory/get_namespace_iam_policy.py +18 -2
- pulumi_gcp/servicedirectory/get_service_iam_policy.py +18 -2
- pulumi_gcp/sourcerepo/get_repository_iam_policy.py +2 -2
- pulumi_gcp/spanner/instance.py +0 -46
- pulumi_gcp/sql/_inputs.py +6 -6
- pulumi_gcp/sql/outputs.py +4 -4
- pulumi_gcp/storage/bucket.py +30 -0
- pulumi_gcp/storage/get_bucket_iam_policy.py +2 -2
- pulumi_gcp/tags/get_tag_key_iam_policy.py +2 -2
- pulumi_gcp/tags/get_tag_value_iam_policy.py +2 -2
- pulumi_gcp/vertex/get_ai_endpoint_iam_policy.py +22 -2
- pulumi_gcp/vertex/get_ai_featurestore_entitytype_iam_policy.py +20 -2
- pulumi_gcp/vertex/get_ai_featurestore_iam_policy.py +22 -2
- pulumi_gcp/workbench/get_instance_iam_policy.py +2 -2
- pulumi_gcp/workstations/get_workstation_config_iam_policy.py +24 -2
- pulumi_gcp/workstations/get_workstation_iam_policy.py +26 -2
- {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.dist-info}/METADATA +1 -1
- {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.dist-info}/RECORD +189 -182
- {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.dist-info}/WHEEL +0 -0
- {pulumi_gcp-8.20.0a1739946722.dist-info → pulumi_gcp-8.21.0a1740033009.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
|
+
|