pulumi-pulumiservice 0.28.0a1736807230__tar.gz → 0.29.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/PKG-INFO +1 -1
  2. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/__init__.py +2 -0
  3. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/_enums.py +44 -0
  4. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/_inputs.py +151 -0
  5. pulumi_pulumiservice-0.29.0/pulumi_pulumiservice/oidc_issuer.py +277 -0
  6. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/outputs.py +114 -0
  7. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/pulumi-plugin.json +1 -1
  8. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice.egg-info/PKG-INFO +1 -1
  9. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice.egg-info/SOURCES.txt +1 -0
  10. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pyproject.toml +1 -1
  11. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/README.md +0 -0
  12. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/_utilities.py +0 -0
  13. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/access_token.py +0 -0
  14. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/agent_pool.py +0 -0
  15. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/config/__init__.py +0 -0
  16. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/config/__init__.pyi +0 -0
  17. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/config/vars.py +0 -0
  18. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/deployment_schedule.py +0 -0
  19. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/deployment_settings.py +0 -0
  20. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/drift_schedule.py +0 -0
  21. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/environment.py +0 -0
  22. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/environment_version_tag.py +0 -0
  23. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/org_access_token.py +0 -0
  24. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/provider.py +0 -0
  25. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/py.typed +0 -0
  26. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/stack.py +0 -0
  27. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/stack_tag.py +0 -0
  28. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/team.py +0 -0
  29. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/team_access_token.py +0 -0
  30. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/team_environment_permission.py +0 -0
  31. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/team_stack_permission.py +0 -0
  32. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/template_source.py +0 -0
  33. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/ttl_schedule.py +0 -0
  34. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice/webhook.py +0 -0
  35. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice.egg-info/dependency_links.txt +0 -0
  36. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice.egg-info/requires.txt +0 -0
  37. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/pulumi_pulumiservice.egg-info/top_level.txt +0 -0
  38. {pulumi_pulumiservice-0.28.0a1736807230 → pulumi_pulumiservice-0.29.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pulumi_pulumiservice
3
- Version: 0.28.0a1736807230
3
+ Version: 0.29.0
4
4
  Summary: A native Pulumi package for creating and managing Pulumi Cloud constructs
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.com
@@ -13,6 +13,7 @@ from .deployment_settings import *
13
13
  from .drift_schedule import *
14
14
  from .environment import *
15
15
  from .environment_version_tag import *
16
+ from .oidc_issuer import *
16
17
  from .org_access_token import *
17
18
  from .provider import *
18
19
  from .stack import *
@@ -49,6 +50,7 @@ _utilities.register(
49
50
  "pulumiservice:index:DriftSchedule": "DriftSchedule",
50
51
  "pulumiservice:index:Environment": "Environment",
51
52
  "pulumiservice:index:EnvironmentVersionTag": "EnvironmentVersionTag",
53
+ "pulumiservice:index:OidcIssuer": "OidcIssuer",
52
54
  "pulumiservice:index:OrgAccessToken": "OrgAccessToken",
53
55
  "pulumiservice:index:Stack": "Stack",
54
56
  "pulumiservice:index:StackTag": "StackTag",
@@ -5,6 +5,9 @@
5
5
  from enum import Enum
6
6
 
7
7
  __all__ = [
8
+ 'AuthPolicyDecision',
9
+ 'AuthPolicyPermissionLevel',
10
+ 'AuthPolicyTokenType',
8
11
  'EnvironmentPermission',
9
12
  'PulumiOperation',
10
13
  'TeamStackPermissionScope',
@@ -14,6 +17,47 @@ __all__ = [
14
17
  ]
15
18
 
16
19
 
20
+ class AuthPolicyDecision(str, Enum):
21
+ DENY = "deny"
22
+ """
23
+ A deny rule for Oidc Issuer Policy.
24
+ """
25
+ ALLOW = "allow"
26
+ """
27
+ An allow rule for Oidc Issuer Policy.
28
+ """
29
+
30
+
31
+ class AuthPolicyPermissionLevel(str, Enum):
32
+ STANDARD = "standard"
33
+ """
34
+ Standard level of permissions.
35
+ """
36
+ ADMIN = "admin"
37
+ """
38
+ Admin level of permissions.
39
+ """
40
+
41
+
42
+ class AuthPolicyTokenType(str, Enum):
43
+ PERSONAL = "personal"
44
+ """
45
+ Personal Pulumi token. Requires userLogin field to be filled.
46
+ """
47
+ TEAM = "team"
48
+ """
49
+ Team Pulumi token. Requires teamName field to be filled.
50
+ """
51
+ ORGANIZATION = "organization"
52
+ """
53
+ Organization Pulumi token. Requires authorizedPermissions field to be filled.
54
+ """
55
+ RUNNER = "runner"
56
+ """
57
+ Deployment Runner Pulumi token. Requires runnerID field to be filled.
58
+ """
59
+
60
+
17
61
  class EnvironmentPermission(str, Enum):
18
62
  NONE = "none"
19
63
  """
@@ -18,6 +18,8 @@ from ._enums import *
18
18
  __all__ = [
19
19
  'AWSOIDCConfigurationArgs',
20
20
  'AWSOIDCConfigurationArgsDict',
21
+ 'AuthPolicyDefinitionArgs',
22
+ 'AuthPolicyDefinitionArgsDict',
21
23
  'AzureOIDCConfigurationArgs',
22
24
  'AzureOIDCConfigurationArgsDict',
23
25
  'DeploymentSettingsCacheOptionsArgs',
@@ -140,6 +142,155 @@ class AWSOIDCConfigurationArgs:
140
142
  pulumi.set(self, "policy_arns", value)
141
143
 
142
144
 
145
+ if not MYPY:
146
+ class AuthPolicyDefinitionArgsDict(TypedDict):
147
+ decision: pulumi.Input['AuthPolicyDecision']
148
+ """
149
+ The rule type of this policy definition
150
+ """
151
+ rules: pulumi.Input[Mapping[str, pulumi.Input[str]]]
152
+ """
153
+ OIDC rules to set for this policy.
154
+ """
155
+ token_type: pulumi.Input['AuthPolicyTokenType']
156
+ """
157
+ The token type for this policy definition
158
+ """
159
+ authorized_permissions: NotRequired[pulumi.Input[Sequence[pulumi.Input['AuthPolicyPermissionLevel']]]]
160
+ """
161
+ The permission level for organization tokens.
162
+ """
163
+ runner_id: NotRequired[pulumi.Input[str]]
164
+ """
165
+ The runner ID for deployment runner tokens.
166
+ """
167
+ team_name: NotRequired[pulumi.Input[str]]
168
+ """
169
+ The team name for team tokens.
170
+ """
171
+ user_login: NotRequired[pulumi.Input[str]]
172
+ """
173
+ The user login for personal tokens.
174
+ """
175
+ elif False:
176
+ AuthPolicyDefinitionArgsDict: TypeAlias = Mapping[str, Any]
177
+
178
+ @pulumi.input_type
179
+ class AuthPolicyDefinitionArgs:
180
+ def __init__(__self__, *,
181
+ decision: pulumi.Input['AuthPolicyDecision'],
182
+ rules: pulumi.Input[Mapping[str, pulumi.Input[str]]],
183
+ token_type: pulumi.Input['AuthPolicyTokenType'],
184
+ authorized_permissions: Optional[pulumi.Input[Sequence[pulumi.Input['AuthPolicyPermissionLevel']]]] = None,
185
+ runner_id: Optional[pulumi.Input[str]] = None,
186
+ team_name: Optional[pulumi.Input[str]] = None,
187
+ user_login: Optional[pulumi.Input[str]] = None):
188
+ """
189
+ :param pulumi.Input['AuthPolicyDecision'] decision: The rule type of this policy definition
190
+ :param pulumi.Input[Mapping[str, pulumi.Input[str]]] rules: OIDC rules to set for this policy.
191
+ :param pulumi.Input['AuthPolicyTokenType'] token_type: The token type for this policy definition
192
+ :param pulumi.Input[Sequence[pulumi.Input['AuthPolicyPermissionLevel']]] authorized_permissions: The permission level for organization tokens.
193
+ :param pulumi.Input[str] runner_id: The runner ID for deployment runner tokens.
194
+ :param pulumi.Input[str] team_name: The team name for team tokens.
195
+ :param pulumi.Input[str] user_login: The user login for personal tokens.
196
+ """
197
+ pulumi.set(__self__, "decision", decision)
198
+ pulumi.set(__self__, "rules", rules)
199
+ pulumi.set(__self__, "token_type", token_type)
200
+ if authorized_permissions is not None:
201
+ pulumi.set(__self__, "authorized_permissions", authorized_permissions)
202
+ if runner_id is not None:
203
+ pulumi.set(__self__, "runner_id", runner_id)
204
+ if team_name is not None:
205
+ pulumi.set(__self__, "team_name", team_name)
206
+ if user_login is not None:
207
+ pulumi.set(__self__, "user_login", user_login)
208
+
209
+ @property
210
+ @pulumi.getter
211
+ def decision(self) -> pulumi.Input['AuthPolicyDecision']:
212
+ """
213
+ The rule type of this policy definition
214
+ """
215
+ return pulumi.get(self, "decision")
216
+
217
+ @decision.setter
218
+ def decision(self, value: pulumi.Input['AuthPolicyDecision']):
219
+ pulumi.set(self, "decision", value)
220
+
221
+ @property
222
+ @pulumi.getter
223
+ def rules(self) -> pulumi.Input[Mapping[str, pulumi.Input[str]]]:
224
+ """
225
+ OIDC rules to set for this policy.
226
+ """
227
+ return pulumi.get(self, "rules")
228
+
229
+ @rules.setter
230
+ def rules(self, value: pulumi.Input[Mapping[str, pulumi.Input[str]]]):
231
+ pulumi.set(self, "rules", value)
232
+
233
+ @property
234
+ @pulumi.getter(name="tokenType")
235
+ def token_type(self) -> pulumi.Input['AuthPolicyTokenType']:
236
+ """
237
+ The token type for this policy definition
238
+ """
239
+ return pulumi.get(self, "token_type")
240
+
241
+ @token_type.setter
242
+ def token_type(self, value: pulumi.Input['AuthPolicyTokenType']):
243
+ pulumi.set(self, "token_type", value)
244
+
245
+ @property
246
+ @pulumi.getter(name="authorizedPermissions")
247
+ def authorized_permissions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthPolicyPermissionLevel']]]]:
248
+ """
249
+ The permission level for organization tokens.
250
+ """
251
+ return pulumi.get(self, "authorized_permissions")
252
+
253
+ @authorized_permissions.setter
254
+ def authorized_permissions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthPolicyPermissionLevel']]]]):
255
+ pulumi.set(self, "authorized_permissions", value)
256
+
257
+ @property
258
+ @pulumi.getter(name="runnerID")
259
+ def runner_id(self) -> Optional[pulumi.Input[str]]:
260
+ """
261
+ The runner ID for deployment runner tokens.
262
+ """
263
+ return pulumi.get(self, "runner_id")
264
+
265
+ @runner_id.setter
266
+ def runner_id(self, value: Optional[pulumi.Input[str]]):
267
+ pulumi.set(self, "runner_id", value)
268
+
269
+ @property
270
+ @pulumi.getter(name="teamName")
271
+ def team_name(self) -> Optional[pulumi.Input[str]]:
272
+ """
273
+ The team name for team tokens.
274
+ """
275
+ return pulumi.get(self, "team_name")
276
+
277
+ @team_name.setter
278
+ def team_name(self, value: Optional[pulumi.Input[str]]):
279
+ pulumi.set(self, "team_name", value)
280
+
281
+ @property
282
+ @pulumi.getter(name="userLogin")
283
+ def user_login(self) -> Optional[pulumi.Input[str]]:
284
+ """
285
+ The user login for personal tokens.
286
+ """
287
+ return pulumi.get(self, "user_login")
288
+
289
+ @user_login.setter
290
+ def user_login(self, value: Optional[pulumi.Input[str]]):
291
+ pulumi.set(self, "user_login", value)
292
+
293
+
143
294
  if not MYPY:
144
295
  class AzureOIDCConfigurationArgsDict(TypedDict):
145
296
  client_id: pulumi.Input[str]
@@ -0,0 +1,277 @@
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 copy
6
+ import warnings
7
+ import sys
8
+ import pulumi
9
+ import pulumi.runtime
10
+ from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
15
+ from . import _utilities
16
+ from . import outputs
17
+ from ._enums import *
18
+ from ._inputs import *
19
+
20
+ __all__ = ['OidcIssuerArgs', 'OidcIssuer']
21
+
22
+ @pulumi.input_type
23
+ class OidcIssuerArgs:
24
+ def __init__(__self__, *,
25
+ name: pulumi.Input[str],
26
+ organization: pulumi.Input[str],
27
+ url: pulumi.Input[str],
28
+ max_expiration_seconds: Optional[pulumi.Input[int]] = None,
29
+ policies: Optional[pulumi.Input[Sequence[pulumi.Input['AuthPolicyDefinitionArgs']]]] = None,
30
+ thumbprints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None):
31
+ """
32
+ The set of arguments for constructing a OidcIssuer resource.
33
+ :param pulumi.Input[str] name: Issuer name.
34
+ :param pulumi.Input[str] organization: Organization name.
35
+ :param pulumi.Input[str] url: The OIDC issuer URL.
36
+ :param pulumi.Input[int] max_expiration_seconds: The maximum duration of the Pulumi access token working after an exchange, specified in seconds.
37
+ :param pulumi.Input[Sequence[pulumi.Input['AuthPolicyDefinitionArgs']]] policies: The auth policies for this Oidc Issuer.
38
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] thumbprints: The thumbprints of issuer's TLS certificates. By default, Pulumi will store the thumbprint of the certificate used to serve the OpenID configuration. If the provider uses multiple certificates to serve content, it is required to manually configure these.
39
+ """
40
+ pulumi.set(__self__, "name", name)
41
+ pulumi.set(__self__, "organization", organization)
42
+ pulumi.set(__self__, "url", url)
43
+ if max_expiration_seconds is not None:
44
+ pulumi.set(__self__, "max_expiration_seconds", max_expiration_seconds)
45
+ if policies is not None:
46
+ pulumi.set(__self__, "policies", policies)
47
+ if thumbprints is not None:
48
+ pulumi.set(__self__, "thumbprints", thumbprints)
49
+
50
+ @property
51
+ @pulumi.getter
52
+ def name(self) -> pulumi.Input[str]:
53
+ """
54
+ Issuer name.
55
+ """
56
+ return pulumi.get(self, "name")
57
+
58
+ @name.setter
59
+ def name(self, value: pulumi.Input[str]):
60
+ pulumi.set(self, "name", value)
61
+
62
+ @property
63
+ @pulumi.getter
64
+ def organization(self) -> pulumi.Input[str]:
65
+ """
66
+ Organization name.
67
+ """
68
+ return pulumi.get(self, "organization")
69
+
70
+ @organization.setter
71
+ def organization(self, value: pulumi.Input[str]):
72
+ pulumi.set(self, "organization", value)
73
+
74
+ @property
75
+ @pulumi.getter
76
+ def url(self) -> pulumi.Input[str]:
77
+ """
78
+ The OIDC issuer URL.
79
+ """
80
+ return pulumi.get(self, "url")
81
+
82
+ @url.setter
83
+ def url(self, value: pulumi.Input[str]):
84
+ pulumi.set(self, "url", value)
85
+
86
+ @property
87
+ @pulumi.getter(name="maxExpirationSeconds")
88
+ def max_expiration_seconds(self) -> Optional[pulumi.Input[int]]:
89
+ """
90
+ The maximum duration of the Pulumi access token working after an exchange, specified in seconds.
91
+ """
92
+ return pulumi.get(self, "max_expiration_seconds")
93
+
94
+ @max_expiration_seconds.setter
95
+ def max_expiration_seconds(self, value: Optional[pulumi.Input[int]]):
96
+ pulumi.set(self, "max_expiration_seconds", value)
97
+
98
+ @property
99
+ @pulumi.getter
100
+ def policies(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['AuthPolicyDefinitionArgs']]]]:
101
+ """
102
+ The auth policies for this Oidc Issuer.
103
+ """
104
+ return pulumi.get(self, "policies")
105
+
106
+ @policies.setter
107
+ def policies(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['AuthPolicyDefinitionArgs']]]]):
108
+ pulumi.set(self, "policies", value)
109
+
110
+ @property
111
+ @pulumi.getter
112
+ def thumbprints(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
113
+ """
114
+ The thumbprints of issuer's TLS certificates. By default, Pulumi will store the thumbprint of the certificate used to serve the OpenID configuration. If the provider uses multiple certificates to serve content, it is required to manually configure these.
115
+ """
116
+ return pulumi.get(self, "thumbprints")
117
+
118
+ @thumbprints.setter
119
+ def thumbprints(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
120
+ pulumi.set(self, "thumbprints", value)
121
+
122
+
123
+ class OidcIssuer(pulumi.CustomResource):
124
+ @overload
125
+ def __init__(__self__,
126
+ resource_name: str,
127
+ opts: Optional[pulumi.ResourceOptions] = None,
128
+ max_expiration_seconds: Optional[pulumi.Input[int]] = None,
129
+ name: Optional[pulumi.Input[str]] = None,
130
+ organization: Optional[pulumi.Input[str]] = None,
131
+ policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AuthPolicyDefinitionArgs', 'AuthPolicyDefinitionArgsDict']]]]] = None,
132
+ thumbprints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
133
+ url: Optional[pulumi.Input[str]] = None,
134
+ __props__=None):
135
+ """
136
+ An OIDC issuer registration with Pulumi.
137
+
138
+ :param str resource_name: The name of the resource.
139
+ :param pulumi.ResourceOptions opts: Options for the resource.
140
+ :param pulumi.Input[int] max_expiration_seconds: The maximum duration of the Pulumi access token working after an exchange, specified in seconds.
141
+ :param pulumi.Input[str] name: Issuer name.
142
+ :param pulumi.Input[str] organization: Organization name.
143
+ :param pulumi.Input[Sequence[pulumi.Input[Union['AuthPolicyDefinitionArgs', 'AuthPolicyDefinitionArgsDict']]]] policies: The auth policies for this Oidc Issuer.
144
+ :param pulumi.Input[Sequence[pulumi.Input[str]]] thumbprints: The thumbprints of issuer's TLS certificates. By default, Pulumi will store the thumbprint of the certificate used to serve the OpenID configuration. If the provider uses multiple certificates to serve content, it is required to manually configure these.
145
+ :param pulumi.Input[str] url: The OIDC issuer URL.
146
+ """
147
+ ...
148
+ @overload
149
+ def __init__(__self__,
150
+ resource_name: str,
151
+ args: OidcIssuerArgs,
152
+ opts: Optional[pulumi.ResourceOptions] = None):
153
+ """
154
+ An OIDC issuer registration with Pulumi.
155
+
156
+ :param str resource_name: The name of the resource.
157
+ :param OidcIssuerArgs args: The arguments to use to populate this resource's properties.
158
+ :param pulumi.ResourceOptions opts: Options for the resource.
159
+ """
160
+ ...
161
+ def __init__(__self__, resource_name: str, *args, **kwargs):
162
+ resource_args, opts = _utilities.get_resource_args_opts(OidcIssuerArgs, pulumi.ResourceOptions, *args, **kwargs)
163
+ if resource_args is not None:
164
+ __self__._internal_init(resource_name, opts, **resource_args.__dict__)
165
+ else:
166
+ __self__._internal_init(resource_name, *args, **kwargs)
167
+
168
+ def _internal_init(__self__,
169
+ resource_name: str,
170
+ opts: Optional[pulumi.ResourceOptions] = None,
171
+ max_expiration_seconds: Optional[pulumi.Input[int]] = None,
172
+ name: Optional[pulumi.Input[str]] = None,
173
+ organization: Optional[pulumi.Input[str]] = None,
174
+ policies: Optional[pulumi.Input[Sequence[pulumi.Input[Union['AuthPolicyDefinitionArgs', 'AuthPolicyDefinitionArgsDict']]]]] = None,
175
+ thumbprints: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
176
+ url: Optional[pulumi.Input[str]] = None,
177
+ __props__=None):
178
+ opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
179
+ if not isinstance(opts, pulumi.ResourceOptions):
180
+ raise TypeError('Expected resource options to be a ResourceOptions instance')
181
+ if opts.id is None:
182
+ if __props__ is not None:
183
+ raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
184
+ __props__ = OidcIssuerArgs.__new__(OidcIssuerArgs)
185
+
186
+ __props__.__dict__["max_expiration_seconds"] = max_expiration_seconds
187
+ if name is None and not opts.urn:
188
+ raise TypeError("Missing required property 'name'")
189
+ __props__.__dict__["name"] = name
190
+ if organization is None and not opts.urn:
191
+ raise TypeError("Missing required property 'organization'")
192
+ __props__.__dict__["organization"] = organization
193
+ __props__.__dict__["policies"] = policies
194
+ __props__.__dict__["thumbprints"] = thumbprints
195
+ if url is None and not opts.urn:
196
+ raise TypeError("Missing required property 'url'")
197
+ __props__.__dict__["url"] = url
198
+ replace_on_changes = pulumi.ResourceOptions(replace_on_changes=["organization", "url"])
199
+ opts = pulumi.ResourceOptions.merge(opts, replace_on_changes)
200
+ super(OidcIssuer, __self__).__init__(
201
+ 'pulumiservice:index:OidcIssuer',
202
+ resource_name,
203
+ __props__,
204
+ opts)
205
+
206
+ @staticmethod
207
+ def get(resource_name: str,
208
+ id: pulumi.Input[str],
209
+ opts: Optional[pulumi.ResourceOptions] = None) -> 'OidcIssuer':
210
+ """
211
+ Get an existing OidcIssuer resource's state with the given name, id, and optional extra
212
+ properties used to qualify the lookup.
213
+
214
+ :param str resource_name: The unique name of the resulting resource.
215
+ :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
216
+ :param pulumi.ResourceOptions opts: Options for the resource.
217
+ """
218
+ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
219
+
220
+ __props__ = OidcIssuerArgs.__new__(OidcIssuerArgs)
221
+
222
+ __props__.__dict__["max_expiration_seconds"] = None
223
+ __props__.__dict__["name"] = None
224
+ __props__.__dict__["organization"] = None
225
+ __props__.__dict__["policies"] = None
226
+ __props__.__dict__["thumbprints"] = None
227
+ __props__.__dict__["url"] = None
228
+ return OidcIssuer(resource_name, opts=opts, __props__=__props__)
229
+
230
+ @property
231
+ @pulumi.getter(name="maxExpirationSeconds")
232
+ def max_expiration_seconds(self) -> pulumi.Output[Optional[int]]:
233
+ """
234
+ The maximum duration of the Pulumi access token working after an exchange, specified in seconds.
235
+ """
236
+ return pulumi.get(self, "max_expiration_seconds")
237
+
238
+ @property
239
+ @pulumi.getter
240
+ def name(self) -> pulumi.Output[str]:
241
+ """
242
+ Issuer name.
243
+ """
244
+ return pulumi.get(self, "name")
245
+
246
+ @property
247
+ @pulumi.getter
248
+ def organization(self) -> pulumi.Output[str]:
249
+ """
250
+ Organization name.
251
+ """
252
+ return pulumi.get(self, "organization")
253
+
254
+ @property
255
+ @pulumi.getter
256
+ def policies(self) -> pulumi.Output[Sequence['outputs.AuthPolicyDefinition']]:
257
+ """
258
+ The authorization policies for this Oidc Issuer.
259
+ """
260
+ return pulumi.get(self, "policies")
261
+
262
+ @property
263
+ @pulumi.getter
264
+ def thumbprints(self) -> pulumi.Output[Sequence[str]]:
265
+ """
266
+ The thumbprints of issuer's TLS certificates. By default, Pulumi will store the thumbprint of the certificate used to serve the OpenID configuration. If the provider uses multiple certificates to serve content, it is required to manually configure these.
267
+ """
268
+ return pulumi.get(self, "thumbprints")
269
+
270
+ @property
271
+ @pulumi.getter
272
+ def url(self) -> pulumi.Output[str]:
273
+ """
274
+ The OIDC issuer URL.
275
+ """
276
+ return pulumi.get(self, "url")
277
+
@@ -18,6 +18,7 @@ from ._enums import *
18
18
 
19
19
  __all__ = [
20
20
  'AWSOIDCConfiguration',
21
+ 'AuthPolicyDefinition',
21
22
  'AzureOIDCConfiguration',
22
23
  'DeploymentSettingsCacheOptions',
23
24
  'DeploymentSettingsExecutorContext',
@@ -108,6 +109,119 @@ class AWSOIDCConfiguration(dict):
108
109
  return pulumi.get(self, "policy_arns")
109
110
 
110
111
 
112
+ @pulumi.output_type
113
+ class AuthPolicyDefinition(dict):
114
+ @staticmethod
115
+ def __key_warning(key: str):
116
+ suggest = None
117
+ if key == "tokenType":
118
+ suggest = "token_type"
119
+ elif key == "authorizedPermissions":
120
+ suggest = "authorized_permissions"
121
+ elif key == "runnerID":
122
+ suggest = "runner_id"
123
+ elif key == "teamName":
124
+ suggest = "team_name"
125
+ elif key == "userLogin":
126
+ suggest = "user_login"
127
+
128
+ if suggest:
129
+ pulumi.log.warn(f"Key '{key}' not found in AuthPolicyDefinition. Access the value via the '{suggest}' property getter instead.")
130
+
131
+ def __getitem__(self, key: str) -> Any:
132
+ AuthPolicyDefinition.__key_warning(key)
133
+ return super().__getitem__(key)
134
+
135
+ def get(self, key: str, default = None) -> Any:
136
+ AuthPolicyDefinition.__key_warning(key)
137
+ return super().get(key, default)
138
+
139
+ def __init__(__self__, *,
140
+ decision: 'AuthPolicyDecision',
141
+ rules: Mapping[str, str],
142
+ token_type: 'AuthPolicyTokenType',
143
+ authorized_permissions: Optional[Sequence['AuthPolicyPermissionLevel']] = None,
144
+ runner_id: Optional[str] = None,
145
+ team_name: Optional[str] = None,
146
+ user_login: Optional[str] = None):
147
+ """
148
+ :param 'AuthPolicyDecision' decision: The rule type of this policy definition
149
+ :param Mapping[str, str] rules: OIDC rules to set for this policy.
150
+ :param 'AuthPolicyTokenType' token_type: The token type for this policy definition
151
+ :param Sequence['AuthPolicyPermissionLevel'] authorized_permissions: The permission level for organization tokens.
152
+ :param str runner_id: The runner ID for deployment runner tokens.
153
+ :param str team_name: The team name for team tokens.
154
+ :param str user_login: The user login for personal tokens.
155
+ """
156
+ pulumi.set(__self__, "decision", decision)
157
+ pulumi.set(__self__, "rules", rules)
158
+ pulumi.set(__self__, "token_type", token_type)
159
+ if authorized_permissions is not None:
160
+ pulumi.set(__self__, "authorized_permissions", authorized_permissions)
161
+ if runner_id is not None:
162
+ pulumi.set(__self__, "runner_id", runner_id)
163
+ if team_name is not None:
164
+ pulumi.set(__self__, "team_name", team_name)
165
+ if user_login is not None:
166
+ pulumi.set(__self__, "user_login", user_login)
167
+
168
+ @property
169
+ @pulumi.getter
170
+ def decision(self) -> 'AuthPolicyDecision':
171
+ """
172
+ The rule type of this policy definition
173
+ """
174
+ return pulumi.get(self, "decision")
175
+
176
+ @property
177
+ @pulumi.getter
178
+ def rules(self) -> Mapping[str, str]:
179
+ """
180
+ OIDC rules to set for this policy.
181
+ """
182
+ return pulumi.get(self, "rules")
183
+
184
+ @property
185
+ @pulumi.getter(name="tokenType")
186
+ def token_type(self) -> 'AuthPolicyTokenType':
187
+ """
188
+ The token type for this policy definition
189
+ """
190
+ return pulumi.get(self, "token_type")
191
+
192
+ @property
193
+ @pulumi.getter(name="authorizedPermissions")
194
+ def authorized_permissions(self) -> Optional[Sequence['AuthPolicyPermissionLevel']]:
195
+ """
196
+ The permission level for organization tokens.
197
+ """
198
+ return pulumi.get(self, "authorized_permissions")
199
+
200
+ @property
201
+ @pulumi.getter(name="runnerID")
202
+ def runner_id(self) -> Optional[str]:
203
+ """
204
+ The runner ID for deployment runner tokens.
205
+ """
206
+ return pulumi.get(self, "runner_id")
207
+
208
+ @property
209
+ @pulumi.getter(name="teamName")
210
+ def team_name(self) -> Optional[str]:
211
+ """
212
+ The team name for team tokens.
213
+ """
214
+ return pulumi.get(self, "team_name")
215
+
216
+ @property
217
+ @pulumi.getter(name="userLogin")
218
+ def user_login(self) -> Optional[str]:
219
+ """
220
+ The user login for personal tokens.
221
+ """
222
+ return pulumi.get(self, "user_login")
223
+
224
+
111
225
  @pulumi.output_type
112
226
  class AzureOIDCConfiguration(dict):
113
227
  @staticmethod
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "resource": true,
3
3
  "name": "pulumiservice",
4
- "version": "0.28.0-alpha.1736807230"
4
+ "version": "0.29.0"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pulumi_pulumiservice
3
- Version: 0.28.0a1736807230
3
+ Version: 0.29.0
4
4
  Summary: A native Pulumi package for creating and managing Pulumi Cloud constructs
5
5
  License: Apache-2.0
6
6
  Project-URL: Homepage, https://pulumi.com
@@ -11,6 +11,7 @@ pulumi_pulumiservice/deployment_settings.py
11
11
  pulumi_pulumiservice/drift_schedule.py
12
12
  pulumi_pulumiservice/environment.py
13
13
  pulumi_pulumiservice/environment_version_tag.py
14
+ pulumi_pulumiservice/oidc_issuer.py
14
15
  pulumi_pulumiservice/org_access_token.py
15
16
  pulumi_pulumiservice/outputs.py
16
17
  pulumi_pulumiservice/provider.py
@@ -5,7 +5,7 @@
5
5
  keywords = ["pulumi", "kind/native", "category/infrastructure"]
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.8"
8
- version = "0.28.0a1736807230"
8
+ version = "0.29.0"
9
9
  [project.license]
10
10
  text = "Apache-2.0"
11
11
  [project.urls]