pulumi-gcp 8.30.0a1746772896__py3-none-any.whl → 8.30.1a1747132587__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 (36) hide show
  1. pulumi_gcp/__init__.py +16 -0
  2. pulumi_gcp/apigee/__init__.py +1 -0
  3. pulumi_gcp/apigee/_inputs.py +61 -0
  4. pulumi_gcp/apigee/outputs.py +36 -0
  5. pulumi_gcp/apigee/security_profile_v2.py +554 -0
  6. pulumi_gcp/bigtable/_inputs.py +24 -4
  7. pulumi_gcp/bigtable/outputs.py +15 -1
  8. pulumi_gcp/cloudrun/_inputs.py +18 -0
  9. pulumi_gcp/cloudrun/outputs.py +12 -0
  10. pulumi_gcp/cloudrunv2/_inputs.py +44 -1
  11. pulumi_gcp/cloudrunv2/job.py +50 -0
  12. pulumi_gcp/cloudrunv2/outputs.py +55 -3
  13. pulumi_gcp/compute/forwarding_rule.py +21 -0
  14. pulumi_gcp/compute/outputs.py +8 -0
  15. pulumi_gcp/config/__init__.pyi +2 -0
  16. pulumi_gcp/config/vars.py +4 -0
  17. pulumi_gcp/container/_inputs.py +6 -6
  18. pulumi_gcp/container/outputs.py +4 -4
  19. pulumi_gcp/filestore/_inputs.py +156 -0
  20. pulumi_gcp/filestore/get_instance.py +12 -1
  21. pulumi_gcp/filestore/instance.py +47 -0
  22. pulumi_gcp/filestore/outputs.py +202 -0
  23. pulumi_gcp/networkconnectivity/_inputs.py +74 -0
  24. pulumi_gcp/networkconnectivity/outputs.py +61 -0
  25. pulumi_gcp/networkconnectivity/spoke.py +32 -0
  26. pulumi_gcp/provider.py +20 -0
  27. pulumi_gcp/pulumi-plugin.json +1 -1
  28. pulumi_gcp/resourcemanager/__init__.py +1 -0
  29. pulumi_gcp/resourcemanager/capability.py +346 -0
  30. pulumi_gcp/sql/_inputs.py +126 -0
  31. pulumi_gcp/sql/outputs.py +239 -4
  32. pulumi_gcp/tpu/node.py +4 -0
  33. {pulumi_gcp-8.30.0a1746772896.dist-info → pulumi_gcp-8.30.1a1747132587.dist-info}/METADATA +1 -1
  34. {pulumi_gcp-8.30.0a1746772896.dist-info → pulumi_gcp-8.30.1a1747132587.dist-info}/RECORD +36 -34
  35. {pulumi_gcp-8.30.0a1746772896.dist-info → pulumi_gcp-8.30.1a1747132587.dist-info}/WHEEL +1 -1
  36. {pulumi_gcp-8.30.0a1746772896.dist-info → pulumi_gcp-8.30.1a1747132587.dist-info}/top_level.txt +0 -0
@@ -16,6 +16,10 @@ else:
16
16
  from .. import _utilities
17
17
 
