pulumi-harness 0.9.0a1760076204__py3-none-any.whl → 0.10.0a1764049859__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_harness/__init__.py +24 -0
- pulumi_harness/autostopping/__init__.py +2 -0
- pulumi_harness/autostopping/_inputs.py +1698 -622
- pulumi_harness/autostopping/get_aws_alb.py +4 -0
- pulumi_harness/autostopping/get_aws_proxy.py +4 -0
- pulumi_harness/autostopping/get_azure_gateway.py +4 -0
- pulumi_harness/autostopping/get_azure_proxy.py +4 -0
- pulumi_harness/autostopping/get_gcp_proxy.py +4 -0
- pulumi_harness/autostopping/get_rule_ecs.py +4 -0
- pulumi_harness/autostopping/get_rule_rds.py +4 -0
- pulumi_harness/autostopping/get_rule_scale_group.py +254 -0
- pulumi_harness/autostopping/get_rule_vm.py +4 -0
- pulumi_harness/autostopping/outputs.py +727 -0
- pulumi_harness/autostopping/rule_ecs.py +58 -0
- pulumi_harness/autostopping/rule_scale_group.py +592 -0
- pulumi_harness/cluster/get_orchestrator.py +4 -0
- pulumi_harness/cluster/get_orchestrator_config.py +21 -1
- pulumi_harness/cluster/orchestrator.py +2 -28
- pulumi_harness/cluster/orchestrator_config.py +49 -0
- pulumi_harness/platform/__init__.py +5 -0
- pulumi_harness/platform/_inputs.py +5804 -371
- pulumi_harness/platform/connector_rancher.py +36 -0
- pulumi_harness/platform/db_instance.py +49 -49
- pulumi_harness/platform/db_schema.py +243 -0
- pulumi_harness/platform/environment.py +166 -0
- pulumi_harness/platform/environment_group.py +10 -10
- pulumi_harness/platform/gcp_secret_manager_connector.py +94 -0
- pulumi_harness/platform/get_db_instance.py +21 -21
- pulumi_harness/platform/get_db_schema.py +21 -1
- pulumi_harness/platform/get_default_notification_template_set.py +31 -1
- pulumi_harness/platform/get_gitops_agent_operator_yaml.py +4 -0
- pulumi_harness/platform/get_gitops_app_project_mapping.py +4 -0
- pulumi_harness/platform/get_gitops_applications.py +4 -0
- pulumi_harness/platform/get_gitops_repo_cert.py +4 -0
- pulumi_harness/platform/get_infra_module.py +192 -6
- pulumi_harness/platform/get_infra_module_testing.py +521 -0
- pulumi_harness/platform/get_infra_modules.py +103 -0
- pulumi_harness/platform/get_manual_freeze.py +4 -0
- pulumi_harness/platform/get_pipeline_central_notification_rule.py +2 -26
- pulumi_harness/platform/get_secret_winrm.py +263 -0
- pulumi_harness/platform/git_ops_applications.py +0 -4
- pulumi_harness/platform/gitops_applicationset.py +308 -6
- pulumi_harness/platform/infra_module_testing.py +1134 -0
- pulumi_harness/platform/infrastructure.py +82 -0
- pulumi_harness/platform/outputs.py +4467 -251
- pulumi_harness/platform/pipeline.py +2 -2
- pulumi_harness/platform/pipeline_central_notification_rule.py +187 -0
- pulumi_harness/platform/secret_winrm.py +1082 -0
- pulumi_harness/platform/service.py +150 -0
- pulumi_harness/platform/triggers.py +6 -4
- pulumi_harness/pulumi-plugin.json +1 -1
- {pulumi_harness-0.9.0a1760076204.dist-info → pulumi_harness-0.10.0a1764049859.dist-info}/METADATA +1 -1
- {pulumi_harness-0.9.0a1760076204.dist-info → pulumi_harness-0.10.0a1764049859.dist-info}/RECORD +55 -48
- {pulumi_harness-0.9.0a1760076204.dist-info → pulumi_harness-0.10.0a1764049859.dist-info}/WHEEL +0 -0
- {pulumi_harness-0.9.0a1760076204.dist-info → pulumi_harness-0.10.0a1764049859.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,1082 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by pulumi-language-python. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import builtins as _builtins
|
|
6
|
+
import warnings
|
|
7
|
+
import sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
15
|
+
from .. import _utilities
|
|
16
|
+
from . import outputs
|
|
17
|
+
from ._inputs import *
|
|
18
|
+
|
|
19
|
+
__all__ = ['SecretWinrmArgs', 'SecretWinrm']
|
|
20
|
+
|
|
21
|
+
@pulumi.input_type
|
|
22
|
+
class SecretWinrmArgs:
|
|
23
|
+
def __init__(__self__, *,
|
|
24
|
+
identifier: pulumi.Input[_builtins.str],
|
|
25
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
|
26
|
+
kerberos: Optional[pulumi.Input['SecretWinrmKerberosArgs']] = None,
|
|
27
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
28
|
+
ntlm: Optional[pulumi.Input['SecretWinrmNtlmArgs']] = None,
|
|
29
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
30
|
+
port: Optional[pulumi.Input[_builtins.int]] = None,
|
|
31
|
+
project_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
32
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
|
|
33
|
+
"""
|
|
34
|
+
The set of arguments for constructing a SecretWinrm resource.
|
|
35
|
+
:param pulumi.Input[_builtins.str] identifier: Unique identifier of the resource.
|
|
36
|
+
:param pulumi.Input[_builtins.str] description: Description of the resource.
|
|
37
|
+
:param pulumi.Input['SecretWinrmKerberosArgs'] kerberos: Kerberos authentication scheme
|
|
38
|
+
:param pulumi.Input[_builtins.str] name: Name of the resource.
|
|
39
|
+
:param pulumi.Input['SecretWinrmNtlmArgs'] ntlm: NTLM authentication scheme
|
|
40
|
+
:param pulumi.Input[_builtins.str] org_id: Unique identifier of the organization.
|
|
41
|
+
:param pulumi.Input[_builtins.int] port: WinRM port. Default is 5986 for HTTPS, 5985 for HTTP.
|
|
42
|
+
:param pulumi.Input[_builtins.str] project_id: Unique identifier of the project.
|
|
43
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags to associate with the resource.
|
|
44
|
+
"""
|
|
45
|
+
pulumi.set(__self__, "identifier", identifier)
|
|
46
|
+
if description is not None:
|
|
47
|
+
pulumi.set(__self__, "description", description)
|
|
48
|
+
if kerberos is not None:
|
|
49
|
+
pulumi.set(__self__, "kerberos", kerberos)
|
|
50
|
+
if name is not None:
|
|
51
|
+
pulumi.set(__self__, "name", name)
|
|
52
|
+
if ntlm is not None:
|
|
53
|
+
pulumi.set(__self__, "ntlm", ntlm)
|
|
54
|
+
if org_id is not None:
|
|
55
|
+
pulumi.set(__self__, "org_id", org_id)
|
|
56
|
+
if port is not None:
|
|
57
|
+
pulumi.set(__self__, "port", port)
|
|
58
|
+
if project_id is not None:
|
|
59
|
+
pulumi.set(__self__, "project_id", project_id)
|
|
60
|
+
if tags is not None:
|
|
61
|
+
pulumi.set(__self__, "tags", tags)
|
|
62
|
+
|
|
63
|
+
@_builtins.property
|
|
64
|
+
@pulumi.getter
|
|
65
|
+
def identifier(self) -> pulumi.Input[_builtins.str]:
|
|
66
|
+
"""
|
|
67
|
+
Unique identifier of the resource.
|
|
68
|
+
"""
|
|
69
|
+
return pulumi.get(self, "identifier")
|
|
70
|
+
|
|
71
|
+
@identifier.setter
|
|
72
|
+
def identifier(self, value: pulumi.Input[_builtins.str]):
|
|
73
|
+
pulumi.set(self, "identifier", value)
|
|
74
|
+
|
|
75
|
+
@_builtins.property
|
|
76
|
+
@pulumi.getter
|
|
77
|
+
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
78
|
+
"""
|
|
79
|
+
Description of the resource.
|
|
80
|
+
"""
|
|
81
|
+
return pulumi.get(self, "description")
|
|
82
|
+
|
|
83
|
+
@description.setter
|
|
84
|
+
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
85
|
+
pulumi.set(self, "description", value)
|
|
86
|
+
|
|
87
|
+
@_builtins.property
|
|
88
|
+
@pulumi.getter
|
|
89
|
+
def kerberos(self) -> Optional[pulumi.Input['SecretWinrmKerberosArgs']]:
|
|
90
|
+
"""
|
|
91
|
+
Kerberos authentication scheme
|
|
92
|
+
"""
|
|
93
|
+
return pulumi.get(self, "kerberos")
|
|
94
|
+
|
|
95
|
+
@kerberos.setter
|
|
96
|
+
def kerberos(self, value: Optional[pulumi.Input['SecretWinrmKerberosArgs']]):
|
|
97
|
+
pulumi.set(self, "kerberos", value)
|
|
98
|
+
|
|
99
|
+
@_builtins.property
|
|
100
|
+
@pulumi.getter
|
|
101
|
+
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
102
|
+
"""
|
|
103
|
+
Name of the resource.
|
|
104
|
+
"""
|
|
105
|
+
return pulumi.get(self, "name")
|
|
106
|
+
|
|
107
|
+
@name.setter
|
|
108
|
+
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
109
|
+
pulumi.set(self, "name", value)
|
|
110
|
+
|
|
111
|
+
@_builtins.property
|
|
112
|
+
@pulumi.getter
|
|
113
|
+
def ntlm(self) -> Optional[pulumi.Input['SecretWinrmNtlmArgs']]:
|
|
114
|
+
"""
|
|
115
|
+
NTLM authentication scheme
|
|
116
|
+
"""
|
|
117
|
+
return pulumi.get(self, "ntlm")
|
|
118
|
+
|
|
119
|
+
@ntlm.setter
|
|
120
|
+
def ntlm(self, value: Optional[pulumi.Input['SecretWinrmNtlmArgs']]):
|
|
121
|
+
pulumi.set(self, "ntlm", value)
|
|
122
|
+
|
|
123
|
+
@_builtins.property
|
|
124
|
+
@pulumi.getter(name="orgId")
|
|
125
|
+
def org_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
126
|
+
"""
|
|
127
|
+
Unique identifier of the organization.
|
|
128
|
+
"""
|
|
129
|
+
return pulumi.get(self, "org_id")
|
|
130
|
+
|
|
131
|
+
@org_id.setter
|
|
132
|
+
def org_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
133
|
+
pulumi.set(self, "org_id", value)
|
|
134
|
+
|
|
135
|
+
@_builtins.property
|
|
136
|
+
@pulumi.getter
|
|
137
|
+
def port(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
138
|
+
"""
|
|
139
|
+
WinRM port. Default is 5986 for HTTPS, 5985 for HTTP.
|
|
140
|
+
"""
|
|
141
|
+
return pulumi.get(self, "port")
|
|
142
|
+
|
|
143
|
+
@port.setter
|
|
144
|
+
def port(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
145
|
+
pulumi.set(self, "port", value)
|
|
146
|
+
|
|
147
|
+
@_builtins.property
|
|
148
|
+
@pulumi.getter(name="projectId")
|
|
149
|
+
def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
150
|
+
"""
|
|
151
|
+
Unique identifier of the project.
|
|
152
|
+
"""
|
|
153
|
+
return pulumi.get(self, "project_id")
|
|
154
|
+
|
|
155
|
+
@project_id.setter
|
|
156
|
+
def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
157
|
+
pulumi.set(self, "project_id", value)
|
|
158
|
+
|
|
159
|
+
@_builtins.property
|
|
160
|
+
@pulumi.getter
|
|
161
|
+
def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
162
|
+
"""
|
|
163
|
+
Tags to associate with the resource.
|
|
164
|
+
"""
|
|
165
|
+
return pulumi.get(self, "tags")
|
|
166
|
+
|
|
167
|
+
@tags.setter
|
|
168
|
+
def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
169
|
+
pulumi.set(self, "tags", value)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
@pulumi.input_type
|
|
173
|
+
class _SecretWinrmState:
|
|
174
|
+
def __init__(__self__, *,
|
|
175
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
|
176
|
+
identifier: Optional[pulumi.Input[_builtins.str]] = None,
|
|
177
|
+
kerberos: Optional[pulumi.Input['SecretWinrmKerberosArgs']] = None,
|
|
178
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
179
|
+
ntlm: Optional[pulumi.Input['SecretWinrmNtlmArgs']] = None,
|
|
180
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
181
|
+
port: Optional[pulumi.Input[_builtins.int]] = None,
|
|
182
|
+
project_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
183
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None):
|
|
184
|
+
"""
|
|
185
|
+
Input properties used for looking up and filtering SecretWinrm resources.
|
|
186
|
+
:param pulumi.Input[_builtins.str] description: Description of the resource.
|
|
187
|
+
:param pulumi.Input[_builtins.str] identifier: Unique identifier of the resource.
|
|
188
|
+
:param pulumi.Input['SecretWinrmKerberosArgs'] kerberos: Kerberos authentication scheme
|
|
189
|
+
:param pulumi.Input[_builtins.str] name: Name of the resource.
|
|
190
|
+
:param pulumi.Input['SecretWinrmNtlmArgs'] ntlm: NTLM authentication scheme
|
|
191
|
+
:param pulumi.Input[_builtins.str] org_id: Unique identifier of the organization.
|
|
192
|
+
:param pulumi.Input[_builtins.int] port: WinRM port. Default is 5986 for HTTPS, 5985 for HTTP.
|
|
193
|
+
:param pulumi.Input[_builtins.str] project_id: Unique identifier of the project.
|
|
194
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags to associate with the resource.
|
|
195
|
+
"""
|
|
196
|
+
if description is not None:
|
|
197
|
+
pulumi.set(__self__, "description", description)
|
|
198
|
+
if identifier is not None:
|
|
199
|
+
pulumi.set(__self__, "identifier", identifier)
|
|
200
|
+
if kerberos is not None:
|
|
201
|
+
pulumi.set(__self__, "kerberos", kerberos)
|
|
202
|
+
if name is not None:
|
|
203
|
+
pulumi.set(__self__, "name", name)
|
|
204
|
+
if ntlm is not None:
|
|
205
|
+
pulumi.set(__self__, "ntlm", ntlm)
|
|
206
|
+
if org_id is not None:
|
|
207
|
+
pulumi.set(__self__, "org_id", org_id)
|
|
208
|
+
if port is not None:
|
|
209
|
+
pulumi.set(__self__, "port", port)
|
|
210
|
+
if project_id is not None:
|
|
211
|
+
pulumi.set(__self__, "project_id", project_id)
|
|
212
|
+
if tags is not None:
|
|
213
|
+
pulumi.set(__self__, "tags", tags)
|
|
214
|
+
|
|
215
|
+
@_builtins.property
|
|
216
|
+
@pulumi.getter
|
|
217
|
+
def description(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
218
|
+
"""
|
|
219
|
+
Description of the resource.
|
|
220
|
+
"""
|
|
221
|
+
return pulumi.get(self, "description")
|
|
222
|
+
|
|
223
|
+
@description.setter
|
|
224
|
+
def description(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
225
|
+
pulumi.set(self, "description", value)
|
|
226
|
+
|
|
227
|
+
@_builtins.property
|
|
228
|
+
@pulumi.getter
|
|
229
|
+
def identifier(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
230
|
+
"""
|
|
231
|
+
Unique identifier of the resource.
|
|
232
|
+
"""
|
|
233
|
+
return pulumi.get(self, "identifier")
|
|
234
|
+
|
|
235
|
+
@identifier.setter
|
|
236
|
+
def identifier(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
237
|
+
pulumi.set(self, "identifier", value)
|
|
238
|
+
|
|
239
|
+
@_builtins.property
|
|
240
|
+
@pulumi.getter
|
|
241
|
+
def kerberos(self) -> Optional[pulumi.Input['SecretWinrmKerberosArgs']]:
|
|
242
|
+
"""
|
|
243
|
+
Kerberos authentication scheme
|
|
244
|
+
"""
|
|
245
|
+
return pulumi.get(self, "kerberos")
|
|
246
|
+
|
|
247
|
+
@kerberos.setter
|
|
248
|
+
def kerberos(self, value: Optional[pulumi.Input['SecretWinrmKerberosArgs']]):
|
|
249
|
+
pulumi.set(self, "kerberos", value)
|
|
250
|
+
|
|
251
|
+
@_builtins.property
|
|
252
|
+
@pulumi.getter
|
|
253
|
+
def name(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
254
|
+
"""
|
|
255
|
+
Name of the resource.
|
|
256
|
+
"""
|
|
257
|
+
return pulumi.get(self, "name")
|
|
258
|
+
|
|
259
|
+
@name.setter
|
|
260
|
+
def name(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
261
|
+
pulumi.set(self, "name", value)
|
|
262
|
+
|
|
263
|
+
@_builtins.property
|
|
264
|
+
@pulumi.getter
|
|
265
|
+
def ntlm(self) -> Optional[pulumi.Input['SecretWinrmNtlmArgs']]:
|
|
266
|
+
"""
|
|
267
|
+
NTLM authentication scheme
|
|
268
|
+
"""
|
|
269
|
+
return pulumi.get(self, "ntlm")
|
|
270
|
+
|
|
271
|
+
@ntlm.setter
|
|
272
|
+
def ntlm(self, value: Optional[pulumi.Input['SecretWinrmNtlmArgs']]):
|
|
273
|
+
pulumi.set(self, "ntlm", value)
|
|
274
|
+
|
|
275
|
+
@_builtins.property
|
|
276
|
+
@pulumi.getter(name="orgId")
|
|
277
|
+
def org_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
278
|
+
"""
|
|
279
|
+
Unique identifier of the organization.
|
|
280
|
+
"""
|
|
281
|
+
return pulumi.get(self, "org_id")
|
|
282
|
+
|
|
283
|
+
@org_id.setter
|
|
284
|
+
def org_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
285
|
+
pulumi.set(self, "org_id", value)
|
|
286
|
+
|
|
287
|
+
@_builtins.property
|
|
288
|
+
@pulumi.getter
|
|
289
|
+
def port(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
290
|
+
"""
|
|
291
|
+
WinRM port. Default is 5986 for HTTPS, 5985 for HTTP.
|
|
292
|
+
"""
|
|
293
|
+
return pulumi.get(self, "port")
|
|
294
|
+
|
|
295
|
+
@port.setter
|
|
296
|
+
def port(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
297
|
+
pulumi.set(self, "port", value)
|
|
298
|
+
|
|
299
|
+
@_builtins.property
|
|
300
|
+
@pulumi.getter(name="projectId")
|
|
301
|
+
def project_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
302
|
+
"""
|
|
303
|
+
Unique identifier of the project.
|
|
304
|
+
"""
|
|
305
|
+
return pulumi.get(self, "project_id")
|
|
306
|
+
|
|
307
|
+
@project_id.setter
|
|
308
|
+
def project_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
309
|
+
pulumi.set(self, "project_id", value)
|
|
310
|
+
|
|
311
|
+
@_builtins.property
|
|
312
|
+
@pulumi.getter
|
|
313
|
+
def tags(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
314
|
+
"""
|
|
315
|
+
Tags to associate with the resource.
|
|
316
|
+
"""
|
|
317
|
+
return pulumi.get(self, "tags")
|
|
318
|
+
|
|
319
|
+
@tags.setter
|
|
320
|
+
def tags(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
321
|
+
pulumi.set(self, "tags", value)
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
@pulumi.type_token("harness:platform/secretWinrm:SecretWinrm")
|
|
325
|
+
class SecretWinrm(pulumi.CustomResource):
|
|
326
|
+
@overload
|
|
327
|
+
def __init__(__self__,
|
|
328
|
+
resource_name: str,
|
|
329
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
330
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
|
331
|
+
identifier: Optional[pulumi.Input[_builtins.str]] = None,
|
|
332
|
+
kerberos: Optional[pulumi.Input[Union['SecretWinrmKerberosArgs', 'SecretWinrmKerberosArgsDict']]] = None,
|
|
333
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
334
|
+
ntlm: Optional[pulumi.Input[Union['SecretWinrmNtlmArgs', 'SecretWinrmNtlmArgsDict']]] = None,
|
|
335
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
336
|
+
port: Optional[pulumi.Input[_builtins.int]] = None,
|
|
337
|
+
project_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
338
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
339
|
+
__props__=None):
|
|
340
|
+
"""
|
|
341
|
+
Resource for creating a WinRM credential secret.
|
|
342
|
+
|
|
343
|
+
## Example Usage
|
|
344
|
+
|
|
345
|
+
```python
|
|
346
|
+
import pulumi
|
|
347
|
+
import pulumi_harness as harness
|
|
348
|
+
|
|
349
|
+
# ============================================================================
|
|
350
|
+
# ACCOUNT LEVEL TESTS (3 scenarios)
|
|
351
|
+
# ============================================================================
|
|
352
|
+
# 1. Account-level NTLM
|
|
353
|
+
account_ntlm_password = harness.platform.SecretText("account_ntlm_password",
|
|
354
|
+
identifier="account_ntlm_password_v3",
|
|
355
|
+
name="account_ntlm_password_v3",
|
|
356
|
+
description="Password for account-level NTLM",
|
|
357
|
+
secret_manager_identifier="harnessSecretManager",
|
|
358
|
+
value_type="Inline",
|
|
359
|
+
value="account_ntlm_pass")
|
|
360
|
+
account_ntlm = harness.platform.SecretWinrm("account_ntlm",
|
|
361
|
+
identifier="account_ntlm_v3",
|
|
362
|
+
name="Account NTLM v3",
|
|
363
|
+
description="Account-level WinRM with NTLM",
|
|
364
|
+
tags=[
|
|
365
|
+
"scope:account",
|
|
366
|
+
"auth:ntlm",
|
|
367
|
+
],
|
|
368
|
+
port=5986,
|
|
369
|
+
ntlm={
|
|
370
|
+
"domain": "example.com",
|
|
371
|
+
"username": "admin",
|
|
372
|
+
"password_ref": account_ntlm_password.id.apply(lambda id: f"account.{id}"),
|
|
373
|
+
"use_ssl": True,
|
|
374
|
+
"skip_cert_check": False,
|
|
375
|
+
"use_no_profile": True,
|
|
376
|
+
})
|
|
377
|
+
# 2. Account-level Kerberos with KeyTab
|
|
378
|
+
account_kerberos_keytab = harness.platform.SecretWinrm("account_kerberos_keytab",
|
|
379
|
+
identifier="account_kerberos_keytab_v3",
|
|
380
|
+
name="Account Kerberos KeyTab v3",
|
|
381
|
+
description="Account-level WinRM with Kerberos KeyTab",
|
|
382
|
+
tags=[
|
|
383
|
+
"scope:account",
|
|
384
|
+
"auth:kerberos-keytab",
|
|
385
|
+
],
|
|
386
|
+
port=5986,
|
|
387
|
+
kerberos={
|
|
388
|
+
"principal": "service@EXAMPLE.COM",
|
|
389
|
+
"realm": "EXAMPLE.COM",
|
|
390
|
+
"tgt_generation_method": "KeyTabFilePath",
|
|
391
|
+
"use_ssl": True,
|
|
392
|
+
"skip_cert_check": True,
|
|
393
|
+
"use_no_profile": True,
|
|
394
|
+
"tgt_key_tab_file_path_spec": {
|
|
395
|
+
"key_path": "/etc/krb5.keytab",
|
|
396
|
+
},
|
|
397
|
+
})
|
|
398
|
+
# 3. Account-level Kerberos with Password
|
|
399
|
+
account_kerberos_password1 = harness.platform.SecretText("account_kerberos_password_1",
|
|
400
|
+
identifier="account_kerb_pass_20251111",
|
|
401
|
+
name="account_kerb_pass_20251111",
|
|
402
|
+
description="Password for account-level Kerberos",
|
|
403
|
+
secret_manager_identifier="harnessSecretManager",
|
|
404
|
+
value_type="Inline",
|
|
405
|
+
value="account_kerberos_pass")
|
|
406
|
+
account_kerberos_password1_secret_winrm = harness.platform.SecretWinrm("account_kerberos_password_1",
|
|
407
|
+
identifier="account_kerb_winrm_20251111",
|
|
408
|
+
name="Account Kerberos WinRM 20251111",
|
|
409
|
+
description="Account-level WinRM with Kerberos Password",
|
|
410
|
+
tags=[
|
|
411
|
+
"scope:account",
|
|
412
|
+
"auth:kerberos-password",
|
|
413
|
+
],
|
|
414
|
+
port=5986,
|
|
415
|
+
kerberos={
|
|
416
|
+
"principal": "user@EXAMPLE.COM",
|
|
417
|
+
"realm": "EXAMPLE.COM",
|
|
418
|
+
"tgt_generation_method": "Password",
|
|
419
|
+
"use_ssl": True,
|
|
420
|
+
"skip_cert_check": False,
|
|
421
|
+
"use_no_profile": True,
|
|
422
|
+
"tgt_password_spec": {
|
|
423
|
+
"password_ref": account_kerberos_password1.id.apply(lambda id: f"account.{id}"),
|
|
424
|
+
},
|
|
425
|
+
})
|
|
426
|
+
# ============================================================================
|
|
427
|
+
# ORGANIZATION LEVEL TESTS (3 scenarios)
|
|
428
|
+
# ============================================================================
|
|
429
|
+
# 4. Org-level NTLM
|
|
430
|
+
org_ntlm_password = harness.platform.SecretText("org_ntlm_password",
|
|
431
|
+
identifier="org_ntlm_password_v3",
|
|
432
|
+
name="org_ntlm_password_v3",
|
|
433
|
+
description="Password for org-level NTLM",
|
|
434
|
+
org_id="default",
|
|
435
|
+
secret_manager_identifier="harnessSecretManager",
|
|
436
|
+
value_type="Inline",
|
|
437
|
+
value="org_ntlm_pass")
|
|
438
|
+
org_ntlm = harness.platform.SecretWinrm("org_ntlm",
|
|
439
|
+
identifier="org_ntlm_v3",
|
|
440
|
+
name="Org NTLM v3",
|
|
441
|
+
description="Org-level WinRM with NTLM",
|
|
442
|
+
org_id="default",
|
|
443
|
+
tags=[
|
|
444
|
+
"scope:org",
|
|
445
|
+
"auth:ntlm",
|
|
446
|
+
],
|
|
447
|
+
port=5985,
|
|
448
|
+
ntlm={
|
|
449
|
+
"domain": "org.example.com",
|
|
450
|
+
"username": "orgadmin",
|
|
451
|
+
"password_ref": org_ntlm_password.id.apply(lambda id: f"org.{id}"),
|
|
452
|
+
"use_ssl": False,
|
|
453
|
+
"skip_cert_check": False,
|
|
454
|
+
"use_no_profile": True,
|
|
455
|
+
})
|
|
456
|
+
# 5. Org-level Kerberos with KeyTab
|
|
457
|
+
org_kerberos_keytab = harness.platform.SecretWinrm("org_kerberos_keytab",
|
|
458
|
+
identifier="org_kerberos_keytab_v3",
|
|
459
|
+
name="Org Kerberos KeyTab v3",
|
|
460
|
+
description="Org-level WinRM with Kerberos KeyTab",
|
|
461
|
+
org_id="default",
|
|
462
|
+
tags=[
|
|
463
|
+
"scope:org",
|
|
464
|
+
"auth:kerberos-keytab",
|
|
465
|
+
],
|
|
466
|
+
port=5986,
|
|
467
|
+
kerberos={
|
|
468
|
+
"principal": "orgservice@EXAMPLE.COM",
|
|
469
|
+
"realm": "EXAMPLE.COM",
|
|
470
|
+
"tgt_generation_method": "KeyTabFilePath",
|
|
471
|
+
"use_ssl": True,
|
|
472
|
+
"skip_cert_check": True,
|
|
473
|
+
"use_no_profile": True,
|
|
474
|
+
"tgt_key_tab_file_path_spec": {
|
|
475
|
+
"key_path": "/etc/org.keytab",
|
|
476
|
+
},
|
|
477
|
+
})
|
|
478
|
+
# 6. Org-level Kerberos with Password
|
|
479
|
+
org_kerberos_password = harness.platform.SecretText("org_kerberos_password",
|
|
480
|
+
identifier="org_kerb_pass_v3",
|
|
481
|
+
name="org_kerb_pass_v3",
|
|
482
|
+
description="Password for org-level Kerberos",
|
|
483
|
+
org_id="default",
|
|
484
|
+
secret_manager_identifier="harnessSecretManager",
|
|
485
|
+
value_type="Inline",
|
|
486
|
+
value="org_kerberos_pass")
|
|
487
|
+
org_kerberos_password_secret_winrm = harness.platform.SecretWinrm("org_kerberos_password",
|
|
488
|
+
identifier="org_kerb_winrm_v3",
|
|
489
|
+
name="Org Kerberos WinRM v3",
|
|
490
|
+
description="Org-level WinRM with Kerberos Password",
|
|
491
|
+
org_id="default",
|
|
492
|
+
tags=[
|
|
493
|
+
"scope:org",
|
|
494
|
+
"auth:kerberos-password",
|
|
495
|
+
],
|
|
496
|
+
port=5986,
|
|
497
|
+
kerberos={
|
|
498
|
+
"principal": "orguser@EXAMPLE.COM",
|
|
499
|
+
"realm": "EXAMPLE.COM",
|
|
500
|
+
"tgt_generation_method": "Password",
|
|
501
|
+
"use_ssl": True,
|
|
502
|
+
"skip_cert_check": False,
|
|
503
|
+
"use_no_profile": True,
|
|
504
|
+
"tgt_password_spec": {
|
|
505
|
+
"password_ref": org_kerberos_password.id.apply(lambda id: f"org.{id}"),
|
|
506
|
+
},
|
|
507
|
+
})
|
|
508
|
+
# ============================================================================
|
|
509
|
+
# PROJECT LEVEL TESTS (3 scenarios)
|
|
510
|
+
# ============================================================================
|
|
511
|
+
# 7. Project-level NTLM
|
|
512
|
+
project_ntlm_password = harness.platform.SecretText("project_ntlm_password",
|
|
513
|
+
identifier="proj_ntlm_pass_v3",
|
|
514
|
+
name="proj_ntlm_pass_v3",
|
|
515
|
+
description="Password for project-level NTLM",
|
|
516
|
+
org_id="default",
|
|
517
|
+
project_id="winrm_support_terraform",
|
|
518
|
+
secret_manager_identifier="harnessSecretManager",
|
|
519
|
+
value_type="Inline",
|
|
520
|
+
value="project_ntlm_pass")
|
|
521
|
+
project_ntlm = harness.platform.SecretWinrm("project_ntlm",
|
|
522
|
+
identifier="proj_ntlm_winrm_v3",
|
|
523
|
+
name="Project NTLM WinRM v3",
|
|
524
|
+
description="Project-level WinRM with NTLM",
|
|
525
|
+
org_id="default",
|
|
526
|
+
project_id="winrm_support_terraform",
|
|
527
|
+
tags=[
|
|
528
|
+
"scope:project",
|
|
529
|
+
"auth:ntlm",
|
|
530
|
+
],
|
|
531
|
+
port=5986,
|
|
532
|
+
ntlm={
|
|
533
|
+
"domain": "project.example.com",
|
|
534
|
+
"username": "projectadmin",
|
|
535
|
+
"password_ref": project_ntlm_password.id,
|
|
536
|
+
"use_ssl": True,
|
|
537
|
+
"skip_cert_check": False,
|
|
538
|
+
"use_no_profile": False,
|
|
539
|
+
})
|
|
540
|
+
# 8. Project-level Kerberos with KeyTab
|
|
541
|
+
project_kerberos_keytab = harness.platform.SecretWinrm("project_kerberos_keytab",
|
|
542
|
+
identifier="proj_kerb_keytab_v3",
|
|
543
|
+
name="Project Kerberos KeyTab v3",
|
|
544
|
+
description="Project-level WinRM with Kerberos KeyTab",
|
|
545
|
+
org_id="default",
|
|
546
|
+
project_id="winrm_support_terraform",
|
|
547
|
+
tags=[
|
|
548
|
+
"scope:project",
|
|
549
|
+
"auth:kerberos-keytab",
|
|
550
|
+
],
|
|
551
|
+
port=5986,
|
|
552
|
+
kerberos={
|
|
553
|
+
"principal": "projectservice@EXAMPLE.COM",
|
|
554
|
+
"realm": "EXAMPLE.COM",
|
|
555
|
+
"tgt_generation_method": "KeyTabFilePath",
|
|
556
|
+
"use_ssl": False,
|
|
557
|
+
"skip_cert_check": False,
|
|
558
|
+
"use_no_profile": False,
|
|
559
|
+
"tgt_key_tab_file_path_spec": {
|
|
560
|
+
"key_path": "/etc/project.keytab",
|
|
561
|
+
},
|
|
562
|
+
})
|
|
563
|
+
# 9. Project-level Kerberos with Password
|
|
564
|
+
project_kerberos_password = harness.platform.SecretText("project_kerberos_password",
|
|
565
|
+
identifier="proj_kerb_pass_v3",
|
|
566
|
+
name="proj_kerb_pass_v3",
|
|
567
|
+
description="Password for project-level Kerberos",
|
|
568
|
+
org_id="default",
|
|
569
|
+
project_id="winrm_support_terraform",
|
|
570
|
+
secret_manager_identifier="harnessSecretManager",
|
|
571
|
+
value_type="Inline",
|
|
572
|
+
value="project_kerberos_pass")
|
|
573
|
+
project_kerberos_password_secret_winrm = harness.platform.SecretWinrm("project_kerberos_password",
|
|
574
|
+
identifier="proj_kerb_winrm_v3",
|
|
575
|
+
name="Project Kerberos WinRM v3",
|
|
576
|
+
description="Project-level WinRM with Kerberos Password",
|
|
577
|
+
org_id="default",
|
|
578
|
+
project_id="winrm_support_terraform",
|
|
579
|
+
tags=[
|
|
580
|
+
"scope:project",
|
|
581
|
+
"auth:kerberos-password",
|
|
582
|
+
],
|
|
583
|
+
port=5986,
|
|
584
|
+
kerberos={
|
|
585
|
+
"principal": "projectuser@EXAMPLE.COM",
|
|
586
|
+
"realm": "EXAMPLE.COM",
|
|
587
|
+
"tgt_generation_method": "Password",
|
|
588
|
+
"use_ssl": False,
|
|
589
|
+
"skip_cert_check": True,
|
|
590
|
+
"use_no_profile": True,
|
|
591
|
+
"tgt_password_spec": {
|
|
592
|
+
"password_ref": project_kerberos_password.id,
|
|
593
|
+
},
|
|
594
|
+
})
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
## Import
|
|
598
|
+
|
|
599
|
+
The `pulumi import` command can be used, for example:
|
|
600
|
+
|
|
601
|
+
Import account level WinRM credential
|
|
602
|
+
|
|
603
|
+
```sh
|
|
604
|
+
$ pulumi import harness:platform/secretWinrm:SecretWinrm example <winrm_credential_id>
|
|
605
|
+
```
|
|
606
|
+
|
|
607
|
+
Import organization level WinRM credential
|
|
608
|
+
|
|
609
|
+
```sh
|
|
610
|
+
$ pulumi import harness:platform/secretWinrm:SecretWinrm example <org_id>/<winrm_credential_id>
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
Import project level WinRM credential
|
|
614
|
+
|
|
615
|
+
```sh
|
|
616
|
+
$ pulumi import harness:platform/secretWinrm:SecretWinrm example <org_id>/<project_id>/<winrm_credential_id>
|
|
617
|
+
```
|
|
618
|
+
|
|
619
|
+
:param str resource_name: The name of the resource.
|
|
620
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
621
|
+
:param pulumi.Input[_builtins.str] description: Description of the resource.
|
|
622
|
+
:param pulumi.Input[_builtins.str] identifier: Unique identifier of the resource.
|
|
623
|
+
:param pulumi.Input[Union['SecretWinrmKerberosArgs', 'SecretWinrmKerberosArgsDict']] kerberos: Kerberos authentication scheme
|
|
624
|
+
:param pulumi.Input[_builtins.str] name: Name of the resource.
|
|
625
|
+
:param pulumi.Input[Union['SecretWinrmNtlmArgs', 'SecretWinrmNtlmArgsDict']] ntlm: NTLM authentication scheme
|
|
626
|
+
:param pulumi.Input[_builtins.str] org_id: Unique identifier of the organization.
|
|
627
|
+
:param pulumi.Input[_builtins.int] port: WinRM port. Default is 5986 for HTTPS, 5985 for HTTP.
|
|
628
|
+
:param pulumi.Input[_builtins.str] project_id: Unique identifier of the project.
|
|
629
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags to associate with the resource.
|
|
630
|
+
"""
|
|
631
|
+
...
|
|
632
|
+
@overload
|
|
633
|
+
def __init__(__self__,
|
|
634
|
+
resource_name: str,
|
|
635
|
+
args: SecretWinrmArgs,
|
|
636
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
637
|
+
"""
|
|
638
|
+
Resource for creating a WinRM credential secret.
|
|
639
|
+
|
|
640
|
+
## Example Usage
|
|
641
|
+
|
|
642
|
+
```python
|
|
643
|
+
import pulumi
|
|
644
|
+
import pulumi_harness as harness
|
|
645
|
+
|
|
646
|
+
# ============================================================================
|
|
647
|
+
# ACCOUNT LEVEL TESTS (3 scenarios)
|
|
648
|
+
# ============================================================================
|
|
649
|
+
# 1. Account-level NTLM
|
|
650
|
+
account_ntlm_password = harness.platform.SecretText("account_ntlm_password",
|
|
651
|
+
identifier="account_ntlm_password_v3",
|
|
652
|
+
name="account_ntlm_password_v3",
|
|
653
|
+
description="Password for account-level NTLM",
|
|
654
|
+
secret_manager_identifier="harnessSecretManager",
|
|
655
|
+
value_type="Inline",
|
|
656
|
+
value="account_ntlm_pass")
|
|
657
|
+
account_ntlm = harness.platform.SecretWinrm("account_ntlm",
|
|
658
|
+
identifier="account_ntlm_v3",
|
|
659
|
+
name="Account NTLM v3",
|
|
660
|
+
description="Account-level WinRM with NTLM",
|
|
661
|
+
tags=[
|
|
662
|
+
"scope:account",
|
|
663
|
+
"auth:ntlm",
|
|
664
|
+
],
|
|
665
|
+
port=5986,
|
|
666
|
+
ntlm={
|
|
667
|
+
"domain": "example.com",
|
|
668
|
+
"username": "admin",
|
|
669
|
+
"password_ref": account_ntlm_password.id.apply(lambda id: f"account.{id}"),
|
|
670
|
+
"use_ssl": True,
|
|
671
|
+
"skip_cert_check": False,
|
|
672
|
+
"use_no_profile": True,
|
|
673
|
+
})
|
|
674
|
+
# 2. Account-level Kerberos with KeyTab
|
|
675
|
+
account_kerberos_keytab = harness.platform.SecretWinrm("account_kerberos_keytab",
|
|
676
|
+
identifier="account_kerberos_keytab_v3",
|
|
677
|
+
name="Account Kerberos KeyTab v3",
|
|
678
|
+
description="Account-level WinRM with Kerberos KeyTab",
|
|
679
|
+
tags=[
|
|
680
|
+
"scope:account",
|
|
681
|
+
"auth:kerberos-keytab",
|
|
682
|
+
],
|
|
683
|
+
port=5986,
|
|
684
|
+
kerberos={
|
|
685
|
+
"principal": "service@EXAMPLE.COM",
|
|
686
|
+
"realm": "EXAMPLE.COM",
|
|
687
|
+
"tgt_generation_method": "KeyTabFilePath",
|
|
688
|
+
"use_ssl": True,
|
|
689
|
+
"skip_cert_check": True,
|
|
690
|
+
"use_no_profile": True,
|
|
691
|
+
"tgt_key_tab_file_path_spec": {
|
|
692
|
+
"key_path": "/etc/krb5.keytab",
|
|
693
|
+
},
|
|
694
|
+
})
|
|
695
|
+
# 3. Account-level Kerberos with Password
|
|
696
|
+
account_kerberos_password1 = harness.platform.SecretText("account_kerberos_password_1",
|
|
697
|
+
identifier="account_kerb_pass_20251111",
|
|
698
|
+
name="account_kerb_pass_20251111",
|
|
699
|
+
description="Password for account-level Kerberos",
|
|
700
|
+
secret_manager_identifier="harnessSecretManager",
|
|
701
|
+
value_type="Inline",
|
|
702
|
+
value="account_kerberos_pass")
|
|
703
|
+
account_kerberos_password1_secret_winrm = harness.platform.SecretWinrm("account_kerberos_password_1",
|
|
704
|
+
identifier="account_kerb_winrm_20251111",
|
|
705
|
+
name="Account Kerberos WinRM 20251111",
|
|
706
|
+
description="Account-level WinRM with Kerberos Password",
|
|
707
|
+
tags=[
|
|
708
|
+
"scope:account",
|
|
709
|
+
"auth:kerberos-password",
|
|
710
|
+
],
|
|
711
|
+
port=5986,
|
|
712
|
+
kerberos={
|
|
713
|
+
"principal": "user@EXAMPLE.COM",
|
|
714
|
+
"realm": "EXAMPLE.COM",
|
|
715
|
+
"tgt_generation_method": "Password",
|
|
716
|
+
"use_ssl": True,
|
|
717
|
+
"skip_cert_check": False,
|
|
718
|
+
"use_no_profile": True,
|
|
719
|
+
"tgt_password_spec": {
|
|
720
|
+
"password_ref": account_kerberos_password1.id.apply(lambda id: f"account.{id}"),
|
|
721
|
+
},
|
|
722
|
+
})
|
|
723
|
+
# ============================================================================
|
|
724
|
+
# ORGANIZATION LEVEL TESTS (3 scenarios)
|
|
725
|
+
# ============================================================================
|
|
726
|
+
# 4. Org-level NTLM
|
|
727
|
+
org_ntlm_password = harness.platform.SecretText("org_ntlm_password",
|
|
728
|
+
identifier="org_ntlm_password_v3",
|
|
729
|
+
name="org_ntlm_password_v3",
|
|
730
|
+
description="Password for org-level NTLM",
|
|
731
|
+
org_id="default",
|
|
732
|
+
secret_manager_identifier="harnessSecretManager",
|
|
733
|
+
value_type="Inline",
|
|
734
|
+
value="org_ntlm_pass")
|
|
735
|
+
org_ntlm = harness.platform.SecretWinrm("org_ntlm",
|
|
736
|
+
identifier="org_ntlm_v3",
|
|
737
|
+
name="Org NTLM v3",
|
|
738
|
+
description="Org-level WinRM with NTLM",
|
|
739
|
+
org_id="default",
|
|
740
|
+
tags=[
|
|
741
|
+
"scope:org",
|
|
742
|
+
"auth:ntlm",
|
|
743
|
+
],
|
|
744
|
+
port=5985,
|
|
745
|
+
ntlm={
|
|
746
|
+
"domain": "org.example.com",
|
|
747
|
+
"username": "orgadmin",
|
|
748
|
+
"password_ref": org_ntlm_password.id.apply(lambda id: f"org.{id}"),
|
|
749
|
+
"use_ssl": False,
|
|
750
|
+
"skip_cert_check": False,
|
|
751
|
+
"use_no_profile": True,
|
|
752
|
+
})
|
|
753
|
+
# 5. Org-level Kerberos with KeyTab
|
|
754
|
+
org_kerberos_keytab = harness.platform.SecretWinrm("org_kerberos_keytab",
|
|
755
|
+
identifier="org_kerberos_keytab_v3",
|
|
756
|
+
name="Org Kerberos KeyTab v3",
|
|
757
|
+
description="Org-level WinRM with Kerberos KeyTab",
|
|
758
|
+
org_id="default",
|
|
759
|
+
tags=[
|
|
760
|
+
"scope:org",
|
|
761
|
+
"auth:kerberos-keytab",
|
|
762
|
+
],
|
|
763
|
+
port=5986,
|
|
764
|
+
kerberos={
|
|
765
|
+
"principal": "orgservice@EXAMPLE.COM",
|
|
766
|
+
"realm": "EXAMPLE.COM",
|
|
767
|
+
"tgt_generation_method": "KeyTabFilePath",
|
|
768
|
+
"use_ssl": True,
|
|
769
|
+
"skip_cert_check": True,
|
|
770
|
+
"use_no_profile": True,
|
|
771
|
+
"tgt_key_tab_file_path_spec": {
|
|
772
|
+
"key_path": "/etc/org.keytab",
|
|
773
|
+
},
|
|
774
|
+
})
|
|
775
|
+
# 6. Org-level Kerberos with Password
|
|
776
|
+
org_kerberos_password = harness.platform.SecretText("org_kerberos_password",
|
|
777
|
+
identifier="org_kerb_pass_v3",
|
|
778
|
+
name="org_kerb_pass_v3",
|
|
779
|
+
description="Password for org-level Kerberos",
|
|
780
|
+
org_id="default",
|
|
781
|
+
secret_manager_identifier="harnessSecretManager",
|
|
782
|
+
value_type="Inline",
|
|
783
|
+
value="org_kerberos_pass")
|
|
784
|
+
org_kerberos_password_secret_winrm = harness.platform.SecretWinrm("org_kerberos_password",
|
|
785
|
+
identifier="org_kerb_winrm_v3",
|
|
786
|
+
name="Org Kerberos WinRM v3",
|
|
787
|
+
description="Org-level WinRM with Kerberos Password",
|
|
788
|
+
org_id="default",
|
|
789
|
+
tags=[
|
|
790
|
+
"scope:org",
|
|
791
|
+
"auth:kerberos-password",
|
|
792
|
+
],
|
|
793
|
+
port=5986,
|
|
794
|
+
kerberos={
|
|
795
|
+
"principal": "orguser@EXAMPLE.COM",
|
|
796
|
+
"realm": "EXAMPLE.COM",
|
|
797
|
+
"tgt_generation_method": "Password",
|
|
798
|
+
"use_ssl": True,
|
|
799
|
+
"skip_cert_check": False,
|
|
800
|
+
"use_no_profile": True,
|
|
801
|
+
"tgt_password_spec": {
|
|
802
|
+
"password_ref": org_kerberos_password.id.apply(lambda id: f"org.{id}"),
|
|
803
|
+
},
|
|
804
|
+
})
|
|
805
|
+
# ============================================================================
|
|
806
|
+
# PROJECT LEVEL TESTS (3 scenarios)
|
|
807
|
+
# ============================================================================
|
|
808
|
+
# 7. Project-level NTLM
|
|
809
|
+
project_ntlm_password = harness.platform.SecretText("project_ntlm_password",
|
|
810
|
+
identifier="proj_ntlm_pass_v3",
|
|
811
|
+
name="proj_ntlm_pass_v3",
|
|
812
|
+
description="Password for project-level NTLM",
|
|
813
|
+
org_id="default",
|
|
814
|
+
project_id="winrm_support_terraform",
|
|
815
|
+
secret_manager_identifier="harnessSecretManager",
|
|
816
|
+
value_type="Inline",
|
|
817
|
+
value="project_ntlm_pass")
|
|
818
|
+
project_ntlm = harness.platform.SecretWinrm("project_ntlm",
|
|
819
|
+
identifier="proj_ntlm_winrm_v3",
|
|
820
|
+
name="Project NTLM WinRM v3",
|
|
821
|
+
description="Project-level WinRM with NTLM",
|
|
822
|
+
org_id="default",
|
|
823
|
+
project_id="winrm_support_terraform",
|
|
824
|
+
tags=[
|
|
825
|
+
"scope:project",
|
|
826
|
+
"auth:ntlm",
|
|
827
|
+
],
|
|
828
|
+
port=5986,
|
|
829
|
+
ntlm={
|
|
830
|
+
"domain": "project.example.com",
|
|
831
|
+
"username": "projectadmin",
|
|
832
|
+
"password_ref": project_ntlm_password.id,
|
|
833
|
+
"use_ssl": True,
|
|
834
|
+
"skip_cert_check": False,
|
|
835
|
+
"use_no_profile": False,
|
|
836
|
+
})
|
|
837
|
+
# 8. Project-level Kerberos with KeyTab
|
|
838
|
+
project_kerberos_keytab = harness.platform.SecretWinrm("project_kerberos_keytab",
|
|
839
|
+
identifier="proj_kerb_keytab_v3",
|
|
840
|
+
name="Project Kerberos KeyTab v3",
|
|
841
|
+
description="Project-level WinRM with Kerberos KeyTab",
|
|
842
|
+
org_id="default",
|
|
843
|
+
project_id="winrm_support_terraform",
|
|
844
|
+
tags=[
|
|
845
|
+
"scope:project",
|
|
846
|
+
"auth:kerberos-keytab",
|
|
847
|
+
],
|
|
848
|
+
port=5986,
|
|
849
|
+
kerberos={
|
|
850
|
+
"principal": "projectservice@EXAMPLE.COM",
|
|
851
|
+
"realm": "EXAMPLE.COM",
|
|
852
|
+
"tgt_generation_method": "KeyTabFilePath",
|
|
853
|
+
"use_ssl": False,
|
|
854
|
+
"skip_cert_check": False,
|
|
855
|
+
"use_no_profile": False,
|
|
856
|
+
"tgt_key_tab_file_path_spec": {
|
|
857
|
+
"key_path": "/etc/project.keytab",
|
|
858
|
+
},
|
|
859
|
+
})
|
|
860
|
+
# 9. Project-level Kerberos with Password
|
|
861
|
+
project_kerberos_password = harness.platform.SecretText("project_kerberos_password",
|
|
862
|
+
identifier="proj_kerb_pass_v3",
|
|
863
|
+
name="proj_kerb_pass_v3",
|
|
864
|
+
description="Password for project-level Kerberos",
|
|
865
|
+
org_id="default",
|
|
866
|
+
project_id="winrm_support_terraform",
|
|
867
|
+
secret_manager_identifier="harnessSecretManager",
|
|
868
|
+
value_type="Inline",
|
|
869
|
+
value="project_kerberos_pass")
|
|
870
|
+
project_kerberos_password_secret_winrm = harness.platform.SecretWinrm("project_kerberos_password",
|
|
871
|
+
identifier="proj_kerb_winrm_v3",
|
|
872
|
+
name="Project Kerberos WinRM v3",
|
|
873
|
+
description="Project-level WinRM with Kerberos Password",
|
|
874
|
+
org_id="default",
|
|
875
|
+
project_id="winrm_support_terraform",
|
|
876
|
+
tags=[
|
|
877
|
+
"scope:project",
|
|
878
|
+
"auth:kerberos-password",
|
|
879
|
+
],
|
|
880
|
+
port=5986,
|
|
881
|
+
kerberos={
|
|
882
|
+
"principal": "projectuser@EXAMPLE.COM",
|
|
883
|
+
"realm": "EXAMPLE.COM",
|
|
884
|
+
"tgt_generation_method": "Password",
|
|
885
|
+
"use_ssl": False,
|
|
886
|
+
"skip_cert_check": True,
|
|
887
|
+
"use_no_profile": True,
|
|
888
|
+
"tgt_password_spec": {
|
|
889
|
+
"password_ref": project_kerberos_password.id,
|
|
890
|
+
},
|
|
891
|
+
})
|
|
892
|
+
```
|
|
893
|
+
|
|
894
|
+
## Import
|
|
895
|
+
|
|
896
|
+
The `pulumi import` command can be used, for example:
|
|
897
|
+
|
|
898
|
+
Import account level WinRM credential
|
|
899
|
+
|
|
900
|
+
```sh
|
|
901
|
+
$ pulumi import harness:platform/secretWinrm:SecretWinrm example <winrm_credential_id>
|
|
902
|
+
```
|
|
903
|
+
|
|
904
|
+
Import organization level WinRM credential
|
|
905
|
+
|
|
906
|
+
```sh
|
|
907
|
+
$ pulumi import harness:platform/secretWinrm:SecretWinrm example <org_id>/<winrm_credential_id>
|
|
908
|
+
```
|
|
909
|
+
|
|
910
|
+
Import project level WinRM credential
|
|
911
|
+
|
|
912
|
+
```sh
|
|
913
|
+
$ pulumi import harness:platform/secretWinrm:SecretWinrm example <org_id>/<project_id>/<winrm_credential_id>
|
|
914
|
+
```
|
|
915
|
+
|
|
916
|
+
:param str resource_name: The name of the resource.
|
|
917
|
+
:param SecretWinrmArgs args: The arguments to use to populate this resource's properties.
|
|
918
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
919
|
+
"""
|
|
920
|
+
...
|
|
921
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
922
|
+
resource_args, opts = _utilities.get_resource_args_opts(SecretWinrmArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
923
|
+
if resource_args is not None:
|
|
924
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
925
|
+
else:
|
|
926
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
927
|
+
|
|
928
|
+
def _internal_init(__self__,
|
|
929
|
+
resource_name: str,
|
|
930
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
931
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
|
932
|
+
identifier: Optional[pulumi.Input[_builtins.str]] = None,
|
|
933
|
+
kerberos: Optional[pulumi.Input[Union['SecretWinrmKerberosArgs', 'SecretWinrmKerberosArgsDict']]] = None,
|
|
934
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
935
|
+
ntlm: Optional[pulumi.Input[Union['SecretWinrmNtlmArgs', 'SecretWinrmNtlmArgsDict']]] = None,
|
|
936
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
937
|
+
port: Optional[pulumi.Input[_builtins.int]] = None,
|
|
938
|
+
project_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
939
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
940
|
+
__props__=None):
|
|
941
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
942
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
943
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
944
|
+
if opts.id is None:
|
|
945
|
+
if __props__ is not None:
|
|
946
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
947
|
+
__props__ = SecretWinrmArgs.__new__(SecretWinrmArgs)
|
|
948
|
+
|
|
949
|
+
__props__.__dict__["description"] = description
|
|
950
|
+
if identifier is None and not opts.urn:
|
|
951
|
+
raise TypeError("Missing required property 'identifier'")
|
|
952
|
+
__props__.__dict__["identifier"] = identifier
|
|
953
|
+
__props__.__dict__["kerberos"] = kerberos
|
|
954
|
+
__props__.__dict__["name"] = name
|
|
955
|
+
__props__.__dict__["ntlm"] = ntlm
|
|
956
|
+
__props__.__dict__["org_id"] = org_id
|
|
957
|
+
__props__.__dict__["port"] = port
|
|
958
|
+
__props__.__dict__["project_id"] = project_id
|
|
959
|
+
__props__.__dict__["tags"] = tags
|
|
960
|
+
super(SecretWinrm, __self__).__init__(
|
|
961
|
+
'harness:platform/secretWinrm:SecretWinrm',
|
|
962
|
+
resource_name,
|
|
963
|
+
__props__,
|
|
964
|
+
opts)
|
|
965
|
+
|
|
966
|
+
@staticmethod
|
|
967
|
+
def get(resource_name: str,
|
|
968
|
+
id: pulumi.Input[str],
|
|
969
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
970
|
+
description: Optional[pulumi.Input[_builtins.str]] = None,
|
|
971
|
+
identifier: Optional[pulumi.Input[_builtins.str]] = None,
|
|
972
|
+
kerberos: Optional[pulumi.Input[Union['SecretWinrmKerberosArgs', 'SecretWinrmKerberosArgsDict']]] = None,
|
|
973
|
+
name: Optional[pulumi.Input[_builtins.str]] = None,
|
|
974
|
+
ntlm: Optional[pulumi.Input[Union['SecretWinrmNtlmArgs', 'SecretWinrmNtlmArgsDict']]] = None,
|
|
975
|
+
org_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
976
|
+
port: Optional[pulumi.Input[_builtins.int]] = None,
|
|
977
|
+
project_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
978
|
+
tags: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None) -> 'SecretWinrm':
|
|
979
|
+
"""
|
|
980
|
+
Get an existing SecretWinrm resource's state with the given name, id, and optional extra
|
|
981
|
+
properties used to qualify the lookup.
|
|
982
|
+
|
|
983
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
984
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
985
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
986
|
+
:param pulumi.Input[_builtins.str] description: Description of the resource.
|
|
987
|
+
:param pulumi.Input[_builtins.str] identifier: Unique identifier of the resource.
|
|
988
|
+
:param pulumi.Input[Union['SecretWinrmKerberosArgs', 'SecretWinrmKerberosArgsDict']] kerberos: Kerberos authentication scheme
|
|
989
|
+
:param pulumi.Input[_builtins.str] name: Name of the resource.
|
|
990
|
+
:param pulumi.Input[Union['SecretWinrmNtlmArgs', 'SecretWinrmNtlmArgsDict']] ntlm: NTLM authentication scheme
|
|
991
|
+
:param pulumi.Input[_builtins.str] org_id: Unique identifier of the organization.
|
|
992
|
+
:param pulumi.Input[_builtins.int] port: WinRM port. Default is 5986 for HTTPS, 5985 for HTTP.
|
|
993
|
+
:param pulumi.Input[_builtins.str] project_id: Unique identifier of the project.
|
|
994
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] tags: Tags to associate with the resource.
|
|
995
|
+
"""
|
|
996
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
997
|
+
|
|
998
|
+
__props__ = _SecretWinrmState.__new__(_SecretWinrmState)
|
|
999
|
+
|
|
1000
|
+
__props__.__dict__["description"] = description
|
|
1001
|
+
__props__.__dict__["identifier"] = identifier
|
|
1002
|
+
__props__.__dict__["kerberos"] = kerberos
|
|
1003
|
+
__props__.__dict__["name"] = name
|
|
1004
|
+
__props__.__dict__["ntlm"] = ntlm
|
|
1005
|
+
__props__.__dict__["org_id"] = org_id
|
|
1006
|
+
__props__.__dict__["port"] = port
|
|
1007
|
+
__props__.__dict__["project_id"] = project_id
|
|
1008
|
+
__props__.__dict__["tags"] = tags
|
|
1009
|
+
return SecretWinrm(resource_name, opts=opts, __props__=__props__)
|
|
1010
|
+
|
|
1011
|
+
@_builtins.property
|
|
1012
|
+
@pulumi.getter
|
|
1013
|
+
def description(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1014
|
+
"""
|
|
1015
|
+
Description of the resource.
|
|
1016
|
+
"""
|
|
1017
|
+
return pulumi.get(self, "description")
|
|
1018
|
+
|
|
1019
|
+
@_builtins.property
|
|
1020
|
+
@pulumi.getter
|
|
1021
|
+
def identifier(self) -> pulumi.Output[_builtins.str]:
|
|
1022
|
+
"""
|
|
1023
|
+
Unique identifier of the resource.
|
|
1024
|
+
"""
|
|
1025
|
+
return pulumi.get(self, "identifier")
|
|
1026
|
+
|
|
1027
|
+
@_builtins.property
|
|
1028
|
+
@pulumi.getter
|
|
1029
|
+
def kerberos(self) -> pulumi.Output[Optional['outputs.SecretWinrmKerberos']]:
|
|
1030
|
+
"""
|
|
1031
|
+
Kerberos authentication scheme
|
|
1032
|
+
"""
|
|
1033
|
+
return pulumi.get(self, "kerberos")
|
|
1034
|
+
|
|
1035
|
+
@_builtins.property
|
|
1036
|
+
@pulumi.getter
|
|
1037
|
+
def name(self) -> pulumi.Output[_builtins.str]:
|
|
1038
|
+
"""
|
|
1039
|
+
Name of the resource.
|
|
1040
|
+
"""
|
|
1041
|
+
return pulumi.get(self, "name")
|
|
1042
|
+
|
|
1043
|
+
@_builtins.property
|
|
1044
|
+
@pulumi.getter
|
|
1045
|
+
def ntlm(self) -> pulumi.Output[Optional['outputs.SecretWinrmNtlm']]:
|
|
1046
|
+
"""
|
|
1047
|
+
NTLM authentication scheme
|
|
1048
|
+
"""
|
|
1049
|
+
return pulumi.get(self, "ntlm")
|
|
1050
|
+
|
|
1051
|
+
@_builtins.property
|
|
1052
|
+
@pulumi.getter(name="orgId")
|
|
1053
|
+
def org_id(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1054
|
+
"""
|
|
1055
|
+
Unique identifier of the organization.
|
|
1056
|
+
"""
|
|
1057
|
+
return pulumi.get(self, "org_id")
|
|
1058
|
+
|
|
1059
|
+
@_builtins.property
|
|
1060
|
+
@pulumi.getter
|
|
1061
|
+
def port(self) -> pulumi.Output[Optional[_builtins.int]]:
|
|
1062
|
+
"""
|
|
1063
|
+
WinRM port. Default is 5986 for HTTPS, 5985 for HTTP.
|
|
1064
|
+
"""
|
|
1065
|
+
return pulumi.get(self, "port")
|
|
1066
|
+
|
|
1067
|
+
@_builtins.property
|
|
1068
|
+
@pulumi.getter(name="projectId")
|
|
1069
|
+
def project_id(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1070
|
+
"""
|
|
1071
|
+
Unique identifier of the project.
|
|
1072
|
+
"""
|
|
1073
|
+
return pulumi.get(self, "project_id")
|
|
1074
|
+
|
|
1075
|
+
@_builtins.property
|
|
1076
|
+
@pulumi.getter
|
|
1077
|
+
def tags(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
1078
|
+
"""
|
|
1079
|
+
Tags to associate with the resource.
|
|
1080
|
+
"""
|
|
1081
|
+
return pulumi.get(self, "tags")
|
|
1082
|
+
|