pulumi-gcp 7.15.0a1711038061__py3-none-any.whl → 7.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. pulumi_gcp/__init__.py +102 -0
  2. pulumi_gcp/accesscontextmanager/__init__.py +1 -0
  3. pulumi_gcp/accesscontextmanager/_inputs.py +74 -58
  4. pulumi_gcp/accesscontextmanager/outputs.py +74 -58
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
  6. pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
  7. pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
  8. pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
  9. pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
  10. pulumi_gcp/apphub/__init__.py +15 -0
  11. pulumi_gcp/apphub/_inputs.py +1016 -0
  12. pulumi_gcp/apphub/application.py +775 -0
  13. pulumi_gcp/apphub/get_discovered_service.py +180 -0
  14. pulumi_gcp/apphub/get_discovered_workload.py +180 -0
  15. pulumi_gcp/apphub/outputs.py +1206 -0
  16. pulumi_gcp/apphub/service.py +1121 -0
  17. pulumi_gcp/apphub/service_project_attachment.py +516 -0
  18. pulumi_gcp/apphub/workload.py +1197 -0
  19. pulumi_gcp/cloudquota/__init__.py +10 -0
  20. pulumi_gcp/cloudquota/get_s_quota_info.py +322 -0
  21. pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
  22. pulumi_gcp/cloudquota/outputs.py +375 -0
  23. pulumi_gcp/cloudrunv2/_inputs.py +85 -4
  24. pulumi_gcp/cloudrunv2/get_service.py +11 -1
  25. pulumi_gcp/cloudrunv2/outputs.py +165 -6
  26. pulumi_gcp/cloudrunv2/service.py +60 -6
  27. pulumi_gcp/composer/_inputs.py +16 -0
  28. pulumi_gcp/composer/outputs.py +23 -0
  29. pulumi_gcp/compute/_inputs.py +109 -11
  30. pulumi_gcp/compute/outputs.py +144 -13
  31. pulumi_gcp/compute/region_network_endpoint_group.py +30 -0
  32. pulumi_gcp/compute/region_url_map.py +152 -0
  33. pulumi_gcp/config/__init__.pyi +4 -0
  34. pulumi_gcp/config/vars.py +8 -0
  35. pulumi_gcp/dataform/repository.py +4 -74
  36. pulumi_gcp/firebase/__init__.py +1 -0
  37. pulumi_gcp/firebase/android_app.py +41 -40
  38. pulumi_gcp/firebase/app_check_device_check_config.py +572 -0
  39. pulumi_gcp/firestore/_inputs.py +69 -0
  40. pulumi_gcp/firestore/database.py +206 -0
  41. pulumi_gcp/firestore/index.py +34 -48
  42. pulumi_gcp/firestore/outputs.py +80 -0
  43. pulumi_gcp/gkeonprem/_inputs.py +1 -3
  44. pulumi_gcp/gkeonprem/outputs.py +1 -3
  45. pulumi_gcp/gkeonprem/v_mware_cluster.py +2 -0
  46. pulumi_gcp/iap/__init__.py +5 -0
  47. pulumi_gcp/iap/_inputs.py +100 -0
  48. pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +172 -0
  49. pulumi_gcp/iap/outputs.py +76 -0
  50. pulumi_gcp/iap/tunnel_dest_group.py +524 -0
  51. pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +858 -0
  52. pulumi_gcp/iap/tunnel_dest_group_iam_member.py +858 -0
  53. pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +760 -0
  54. pulumi_gcp/kms/__init__.py +1 -0
  55. pulumi_gcp/kms/_inputs.py +246 -0
  56. pulumi_gcp/kms/ekm_connection.py +610 -0
  57. pulumi_gcp/kms/outputs.py +242 -0
  58. pulumi_gcp/monitoring/_inputs.py +2 -0
  59. pulumi_gcp/monitoring/outputs.py +2 -0
  60. pulumi_gcp/networksecurity/__init__.py +1 -0
  61. pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
  62. pulumi_gcp/networksecurity/firewall_endpoint_association.py +753 -0
  63. pulumi_gcp/notebooks/instance.py +8 -0
  64. pulumi_gcp/orgpolicy/policy.py +2 -2
  65. pulumi_gcp/provider.py +40 -0
  66. pulumi_gcp/pubsub/_inputs.py +108 -0
  67. pulumi_gcp/pubsub/get_topic.py +11 -1
  68. pulumi_gcp/pubsub/outputs.py +213 -0
  69. pulumi_gcp/pubsub/subscription.py +4 -4
  70. pulumi_gcp/pubsub/topic.py +92 -0
  71. pulumi_gcp/securityposture/posture.py +2 -2
  72. pulumi_gcp/securityposture/posture_deployment.py +2 -2
  73. pulumi_gcp/storage/_inputs.py +72 -15
  74. pulumi_gcp/storage/bucket.py +54 -0
  75. pulumi_gcp/storage/get_bucket.py +11 -1
  76. pulumi_gcp/storage/outputs.py +110 -14
  77. pulumi_gcp/workstations/_inputs.py +247 -4
  78. pulumi_gcp/workstations/outputs.py +261 -5
  79. pulumi_gcp/workstations/workstation_config.py +160 -0
  80. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/METADATA +1 -1
  81. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/RECORD +83 -61
  82. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/WHEEL +0 -0
  83. {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,516 @@
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 pulumi
8
+ import pulumi.runtime
9
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
10
+ from .. import _utilities
11
+
12
+ __all__ = ['ServiceProjectAttachmentArgs', 'ServiceProjectAttachment']
13
+
14
+ @pulumi.input_type
15
+ class ServiceProjectAttachmentArgs:
16
+ def __init__(__self__, *,
17
+ service_project_attachment_id: pulumi.Input[str],
18
+ project: Optional[pulumi.Input[str]] = None,
19
+ service_project: Optional[pulumi.Input[str]] = None):
20
+ """
21
+ The set of arguments for constructing a ServiceProjectAttachment resource.
22
+ :param pulumi.Input[str] service_project_attachment_id: Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}"
23
+
24
+
25
+ - - -
26
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
27
+ If it is not provided, the provider project is used.
28
+ :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\"
29
+ or \\"projects/123\\". As input, project name with either project id or number
30
+ are accepted. As output, this field will contain project number. "
31
+ """
32
+ pulumi.set(__self__, "service_project_attachment_id", service_project_attachment_id)
33
+ if project is not None:
34
+ pulumi.set(__self__, "project", project)
35
+ if service_project is not None:
36
+ pulumi.set(__self__, "service_project", service_project)
37
+
38
+ @property
39
+ @pulumi.getter(name="serviceProjectAttachmentId")
40
+ def service_project_attachment_id(self) -> pulumi.Input[str]:
41
+ """
42
+ Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}"
43
+
44
+
45
+ - - -
46
+ """
47
+ return pulumi.get(self, "service_project_attachment_id")
48
+
49
+ @service_project_attachment_id.setter
50
+ def service_project_attachment_id(self, value: pulumi.Input[str]):
51
+ pulumi.set(self, "service_project_attachment_id", value)
52
+
53
+ @property
54
+ @pulumi.getter
55
+ def project(self) -> Optional[pulumi.Input[str]]:
56
+ """
57
+ The ID of the project in which the resource belongs.
58
+ If it is not provided, the provider project is used.
59
+ """
60
+ return pulumi.get(self, "project")
61
+
62
+ @project.setter
63
+ def project(self, value: Optional[pulumi.Input[str]]):
64
+ pulumi.set(self, "project", value)
65
+
66
+ @property
67
+ @pulumi.getter(name="serviceProject")
68
+ def service_project(self) -> Optional[pulumi.Input[str]]:
69
+ """
70
+ "Immutable. Service project name in the format: \\"projects/abc\\"
71
+ or \\"projects/123\\". As input, project name with either project id or number
72
+ are accepted. As output, this field will contain project number. "
73
+ """
74
+ return pulumi.get(self, "service_project")
75
+
76
+ @service_project.setter
77
+ def service_project(self, value: Optional[pulumi.Input[str]]):
78
+ pulumi.set(self, "service_project", value)
79
+
80
+
81
+ @pulumi.input_type
82
+ class _ServiceProjectAttachmentState:
83
+ def __init__(__self__, *,
84
+ create_time: Optional[pulumi.Input[str]] = None,
85
+ name: Optional[pulumi.Input[str]] = None,
86
+ project: Optional[pulumi.Input[str]] = None,
87
+ service_project: Optional[pulumi.Input[str]] = None,
88
+ service_project_attachment_id: Optional[pulumi.Input[str]] = None,
89
+ state: Optional[pulumi.Input[str]] = None,
90
+ uid: Optional[pulumi.Input[str]] = None):
91
+ """
92
+ Input properties used for looking up and filtering ServiceProjectAttachment resources.
93
+ :param pulumi.Input[str] create_time: Output only. Create time.
94
+ :param pulumi.Input[str] name: "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" "
95
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
96
+ If it is not provided, the provider project is used.
97
+ :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\"
98
+ or \\"projects/123\\". As input, project name with either project id or number
99
+ are accepted. As output, this field will contain project number. "
100
+ :param pulumi.Input[str] service_project_attachment_id: Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}"
101
+
102
+
103
+ - - -
104
+ :param pulumi.Input[str] state: ServiceProjectAttachment state.
105
+ :param pulumi.Input[str] uid: Output only. A globally unique identifier (in UUID4 format) for the `ServiceProjectAttachment`.
106
+ """
107
+ if create_time is not None:
108
+ pulumi.set(__self__, "create_time", create_time)
109
+ if name is not None:
110
+ pulumi.set(__self__, "name", name)
111
+ if project is not None:
112
+ pulumi.set(__self__, "project", project)
113
+ if service_project is not None:
114
+ pulumi.set(__self__, "service_project", service_project)
115
+ if service_project_attachment_id is not None:
116
+ pulumi.set(__self__, "service_project_attachment_id", service_project_attachment_id)
117
+ if state is not None:
118
+ pulumi.set(__self__, "state", state)
119
+ if uid is not None:
120
+ pulumi.set(__self__, "uid", uid)
121
+
122
+ @property
123
+ @pulumi.getter(name="createTime")
124
+ def create_time(self) -> Optional[pulumi.Input[str]]:
125
+ """
126
+ Output only. Create time.
127
+ """
128
+ return pulumi.get(self, "create_time")
129
+
130
+ @create_time.setter
131
+ def create_time(self, value: Optional[pulumi.Input[str]]):
132
+ pulumi.set(self, "create_time", value)
133
+
134
+ @property
135
+ @pulumi.getter
136
+ def name(self) -> Optional[pulumi.Input[str]]:
137
+ """
138
+ "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" "
139
+ """
140
+ return pulumi.get(self, "name")
141
+
142
+ @name.setter
143
+ def name(self, value: Optional[pulumi.Input[str]]):
144
+ pulumi.set(self, "name", value)
145
+
146
+ @property
147
+ @pulumi.getter
148
+ def project(self) -> Optional[pulumi.Input[str]]:
149
+ """
150
+ The ID of the project in which the resource belongs.
151
+ If it is not provided, the provider project is used.
152
+ """
153
+ return pulumi.get(self, "project")
154
+
155
+ @project.setter
156
+ def project(self, value: Optional[pulumi.Input[str]]):
157
+ pulumi.set(self, "project", value)
158
+
159
+ @property
160
+ @pulumi.getter(name="serviceProject")
161
+ def service_project(self) -> Optional[pulumi.Input[str]]:
162
+ """
163
+ "Immutable. Service project name in the format: \\"projects/abc\\"
164
+ or \\"projects/123\\". As input, project name with either project id or number
165
+ are accepted. As output, this field will contain project number. "
166
+ """
167
+ return pulumi.get(self, "service_project")
168
+
169
+ @service_project.setter
170
+ def service_project(self, value: Optional[pulumi.Input[str]]):
171
+ pulumi.set(self, "service_project", value)
172
+
173
+ @property
174
+ @pulumi.getter(name="serviceProjectAttachmentId")
175
+ def service_project_attachment_id(self) -> Optional[pulumi.Input[str]]:
176
+ """
177
+ Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}"
178
+
179
+
180
+ - - -
181
+ """
182
+ return pulumi.get(self, "service_project_attachment_id")
183
+
184
+ @service_project_attachment_id.setter
185
+ def service_project_attachment_id(self, value: Optional[pulumi.Input[str]]):
186
+ pulumi.set(self, "service_project_attachment_id", value)
187
+
188
+ @property
189
+ @pulumi.getter
190
+ def state(self) -> Optional[pulumi.Input[str]]:
191
+ """
192
+ ServiceProjectAttachment state.
193
+ """
194
+ return pulumi.get(self, "state")
195
+
196
+ @state.setter
197
+ def state(self, value: Optional[pulumi.Input[str]]):
198
+ pulumi.set(self, "state", value)
199
+
200
+ @property
201
+ @pulumi.getter
202
+ def uid(self) -> Optional[pulumi.Input[str]]:
203
+ """
204
+ Output only. A globally unique identifier (in UUID4 format) for the `ServiceProjectAttachment`.
205
+ """
206
+ return pulumi.get(self, "uid")
207
+
208
+ @uid.setter
209
+ def uid(self, value: Optional[pulumi.Input[str]]):
210
+ pulumi.set(self, "uid", value)
211
+
212
+
213
+ class ServiceProjectAttachment(pulumi.CustomResource):
214
+ @overload
215
+ def __init__(__self__,
216
+ resource_name: str,
217
+ opts: Optional[pulumi.ResourceOptions] = None,
218
+ project: Optional[pulumi.Input[str]] = None,
219
+ service_project: Optional[pulumi.Input[str]] = None,
220
+ service_project_attachment_id: Optional[pulumi.Input[str]] = None,
221
+ __props__=None):
222
+ """
223
+ Represents a Service project attachment to the Host Project.
224
+
225
+ ## Example Usage
226
+
227
+ ### Service Project Attachment Basic
228
+
229
+ <!--Start PulumiCodeChooser -->
230
+ ```python
231
+ import pulumi
232
+ import pulumi_gcp as gcp
233
+ import pulumi_time as time
234
+
235
+ service_project = gcp.organizations.Project("service_project",
236
+ project_id="project-1",
237
+ name="Service Project",
238
+ org_id="123456789")
239
+ example = gcp.apphub.ServiceProjectAttachment("example", service_project_attachment_id=service_project.project_id)
240
+ wait120s = time.index.Sleep("wait_120s", create_duration=120s)
241
+ ```
242
+ <!--End PulumiCodeChooser -->
243
+ ### Service Project Attachment Full
244
+
245
+ <!--Start PulumiCodeChooser -->
246
+ ```python
247
+ import pulumi
248
+ import pulumi_gcp as gcp
249
+ import pulumi_time as time
250
+
251
+ service_project_full = gcp.organizations.Project("service_project_full",
252
+ project_id="project-1",
253
+ name="Service Project Full",
254
+ org_id="123456789")
255
+ example2 = gcp.apphub.ServiceProjectAttachment("example2",
256
+ service_project_attachment_id=service_project_full.project_id,
257
+ service_project=service_project_full.project_id)
258
+ wait120s = time.index.Sleep("wait_120s", create_duration=120s)
259
+ ```
260
+ <!--End PulumiCodeChooser -->
261
+
262
+ ## Import
263
+
264
+ ServiceProjectAttachment can be imported using any of these accepted formats:
265
+
266
+ * `projects/{{project}}/locations/global/serviceProjectAttachments/{{service_project_attachment_id}}`
267
+
268
+ * `{{project}}/{{service_project_attachment_id}}`
269
+
270
+ * `{{service_project_attachment_id}}`
271
+
272
+ When using the `pulumi import` command, ServiceProjectAttachment can be imported using one of the formats above. For example:
273
+
274
+ ```sh
275
+ $ pulumi import gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment default projects/{{project}}/locations/global/serviceProjectAttachments/{{service_project_attachment_id}}
276
+ ```
277
+
278
+ ```sh
279
+ $ pulumi import gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment default {{project}}/{{service_project_attachment_id}}
280
+ ```
281
+
282
+ ```sh
283
+ $ pulumi import gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment default {{service_project_attachment_id}}
284
+ ```
285
+
286
+ :param str resource_name: The name of the resource.
287
+ :param pulumi.ResourceOptions opts: Options for the resource.
288
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
289
+ If it is not provided, the provider project is used.
290
+ :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\"
291
+ or \\"projects/123\\". As input, project name with either project id or number
292
+ are accepted. As output, this field will contain project number. "
293
+ :param pulumi.Input[str] service_project_attachment_id: Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}"
294
+
295
+
296
+ - - -
297
+ """
298
+ ...
299
+ @overload
300
+ def __init__(__self__,
301
+ resource_name: str,
302
+ args: ServiceProjectAttachmentArgs,
303
+ opts: Optional[pulumi.ResourceOptions] = None):
304
+ """
305
+ Represents a Service project attachment to the Host Project.
306
+
307
+ ## Example Usage
308
+
309
+ ### Service Project Attachment Basic
310
+
311
+ <!--Start PulumiCodeChooser -->
312
+ ```python
313
+ import pulumi
314
+ import pulumi_gcp as gcp
315
+ import pulumi_time as time
316
+
317
+ service_project = gcp.organizations.Project("service_project",
318
+ project_id="project-1",
319
+ name="Service Project",
320
+ org_id="123456789")
321
+ example = gcp.apphub.ServiceProjectAttachment("example", service_project_attachment_id=service_project.project_id)
322
+ wait120s = time.index.Sleep("wait_120s", create_duration=120s)
323
+ ```
324
+ <!--End PulumiCodeChooser -->
325
+ ### Service Project Attachment Full
326
+
327
+ <!--Start PulumiCodeChooser -->
328
+ ```python
329
+ import pulumi
330
+ import pulumi_gcp as gcp
331
+ import pulumi_time as time
332
+
333
+ service_project_full = gcp.organizations.Project("service_project_full",
334
+ project_id="project-1",
335
+ name="Service Project Full",
336
+ org_id="123456789")
337
+ example2 = gcp.apphub.ServiceProjectAttachment("example2",
338
+ service_project_attachment_id=service_project_full.project_id,
339
+ service_project=service_project_full.project_id)
340
+ wait120s = time.index.Sleep("wait_120s", create_duration=120s)
341
+ ```
342
+ <!--End PulumiCodeChooser -->
343
+
344
+ ## Import
345
+
346
+ ServiceProjectAttachment can be imported using any of these accepted formats:
347
+
348
+ * `projects/{{project}}/locations/global/serviceProjectAttachments/{{service_project_attachment_id}}`
349
+
350
+ * `{{project}}/{{service_project_attachment_id}}`
351
+
352
+ * `{{service_project_attachment_id}}`
353
+
354
+ When using the `pulumi import` command, ServiceProjectAttachment can be imported using one of the formats above. For example:
355
+
356
+ ```sh
357
+ $ pulumi import gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment default projects/{{project}}/locations/global/serviceProjectAttachments/{{service_project_attachment_id}}
358
+ ```
359
+
360
+ ```sh
361
+ $ pulumi import gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment default {{project}}/{{service_project_attachment_id}}
362
+ ```
363
+
364
+ ```sh
365
+ $ pulumi import gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment default {{service_project_attachment_id}}
366
+ ```
367
+
368
+ :param str resource_name: The name of the resource.
369
+ :param ServiceProjectAttachmentArgs args: The arguments to use to populate this resource's properties.
370
+ :param pulumi.ResourceOptions opts: Options for the resource.
371
+ """
372
+ ...
373
+ def __init__(__self__, resource_name: str, *args, **kwargs):
374
+ resource_args, opts = _utilities.get_resource_args_opts(ServiceProjectAttachmentArgs, pulumi.ResourceOptions, *args, **kwargs)
375
+ if resource_args is not None:
376
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
377
+ else:
378
+ __self__._internal_init(resource_name, *args, **kwargs)
379
+
380
+ def _internal_init(__self__,
381
+ resource_name: str,
382
+ opts: Optional[pulumi.ResourceOptions] = None,
383
+ project: Optional[pulumi.Input[str]] = None,
384
+ service_project: Optional[pulumi.Input[str]] = None,
385
+ service_project_attachment_id: Optional[pulumi.Input[str]] = None,
386
+ __props__=None):
387
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
388
+ if not isinstance(opts, pulumi.ResourceOptions):
389
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
390
+ if opts.id is None:
391
+ if __props__ is not None:
392
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
393
+ __props__ = ServiceProjectAttachmentArgs.__new__(ServiceProjectAttachmentArgs)
394
+
395
+ __props__.__dict__["project"] = project
396
+ __props__.__dict__["service_project"] = service_project
397
+ if service_project_attachment_id is None and not opts.urn:
398
+ raise TypeError("Missing required property 'service_project_attachment_id'")
399
+ __props__.__dict__["service_project_attachment_id"] = service_project_attachment_id
400
+ __props__.__dict__["create_time"] = None
401
+ __props__.__dict__["name"] = None
402
+ __props__.__dict__["state"] = None
403
+ __props__.__dict__["uid"] = None
404
+ super(ServiceProjectAttachment, __self__).__init__(
405
+ 'gcp:apphub/serviceProjectAttachment:ServiceProjectAttachment',
406
+ resource_name,
407
+ __props__,
408
+ opts)
409
+
410
+ @staticmethod
411
+ def get(resource_name: str,
412
+ id: pulumi.Input[str],
413
+ opts: Optional[pulumi.ResourceOptions] = None,
414
+ create_time: Optional[pulumi.Input[str]] = None,
415
+ name: Optional[pulumi.Input[str]] = None,
416
+ project: Optional[pulumi.Input[str]] = None,
417
+ service_project: Optional[pulumi.Input[str]] = None,
418
+ service_project_attachment_id: Optional[pulumi.Input[str]] = None,
419
+ state: Optional[pulumi.Input[str]] = None,
420
+ uid: Optional[pulumi.Input[str]] = None) -> 'ServiceProjectAttachment':
421
+ """
422
+ Get an existing ServiceProjectAttachment resource's state with the given name, id, and optional extra
423
+ properties used to qualify the lookup.
424
+
425
+ :param str resource_name: The unique name of the resulting resource.
426
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
427
+ :param pulumi.ResourceOptions opts: Options for the resource.
428
+ :param pulumi.Input[str] create_time: Output only. Create time.
429
+ :param pulumi.Input[str] name: "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" "
430
+ :param pulumi.Input[str] project: The ID of the project in which the resource belongs.
431
+ If it is not provided, the provider project is used.
432
+ :param pulumi.Input[str] service_project: "Immutable. Service project name in the format: \\"projects/abc\\"
433
+ or \\"projects/123\\". As input, project name with either project id or number
434
+ are accepted. As output, this field will contain project number. "
435
+ :param pulumi.Input[str] service_project_attachment_id: Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}"
436
+
437
+
438
+ - - -
439
+ :param pulumi.Input[str] state: ServiceProjectAttachment state.
440
+ :param pulumi.Input[str] uid: Output only. A globally unique identifier (in UUID4 format) for the `ServiceProjectAttachment`.
441
+ """
442
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
443
+
444
+ __props__ = _ServiceProjectAttachmentState.__new__(_ServiceProjectAttachmentState)
445
+
446
+ __props__.__dict__["create_time"] = create_time
447
+ __props__.__dict__["name"] = name
448
+ __props__.__dict__["project"] = project
449
+ __props__.__dict__["service_project"] = service_project
450
+ __props__.__dict__["service_project_attachment_id"] = service_project_attachment_id
451
+ __props__.__dict__["state"] = state
452
+ __props__.__dict__["uid"] = uid
453
+ return ServiceProjectAttachment(resource_name, opts=opts, __props__=__props__)
454
+
455
+ @property
456
+ @pulumi.getter(name="createTime")
457
+ def create_time(self) -> pulumi.Output[str]:
458
+ """
459
+ Output only. Create time.
460
+ """
461
+ return pulumi.get(self, "create_time")
462
+
463
+ @property
464
+ @pulumi.getter
465
+ def name(self) -> pulumi.Output[str]:
466
+ """
467
+ "Identifier. The resource name of a ServiceProjectAttachment. Format:\\"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\\" "
468
+ """
469
+ return pulumi.get(self, "name")
470
+
471
+ @property
472
+ @pulumi.getter
473
+ def project(self) -> pulumi.Output[str]:
474
+ """
475
+ The ID of the project in which the resource belongs.
476
+ If it is not provided, the provider project is used.
477
+ """
478
+ return pulumi.get(self, "project")
479
+
480
+ @property
481
+ @pulumi.getter(name="serviceProject")
482
+ def service_project(self) -> pulumi.Output[Optional[str]]:
483
+ """
484
+ "Immutable. Service project name in the format: \\"projects/abc\\"
485
+ or \\"projects/123\\". As input, project name with either project id or number
486
+ are accepted. As output, this field will contain project number. "
487
+ """
488
+ return pulumi.get(self, "service_project")
489
+
490
+ @property
491
+ @pulumi.getter(name="serviceProjectAttachmentId")
492
+ def service_project_attachment_id(self) -> pulumi.Output[str]:
493
+ """
494
+ Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: "projects/{project_id}"
495
+
496
+
497
+ - - -
498
+ """
499
+ return pulumi.get(self, "service_project_attachment_id")
500
+
501
+ @property
502
+ @pulumi.getter
503
+ def state(self) -> pulumi.Output[str]:
504
+ """
505
+ ServiceProjectAttachment state.
506
+ """
507
+ return pulumi.get(self, "state")
508
+
509
+ @property
510
+ @pulumi.getter
511
+ def uid(self) -> pulumi.Output[str]:
512
+ """
513
+ Output only. A globally unique identifier (in UUID4 format) for the `ServiceProjectAttachment`.
514
+ """
515
+ return pulumi.get(self, "uid")
516
+