18
18
  __all__ = [
19
+ 'InstanceDirectoryServicesArgs',
20
+ 'InstanceDirectoryServicesArgsDict',
21
+ 'InstanceDirectoryServicesLdapArgs',
22
+ 'InstanceDirectoryServicesLdapArgsDict',
19
23
  'InstanceEffectiveReplicationArgs',
20
24
  'InstanceEffectiveReplicationArgsDict',
21
25
  'InstanceEffectiveReplicationReplicaArgs',
@@ -40,6 +44,158 @@ __all__ = [
40
44
 
41
45
  MYPY = False
42
46
 
47
+ if not MYPY:
48
+ class InstanceDirectoryServicesArgsDict(TypedDict):
49
+ ldap: NotRequired[pulumi.Input['InstanceDirectoryServicesLdapArgsDict']]
50
+ """
51
+ Configuration for LDAP servers.
52
+ Structure is documented below.
53
+ """
54
+ elif False:
55
+ InstanceDirectoryServicesArgsDict: TypeAlias = Mapping[str, Any]
56
+
57
+ @pulumi.input_type
58
+ class InstanceDirectoryServicesArgs:
59
+ def __init__(__self__, *,
60
+ ldap: Optional[pulumi.Input['InstanceDirectoryServicesLdapArgs']] = None):
61
+ """
62
+ :param pulumi.Input['InstanceDirectoryServicesLdapArgs'] ldap: Configuration for LDAP servers.
63
+ Structure is documented below.
64
+ """
65
+ if ldap is not None:
66
+ pulumi.set(__self__, "ldap", ldap)
67
+
68
+ @property
69
+ @pulumi.getter
70
+ def ldap(self) -> Optional[pulumi.Input['InstanceDirectoryServicesLdapArgs']]:
71
+ """
72
+ Configuration for LDAP servers.
73
+ Structure is documented below.
74
+ """
75
+ return pulumi.get(self, "ldap")
76
+
77
+ @ldap.setter
78
+ def ldap(self, value: Optional[pulumi.Input['InstanceDirectoryServicesLdapArgs']]):
79
+ pulumi.set(self, "ldap", value)
80
+
81
+
82
+ if not MYPY:
83
+ class InstanceDirectoryServicesLdapArgsDict(TypedDict):
84
+ domain: pulumi.Input[builtins.str]
85
+ """
86
+ The LDAP domain name in the format of `my-domain.com`.
87
+ """
88
+ servers: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]
89
+ """
90
+ The servers names are used for specifying the LDAP servers names.
91
+ The LDAP servers names can come with two formats:
92
+ 1. DNS name, for example: `ldap.example1.com`, `ldap.example2.com`.
93
+ 2. IP address, for example: `10.0.0.1`, `10.0.0.2`, `10.0.0.3`.
94
+ All servers names must be in the same format: either all DNS names or all
95
+ IP addresses.
96
+ """
97
+ groups_ou: NotRequired[pulumi.Input[builtins.str]]
98
+ """
99
+ The groups Organizational Unit (OU) is optional. This parameter is a hint
100
+ to allow faster lookup in the LDAP namespace. In case that this parameter
101
+ is not provided, Filestore instance will query the whole LDAP namespace.
102
+ """
103
+ users_ou: NotRequired[pulumi.Input[builtins.str]]
104
+ """
105
+ The users Organizational Unit (OU) is optional. This parameter is a hint
106
+ to allow faster lookup in the LDAP namespace. In case that this parameter
107
+ is not provided, Filestore instance will query the whole LDAP namespace.
108
+ """
109
+ elif False:
110
+ InstanceDirectoryServicesLdapArgsDict: TypeAlias = Mapping[str, Any]
111
+
112
+ @pulumi.input_type
113
+ class InstanceDirectoryServicesLdapArgs:
114
+ def __init__(__self__, *,
115
+ domain: pulumi.Input[builtins.str],
116
+ servers: pulumi.Input[Sequence[pulumi.Input[builtins.str]]],
117
+ groups_ou: Optional[pulumi.Input[builtins.str]] = None,
118
+ users_ou: Optional[pulumi.Input[builtins.str]] = None):
119
+ """
120
+ :param pulumi.Input[builtins.str] domain: The LDAP domain name in the format of `my-domain.com`.
121
+ :param pulumi.Input[Sequence[pulumi.Input[builtins.str]]] servers: The servers names are used for specifying the LDAP servers names.
122
+ The LDAP servers names can come with two formats:
123
+ 1. DNS name, for example: `ldap.example1.com`, `ldap.example2.com`.
124
+ 2. IP address, for example: `10.0.0.1`, `10.0.0.2`, `10.0.0.3`.
125
+ All servers names must be in the same format: either all DNS names or all
126
+ IP addresses.
127
+ :param pulumi.Input[builtins.str] groups_ou: The groups Organizational Unit (OU) is optional. This parameter is a hint
128
+ to allow faster lookup in the LDAP namespace. In case that this parameter
129
+ is not provided, Filestore instance will query the whole LDAP namespace.
130
+ :param pulumi.Input[builtins.str] users_ou: The users Organizational Unit (OU) is optional. This parameter is a hint
131
+ to allow faster lookup in the LDAP namespace. In case that this parameter
132
+ is not provided, Filestore instance will query the whole LDAP namespace.
133
+ """
134
+ pulumi.set(__self__, "domain", domain)
135
+ pulumi.set(__self__, "servers", servers)
136
+ if groups_ou is not None:
137
+ pulumi.set(__self__, "groups_ou", groups_ou)
138
+ if users_ou is not None:
139
+ pulumi.set(__self__, "users_ou", users_ou)
140
+
141
+ @property
142
+ @pulumi.getter
143
+ def domain(self) -> pulumi.Input[builtins.str]:
144
+ """
145
+ The LDAP domain name in the format of `my-domain.com`.
146
+ """
147
+ return pulumi.get(self, "domain")
148
+
149
+ @domain.setter
150
+ def domain(self, value: pulumi.Input[builtins.str]):
151
+ pulumi.set(self, "domain", value)
152
+
153
+ @property
154
+ @pulumi.getter
155
+ def servers(self) -> pulumi.Input[Sequence[pulumi.Input[builtins.str]]]:
156
+ """
157
+ The servers names are used for specifying the LDAP servers names.
158
+ The LDAP servers names can come with two formats:
159
+ 1. DNS name, for example: `ldap.example1.com`, `ldap.example2.com`.
160
+ 2. IP address, for example: `10.0.0.1`, `10.0.0.2`, `10.0.0.3`.
161
+ All servers names must be in the same format: either all DNS names or all
162
+ IP addresses.
163
+ """
164
+ return pulumi.get(self, "servers")
165
+
166
+ @servers.setter
167
+ def servers(self, value: pulumi.Input[Sequence[pulumi.Input[builtins.str]]]):
168
+ pulumi.set(self, "servers", value)
169
+
170
+ @property
171
+ @pulumi.getter(name="groupsOu")
172
+ def groups_ou(self) -> Optional[pulumi.Input[builtins.str]]:
173
+ """
174
+ The groups Organizational Unit (OU) is optional. This parameter is a hint
175
+ to allow faster lookup in the LDAP namespace. In case that this parameter
176
+ is not provided, Filestore instance will query the whole LDAP namespace.
177
+ """
178
+ return pulumi.get(self, "groups_ou")
179
+
180
+ @groups_ou.setter
181
+ def groups_ou(self, value: Optional[pulumi.Input[builtins.str]]):
182
+ pulumi.set(self, "groups_ou", value)
183
+
184
+ @property
185
+ @pulumi.getter(name="usersOu")
186
+ def users_ou(self) -> Optional[pulumi.Input[builtins.str]]:
187
+ """
188
+ The users Organizational Unit (OU) is optional. This parameter is a hint
189
+ to allow faster lookup in the LDAP namespace. In case that this parameter
190
+ is not provided, Filestore instance will query the whole LDAP namespace.
191
+ """
192
+ return pulumi.get(self, "users_ou")
193
+
194
+ @users_ou.setter
195
+ def users_ou(self, value: Optional[pulumi.Input[builtins.str]]):
196
+ pulumi.set(self, "users_ou", value)
197
+
198
+
43
199
  if not MYPY:
44
200
  class InstanceEffectiveReplicationArgsDict(TypedDict):
45
201
  replicas: NotRequired[pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationReplicaArgsDict']]]]
@@ -28,7 +28,7 @@ class GetInstanceResult:
28
28
  """
29
29
  A collection of values returned by getInstance.
30
30
  """
31
- def __init__(__self__, create_time=None, deletion_protection_enabled=None, deletion_protection_reason=None, description=None, effective_labels=None, effective_replications=None, etag=None, file_shares=None, id=None, initial_replications=None, kms_key_name=None, labels=None, location=None, name=None, networks=None, performance_configs=None, project=None, protocol=None, pulumi_labels=None, tags=None, tier=None, zone=None):
31
+ def __init__(__self__, create_time=None, deletion_protection_enabled=None, deletion_protection_reason=None, description=None, directory_services=None, effective_labels=None, effective_replications=None, etag=None, file_shares=None, id=None, initial_replications=None, kms_key_name=None, labels=None, location=None, name=None, networks=None, performance_configs=None, project=None, protocol=None, pulumi_labels=None, tags=None, tier=None, zone=None):
32
32
  if create_time and not isinstance(create_time, str):
33
33
  raise TypeError("Expected argument 'create_time' to be a str")
34
34
  pulumi.set(__self__, "create_time", create_time)
@@ -41,6 +41,9 @@ class GetInstanceResult:
41
41
  if description and not isinstance(description, str):
42
42
  raise TypeError("Expected argument 'description' to be a str")
43
43
  pulumi.set(__self__, "description", description)
44
+ if directory_services and not isinstance(directory_services, list):
45
+ raise TypeError("Expected argument 'directory_services' to be a list")
46
+ pulumi.set(__self__, "directory_services", directory_services)
44
47
  if effective_labels and not isinstance(effective_labels, dict):
45
48
  raise TypeError("Expected argument 'effective_labels' to be a dict")
46
49
  pulumi.set(__self__, "effective_labels", effective_labels)
@@ -116,6 +119,11 @@ class GetInstanceResult:
116
119
  def description(self) -> builtins.str:
117
120
  return pulumi.get(self, "description")
118
121
 
122
+ @property
123
+ @pulumi.getter(name="directoryServices")
124
+ def directory_services(self) -> Sequence['outputs.GetInstanceDirectoryServiceResult']:
125
+ return pulumi.get(self, "directory_services")
126
+
119
127
  @property
120
128
  @pulumi.getter(name="effectiveLabels")
121
129
  def effective_labels(self) -> Mapping[str, builtins.str]:
@@ -220,6 +228,7 @@ class AwaitableGetInstanceResult(GetInstanceResult):
220
228
  deletion_protection_enabled=self.deletion_protection_enabled,
221
229
  deletion_protection_reason=self.deletion_protection_reason,
222
230
  description=self.description,
231
+ directory_services=self.directory_services,
223
232
  effective_labels=self.effective_labels,
224
233
  effective_replications=self.effective_replications,
225
234
  etag=self.etag,
@@ -281,6 +290,7 @@ def get_instance(location: Optional[builtins.str] = None,
281
290
  deletion_protection_enabled=pulumi.get(__ret__, 'deletion_protection_enabled'),
282
291
  deletion_protection_reason=pulumi.get(__ret__, 'deletion_protection_reason'),
283
292
  description=pulumi.get(__ret__, 'description'),
293
+ directory_services=pulumi.get(__ret__, 'directory_services'),
284
294
  effective_labels=pulumi.get(__ret__, 'effective_labels'),
285
295
  effective_replications=pulumi.get(__ret__, 'effective_replications'),
286
296
  etag=pulumi.get(__ret__, 'etag'),
@@ -339,6 +349,7 @@ def get_instance_output(location: Optional[pulumi.Input[Optional[builtins.str]]]
339
349
  deletion_protection_enabled=pulumi.get(__response__, 'deletion_protection_enabled'),
340
350
  deletion_protection_reason=pulumi.get(__response__, 'deletion_protection_reason'),
341
351
  description=pulumi.get(__response__, 'description'),
352
+ directory_services=pulumi.get(__response__, 'directory_services'),
342
353
  effective_labels=pulumi.get(__response__, 'effective_labels'),
343
354
  effective_replications=pulumi.get(__response__, 'effective_replications'),
344
355
  etag=pulumi.get(__response__, 'etag'),
@@ -28,6 +28,7 @@ class InstanceArgs:
28
28
  deletion_protection_enabled: Optional[pulumi.Input[builtins.bool]] = None,
29
29
  deletion_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
30
30
  description: Optional[pulumi.Input[builtins.str]] = None,
31
+ directory_services: Optional[pulumi.Input['InstanceDirectoryServicesArgs']] = None,
31
32
  initial_replication: Optional[pulumi.Input['InstanceInitialReplicationArgs']] = None,
32
33
  kms_key_name: Optional[pulumi.Input[builtins.str]] = None,
33
34
  labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
@@ -51,6 +52,7 @@ class InstanceArgs:
51
52
  :param pulumi.Input[builtins.bool] deletion_protection_enabled: Indicates whether the instance is protected against deletion.
52
53
  :param pulumi.Input[builtins.str] deletion_protection_reason: The reason for enabling deletion protection.
53
54
  :param pulumi.Input[builtins.str] description: A description of the instance.
55
+ :param pulumi.Input['InstanceDirectoryServicesArgs'] directory_services: Directory Services configuration. Should only be set if protocol is "NFS_V4_1".
54
56
  :param pulumi.Input['InstanceInitialReplicationArgs'] initial_replication: Replication configuration, once set, this cannot be updated. Addtionally this should be specified on the replica
55
57
  instance only, indicating the active as the peer_instance
56
58
  :param pulumi.Input[builtins.str] kms_key_name: KMS key name used for data encryption.
@@ -79,6 +81,8 @@ class InstanceArgs:
79
81
  pulumi.set(__self__, "deletion_protection_reason", deletion_protection_reason)
80
82
  if description is not None:
81
83
  pulumi.set(__self__, "description", description)
84
+ if directory_services is not None:
85
+ pulumi.set(__self__, "directory_services", directory_services)
82
86
  if initial_replication is not None:
83
87
  pulumi.set(__self__, "initial_replication", initial_replication)
84
88
  if kms_key_name is not None:
@@ -180,6 +184,18 @@ class InstanceArgs:
180
184
  def description(self, value: Optional[pulumi.Input[builtins.str]]):
181
185
  pulumi.set(self, "description", value)
182
186
 
187
+ @property
188
+ @pulumi.getter(name="directoryServices")
189
+ def directory_services(self) -> Optional[pulumi.Input['InstanceDirectoryServicesArgs']]:
190
+ """
191
+ Directory Services configuration. Should only be set if protocol is "NFS_V4_1".
192
+ """
193
+ return pulumi.get(self, "directory_services")
194
+
195
+ @directory_services.setter
196
+ def directory_services(self, value: Optional[pulumi.Input['InstanceDirectoryServicesArgs']]):
197
+ pulumi.set(self, "directory_services", value)
198
+
183
199
  @property
184
200
  @pulumi.getter(name="initialReplication")
185
201
  def initial_replication(self) -> Optional[pulumi.Input['InstanceInitialReplicationArgs']]:
@@ -315,6 +331,7 @@ class _InstanceState:
315
331
  deletion_protection_enabled: Optional[pulumi.Input[builtins.bool]] = None,
316
332
  deletion_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
317
333
  description: Optional[pulumi.Input[builtins.str]] = None,
334
+ directory_services: Optional[pulumi.Input['InstanceDirectoryServicesArgs']] = None,
318
335
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
319
336
  effective_replications: Optional[pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationArgs']]]] = None,
320
337
  etag: Optional[pulumi.Input[builtins.str]] = None,
@@ -338,6 +355,7 @@ class _InstanceState:
338
355
  :param pulumi.Input[builtins.bool] deletion_protection_enabled: Indicates whether the instance is protected against deletion.
339
356
  :param pulumi.Input[builtins.str] deletion_protection_reason: The reason for enabling deletion protection.
340
357
  :param pulumi.Input[builtins.str] description: A description of the instance.
358
+ :param pulumi.Input['InstanceDirectoryServicesArgs'] directory_services: Directory Services configuration. Should only be set if protocol is "NFS_V4_1".
341
359
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.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.
342
360
  :param pulumi.Input[Sequence[pulumi.Input['InstanceEffectiveReplicationArgs']]] effective_replications: Output only fields for replication configuration.
343
361
  Structure is documented below.
@@ -380,6 +398,8 @@ class _InstanceState:
380
398
  pulumi.set(__self__, "deletion_protection_reason", deletion_protection_reason)
381
399
  if description is not None:
382
400
  pulumi.set(__self__, "description", description)
401
+ if directory_services is not None:
402
+ pulumi.set(__self__, "directory_services", directory_services)
383
403
  if effective_labels is not None:
384
404
  pulumi.set(__self__, "effective_labels", effective_labels)
385
405
  if effective_replications is not None:
@@ -466,6 +486,18 @@ class _InstanceState:
466
486
  def description(self, value: Optional[pulumi.Input[builtins.str]]):
467
487
  pulumi.set(self, "description", value)
468
488
 
489
+ @property
490
+ @pulumi.getter(name="directoryServices")
491
+ def directory_services(self) -> Optional[pulumi.Input['InstanceDirectoryServicesArgs']]:
492
+ """
493
+ Directory Services configuration. Should only be set if protocol is "NFS_V4_1".
494
+ """
495
+ return pulumi.get(self, "directory_services")
496
+
497
+ @directory_services.setter
498
+ def directory_services(self, value: Optional[pulumi.Input['InstanceDirectoryServicesArgs']]):
499
+ pulumi.set(self, "directory_services", value)
500
+
469
501
  @property
470
502
  @pulumi.getter(name="effectiveLabels")
471
503
  def effective_labels(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]]:
@@ -695,6 +727,7 @@ class Instance(pulumi.CustomResource):
695
727
  deletion_protection_enabled: Optional[pulumi.Input[builtins.bool]] = None,
696
728
  deletion_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
697
729
  description: Optional[pulumi.Input[builtins.str]] = None,
730
+ directory_services: Optional[pulumi.Input[Union['InstanceDirectoryServicesArgs', 'InstanceDirectoryServicesArgsDict']]] = None,
698
731
  file_shares: Optional[pulumi.Input[Union['InstanceFileSharesArgs', 'InstanceFileSharesArgsDict']]] = None,
699
732
  initial_replication: Optional[pulumi.Input[Union['InstanceInitialReplicationArgs', 'InstanceInitialReplicationArgsDict']]] = None,
700
733
  kms_key_name: Optional[pulumi.Input[builtins.str]] = None,
@@ -851,6 +884,7 @@ class Instance(pulumi.CustomResource):
851
884
  :param pulumi.Input[builtins.bool] deletion_protection_enabled: Indicates whether the instance is protected against deletion.
852
885
  :param pulumi.Input[builtins.str] deletion_protection_reason: The reason for enabling deletion protection.
853
886
  :param pulumi.Input[builtins.str] description: A description of the instance.
887
+ :param pulumi.Input[Union['InstanceDirectoryServicesArgs', 'InstanceDirectoryServicesArgsDict']] directory_services: Directory Services configuration. Should only be set if protocol is "NFS_V4_1".
854
888
  :param pulumi.Input[Union['InstanceFileSharesArgs', 'InstanceFileSharesArgsDict']] file_shares: File system shares on the instance. For this version, only a
855
889
  single file share is supported.
856
890
  Structure is documented below.
@@ -1039,6 +1073,7 @@ class Instance(pulumi.CustomResource):
1039
1073
  deletion_protection_enabled: Optional[pulumi.Input[builtins.bool]] = None,
1040
1074
  deletion_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
1041
1075
  description: Optional[pulumi.Input[builtins.str]] = None,
1076
+ directory_services: Optional[pulumi.Input[Union['InstanceDirectoryServicesArgs', 'InstanceDirectoryServicesArgsDict']]] = None,
1042
1077
  file_shares: Optional[pulumi.Input[Union['InstanceFileSharesArgs', 'InstanceFileSharesArgsDict']]] = None,
1043
1078
  initial_replication: Optional[pulumi.Input[Union['InstanceInitialReplicationArgs', 'InstanceInitialReplicationArgsDict']]] = None,
1044
1079
  kms_key_name: Optional[pulumi.Input[builtins.str]] = None,
@@ -1064,6 +1099,7 @@ class Instance(pulumi.CustomResource):
1064
1099
  __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1065
1100
  __props__.__dict__["deletion_protection_reason"] = deletion_protection_reason
1066
1101
  __props__.__dict__["description"] = description
1102
+ __props__.__dict__["directory_services"] = directory_services
1067
1103
  if file_shares is None and not opts.urn:
1068
1104
  raise TypeError("Missing required property 'file_shares'")
1069
1105
  __props__.__dict__["file_shares"] = file_shares
@@ -1104,6 +1140,7 @@ class Instance(pulumi.CustomResource):
1104
1140
  deletion_protection_enabled: Optional[pulumi.Input[builtins.bool]] = None,
1105
1141
  deletion_protection_reason: Optional[pulumi.Input[builtins.str]] = None,
1106
1142
  description: Optional[pulumi.Input[builtins.str]] = None,
1143
+ directory_services: Optional[pulumi.Input[Union['InstanceDirectoryServicesArgs', 'InstanceDirectoryServicesArgsDict']]] = None,
1107
1144
  effective_labels: Optional[pulumi.Input[Mapping[str, pulumi.Input[builtins.str]]]] = None,
1108
1145
  effective_replications: Optional[pulumi.Input[Sequence[pulumi.Input[Union['InstanceEffectiveReplicationArgs', 'InstanceEffectiveReplicationArgsDict']]]]] = None,
1109
1146
  etag: Optional[pulumi.Input[builtins.str]] = None,
@@ -1132,6 +1169,7 @@ class Instance(pulumi.CustomResource):
1132
1169
  :param pulumi.Input[builtins.bool] deletion_protection_enabled: Indicates whether the instance is protected against deletion.
1133
1170
  :param pulumi.Input[builtins.str] deletion_protection_reason: The reason for enabling deletion protection.
1134
1171
  :param pulumi.Input[builtins.str] description: A description of the instance.
1172
+ :param pulumi.Input[Union['InstanceDirectoryServicesArgs', 'InstanceDirectoryServicesArgsDict']] directory_services: Directory Services configuration. Should only be set if protocol is "NFS_V4_1".
1135
1173
  :param pulumi.Input[Mapping[str, pulumi.Input[builtins.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.
1136
1174
  :param pulumi.Input[Sequence[pulumi.Input[Union['InstanceEffectiveReplicationArgs', 'InstanceEffectiveReplicationArgsDict']]]] effective_replications: Output only fields for replication configuration.
1137
1175
  Structure is documented below.
@@ -1174,6 +1212,7 @@ class Instance(pulumi.CustomResource):
1174
1212
  __props__.__dict__["deletion_protection_enabled"] = deletion_protection_enabled
1175
1213
  __props__.__dict__["deletion_protection_reason"] = deletion_protection_reason
1176
1214
  __props__.__dict__["description"] = description
1215
+ __props__.__dict__["directory_services"] = directory_services
1177
1216
  __props__.__dict__["effective_labels"] = effective_labels
1178
1217
  __props__.__dict__["effective_replications"] = effective_replications
1179
1218
  __props__.__dict__["etag"] = etag
@@ -1225,6 +1264,14 @@ class Instance(pulumi.CustomResource):
1225
1264
  """
1226
1265
  return pulumi.get(self, "description")
1227
1266
 
1267
+ @property
1268
+ @pulumi.getter(name="directoryServices")
1269
+ def directory_services(self) -> pulumi.Output[Optional['outputs.InstanceDirectoryServices']]:
1270
+ """
1271
+ Directory Services configuration. Should only be set if protocol is "NFS_V4_1".
1272
+ """
1273
+ return pulumi.get(self, "directory_services")
1274
+
1228
1275
  @property
1229
1276
  @pulumi.getter(name="effectiveLabels")
1230
1277
  def effective_labels(self) -> pulumi.Output[Mapping[str, builtins.str]]:
@@ -17,6 +17,8 @@ from .. import _utilities
17
17
  from . import outputs
18
18
 
19
19
  __all__ = [
20
+ 'InstanceDirectoryServices',
21
+ 'InstanceDirectoryServicesLdap',
20
22
  'InstanceEffectiveReplication',
21
23
  'InstanceEffectiveReplicationReplica',
22
24
  'InstanceFileShares',
@@ -27,6 +29,8 @@ __all__ = [
27
29
  'InstancePerformanceConfig',
28
30
  'InstancePerformanceConfigFixedIops',
29
31
  'InstancePerformanceConfigIopsPerTb',
32
+ 'GetInstanceDirectoryServiceResult',
33
+ 'GetInstanceDirectoryServiceLdapResult',
30
34
  'GetInstanceEffectiveReplicationResult',
31
35
  'GetInstanceEffectiveReplicationReplicaResult',
32
36
  'GetInstanceFileShareResult',
@@ -39,6 +43,117 @@ __all__ = [
39
43
  'GetInstancePerformanceConfigIopsPerTbResult',
40
44
  ]
41
45
 
46
+ @pulumi.output_type
47
+ class InstanceDirectoryServices(dict):
48
+ def __init__(__self__, *,
49
+ ldap: Optional['outputs.InstanceDirectoryServicesLdap'] = None):
50
+ """
51
+ :param 'InstanceDirectoryServicesLdapArgs' ldap: Configuration for LDAP servers.
52
+ Structure is documented below.
53
+ """
54
+ if ldap is not None:
55
+ pulumi.set(__self__, "ldap", ldap)
56
+
57
+ @property
58
+ @pulumi.getter
59
+ def ldap(self) -> Optional['outputs.InstanceDirectoryServicesLdap']:
60
+ """
61
+ Configuration for LDAP servers.
62
+ Structure is documented below.
63
+ """
64
+ return pulumi.get(self, "ldap")
65
+
66
+
67
+ @pulumi.output_type
68
+ class InstanceDirectoryServicesLdap(dict):
69
+ @staticmethod
70
+ def __key_warning(key: str):
71
+ suggest = None
72
+ if key == "groupsOu":
73
+ suggest = "groups_ou"
74
+ elif key == "usersOu":
75
+ suggest = "users_ou"
76
+
77
+ if suggest:
78
+ pulumi.log.warn(f"Key '{key}' not found in InstanceDirectoryServicesLdap. Access the value via the '{suggest}' property getter instead.")
79
+
80
+ def __getitem__(self, key: str) -> Any:
81
+ InstanceDirectoryServicesLdap.__key_warning(key)
82
+ return super().__getitem__(key)
83
+
84
+ def get(self, key: str, default = None) -> Any:
85
+ InstanceDirectoryServicesLdap.__key_warning(key)
86
+ return super().get(key, default)
87
+
88
+ def __init__(__self__, *,
89
+ domain: builtins.str,
90
+ servers: Sequence[builtins.str],
91
+ groups_ou: Optional[builtins.str] = None,
92
+ users_ou: Optional[builtins.str] = None):
93
+ """
94
+ :param builtins.str domain: The LDAP domain name in the format of `my-domain.com`.
95
+ :param Sequence[builtins.str] servers: The servers names are used for specifying the LDAP servers names.
96
+ The LDAP servers names can come with two formats:
97
+ 1. DNS name, for example: `ldap.example1.com`, `ldap.example2.com`.
98
+ 2. IP address, for example: `10.0.0.1`, `10.0.0.2`, `10.0.0.3`.
99
+ All servers names must be in the same format: either all DNS names or all
100
+ IP addresses.
101
+ :param builtins.str groups_ou: The groups Organizational Unit (OU) is optional. This parameter is a hint
102
+ to allow faster lookup in the LDAP namespace. In case that this parameter
103
+ is not provided, Filestore instance will query the whole LDAP namespace.
104
+ :param builtins.str users_ou: The users Organizational Unit (OU) is optional. This parameter is a hint
105
+ to allow faster lookup in the LDAP namespace. In case that this parameter
106
+ is not provided, Filestore instance will query the whole LDAP namespace.
107
+ """
108
+ pulumi.set(__self__, "domain", domain)
109
+ pulumi.set(__self__, "servers", servers)
110
+ if groups_ou is not None:
111
+ pulumi.set(__self__, "groups_ou", groups_ou)
112
+ if users_ou is not None:
113
+ pulumi.set(__self__, "users_ou", users_ou)
114
+
115
+ @property
116
+ @pulumi.getter
117
+ def domain(self) -> builtins.str:
118
+ """
119
+ The LDAP domain name in the format of `my-domain.com`.
120
+ """
121
+ return pulumi.get(self, "domain")
122
+
123
+ @property
124
+ @pulumi.getter
125
+ def servers(self) -> Sequence[builtins.str]:
126
+ """
127
+ The servers names are used for specifying the LDAP servers names.
128
+ The LDAP servers names can come with two formats:
129
+ 1. DNS name, for example: `ldap.example1.com`, `ldap.example2.com`.
130
+ 2. IP address, for example: `10.0.0.1`, `10.0.0.2`, `10.0.0.3`.
131
+ All servers names must be in the same format: either all DNS names or all
132
+ IP addresses.
133
+ """
134
+ return pulumi.get(self, "servers")
135
+
136
+ @property
137
+ @pulumi.getter(name="groupsOu")
138
+ def groups_ou(self) -> Optional[builtins.str]:
139
+ """
140
+ The groups Organizational Unit (OU) is optional. This parameter is a hint
141
+ to allow faster lookup in the LDAP namespace. In case that this parameter
142
+ is not provided, Filestore instance will query the whole LDAP namespace.
143
+ """
144
+ return pulumi.get(self, "groups_ou")
145
+
146
+ @property
147
+ @pulumi.getter(name="usersOu")
148
+ def users_ou(self) -> Optional[builtins.str]:
149
+ """
150
+ The users Organizational Unit (OU) is optional. This parameter is a hint
151
+ to allow faster lookup in the LDAP namespace. In case that this parameter
152
+ is not provided, Filestore instance will query the whole LDAP namespace.
153
+ """
154
+ return pulumi.get(self, "users_ou")
155
+
156
+
42
157
  @pulumi.output_type
43
158
  class InstanceEffectiveReplication(dict):
44
159
  def __init__(__self__, *,
@@ -652,6 +767,93 @@ class InstancePerformanceConfigIopsPerTb(dict):
652
767
  return pulumi.get(self, "max_iops_per_tb")
653
768
 
654
769
 
770
+ @pulumi.output_type
771
+ class GetInstanceDirectoryServiceResult(dict):
772
+ def __init__(__self__, *,
773
+ ldaps: Sequence['outputs.GetInstanceDirectoryServiceLdapResult']):
774
+ """
775
+ :param Sequence['GetInstanceDirectoryServiceLdapArgs'] ldaps: Configuration for LDAP servers.
776
+ """
777
+ pulumi.set(__self__, "ldaps", ldaps)
778
+
779
+ @property
780
+ @pulumi.getter
781
+ def ldaps(self) -> Sequence['outputs.GetInstanceDirectoryServiceLdapResult']:
782
+ """
783
+ Configuration for LDAP servers.
784
+ """
785
+ return pulumi.get(self, "ldaps")
786
+
787
+
788
+ @pulumi.output_type
789
+ class GetInstanceDirectoryServiceLdapResult(dict):
790
+ def __init__(__self__, *,
791
+ domain: builtins.str,
792
+ groups_ou: builtins.str,
793
+ servers: Sequence[builtins.str],
794
+ users_ou: builtins.str):
795
+ """
796
+ :param builtins.str domain: The LDAP domain name in the format of 'my-domain.com'.
797
+ :param builtins.str groups_ou: The groups Organizational Unit (OU) is optional. This parameter is a hint
798
+ to allow faster lookup in the LDAP namespace. In case that this parameter
799
+ is not provided, Filestore instance will query the whole LDAP namespace.
800
+ :param Sequence[builtins.str] servers: The servers names are used for specifying the LDAP servers names.
801
+ The LDAP servers names can come with two formats:
802
+ 1. DNS name, for example: 'ldap.example1.com', 'ldap.example2.com'.
803
+ 2. IP address, for example: '10.0.0.1', '10.0.0.2', '10.0.0.3'.
804
+ All servers names must be in the same format: either all DNS names or all
805
+ IP addresses.
806
+ :param builtins.str users_ou: The users Organizational Unit (OU) is optional. This parameter is a hint
807
+ to allow faster lookup in the LDAP namespace. In case that this parameter
808
+ is not provided, Filestore instance will query the whole LDAP namespace.
809
+ """
810
+ pulumi.set(__self__, "domain", domain)
811
+ pulumi.set(__self__, "groups_ou", groups_ou)
812
+ pulumi.set(__self__, "servers", servers)
813
+ pulumi.set(__self__, "users_ou", users_ou)
814
+
815
+ @property
816
+ @pulumi.getter
817
+ def domain(self) -> builtins.str:
818
+ """
819
+ The LDAP domain name in the format of 'my-domain.com'.
820
+ """
821
+ return pulumi.get(self, "domain")
822
+
823
+ @property
824
+ @pulumi.getter(name="groupsOu")
825
+ def groups_ou(self) -> builtins.str:
826
+ """
827
+ The groups Organizational Unit (OU) is optional. This parameter is a hint
828
+ to allow faster lookup in the LDAP namespace. In case that this parameter
829
+ is not provided, Filestore instance will query the whole LDAP namespace.
830
+ """
831
+ return pulumi.get(self, "groups_ou")
832
+
833
+ @property
834
+ @pulumi.getter
835
+ def servers(self) -> Sequence[builtins.str]:
836
+ """
837
+ The servers names are used for specifying the LDAP servers names.
838
+ The LDAP servers names can come with two formats:
839
+ 1. DNS name, for example: 'ldap.example1.com', 'ldap.example2.com'.
840
+ 2. IP address, for example: '10.0.0.1', '10.0.0.2', '10.0.0.3'.
841
+ All servers names must be in the same format: either all DNS names or all
842
+ IP addresses.
843
+ """
844
+ return pulumi.get(self, "servers")
845
+
846
+ @property
847
+ @pulumi.getter(name="usersOu")
848
+ def users_ou(self) -> builtins.str:
849
+ """
850
+ The users Organizational Unit (OU) is optional. This parameter is a hint
851
+ to allow faster lookup in the LDAP namespace. In case that this parameter
852
+ is not provided, Filestore instance will query the whole LDAP namespace.
853
+ """
854
+ return pulumi.get(self, "users_ou")
855
+
856
+
655
857
  @pulumi.output_type
656
858
  class GetInstanceEffectiveReplicationResult(dict):
657
859
  def __init__(__self__, *,