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.
- pulumi_gcp/__init__.py +102 -0
- pulumi_gcp/accesscontextmanager/__init__.py +1 -0
- pulumi_gcp/accesscontextmanager/_inputs.py +74 -58
- pulumi_gcp/accesscontextmanager/outputs.py +74 -58
- pulumi_gcp/accesscontextmanager/service_perimeter.py +0 -2
- pulumi_gcp/accesscontextmanager/service_perimeter_dry_run_resource.py +345 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +80 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +86 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_resource.py +4 -2
- pulumi_gcp/apphub/__init__.py +15 -0
- pulumi_gcp/apphub/_inputs.py +1016 -0
- pulumi_gcp/apphub/application.py +775 -0
- pulumi_gcp/apphub/get_discovered_service.py +180 -0
- pulumi_gcp/apphub/get_discovered_workload.py +180 -0
- pulumi_gcp/apphub/outputs.py +1206 -0
- pulumi_gcp/apphub/service.py +1121 -0
- pulumi_gcp/apphub/service_project_attachment.py +516 -0
- pulumi_gcp/apphub/workload.py +1197 -0
- pulumi_gcp/cloudquota/__init__.py +10 -0
- pulumi_gcp/cloudquota/get_s_quota_info.py +322 -0
- pulumi_gcp/cloudquota/get_s_quota_infos.py +136 -0
- pulumi_gcp/cloudquota/outputs.py +375 -0
- pulumi_gcp/cloudrunv2/_inputs.py +85 -4
- pulumi_gcp/cloudrunv2/get_service.py +11 -1
- pulumi_gcp/cloudrunv2/outputs.py +165 -6
- pulumi_gcp/cloudrunv2/service.py +60 -6
- pulumi_gcp/composer/_inputs.py +16 -0
- pulumi_gcp/composer/outputs.py +23 -0
- pulumi_gcp/compute/_inputs.py +109 -11
- pulumi_gcp/compute/outputs.py +144 -13
- pulumi_gcp/compute/region_network_endpoint_group.py +30 -0
- pulumi_gcp/compute/region_url_map.py +152 -0
- pulumi_gcp/config/__init__.pyi +4 -0
- pulumi_gcp/config/vars.py +8 -0
- pulumi_gcp/dataform/repository.py +4 -74
- pulumi_gcp/firebase/__init__.py +1 -0
- pulumi_gcp/firebase/android_app.py +41 -40
- pulumi_gcp/firebase/app_check_device_check_config.py +572 -0
- pulumi_gcp/firestore/_inputs.py +69 -0
- pulumi_gcp/firestore/database.py +206 -0
- pulumi_gcp/firestore/index.py +34 -48
- pulumi_gcp/firestore/outputs.py +80 -0
- pulumi_gcp/gkeonprem/_inputs.py +1 -3
- pulumi_gcp/gkeonprem/outputs.py +1 -3
- pulumi_gcp/gkeonprem/v_mware_cluster.py +2 -0
- pulumi_gcp/iap/__init__.py +5 -0
- pulumi_gcp/iap/_inputs.py +100 -0
- pulumi_gcp/iap/get_tunnel_dest_group_iam_policy.py +172 -0
- pulumi_gcp/iap/outputs.py +76 -0
- pulumi_gcp/iap/tunnel_dest_group.py +524 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_binding.py +858 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_member.py +858 -0
- pulumi_gcp/iap/tunnel_dest_group_iam_policy.py +760 -0
- pulumi_gcp/kms/__init__.py +1 -0
- pulumi_gcp/kms/_inputs.py +246 -0
- pulumi_gcp/kms/ekm_connection.py +610 -0
- pulumi_gcp/kms/outputs.py +242 -0
- pulumi_gcp/monitoring/_inputs.py +2 -0
- pulumi_gcp/monitoring/outputs.py +2 -0
- pulumi_gcp/networksecurity/__init__.py +1 -0
- pulumi_gcp/networksecurity/firewall_endpoint.py +48 -0
- pulumi_gcp/networksecurity/firewall_endpoint_association.py +753 -0
- pulumi_gcp/notebooks/instance.py +8 -0
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/provider.py +40 -0
- pulumi_gcp/pubsub/_inputs.py +108 -0
- pulumi_gcp/pubsub/get_topic.py +11 -1
- pulumi_gcp/pubsub/outputs.py +213 -0
- pulumi_gcp/pubsub/subscription.py +4 -4
- pulumi_gcp/pubsub/topic.py +92 -0
- pulumi_gcp/securityposture/posture.py +2 -2
- pulumi_gcp/securityposture/posture_deployment.py +2 -2
- pulumi_gcp/storage/_inputs.py +72 -15
- pulumi_gcp/storage/bucket.py +54 -0
- pulumi_gcp/storage/get_bucket.py +11 -1
- pulumi_gcp/storage/outputs.py +110 -14
- pulumi_gcp/workstations/_inputs.py +247 -4
- pulumi_gcp/workstations/outputs.py +261 -5
- pulumi_gcp/workstations/workstation_config.py +160 -0
- {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/RECORD +83 -61
- {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.15.0a1711038061.dist-info → pulumi_gcp-7.16.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,1197 @@
|
|
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
|
+
from . import outputs
|
12
|
+
from ._inputs import *
|
13
|
+
|
14
|
+
__all__ = ['WorkloadArgs', 'Workload']
|
15
|
+
|
16
|
+
@pulumi.input_type
|
17
|
+
class WorkloadArgs:
|
18
|
+
def __init__(__self__, *,
|
19
|
+
application_id: pulumi.Input[str],
|
20
|
+
discovered_workload: pulumi.Input[str],
|
21
|
+
location: pulumi.Input[str],
|
22
|
+
workload_id: pulumi.Input[str],
|
23
|
+
attributes: Optional[pulumi.Input['WorkloadAttributesArgs']] = None,
|
24
|
+
description: Optional[pulumi.Input[str]] = None,
|
25
|
+
display_name: Optional[pulumi.Input[str]] = None,
|
26
|
+
project: Optional[pulumi.Input[str]] = None):
|
27
|
+
"""
|
28
|
+
The set of arguments for constructing a Workload resource.
|
29
|
+
:param pulumi.Input[str] application_id: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
30
|
+
:param pulumi.Input[str] discovered_workload: Immutable. The resource name of the original discovered workload.
|
31
|
+
:param pulumi.Input[str] location: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
32
|
+
:param pulumi.Input[str] workload_id: The Workload identifier.
|
33
|
+
|
34
|
+
|
35
|
+
- - -
|
36
|
+
:param pulumi.Input['WorkloadAttributesArgs'] attributes: Consumer provided attributes.
|
37
|
+
Structure is documented below.
|
38
|
+
:param pulumi.Input[str] description: User-defined description of a Workload.
|
39
|
+
:param pulumi.Input[str] display_name: User-defined name for the Workload.
|
40
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
41
|
+
If it is not provided, the provider project is used.
|
42
|
+
"""
|
43
|
+
pulumi.set(__self__, "application_id", application_id)
|
44
|
+
pulumi.set(__self__, "discovered_workload", discovered_workload)
|
45
|
+
pulumi.set(__self__, "location", location)
|
46
|
+
pulumi.set(__self__, "workload_id", workload_id)
|
47
|
+
if attributes is not None:
|
48
|
+
pulumi.set(__self__, "attributes", attributes)
|
49
|
+
if description is not None:
|
50
|
+
pulumi.set(__self__, "description", description)
|
51
|
+
if display_name is not None:
|
52
|
+
pulumi.set(__self__, "display_name", display_name)
|
53
|
+
if project is not None:
|
54
|
+
pulumi.set(__self__, "project", project)
|
55
|
+
|
56
|
+
@property
|
57
|
+
@pulumi.getter(name="applicationId")
|
58
|
+
def application_id(self) -> pulumi.Input[str]:
|
59
|
+
"""
|
60
|
+
Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
61
|
+
"""
|
62
|
+
return pulumi.get(self, "application_id")
|
63
|
+
|
64
|
+
@application_id.setter
|
65
|
+
def application_id(self, value: pulumi.Input[str]):
|
66
|
+
pulumi.set(self, "application_id", value)
|
67
|
+
|
68
|
+
@property
|
69
|
+
@pulumi.getter(name="discoveredWorkload")
|
70
|
+
def discovered_workload(self) -> pulumi.Input[str]:
|
71
|
+
"""
|
72
|
+
Immutable. The resource name of the original discovered workload.
|
73
|
+
"""
|
74
|
+
return pulumi.get(self, "discovered_workload")
|
75
|
+
|
76
|
+
@discovered_workload.setter
|
77
|
+
def discovered_workload(self, value: pulumi.Input[str]):
|
78
|
+
pulumi.set(self, "discovered_workload", value)
|
79
|
+
|
80
|
+
@property
|
81
|
+
@pulumi.getter
|
82
|
+
def location(self) -> pulumi.Input[str]:
|
83
|
+
"""
|
84
|
+
Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
85
|
+
"""
|
86
|
+
return pulumi.get(self, "location")
|
87
|
+
|
88
|
+
@location.setter
|
89
|
+
def location(self, value: pulumi.Input[str]):
|
90
|
+
pulumi.set(self, "location", value)
|
91
|
+
|
92
|
+
@property
|
93
|
+
@pulumi.getter(name="workloadId")
|
94
|
+
def workload_id(self) -> pulumi.Input[str]:
|
95
|
+
"""
|
96
|
+
The Workload identifier.
|
97
|
+
|
98
|
+
|
99
|
+
- - -
|
100
|
+
"""
|
101
|
+
return pulumi.get(self, "workload_id")
|
102
|
+
|
103
|
+
@workload_id.setter
|
104
|
+
def workload_id(self, value: pulumi.Input[str]):
|
105
|
+
pulumi.set(self, "workload_id", value)
|
106
|
+
|
107
|
+
@property
|
108
|
+
@pulumi.getter
|
109
|
+
def attributes(self) -> Optional[pulumi.Input['WorkloadAttributesArgs']]:
|
110
|
+
"""
|
111
|
+
Consumer provided attributes.
|
112
|
+
Structure is documented below.
|
113
|
+
"""
|
114
|
+
return pulumi.get(self, "attributes")
|
115
|
+
|
116
|
+
@attributes.setter
|
117
|
+
def attributes(self, value: Optional[pulumi.Input['WorkloadAttributesArgs']]):
|
118
|
+
pulumi.set(self, "attributes", value)
|
119
|
+
|
120
|
+
@property
|
121
|
+
@pulumi.getter
|
122
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
123
|
+
"""
|
124
|
+
User-defined description of a Workload.
|
125
|
+
"""
|
126
|
+
return pulumi.get(self, "description")
|
127
|
+
|
128
|
+
@description.setter
|
129
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
130
|
+
pulumi.set(self, "description", value)
|
131
|
+
|
132
|
+
@property
|
133
|
+
@pulumi.getter(name="displayName")
|
134
|
+
def display_name(self) -> Optional[pulumi.Input[str]]:
|
135
|
+
"""
|
136
|
+
User-defined name for the Workload.
|
137
|
+
"""
|
138
|
+
return pulumi.get(self, "display_name")
|
139
|
+
|
140
|
+
@display_name.setter
|
141
|
+
def display_name(self, value: Optional[pulumi.Input[str]]):
|
142
|
+
pulumi.set(self, "display_name", value)
|
143
|
+
|
144
|
+
@property
|
145
|
+
@pulumi.getter
|
146
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
147
|
+
"""
|
148
|
+
The ID of the project in which the resource belongs.
|
149
|
+
If it is not provided, the provider project is used.
|
150
|
+
"""
|
151
|
+
return pulumi.get(self, "project")
|
152
|
+
|
153
|
+
@project.setter
|
154
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
155
|
+
pulumi.set(self, "project", value)
|
156
|
+
|
157
|
+
|
158
|
+
@pulumi.input_type
|
159
|
+
class _WorkloadState:
|
160
|
+
def __init__(__self__, *,
|
161
|
+
application_id: Optional[pulumi.Input[str]] = None,
|
162
|
+
attributes: Optional[pulumi.Input['WorkloadAttributesArgs']] = None,
|
163
|
+
create_time: Optional[pulumi.Input[str]] = None,
|
164
|
+
description: Optional[pulumi.Input[str]] = None,
|
165
|
+
discovered_workload: Optional[pulumi.Input[str]] = None,
|
166
|
+
display_name: Optional[pulumi.Input[str]] = None,
|
167
|
+
location: Optional[pulumi.Input[str]] = None,
|
168
|
+
name: Optional[pulumi.Input[str]] = None,
|
169
|
+
project: Optional[pulumi.Input[str]] = None,
|
170
|
+
state: Optional[pulumi.Input[str]] = None,
|
171
|
+
uid: Optional[pulumi.Input[str]] = None,
|
172
|
+
update_time: Optional[pulumi.Input[str]] = None,
|
173
|
+
workload_id: Optional[pulumi.Input[str]] = None,
|
174
|
+
workload_properties: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadPropertyArgs']]]] = None,
|
175
|
+
workload_references: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadReferenceArgs']]]] = None):
|
176
|
+
"""
|
177
|
+
Input properties used for looking up and filtering Workload resources.
|
178
|
+
:param pulumi.Input[str] application_id: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
179
|
+
:param pulumi.Input['WorkloadAttributesArgs'] attributes: Consumer provided attributes.
|
180
|
+
Structure is documented below.
|
181
|
+
:param pulumi.Input[str] create_time: Output only. Create time.
|
182
|
+
:param pulumi.Input[str] description: User-defined description of a Workload.
|
183
|
+
:param pulumi.Input[str] discovered_workload: Immutable. The resource name of the original discovered workload.
|
184
|
+
:param pulumi.Input[str] display_name: User-defined name for the Workload.
|
185
|
+
:param pulumi.Input[str] location: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
186
|
+
:param pulumi.Input[str] name: Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
|
187
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
188
|
+
If it is not provided, the provider project is used.
|
189
|
+
:param pulumi.Input[str] state: Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
|
190
|
+
:param pulumi.Input[str] uid: Output only. A universally unique identifier (UUID) for the `Workload` in the UUID4 format.
|
191
|
+
:param pulumi.Input[str] update_time: Output only. Update time.
|
192
|
+
:param pulumi.Input[str] workload_id: The Workload identifier.
|
193
|
+
|
194
|
+
|
195
|
+
- - -
|
196
|
+
:param pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadPropertyArgs']]] workload_properties: Properties of an underlying compute resource represented by the Workload.
|
197
|
+
Structure is documented below.
|
198
|
+
:param pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadReferenceArgs']]] workload_references: Reference of an underlying compute resource represented by the Workload.
|
199
|
+
Structure is documented below.
|
200
|
+
"""
|
201
|
+
if application_id is not None:
|
202
|
+
pulumi.set(__self__, "application_id", application_id)
|
203
|
+
if attributes is not None:
|
204
|
+
pulumi.set(__self__, "attributes", attributes)
|
205
|
+
if create_time is not None:
|
206
|
+
pulumi.set(__self__, "create_time", create_time)
|
207
|
+
if description is not None:
|
208
|
+
pulumi.set(__self__, "description", description)
|
209
|
+
if discovered_workload is not None:
|
210
|
+
pulumi.set(__self__, "discovered_workload", discovered_workload)
|
211
|
+
if display_name is not None:
|
212
|
+
pulumi.set(__self__, "display_name", display_name)
|
213
|
+
if location is not None:
|
214
|
+
pulumi.set(__self__, "location", location)
|
215
|
+
if name is not None:
|
216
|
+
pulumi.set(__self__, "name", name)
|
217
|
+
if project is not None:
|
218
|
+
pulumi.set(__self__, "project", project)
|
219
|
+
if state is not None:
|
220
|
+
pulumi.set(__self__, "state", state)
|
221
|
+
if uid is not None:
|
222
|
+
pulumi.set(__self__, "uid", uid)
|
223
|
+
if update_time is not None:
|
224
|
+
pulumi.set(__self__, "update_time", update_time)
|
225
|
+
if workload_id is not None:
|
226
|
+
pulumi.set(__self__, "workload_id", workload_id)
|
227
|
+
if workload_properties is not None:
|
228
|
+
pulumi.set(__self__, "workload_properties", workload_properties)
|
229
|
+
if workload_references is not None:
|
230
|
+
pulumi.set(__self__, "workload_references", workload_references)
|
231
|
+
|
232
|
+
@property
|
233
|
+
@pulumi.getter(name="applicationId")
|
234
|
+
def application_id(self) -> Optional[pulumi.Input[str]]:
|
235
|
+
"""
|
236
|
+
Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
237
|
+
"""
|
238
|
+
return pulumi.get(self, "application_id")
|
239
|
+
|
240
|
+
@application_id.setter
|
241
|
+
def application_id(self, value: Optional[pulumi.Input[str]]):
|
242
|
+
pulumi.set(self, "application_id", value)
|
243
|
+
|
244
|
+
@property
|
245
|
+
@pulumi.getter
|
246
|
+
def attributes(self) -> Optional[pulumi.Input['WorkloadAttributesArgs']]:
|
247
|
+
"""
|
248
|
+
Consumer provided attributes.
|
249
|
+
Structure is documented below.
|
250
|
+
"""
|
251
|
+
return pulumi.get(self, "attributes")
|
252
|
+
|
253
|
+
@attributes.setter
|
254
|
+
def attributes(self, value: Optional[pulumi.Input['WorkloadAttributesArgs']]):
|
255
|
+
pulumi.set(self, "attributes", value)
|
256
|
+
|
257
|
+
@property
|
258
|
+
@pulumi.getter(name="createTime")
|
259
|
+
def create_time(self) -> Optional[pulumi.Input[str]]:
|
260
|
+
"""
|
261
|
+
Output only. Create time.
|
262
|
+
"""
|
263
|
+
return pulumi.get(self, "create_time")
|
264
|
+
|
265
|
+
@create_time.setter
|
266
|
+
def create_time(self, value: Optional[pulumi.Input[str]]):
|
267
|
+
pulumi.set(self, "create_time", value)
|
268
|
+
|
269
|
+
@property
|
270
|
+
@pulumi.getter
|
271
|
+
def description(self) -> Optional[pulumi.Input[str]]:
|
272
|
+
"""
|
273
|
+
User-defined description of a Workload.
|
274
|
+
"""
|
275
|
+
return pulumi.get(self, "description")
|
276
|
+
|
277
|
+
@description.setter
|
278
|
+
def description(self, value: Optional[pulumi.Input[str]]):
|
279
|
+
pulumi.set(self, "description", value)
|
280
|
+
|
281
|
+
@property
|
282
|
+
@pulumi.getter(name="discoveredWorkload")
|
283
|
+
def discovered_workload(self) -> Optional[pulumi.Input[str]]:
|
284
|
+
"""
|
285
|
+
Immutable. The resource name of the original discovered workload.
|
286
|
+
"""
|
287
|
+
return pulumi.get(self, "discovered_workload")
|
288
|
+
|
289
|
+
@discovered_workload.setter
|
290
|
+
def discovered_workload(self, value: Optional[pulumi.Input[str]]):
|
291
|
+
pulumi.set(self, "discovered_workload", value)
|
292
|
+
|
293
|
+
@property
|
294
|
+
@pulumi.getter(name="displayName")
|
295
|
+
def display_name(self) -> Optional[pulumi.Input[str]]:
|
296
|
+
"""
|
297
|
+
User-defined name for the Workload.
|
298
|
+
"""
|
299
|
+
return pulumi.get(self, "display_name")
|
300
|
+
|
301
|
+
@display_name.setter
|
302
|
+
def display_name(self, value: Optional[pulumi.Input[str]]):
|
303
|
+
pulumi.set(self, "display_name", value)
|
304
|
+
|
305
|
+
@property
|
306
|
+
@pulumi.getter
|
307
|
+
def location(self) -> Optional[pulumi.Input[str]]:
|
308
|
+
"""
|
309
|
+
Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
310
|
+
"""
|
311
|
+
return pulumi.get(self, "location")
|
312
|
+
|
313
|
+
@location.setter
|
314
|
+
def location(self, value: Optional[pulumi.Input[str]]):
|
315
|
+
pulumi.set(self, "location", value)
|
316
|
+
|
317
|
+
@property
|
318
|
+
@pulumi.getter
|
319
|
+
def name(self) -> Optional[pulumi.Input[str]]:
|
320
|
+
"""
|
321
|
+
Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
|
322
|
+
"""
|
323
|
+
return pulumi.get(self, "name")
|
324
|
+
|
325
|
+
@name.setter
|
326
|
+
def name(self, value: Optional[pulumi.Input[str]]):
|
327
|
+
pulumi.set(self, "name", value)
|
328
|
+
|
329
|
+
@property
|
330
|
+
@pulumi.getter
|
331
|
+
def project(self) -> Optional[pulumi.Input[str]]:
|
332
|
+
"""
|
333
|
+
The ID of the project in which the resource belongs.
|
334
|
+
If it is not provided, the provider project is used.
|
335
|
+
"""
|
336
|
+
return pulumi.get(self, "project")
|
337
|
+
|
338
|
+
@project.setter
|
339
|
+
def project(self, value: Optional[pulumi.Input[str]]):
|
340
|
+
pulumi.set(self, "project", value)
|
341
|
+
|
342
|
+
@property
|
343
|
+
@pulumi.getter
|
344
|
+
def state(self) -> Optional[pulumi.Input[str]]:
|
345
|
+
"""
|
346
|
+
Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
|
347
|
+
"""
|
348
|
+
return pulumi.get(self, "state")
|
349
|
+
|
350
|
+
@state.setter
|
351
|
+
def state(self, value: Optional[pulumi.Input[str]]):
|
352
|
+
pulumi.set(self, "state", value)
|
353
|
+
|
354
|
+
@property
|
355
|
+
@pulumi.getter
|
356
|
+
def uid(self) -> Optional[pulumi.Input[str]]:
|
357
|
+
"""
|
358
|
+
Output only. A universally unique identifier (UUID) for the `Workload` in the UUID4 format.
|
359
|
+
"""
|
360
|
+
return pulumi.get(self, "uid")
|
361
|
+
|
362
|
+
@uid.setter
|
363
|
+
def uid(self, value: Optional[pulumi.Input[str]]):
|
364
|
+
pulumi.set(self, "uid", value)
|
365
|
+
|
366
|
+
@property
|
367
|
+
@pulumi.getter(name="updateTime")
|
368
|
+
def update_time(self) -> Optional[pulumi.Input[str]]:
|
369
|
+
"""
|
370
|
+
Output only. Update time.
|
371
|
+
"""
|
372
|
+
return pulumi.get(self, "update_time")
|
373
|
+
|
374
|
+
@update_time.setter
|
375
|
+
def update_time(self, value: Optional[pulumi.Input[str]]):
|
376
|
+
pulumi.set(self, "update_time", value)
|
377
|
+
|
378
|
+
@property
|
379
|
+
@pulumi.getter(name="workloadId")
|
380
|
+
def workload_id(self) -> Optional[pulumi.Input[str]]:
|
381
|
+
"""
|
382
|
+
The Workload identifier.
|
383
|
+
|
384
|
+
|
385
|
+
- - -
|
386
|
+
"""
|
387
|
+
return pulumi.get(self, "workload_id")
|
388
|
+
|
389
|
+
@workload_id.setter
|
390
|
+
def workload_id(self, value: Optional[pulumi.Input[str]]):
|
391
|
+
pulumi.set(self, "workload_id", value)
|
392
|
+
|
393
|
+
@property
|
394
|
+
@pulumi.getter(name="workloadProperties")
|
395
|
+
def workload_properties(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadPropertyArgs']]]]:
|
396
|
+
"""
|
397
|
+
Properties of an underlying compute resource represented by the Workload.
|
398
|
+
Structure is documented below.
|
399
|
+
"""
|
400
|
+
return pulumi.get(self, "workload_properties")
|
401
|
+
|
402
|
+
@workload_properties.setter
|
403
|
+
def workload_properties(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadPropertyArgs']]]]):
|
404
|
+
pulumi.set(self, "workload_properties", value)
|
405
|
+
|
406
|
+
@property
|
407
|
+
@pulumi.getter(name="workloadReferences")
|
408
|
+
def workload_references(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadReferenceArgs']]]]:
|
409
|
+
"""
|
410
|
+
Reference of an underlying compute resource represented by the Workload.
|
411
|
+
Structure is documented below.
|
412
|
+
"""
|
413
|
+
return pulumi.get(self, "workload_references")
|
414
|
+
|
415
|
+
@workload_references.setter
|
416
|
+
def workload_references(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['WorkloadWorkloadReferenceArgs']]]]):
|
417
|
+
pulumi.set(self, "workload_references", value)
|
418
|
+
|
419
|
+
|
420
|
+
class Workload(pulumi.CustomResource):
|
421
|
+
@overload
|
422
|
+
def __init__(__self__,
|
423
|
+
resource_name: str,
|
424
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
425
|
+
application_id: Optional[pulumi.Input[str]] = None,
|
426
|
+
attributes: Optional[pulumi.Input[pulumi.InputType['WorkloadAttributesArgs']]] = None,
|
427
|
+
description: Optional[pulumi.Input[str]] = None,
|
428
|
+
discovered_workload: Optional[pulumi.Input[str]] = None,
|
429
|
+
display_name: Optional[pulumi.Input[str]] = None,
|
430
|
+
location: Optional[pulumi.Input[str]] = None,
|
431
|
+
project: Optional[pulumi.Input[str]] = None,
|
432
|
+
workload_id: Optional[pulumi.Input[str]] = None,
|
433
|
+
__props__=None):
|
434
|
+
"""
|
435
|
+
Workload represents a binary deployment (such as Managed Instance Groups (MIGs), GKE deployments, etc.) that performs the smallest logical subset of business functionality. It registers identified workload to the Application.
|
436
|
+
|
437
|
+
## Example Usage
|
438
|
+
|
439
|
+
### Apphub Workload Basic
|
440
|
+
|
441
|
+
<!--Start PulumiCodeChooser -->
|
442
|
+
```python
|
443
|
+
import pulumi
|
444
|
+
import pulumi_gcp as gcp
|
445
|
+
import pulumi_std as std
|
446
|
+
import pulumi_time as time
|
447
|
+
|
448
|
+
application = gcp.apphub.Application("application",
|
449
|
+
location="us-central1",
|
450
|
+
application_id="example-application-1",
|
451
|
+
scope=gcp.apphub.ApplicationScopeArgs(
|
452
|
+
type="REGIONAL",
|
453
|
+
))
|
454
|
+
service_project = gcp.organizations.Project("service_project",
|
455
|
+
project_id="project-1",
|
456
|
+
name="Service Project",
|
457
|
+
org_id="123456789",
|
458
|
+
billing_account="000000-0000000-0000000-000000")
|
459
|
+
# Enable Compute API
|
460
|
+
compute_service_project = gcp.projects.Service("compute_service_project",
|
461
|
+
project=service_project.project_id,
|
462
|
+
service="compute.googleapis.com")
|
463
|
+
wait120s = time.index.Sleep("wait_120s", create_duration=120s)
|
464
|
+
service_project_attachment = gcp.apphub.ServiceProjectAttachment("service_project_attachment", service_project_attachment_id=service_project.project_id)
|
465
|
+
# VPC network
|
466
|
+
ilb_network = gcp.compute.Network("ilb_network",
|
467
|
+
name="l7-ilb-network",
|
468
|
+
project=service_project.project_id,
|
469
|
+
auto_create_subnetworks=False)
|
470
|
+
# backend subnet
|
471
|
+
ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
|
472
|
+
name="l7-ilb-subnet",
|
473
|
+
project=service_project.project_id,
|
474
|
+
ip_cidr_range="10.0.1.0/24",
|
475
|
+
region="us-central1",
|
476
|
+
network=ilb_network.id)
|
477
|
+
# instance template
|
478
|
+
instance_template = gcp.compute.InstanceTemplate("instance_template",
|
479
|
+
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
|
480
|
+
access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
|
481
|
+
network=ilb_network.id,
|
482
|
+
subnetwork=ilb_subnet.id,
|
483
|
+
)],
|
484
|
+
name="l7-ilb-mig-template",
|
485
|
+
project=service_project.project_id,
|
486
|
+
machine_type="e2-small",
|
487
|
+
tags=["http-server"],
|
488
|
+
disks=[gcp.compute.InstanceTemplateDiskArgs(
|
489
|
+
source_image="debian-cloud/debian-10",
|
490
|
+
auto_delete=True,
|
491
|
+
boot=True,
|
492
|
+
)],
|
493
|
+
metadata={
|
494
|
+
"startup-script": \"\"\"#! /bin/bash
|
495
|
+
set -euo pipefail
|
496
|
+
export DEBIAN_FRONTEND=noninteractive
|
497
|
+
apt-get update
|
498
|
+
apt-get install -y nginx-light jq
|
499
|
+
NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
|
500
|
+
IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
|
501
|
+
METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
|
502
|
+
cat <<EOF > /var/www/html/index.html
|
503
|
+
<pre>
|
504
|
+
Name: $NAME
|
505
|
+
IP: $IP
|
506
|
+
Metadata: $METADATA
|
507
|
+
</pre>
|
508
|
+
EOF
|
509
|
+
\"\"\",
|
510
|
+
})
|
511
|
+
mig = gcp.compute.RegionInstanceGroupManager("mig",
|
512
|
+
name="l7-ilb-mig1",
|
513
|
+
project=service_project.project_id,
|
514
|
+
region="us-central1",
|
515
|
+
versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
|
516
|
+
instance_template=instance_template.id,
|
517
|
+
name="primary",
|
518
|
+
)],
|
519
|
+
base_instance_name="vm",
|
520
|
+
target_size=2)
|
521
|
+
# Discovered workload
|
522
|
+
catalog_workload = std.replace_output(text=mig.instance_group,
|
523
|
+
search="https://www.googleapis.com/compute/v1",
|
524
|
+
replace="//compute.googleapis.com").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location="us-central1",
|
525
|
+
workload_uri=invoke.result))
|
526
|
+
wait120s_for_resource_ingestion = time.index.Sleep("wait_120s_for_resource_ingestion", create_duration=120s)
|
527
|
+
example = gcp.apphub.Workload("example",
|
528
|
+
location="us-central1",
|
529
|
+
application_id=application.application_id,
|
530
|
+
workload_id=mig.name,
|
531
|
+
discovered_workload=catalog_workload.name)
|
532
|
+
```
|
533
|
+
<!--End PulumiCodeChooser -->
|
534
|
+
### Apphub Workload Full
|
535
|
+
|
536
|
+
<!--Start PulumiCodeChooser -->
|
537
|
+
```python
|
538
|
+
import pulumi
|
539
|
+
import pulumi_gcp as gcp
|
540
|
+
import pulumi_std as std
|
541
|
+
import pulumi_time as time
|
542
|
+
|
543
|
+
application = gcp.apphub.Application("application",
|
544
|
+
location="us-central1",
|
545
|
+
application_id="example-application-1",
|
546
|
+
scope=gcp.apphub.ApplicationScopeArgs(
|
547
|
+
type="REGIONAL",
|
548
|
+
))
|
549
|
+
service_project = gcp.organizations.Project("service_project",
|
550
|
+
project_id="project-1",
|
551
|
+
name="Service Project",
|
552
|
+
org_id="123456789",
|
553
|
+
billing_account="000000-0000000-0000000-000000")
|
554
|
+
# Enable Compute API
|
555
|
+
compute_service_project = gcp.projects.Service("compute_service_project",
|
556
|
+
project=service_project.project_id,
|
557
|
+
service="compute.googleapis.com")
|
558
|
+
wait120s = time.index.Sleep("wait_120s", create_duration=120s)
|
559
|
+
service_project_attachment = gcp.apphub.ServiceProjectAttachment("service_project_attachment", service_project_attachment_id=service_project.project_id)
|
560
|
+
# VPC network
|
561
|
+
ilb_network = gcp.compute.Network("ilb_network",
|
562
|
+
name="l7-ilb-network",
|
563
|
+
project=service_project.project_id,
|
564
|
+
auto_create_subnetworks=False)
|
565
|
+
# backend subnet
|
566
|
+
ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
|
567
|
+
name="l7-ilb-subnet",
|
568
|
+
project=service_project.project_id,
|
569
|
+
ip_cidr_range="10.0.1.0/24",
|
570
|
+
region="us-central1",
|
571
|
+
network=ilb_network.id)
|
572
|
+
# instance template
|
573
|
+
instance_template = gcp.compute.InstanceTemplate("instance_template",
|
574
|
+
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
|
575
|
+
access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
|
576
|
+
network=ilb_network.id,
|
577
|
+
subnetwork=ilb_subnet.id,
|
578
|
+
)],
|
579
|
+
name="l7-ilb-mig-template",
|
580
|
+
project=service_project.project_id,
|
581
|
+
machine_type="e2-small",
|
582
|
+
tags=["http-server"],
|
583
|
+
disks=[gcp.compute.InstanceTemplateDiskArgs(
|
584
|
+
source_image="debian-cloud/debian-10",
|
585
|
+
auto_delete=True,
|
586
|
+
boot=True,
|
587
|
+
)],
|
588
|
+
metadata={
|
589
|
+
"startup-script": \"\"\"#! /bin/bash
|
590
|
+
set -euo pipefail
|
591
|
+
export DEBIAN_FRONTEND=noninteractive
|
592
|
+
apt-get update
|
593
|
+
apt-get install -y nginx-light jq
|
594
|
+
NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
|
595
|
+
IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
|
596
|
+
METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
|
597
|
+
cat <<EOF > /var/www/html/index.html
|
598
|
+
<pre>
|
599
|
+
Name: $NAME
|
600
|
+
IP: $IP
|
601
|
+
Metadata: $METADATA
|
602
|
+
</pre>
|
603
|
+
EOF
|
604
|
+
\"\"\",
|
605
|
+
})
|
606
|
+
mig = gcp.compute.RegionInstanceGroupManager("mig",
|
607
|
+
name="l7-ilb-mig1",
|
608
|
+
project=service_project.project_id,
|
609
|
+
region="us-central1",
|
610
|
+
versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
|
611
|
+
instance_template=instance_template.id,
|
612
|
+
name="primary",
|
613
|
+
)],
|
614
|
+
base_instance_name="vm",
|
615
|
+
target_size=2)
|
616
|
+
# Discovered workload
|
617
|
+
catalog_workload = std.replace_output(text=mig.instance_group,
|
618
|
+
search="https://www.googleapis.com/compute/v1",
|
619
|
+
replace="//compute.googleapis.com").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location="us-central1",
|
620
|
+
workload_uri=invoke.result))
|
621
|
+
wait120s_for_resource_ingestion = time.index.Sleep("wait_120s_for_resource_ingestion", create_duration=120s)
|
622
|
+
example = gcp.apphub.Workload("example",
|
623
|
+
location="us-central1",
|
624
|
+
application_id=application.application_id,
|
625
|
+
workload_id=mig.name,
|
626
|
+
discovered_workload=catalog_workload.name,
|
627
|
+
display_name="Example Service Full",
|
628
|
+
description="Register service for testing",
|
629
|
+
attributes=gcp.apphub.WorkloadAttributesArgs(
|
630
|
+
environment=gcp.apphub.WorkloadAttributesEnvironmentArgs(
|
631
|
+
type="STAGING",
|
632
|
+
),
|
633
|
+
criticality=gcp.apphub.WorkloadAttributesCriticalityArgs(
|
634
|
+
type="MISSION_CRITICAL",
|
635
|
+
),
|
636
|
+
business_owners=[gcp.apphub.WorkloadAttributesBusinessOwnerArgs(
|
637
|
+
display_name="Alice",
|
638
|
+
email="alice@google.com",
|
639
|
+
)],
|
640
|
+
developer_owners=[gcp.apphub.WorkloadAttributesDeveloperOwnerArgs(
|
641
|
+
display_name="Bob",
|
642
|
+
email="bob@google.com",
|
643
|
+
)],
|
644
|
+
operator_owners=[gcp.apphub.WorkloadAttributesOperatorOwnerArgs(
|
645
|
+
display_name="Charlie",
|
646
|
+
email="charlie@google.com",
|
647
|
+
)],
|
648
|
+
))
|
649
|
+
```
|
650
|
+
<!--End PulumiCodeChooser -->
|
651
|
+
|
652
|
+
## Import
|
653
|
+
|
654
|
+
Workload can be imported using any of these accepted formats:
|
655
|
+
|
656
|
+
* `projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}`
|
657
|
+
|
658
|
+
* `{{project}}/{{location}}/{{application_id}}/{{workload_id}}`
|
659
|
+
|
660
|
+
* `{{location}}/{{application_id}}/{{workload_id}}`
|
661
|
+
|
662
|
+
When using the `pulumi import` command, Workload can be imported using one of the formats above. For example:
|
663
|
+
|
664
|
+
```sh
|
665
|
+
$ pulumi import gcp:apphub/workload:Workload default projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}
|
666
|
+
```
|
667
|
+
|
668
|
+
```sh
|
669
|
+
$ pulumi import gcp:apphub/workload:Workload default {{project}}/{{location}}/{{application_id}}/{{workload_id}}
|
670
|
+
```
|
671
|
+
|
672
|
+
```sh
|
673
|
+
$ pulumi import gcp:apphub/workload:Workload default {{location}}/{{application_id}}/{{workload_id}}
|
674
|
+
```
|
675
|
+
|
676
|
+
:param str resource_name: The name of the resource.
|
677
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
678
|
+
:param pulumi.Input[str] application_id: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
679
|
+
:param pulumi.Input[pulumi.InputType['WorkloadAttributesArgs']] attributes: Consumer provided attributes.
|
680
|
+
Structure is documented below.
|
681
|
+
:param pulumi.Input[str] description: User-defined description of a Workload.
|
682
|
+
:param pulumi.Input[str] discovered_workload: Immutable. The resource name of the original discovered workload.
|
683
|
+
:param pulumi.Input[str] display_name: User-defined name for the Workload.
|
684
|
+
:param pulumi.Input[str] location: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
685
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
686
|
+
If it is not provided, the provider project is used.
|
687
|
+
:param pulumi.Input[str] workload_id: The Workload identifier.
|
688
|
+
|
689
|
+
|
690
|
+
- - -
|
691
|
+
"""
|
692
|
+
...
|
693
|
+
@overload
|
694
|
+
def __init__(__self__,
|
695
|
+
resource_name: str,
|
696
|
+
args: WorkloadArgs,
|
697
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
698
|
+
"""
|
699
|
+
Workload represents a binary deployment (such as Managed Instance Groups (MIGs), GKE deployments, etc.) that performs the smallest logical subset of business functionality. It registers identified workload to the Application.
|
700
|
+
|
701
|
+
## Example Usage
|
702
|
+
|
703
|
+
### Apphub Workload Basic
|
704
|
+
|
705
|
+
<!--Start PulumiCodeChooser -->
|
706
|
+
```python
|
707
|
+
import pulumi
|
708
|
+
import pulumi_gcp as gcp
|
709
|
+
import pulumi_std as std
|
710
|
+
import pulumi_time as time
|
711
|
+
|
712
|
+
application = gcp.apphub.Application("application",
|
713
|
+
location="us-central1",
|
714
|
+
application_id="example-application-1",
|
715
|
+
scope=gcp.apphub.ApplicationScopeArgs(
|
716
|
+
type="REGIONAL",
|
717
|
+
))
|
718
|
+
service_project = gcp.organizations.Project("service_project",
|
719
|
+
project_id="project-1",
|
720
|
+
name="Service Project",
|
721
|
+
org_id="123456789",
|
722
|
+
billing_account="000000-0000000-0000000-000000")
|
723
|
+
# Enable Compute API
|
724
|
+
compute_service_project = gcp.projects.Service("compute_service_project",
|
725
|
+
project=service_project.project_id,
|
726
|
+
service="compute.googleapis.com")
|
727
|
+
wait120s = time.index.Sleep("wait_120s", create_duration=120s)
|
728
|
+
service_project_attachment = gcp.apphub.ServiceProjectAttachment("service_project_attachment", service_project_attachment_id=service_project.project_id)
|
729
|
+
# VPC network
|
730
|
+
ilb_network = gcp.compute.Network("ilb_network",
|
731
|
+
name="l7-ilb-network",
|
732
|
+
project=service_project.project_id,
|
733
|
+
auto_create_subnetworks=False)
|
734
|
+
# backend subnet
|
735
|
+
ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
|
736
|
+
name="l7-ilb-subnet",
|
737
|
+
project=service_project.project_id,
|
738
|
+
ip_cidr_range="10.0.1.0/24",
|
739
|
+
region="us-central1",
|
740
|
+
network=ilb_network.id)
|
741
|
+
# instance template
|
742
|
+
instance_template = gcp.compute.InstanceTemplate("instance_template",
|
743
|
+
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
|
744
|
+
access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
|
745
|
+
network=ilb_network.id,
|
746
|
+
subnetwork=ilb_subnet.id,
|
747
|
+
)],
|
748
|
+
name="l7-ilb-mig-template",
|
749
|
+
project=service_project.project_id,
|
750
|
+
machine_type="e2-small",
|
751
|
+
tags=["http-server"],
|
752
|
+
disks=[gcp.compute.InstanceTemplateDiskArgs(
|
753
|
+
source_image="debian-cloud/debian-10",
|
754
|
+
auto_delete=True,
|
755
|
+
boot=True,
|
756
|
+
)],
|
757
|
+
metadata={
|
758
|
+
"startup-script": \"\"\"#! /bin/bash
|
759
|
+
set -euo pipefail
|
760
|
+
export DEBIAN_FRONTEND=noninteractive
|
761
|
+
apt-get update
|
762
|
+
apt-get install -y nginx-light jq
|
763
|
+
NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
|
764
|
+
IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
|
765
|
+
METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
|
766
|
+
cat <<EOF > /var/www/html/index.html
|
767
|
+
<pre>
|
768
|
+
Name: $NAME
|
769
|
+
IP: $IP
|
770
|
+
Metadata: $METADATA
|
771
|
+
</pre>
|
772
|
+
EOF
|
773
|
+
\"\"\",
|
774
|
+
})
|
775
|
+
mig = gcp.compute.RegionInstanceGroupManager("mig",
|
776
|
+
name="l7-ilb-mig1",
|
777
|
+
project=service_project.project_id,
|
778
|
+
region="us-central1",
|
779
|
+
versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
|
780
|
+
instance_template=instance_template.id,
|
781
|
+
name="primary",
|
782
|
+
)],
|
783
|
+
base_instance_name="vm",
|
784
|
+
target_size=2)
|
785
|
+
# Discovered workload
|
786
|
+
catalog_workload = std.replace_output(text=mig.instance_group,
|
787
|
+
search="https://www.googleapis.com/compute/v1",
|
788
|
+
replace="//compute.googleapis.com").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location="us-central1",
|
789
|
+
workload_uri=invoke.result))
|
790
|
+
wait120s_for_resource_ingestion = time.index.Sleep("wait_120s_for_resource_ingestion", create_duration=120s)
|
791
|
+
example = gcp.apphub.Workload("example",
|
792
|
+
location="us-central1",
|
793
|
+
application_id=application.application_id,
|
794
|
+
workload_id=mig.name,
|
795
|
+
discovered_workload=catalog_workload.name)
|
796
|
+
```
|
797
|
+
<!--End PulumiCodeChooser -->
|
798
|
+
### Apphub Workload Full
|
799
|
+
|
800
|
+
<!--Start PulumiCodeChooser -->
|
801
|
+
```python
|
802
|
+
import pulumi
|
803
|
+
import pulumi_gcp as gcp
|
804
|
+
import pulumi_std as std
|
805
|
+
import pulumi_time as time
|
806
|
+
|
807
|
+
application = gcp.apphub.Application("application",
|
808
|
+
location="us-central1",
|
809
|
+
application_id="example-application-1",
|
810
|
+
scope=gcp.apphub.ApplicationScopeArgs(
|
811
|
+
type="REGIONAL",
|
812
|
+
))
|
813
|
+
service_project = gcp.organizations.Project("service_project",
|
814
|
+
project_id="project-1",
|
815
|
+
name="Service Project",
|
816
|
+
org_id="123456789",
|
817
|
+
billing_account="000000-0000000-0000000-000000")
|
818
|
+
# Enable Compute API
|
819
|
+
compute_service_project = gcp.projects.Service("compute_service_project",
|
820
|
+
project=service_project.project_id,
|
821
|
+
service="compute.googleapis.com")
|
822
|
+
wait120s = time.index.Sleep("wait_120s", create_duration=120s)
|
823
|
+
service_project_attachment = gcp.apphub.ServiceProjectAttachment("service_project_attachment", service_project_attachment_id=service_project.project_id)
|
824
|
+
# VPC network
|
825
|
+
ilb_network = gcp.compute.Network("ilb_network",
|
826
|
+
name="l7-ilb-network",
|
827
|
+
project=service_project.project_id,
|
828
|
+
auto_create_subnetworks=False)
|
829
|
+
# backend subnet
|
830
|
+
ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
|
831
|
+
name="l7-ilb-subnet",
|
832
|
+
project=service_project.project_id,
|
833
|
+
ip_cidr_range="10.0.1.0/24",
|
834
|
+
region="us-central1",
|
835
|
+
network=ilb_network.id)
|
836
|
+
# instance template
|
837
|
+
instance_template = gcp.compute.InstanceTemplate("instance_template",
|
838
|
+
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
|
839
|
+
access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
|
840
|
+
network=ilb_network.id,
|
841
|
+
subnetwork=ilb_subnet.id,
|
842
|
+
)],
|
843
|
+
name="l7-ilb-mig-template",
|
844
|
+
project=service_project.project_id,
|
845
|
+
machine_type="e2-small",
|
846
|
+
tags=["http-server"],
|
847
|
+
disks=[gcp.compute.InstanceTemplateDiskArgs(
|
848
|
+
source_image="debian-cloud/debian-10",
|
849
|
+
auto_delete=True,
|
850
|
+
boot=True,
|
851
|
+
)],
|
852
|
+
metadata={
|
853
|
+
"startup-script": \"\"\"#! /bin/bash
|
854
|
+
set -euo pipefail
|
855
|
+
export DEBIAN_FRONTEND=noninteractive
|
856
|
+
apt-get update
|
857
|
+
apt-get install -y nginx-light jq
|
858
|
+
NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
|
859
|
+
IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
|
860
|
+
METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
|
861
|
+
cat <<EOF > /var/www/html/index.html
|
862
|
+
<pre>
|
863
|
+
Name: $NAME
|
864
|
+
IP: $IP
|
865
|
+
Metadata: $METADATA
|
866
|
+
</pre>
|
867
|
+
EOF
|
868
|
+
\"\"\",
|
869
|
+
})
|
870
|
+
mig = gcp.compute.RegionInstanceGroupManager("mig",
|
871
|
+
name="l7-ilb-mig1",
|
872
|
+
project=service_project.project_id,
|
873
|
+
region="us-central1",
|
874
|
+
versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
|
875
|
+
instance_template=instance_template.id,
|
876
|
+
name="primary",
|
877
|
+
)],
|
878
|
+
base_instance_name="vm",
|
879
|
+
target_size=2)
|
880
|
+
# Discovered workload
|
881
|
+
catalog_workload = std.replace_output(text=mig.instance_group,
|
882
|
+
search="https://www.googleapis.com/compute/v1",
|
883
|
+
replace="//compute.googleapis.com").apply(lambda invoke: gcp.apphub.get_discovered_workload_output(location="us-central1",
|
884
|
+
workload_uri=invoke.result))
|
885
|
+
wait120s_for_resource_ingestion = time.index.Sleep("wait_120s_for_resource_ingestion", create_duration=120s)
|
886
|
+
example = gcp.apphub.Workload("example",
|
887
|
+
location="us-central1",
|
888
|
+
application_id=application.application_id,
|
889
|
+
workload_id=mig.name,
|
890
|
+
discovered_workload=catalog_workload.name,
|
891
|
+
display_name="Example Service Full",
|
892
|
+
description="Register service for testing",
|
893
|
+
attributes=gcp.apphub.WorkloadAttributesArgs(
|
894
|
+
environment=gcp.apphub.WorkloadAttributesEnvironmentArgs(
|
895
|
+
type="STAGING",
|
896
|
+
),
|
897
|
+
criticality=gcp.apphub.WorkloadAttributesCriticalityArgs(
|
898
|
+
type="MISSION_CRITICAL",
|
899
|
+
),
|
900
|
+
business_owners=[gcp.apphub.WorkloadAttributesBusinessOwnerArgs(
|
901
|
+
display_name="Alice",
|
902
|
+
email="alice@google.com",
|
903
|
+
)],
|
904
|
+
developer_owners=[gcp.apphub.WorkloadAttributesDeveloperOwnerArgs(
|
905
|
+
display_name="Bob",
|
906
|
+
email="bob@google.com",
|
907
|
+
)],
|
908
|
+
operator_owners=[gcp.apphub.WorkloadAttributesOperatorOwnerArgs(
|
909
|
+
display_name="Charlie",
|
910
|
+
email="charlie@google.com",
|
911
|
+
)],
|
912
|
+
))
|
913
|
+
```
|
914
|
+
<!--End PulumiCodeChooser -->
|
915
|
+
|
916
|
+
## Import
|
917
|
+
|
918
|
+
Workload can be imported using any of these accepted formats:
|
919
|
+
|
920
|
+
* `projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}`
|
921
|
+
|
922
|
+
* `{{project}}/{{location}}/{{application_id}}/{{workload_id}}`
|
923
|
+
|
924
|
+
* `{{location}}/{{application_id}}/{{workload_id}}`
|
925
|
+
|
926
|
+
When using the `pulumi import` command, Workload can be imported using one of the formats above. For example:
|
927
|
+
|
928
|
+
```sh
|
929
|
+
$ pulumi import gcp:apphub/workload:Workload default projects/{{project}}/locations/{{location}}/applications/{{application_id}}/workloads/{{workload_id}}
|
930
|
+
```
|
931
|
+
|
932
|
+
```sh
|
933
|
+
$ pulumi import gcp:apphub/workload:Workload default {{project}}/{{location}}/{{application_id}}/{{workload_id}}
|
934
|
+
```
|
935
|
+
|
936
|
+
```sh
|
937
|
+
$ pulumi import gcp:apphub/workload:Workload default {{location}}/{{application_id}}/{{workload_id}}
|
938
|
+
```
|
939
|
+
|
940
|
+
:param str resource_name: The name of the resource.
|
941
|
+
:param WorkloadArgs args: The arguments to use to populate this resource's properties.
|
942
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
943
|
+
"""
|
944
|
+
...
|
945
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
946
|
+
resource_args, opts = _utilities.get_resource_args_opts(WorkloadArgs, pulumi.ResourceOptions, *args, **kwargs)
|
947
|
+
if resource_args is not None:
|
948
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
949
|
+
else:
|
950
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
951
|
+
|
952
|
+
def _internal_init(__self__,
|
953
|
+
resource_name: str,
|
954
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
955
|
+
application_id: Optional[pulumi.Input[str]] = None,
|
956
|
+
attributes: Optional[pulumi.Input[pulumi.InputType['WorkloadAttributesArgs']]] = None,
|
957
|
+
description: Optional[pulumi.Input[str]] = None,
|
958
|
+
discovered_workload: Optional[pulumi.Input[str]] = None,
|
959
|
+
display_name: Optional[pulumi.Input[str]] = None,
|
960
|
+
location: Optional[pulumi.Input[str]] = None,
|
961
|
+
project: Optional[pulumi.Input[str]] = None,
|
962
|
+
workload_id: Optional[pulumi.Input[str]] = None,
|
963
|
+
__props__=None):
|
964
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
965
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
966
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
967
|
+
if opts.id is None:
|
968
|
+
if __props__ is not None:
|
969
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
970
|
+
__props__ = WorkloadArgs.__new__(WorkloadArgs)
|
971
|
+
|
972
|
+
if application_id is None and not opts.urn:
|
973
|
+
raise TypeError("Missing required property 'application_id'")
|
974
|
+
__props__.__dict__["application_id"] = application_id
|
975
|
+
__props__.__dict__["attributes"] = attributes
|
976
|
+
__props__.__dict__["description"] = description
|
977
|
+
if discovered_workload is None and not opts.urn:
|
978
|
+
raise TypeError("Missing required property 'discovered_workload'")
|
979
|
+
__props__.__dict__["discovered_workload"] = discovered_workload
|
980
|
+
__props__.__dict__["display_name"] = display_name
|
981
|
+
if location is None and not opts.urn:
|
982
|
+
raise TypeError("Missing required property 'location'")
|
983
|
+
__props__.__dict__["location"] = location
|
984
|
+
__props__.__dict__["project"] = project
|
985
|
+
if workload_id is None and not opts.urn:
|
986
|
+
raise TypeError("Missing required property 'workload_id'")
|
987
|
+
__props__.__dict__["workload_id"] = workload_id
|
988
|
+
__props__.__dict__["create_time"] = None
|
989
|
+
__props__.__dict__["name"] = None
|
990
|
+
__props__.__dict__["state"] = None
|
991
|
+
__props__.__dict__["uid"] = None
|
992
|
+
__props__.__dict__["update_time"] = None
|
993
|
+
__props__.__dict__["workload_properties"] = None
|
994
|
+
__props__.__dict__["workload_references"] = None
|
995
|
+
super(Workload, __self__).__init__(
|
996
|
+
'gcp:apphub/workload:Workload',
|
997
|
+
resource_name,
|
998
|
+
__props__,
|
999
|
+
opts)
|
1000
|
+
|
1001
|
+
@staticmethod
|
1002
|
+
def get(resource_name: str,
|
1003
|
+
id: pulumi.Input[str],
|
1004
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
1005
|
+
application_id: Optional[pulumi.Input[str]] = None,
|
1006
|
+
attributes: Optional[pulumi.Input[pulumi.InputType['WorkloadAttributesArgs']]] = None,
|
1007
|
+
create_time: Optional[pulumi.Input[str]] = None,
|
1008
|
+
description: Optional[pulumi.Input[str]] = None,
|
1009
|
+
discovered_workload: Optional[pulumi.Input[str]] = None,
|
1010
|
+
display_name: Optional[pulumi.Input[str]] = None,
|
1011
|
+
location: Optional[pulumi.Input[str]] = None,
|
1012
|
+
name: Optional[pulumi.Input[str]] = None,
|
1013
|
+
project: Optional[pulumi.Input[str]] = None,
|
1014
|
+
state: Optional[pulumi.Input[str]] = None,
|
1015
|
+
uid: Optional[pulumi.Input[str]] = None,
|
1016
|
+
update_time: Optional[pulumi.Input[str]] = None,
|
1017
|
+
workload_id: Optional[pulumi.Input[str]] = None,
|
1018
|
+
workload_properties: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkloadWorkloadPropertyArgs']]]]] = None,
|
1019
|
+
workload_references: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkloadWorkloadReferenceArgs']]]]] = None) -> 'Workload':
|
1020
|
+
"""
|
1021
|
+
Get an existing Workload resource's state with the given name, id, and optional extra
|
1022
|
+
properties used to qualify the lookup.
|
1023
|
+
|
1024
|
+
:param str resource_name: The unique name of the resulting resource.
|
1025
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
1026
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
1027
|
+
:param pulumi.Input[str] application_id: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
1028
|
+
:param pulumi.Input[pulumi.InputType['WorkloadAttributesArgs']] attributes: Consumer provided attributes.
|
1029
|
+
Structure is documented below.
|
1030
|
+
:param pulumi.Input[str] create_time: Output only. Create time.
|
1031
|
+
:param pulumi.Input[str] description: User-defined description of a Workload.
|
1032
|
+
:param pulumi.Input[str] discovered_workload: Immutable. The resource name of the original discovered workload.
|
1033
|
+
:param pulumi.Input[str] display_name: User-defined name for the Workload.
|
1034
|
+
:param pulumi.Input[str] location: Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
1035
|
+
:param pulumi.Input[str] name: Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
|
1036
|
+
:param pulumi.Input[str] project: The ID of the project in which the resource belongs.
|
1037
|
+
If it is not provided, the provider project is used.
|
1038
|
+
:param pulumi.Input[str] state: Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
|
1039
|
+
:param pulumi.Input[str] uid: Output only. A universally unique identifier (UUID) for the `Workload` in the UUID4 format.
|
1040
|
+
:param pulumi.Input[str] update_time: Output only. Update time.
|
1041
|
+
:param pulumi.Input[str] workload_id: The Workload identifier.
|
1042
|
+
|
1043
|
+
|
1044
|
+
- - -
|
1045
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkloadWorkloadPropertyArgs']]]] workload_properties: Properties of an underlying compute resource represented by the Workload.
|
1046
|
+
Structure is documented below.
|
1047
|
+
:param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['WorkloadWorkloadReferenceArgs']]]] workload_references: Reference of an underlying compute resource represented by the Workload.
|
1048
|
+
Structure is documented below.
|
1049
|
+
"""
|
1050
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
1051
|
+
|
1052
|
+
__props__ = _WorkloadState.__new__(_WorkloadState)
|
1053
|
+
|
1054
|
+
__props__.__dict__["application_id"] = application_id
|
1055
|
+
__props__.__dict__["attributes"] = attributes
|
1056
|
+
__props__.__dict__["create_time"] = create_time
|
1057
|
+
__props__.__dict__["description"] = description
|
1058
|
+
__props__.__dict__["discovered_workload"] = discovered_workload
|
1059
|
+
__props__.__dict__["display_name"] = display_name
|
1060
|
+
__props__.__dict__["location"] = location
|
1061
|
+
__props__.__dict__["name"] = name
|
1062
|
+
__props__.__dict__["project"] = project
|
1063
|
+
__props__.__dict__["state"] = state
|
1064
|
+
__props__.__dict__["uid"] = uid
|
1065
|
+
__props__.__dict__["update_time"] = update_time
|
1066
|
+
__props__.__dict__["workload_id"] = workload_id
|
1067
|
+
__props__.__dict__["workload_properties"] = workload_properties
|
1068
|
+
__props__.__dict__["workload_references"] = workload_references
|
1069
|
+
return Workload(resource_name, opts=opts, __props__=__props__)
|
1070
|
+
|
1071
|
+
@property
|
1072
|
+
@pulumi.getter(name="applicationId")
|
1073
|
+
def application_id(self) -> pulumi.Output[str]:
|
1074
|
+
"""
|
1075
|
+
Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
1076
|
+
"""
|
1077
|
+
return pulumi.get(self, "application_id")
|
1078
|
+
|
1079
|
+
@property
|
1080
|
+
@pulumi.getter
|
1081
|
+
def attributes(self) -> pulumi.Output[Optional['outputs.WorkloadAttributes']]:
|
1082
|
+
"""
|
1083
|
+
Consumer provided attributes.
|
1084
|
+
Structure is documented below.
|
1085
|
+
"""
|
1086
|
+
return pulumi.get(self, "attributes")
|
1087
|
+
|
1088
|
+
@property
|
1089
|
+
@pulumi.getter(name="createTime")
|
1090
|
+
def create_time(self) -> pulumi.Output[str]:
|
1091
|
+
"""
|
1092
|
+
Output only. Create time.
|
1093
|
+
"""
|
1094
|
+
return pulumi.get(self, "create_time")
|
1095
|
+
|
1096
|
+
@property
|
1097
|
+
@pulumi.getter
|
1098
|
+
def description(self) -> pulumi.Output[Optional[str]]:
|
1099
|
+
"""
|
1100
|
+
User-defined description of a Workload.
|
1101
|
+
"""
|
1102
|
+
return pulumi.get(self, "description")
|
1103
|
+
|
1104
|
+
@property
|
1105
|
+
@pulumi.getter(name="discoveredWorkload")
|
1106
|
+
def discovered_workload(self) -> pulumi.Output[str]:
|
1107
|
+
"""
|
1108
|
+
Immutable. The resource name of the original discovered workload.
|
1109
|
+
"""
|
1110
|
+
return pulumi.get(self, "discovered_workload")
|
1111
|
+
|
1112
|
+
@property
|
1113
|
+
@pulumi.getter(name="displayName")
|
1114
|
+
def display_name(self) -> pulumi.Output[Optional[str]]:
|
1115
|
+
"""
|
1116
|
+
User-defined name for the Workload.
|
1117
|
+
"""
|
1118
|
+
return pulumi.get(self, "display_name")
|
1119
|
+
|
1120
|
+
@property
|
1121
|
+
@pulumi.getter
|
1122
|
+
def location(self) -> pulumi.Output[str]:
|
1123
|
+
"""
|
1124
|
+
Part of `parent`. Full resource name of a parent Application. Example: projects/{HOST_PROJECT_ID}/locations/{LOCATION}/applications/{APPLICATION_ID}
|
1125
|
+
"""
|
1126
|
+
return pulumi.get(self, "location")
|
1127
|
+
|
1128
|
+
@property
|
1129
|
+
@pulumi.getter
|
1130
|
+
def name(self) -> pulumi.Output[str]:
|
1131
|
+
"""
|
1132
|
+
Identifier. The resource name of the Workload. Format:"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}"
|
1133
|
+
"""
|
1134
|
+
return pulumi.get(self, "name")
|
1135
|
+
|
1136
|
+
@property
|
1137
|
+
@pulumi.getter
|
1138
|
+
def project(self) -> pulumi.Output[str]:
|
1139
|
+
"""
|
1140
|
+
The ID of the project in which the resource belongs.
|
1141
|
+
If it is not provided, the provider project is used.
|
1142
|
+
"""
|
1143
|
+
return pulumi.get(self, "project")
|
1144
|
+
|
1145
|
+
@property
|
1146
|
+
@pulumi.getter
|
1147
|
+
def state(self) -> pulumi.Output[str]:
|
1148
|
+
"""
|
1149
|
+
Output only. Workload state. Possible values: STATE_UNSPECIFIED CREATING ACTIVE DELETING DETACHED
|
1150
|
+
"""
|
1151
|
+
return pulumi.get(self, "state")
|
1152
|
+
|
1153
|
+
@property
|
1154
|
+
@pulumi.getter
|
1155
|
+
def uid(self) -> pulumi.Output[str]:
|
1156
|
+
"""
|
1157
|
+
Output only. A universally unique identifier (UUID) for the `Workload` in the UUID4 format.
|
1158
|
+
"""
|
1159
|
+
return pulumi.get(self, "uid")
|
1160
|
+
|
1161
|
+
@property
|
1162
|
+
@pulumi.getter(name="updateTime")
|
1163
|
+
def update_time(self) -> pulumi.Output[str]:
|
1164
|
+
"""
|
1165
|
+
Output only. Update time.
|
1166
|
+
"""
|
1167
|
+
return pulumi.get(self, "update_time")
|
1168
|
+
|
1169
|
+
@property
|
1170
|
+
@pulumi.getter(name="workloadId")
|
1171
|
+
def workload_id(self) -> pulumi.Output[str]:
|
1172
|
+
"""
|
1173
|
+
The Workload identifier.
|
1174
|
+
|
1175
|
+
|
1176
|
+
- - -
|
1177
|
+
"""
|
1178
|
+
return pulumi.get(self, "workload_id")
|
1179
|
+
|
1180
|
+
@property
|
1181
|
+
@pulumi.getter(name="workloadProperties")
|
1182
|
+
def workload_properties(self) -> pulumi.Output[Sequence['outputs.WorkloadWorkloadProperty']]:
|
1183
|
+
"""
|
1184
|
+
Properties of an underlying compute resource represented by the Workload.
|
1185
|
+
Structure is documented below.
|
1186
|
+
"""
|
1187
|
+
return pulumi.get(self, "workload_properties")
|
1188
|
+
|
1189
|
+
@property
|
1190
|
+
@pulumi.getter(name="workloadReferences")
|
1191
|
+
def workload_references(self) -> pulumi.Output[Sequence['outputs.WorkloadWorkloadReference']]:
|
1192
|
+
"""
|
1193
|
+
Reference of an underlying compute resource represented by the Workload.
|
1194
|
+
Structure is documented below.
|
1195
|
+
"""
|
1196
|
+
return pulumi.get(self, "workload_references")
|
1197
|
+
|