@pulumiverse/vercel 1.14.2 → 1.15.0

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 (141) hide show
  1. package/accessGroup.d.ts +63 -0
  2. package/accessGroup.js +51 -0
  3. package/accessGroup.js.map +1 -0
  4. package/accessGroupProject.d.ts +87 -0
  5. package/accessGroupProject.js +64 -0
  6. package/accessGroupProject.js.map +1 -0
  7. package/alias.d.ts +6 -8
  8. package/alias.js +0 -5
  9. package/alias.js.map +1 -1
  10. package/attackChallengeMode.d.ts +9 -36
  11. package/attackChallengeMode.js +0 -30
  12. package/attackChallengeMode.js.map +1 -1
  13. package/customEnvironment.d.ts +101 -0
  14. package/customEnvironment.js +60 -0
  15. package/customEnvironment.js.map +1 -0
  16. package/deployment.d.ts +34 -17
  17. package/deployment.js.map +1 -1
  18. package/dnsRecord.d.ts +30 -127
  19. package/dnsRecord.js +0 -97
  20. package/dnsRecord.js.map +1 -1
  21. package/edgeConfig.d.ts +6 -54
  22. package/edgeConfig.js +0 -51
  23. package/edgeConfig.js.map +1 -1
  24. package/edgeConfigItem.d.ts +87 -0
  25. package/edgeConfigItem.js +64 -0
  26. package/edgeConfigItem.js.map +1 -0
  27. package/edgeConfigSchema.d.ts +6 -28
  28. package/edgeConfigSchema.js +0 -25
  29. package/edgeConfigSchema.js.map +1 -1
  30. package/edgeConfigToken.d.ts +10 -62
  31. package/edgeConfigToken.js +0 -57
  32. package/edgeConfigToken.js.map +1 -1
  33. package/firewallConfig.d.ts +110 -0
  34. package/firewallConfig.js +62 -0
  35. package/firewallConfig.js.map +1 -0
  36. package/getAccessGroup.d.ts +25 -0
  37. package/getAccessGroup.js +24 -0
  38. package/getAccessGroup.js.map +1 -0
  39. package/getAccessGroupProject.d.ts +32 -0
  40. package/getAccessGroupProject.js +26 -0
  41. package/getAccessGroupProject.js.map +1 -0
  42. package/getAlias.d.ts +0 -34
  43. package/getAlias.js +0 -10
  44. package/getAlias.js.map +1 -1
  45. package/getAttackChallengeMode.d.ts +0 -56
  46. package/getAttackChallengeMode.js +0 -32
  47. package/getAttackChallengeMode.js.map +1 -1
  48. package/getCustomEnvironment.d.ts +31 -0
  49. package/getCustomEnvironment.js +26 -0
  50. package/getCustomEnvironment.js.map +1 -0
  51. package/getDeployment.d.ts +0 -65
  52. package/getDeployment.js +0 -32
  53. package/getDeployment.js.map +1 -1
  54. package/getEdgeConfig.d.ts +0 -53
  55. package/getEdgeConfig.js +0 -32
  56. package/getEdgeConfig.js.map +1 -1
  57. package/getEdgeConfigItem.d.ts +28 -0
  58. package/getEdgeConfigItem.js +26 -0
  59. package/getEdgeConfigItem.js.map +1 -0
  60. package/getEdgeConfigSchema.d.ts +0 -49
  61. package/getEdgeConfigSchema.js +0 -28
  62. package/getEdgeConfigSchema.js.map +1 -1
  63. package/getEdgeConfigToken.d.ts +0 -74
  64. package/getEdgeConfigToken.js +0 -38
  65. package/getEdgeConfigToken.js.map +1 -1
  66. package/getEndpointVerification.d.ts +0 -39
  67. package/getEndpointVerification.js +0 -24
  68. package/getEndpointVerification.js.map +1 -1
  69. package/getFile.d.ts +0 -54
  70. package/getFile.js +0 -48
  71. package/getFile.js.map +1 -1
  72. package/getLogDrain.d.ts +0 -81
  73. package/getLogDrain.js +0 -36
  74. package/getLogDrain.js.map +1 -1
  75. package/getPrebuiltProject.d.ts +0 -6
  76. package/getPrebuiltProject.js.map +1 -1
  77. package/getProject.d.ts +1 -146
  78. package/getProject.js +0 -38
  79. package/getProject.js.map +1 -1
  80. package/getProjectDeploymentRetention.d.ts +0 -47
  81. package/getProjectDeploymentRetention.js +0 -14
  82. package/getProjectDeploymentRetention.js.map +1 -1
  83. package/getProjectDirectory.d.ts +0 -6
  84. package/getProjectDirectory.js.map +1 -1
  85. package/getProjectMembers.d.ts +30 -0
  86. package/getProjectMembers.js +24 -0
  87. package/getProjectMembers.js.map +1 -0
  88. package/getSharedEnvironmentVariable.d.ts +1 -95
  89. package/getSharedEnvironmentVariable.js +0 -50
  90. package/getSharedEnvironmentVariable.js.map +1 -1
  91. package/getTeamConfig.d.ts +35 -0
  92. package/getTeamConfig.js +22 -0
  93. package/getTeamConfig.js.map +1 -0
  94. package/getTeamMember.d.ts +29 -0
  95. package/getTeamMember.js +24 -0
  96. package/getTeamMember.js.map +1 -0
  97. package/index.d.ts +48 -6
  98. package/index.js +68 -9
  99. package/index.js.map +1 -1
  100. package/logDrain.d.ts +42 -74
  101. package/logDrain.js +0 -56
  102. package/logDrain.js.map +1 -1
  103. package/package.json +1 -1
  104. package/project.d.ts +111 -89
  105. package/project.js +3 -46
  106. package/project.js.map +1 -1
  107. package/projectDeploymentRetention.d.ts +0 -51
  108. package/projectDeploymentRetention.js +0 -51
  109. package/projectDeploymentRetention.js.map +1 -1
  110. package/projectDomain.d.ts +21 -55
  111. package/projectDomain.js +2 -52
  112. package/projectDomain.js.map +1 -1
  113. package/projectEnvironmentVariable.d.ts +40 -86
  114. package/projectEnvironmentVariable.js +4 -82
  115. package/projectEnvironmentVariable.js.map +1 -1
  116. package/projectEnvironmentVariables.d.ts +74 -0
  117. package/projectEnvironmentVariables.js +59 -0
  118. package/projectEnvironmentVariables.js.map +1 -0
  119. package/projectMembers.d.ts +77 -0
  120. package/projectMembers.js +59 -0
  121. package/projectMembers.js.map +1 -0
  122. package/sharedEnvironmentVariable.d.ts +24 -49
  123. package/sharedEnvironmentVariable.js +2 -43
  124. package/sharedEnvironmentVariable.js.map +1 -1
  125. package/teamConfig.d.ts +211 -0
  126. package/teamConfig.js +75 -0
  127. package/teamConfig.js.map +1 -0
  128. package/teamMember.d.ts +107 -0
  129. package/teamMember.js +66 -0
  130. package/teamMember.js.map +1 -0
  131. package/types/input.d.ts +301 -2
  132. package/types/output.d.ts +372 -1
  133. package/webhook.d.ts +18 -43
  134. package/webhook.js +0 -35
  135. package/webhook.js.map +1 -1
  136. package/getProjectFunctionCpu.d.ts +0 -92
  137. package/getProjectFunctionCpu.js +0 -66
  138. package/getProjectFunctionCpu.js.map +0 -1
  139. package/projectFunctionCpu.d.ts +0 -106
  140. package/projectFunctionCpu.js +0 -93
  141. package/projectFunctionCpu.js.map +0 -1
@@ -0,0 +1,107 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as inputs from "./types/input";
3
+ import * as outputs from "./types/output";
4
+ export declare class TeamMember extends pulumi.CustomResource {
5
+ /**
6
+ * Get an existing TeamMember resource's state with the given name, ID, and optional extra
7
+ * properties used to qualify the lookup.
8
+ *
9
+ * @param name The _unique_ name of the resulting resource.
10
+ * @param id The _unique_ provider ID of the resource to lookup.
11
+ * @param state Any extra arguments used during the lookup.
12
+ * @param opts Optional settings to control the behavior of the CustomResource.
13
+ */
14
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TeamMemberState, opts?: pulumi.CustomResourceOptions): TeamMember;
15
+ /**
16
+ * Returns true if the given object is an instance of TeamMember. This is designed to work even
17
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
18
+ */
19
+ static isInstance(obj: any): obj is TeamMember;
20
+ /**
21
+ * If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
22
+ * specified. A set of access groups IDs that the user should be granted access to.
23
+ */
24
+ readonly accessGroups: pulumi.Output<string[]>;
25
+ /**
26
+ * If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
27
+ * specified. A set of projects that the user should be granted access to, along with their role in each project.
28
+ */
29
+ readonly projects: pulumi.Output<outputs.TeamMemberProject[]>;
30
+ /**
31
+ * The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
32
+ * 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
33
+ */
34
+ readonly role: pulumi.Output<string>;
35
+ /**
36
+ * The ID of the existing Vercel Team.
37
+ */
38
+ readonly teamId: pulumi.Output<string>;
39
+ /**
40
+ * The ID of the user to add to the team.
41
+ */
42
+ readonly userId: pulumi.Output<string>;
43
+ /**
44
+ * Create a TeamMember resource with the given unique name, arguments, and options.
45
+ *
46
+ * @param name The _unique_ name of the resource.
47
+ * @param args The arguments to use to populate this resource's properties.
48
+ * @param opts A bag of options that control this resource's behavior.
49
+ */
50
+ constructor(name: string, args: TeamMemberArgs, opts?: pulumi.CustomResourceOptions);
51
+ }
52
+ /**
53
+ * Input properties used for looking up and filtering TeamMember resources.
54
+ */
55
+ export interface TeamMemberState {
56
+ /**
57
+ * If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
58
+ * specified. A set of access groups IDs that the user should be granted access to.
59
+ */
60
+ accessGroups?: pulumi.Input<pulumi.Input<string>[]>;
61
+ /**
62
+ * If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
63
+ * specified. A set of projects that the user should be granted access to, along with their role in each project.
64
+ */
65
+ projects?: pulumi.Input<pulumi.Input<inputs.TeamMemberProject>[]>;
66
+ /**
67
+ * The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
68
+ * 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
69
+ */
70
+ role?: pulumi.Input<string>;
71
+ /**
72
+ * The ID of the existing Vercel Team.
73
+ */
74
+ teamId?: pulumi.Input<string>;
75
+ /**
76
+ * The ID of the user to add to the team.
77
+ */
78
+ userId?: pulumi.Input<string>;
79
+ }
80
+ /**
81
+ * The set of arguments for constructing a TeamMember resource.
82
+ */
83
+ export interface TeamMemberArgs {
84
+ /**
85
+ * If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
86
+ * specified. A set of access groups IDs that the user should be granted access to.
87
+ */
88
+ accessGroups?: pulumi.Input<pulumi.Input<string>[]>;
89
+ /**
90
+ * If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
91
+ * specified. A set of projects that the user should be granted access to, along with their role in each project.
92
+ */
93
+ projects?: pulumi.Input<pulumi.Input<inputs.TeamMemberProject>[]>;
94
+ /**
95
+ * The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
96
+ * 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
97
+ */
98
+ role: pulumi.Input<string>;
99
+ /**
100
+ * The ID of the existing Vercel Team.
101
+ */
102
+ teamId: pulumi.Input<string>;
103
+ /**
104
+ * The ID of the user to add to the team.
105
+ */
106
+ userId: pulumi.Input<string>;
107
+ }
package/teamMember.js ADDED
@@ -0,0 +1,66 @@
1
+ "use strict";
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
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TeamMember = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ class TeamMember extends pulumi.CustomResource {
9
+ /**
10
+ * Get an existing TeamMember resource's state with the given name, ID, and optional extra
11
+ * properties used to qualify the lookup.
12
+ *
13
+ * @param name The _unique_ name of the resulting resource.
14
+ * @param id The _unique_ provider ID of the resource to lookup.
15
+ * @param state Any extra arguments used during the lookup.
16
+ * @param opts Optional settings to control the behavior of the CustomResource.
17
+ */
18
+ static get(name, id, state, opts) {
19
+ return new TeamMember(name, state, Object.assign(Object.assign({}, opts), { id: id }));
20
+ }
21
+ /**
22
+ * Returns true if the given object is an instance of TeamMember. This is designed to work even
23
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
24
+ */
25
+ static isInstance(obj) {
26
+ if (obj === undefined || obj === null) {
27
+ return false;
28
+ }
29
+ return obj['__pulumiType'] === TeamMember.__pulumiType;
30
+ }
31
+ constructor(name, argsOrState, opts) {
32
+ let resourceInputs = {};
33
+ opts = opts || {};
34
+ if (opts.id) {
35
+ const state = argsOrState;
36
+ resourceInputs["accessGroups"] = state ? state.accessGroups : undefined;
37
+ resourceInputs["projects"] = state ? state.projects : undefined;
38
+ resourceInputs["role"] = state ? state.role : undefined;
39
+ resourceInputs["teamId"] = state ? state.teamId : undefined;
40
+ resourceInputs["userId"] = state ? state.userId : undefined;
41
+ }
42
+ else {
43
+ const args = argsOrState;
44
+ if ((!args || args.role === undefined) && !opts.urn) {
45
+ throw new Error("Missing required property 'role'");
46
+ }
47
+ if ((!args || args.teamId === undefined) && !opts.urn) {
48
+ throw new Error("Missing required property 'teamId'");
49
+ }
50
+ if ((!args || args.userId === undefined) && !opts.urn) {
51
+ throw new Error("Missing required property 'userId'");
52
+ }
53
+ resourceInputs["accessGroups"] = args ? args.accessGroups : undefined;
54
+ resourceInputs["projects"] = args ? args.projects : undefined;
55
+ resourceInputs["role"] = args ? args.role : undefined;
56
+ resourceInputs["teamId"] = args ? args.teamId : undefined;
57
+ resourceInputs["userId"] = args ? args.userId : undefined;
58
+ }
59
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
60
+ super(TeamMember.__pulumiType, name, resourceInputs, opts);
61
+ }
62
+ }
63
+ exports.TeamMember = TeamMember;
64
+ /** @internal */
65
+ TeamMember.__pulumiType = 'vercel:index/teamMember:TeamMember';
66
+ //# sourceMappingURL=teamMember.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamMember.js","sourceRoot":"","sources":["../teamMember.ts"],"names":[],"mappings":"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"}
package/types/input.d.ts CHANGED
@@ -1,5 +1,15 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  import * as inputs from "../types/input";
3
+ export interface CustomEnvironmentBranchTracking {
4
+ /**
5
+ * The pattern of the branch name to track.
6
+ */
7
+ pattern: pulumi.Input<string>;
8
+ /**
9
+ * How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
10
+ */
11
+ type: pulumi.Input<string>;
12
+ }
3
13
  export interface DeploymentProjectSettings {
4
14
  /**
5
15
  * The build command for this deployment. If omitted, this value will be taken from the project or automatically detected.
@@ -40,7 +50,208 @@ export interface DnsRecordSrv {
40
50
  */
41
51
  weight: pulumi.Input<number>;
42
52
  }
53
+ export interface FirewallConfigIpRules {
54
+ rules?: pulumi.Input<pulumi.Input<inputs.FirewallConfigIpRulesRule>[]>;
55
+ }
56
+ export interface FirewallConfigIpRulesRule {
57
+ action: pulumi.Input<string>;
58
+ /**
59
+ * Hosts to apply these rules to
60
+ */
61
+ hostname: pulumi.Input<string>;
62
+ id?: pulumi.Input<string>;
63
+ /**
64
+ * IP or CIDR to block
65
+ */
66
+ ip: pulumi.Input<string>;
67
+ notes?: pulumi.Input<string>;
68
+ }
69
+ export interface FirewallConfigManagedRulesets {
70
+ /**
71
+ * Enable the owasp managed rulesets and select ruleset behaviors
72
+ */
73
+ owasp?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwasp>;
74
+ }
75
+ export interface FirewallConfigManagedRulesetsOwasp {
76
+ /**
77
+ * Generic Attack Detection
78
+ */
79
+ gen?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspGen>;
80
+ /**
81
+ * Java Attack Detection
82
+ */
83
+ java?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspJava>;
84
+ /**
85
+ * Local File Inclusion Rules
86
+ */
87
+ lfi?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspLfi>;
88
+ /**
89
+ * Multipart Rules
90
+ */
91
+ ma?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspMa>;
92
+ /**
93
+ * PHP Attack Detection
94
+ */
95
+ php?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspPhp>;
96
+ /**
97
+ * Remote Code Execution Rules
98
+ */
99
+ rce?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspRce>;
100
+ /**
101
+ * Remote File Inclusion Rules
102
+ */
103
+ rfi?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspRfi>;
104
+ /**
105
+ * Scanner Detection Rules
106
+ */
107
+ sd?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspSd>;
108
+ /**
109
+ * SQL Injection Rules
110
+ */
111
+ sqli?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspSqli>;
112
+ /**
113
+ * Cross Site Scripting Rules
114
+ */
115
+ xss?: pulumi.Input<inputs.FirewallConfigManagedRulesetsOwaspXss>;
116
+ }
117
+ export interface FirewallConfigManagedRulesetsOwaspGen {
118
+ action: pulumi.Input<string>;
119
+ active?: pulumi.Input<boolean>;
120
+ }
121
+ export interface FirewallConfigManagedRulesetsOwaspJava {
122
+ action: pulumi.Input<string>;
123
+ active?: pulumi.Input<boolean>;
124
+ }
125
+ export interface FirewallConfigManagedRulesetsOwaspLfi {
126
+ action: pulumi.Input<string>;
127
+ active?: pulumi.Input<boolean>;
128
+ }
129
+ export interface FirewallConfigManagedRulesetsOwaspMa {
130
+ action: pulumi.Input<string>;
131
+ active?: pulumi.Input<boolean>;
132
+ }
133
+ export interface FirewallConfigManagedRulesetsOwaspPhp {
134
+ action: pulumi.Input<string>;
135
+ active?: pulumi.Input<boolean>;
136
+ }
137
+ export interface FirewallConfigManagedRulesetsOwaspRce {
138
+ action: pulumi.Input<string>;
139
+ active?: pulumi.Input<boolean>;
140
+ }
141
+ export interface FirewallConfigManagedRulesetsOwaspRfi {
142
+ action: pulumi.Input<string>;
143
+ active?: pulumi.Input<boolean>;
144
+ }
145
+ export interface FirewallConfigManagedRulesetsOwaspSd {
146
+ action: pulumi.Input<string>;
147
+ active?: pulumi.Input<boolean>;
148
+ }
149
+ export interface FirewallConfigManagedRulesetsOwaspSqli {
150
+ action: pulumi.Input<string>;
151
+ active?: pulumi.Input<boolean>;
152
+ }
153
+ export interface FirewallConfigManagedRulesetsOwaspXss {
154
+ action: pulumi.Input<string>;
155
+ active?: pulumi.Input<boolean>;
156
+ }
157
+ export interface FirewallConfigRules {
158
+ rules?: pulumi.Input<pulumi.Input<inputs.FirewallConfigRulesRule>[]>;
159
+ }
160
+ export interface FirewallConfigRulesRule {
161
+ /**
162
+ * Actions to take when the condition groups match a request
163
+ */
164
+ action: pulumi.Input<inputs.FirewallConfigRulesRuleAction>;
165
+ /**
166
+ * Rule is active or disabled
167
+ */
168
+ active?: pulumi.Input<boolean>;
169
+ /**
170
+ * Sets of conditions that may match a request
171
+ */
172
+ conditionGroups: pulumi.Input<pulumi.Input<inputs.FirewallConfigRulesRuleConditionGroup>[]>;
173
+ description?: pulumi.Input<string>;
174
+ id?: pulumi.Input<string>;
175
+ /**
176
+ * Name to identify the rule
177
+ */
178
+ name: pulumi.Input<string>;
179
+ }
180
+ export interface FirewallConfigRulesRuleAction {
181
+ /**
182
+ * Base action
183
+ */
184
+ action: pulumi.Input<string>;
185
+ /**
186
+ * Forward persistence of a rule aciton
187
+ */
188
+ actionDuration?: pulumi.Input<string>;
189
+ /**
190
+ * Behavior or a rate limiting action. Required if action is rate_limit
191
+ */
192
+ rateLimit?: pulumi.Input<inputs.FirewallConfigRulesRuleActionRateLimit>;
193
+ /**
194
+ * How to redirect a request. Required if action is redirect
195
+ */
196
+ redirect?: pulumi.Input<inputs.FirewallConfigRulesRuleActionRedirect>;
197
+ }
198
+ export interface FirewallConfigRulesRuleActionRateLimit {
199
+ /**
200
+ * Action to take when rate limit is exceeded
201
+ */
202
+ action: pulumi.Input<string>;
203
+ /**
204
+ * Rate limiting algorithm
205
+ */
206
+ algo: pulumi.Input<string>;
207
+ /**
208
+ * Keys used to bucket an individual client
209
+ */
210
+ keys: pulumi.Input<pulumi.Input<string>[]>;
211
+ /**
212
+ * number of requests allowed in the window
213
+ */
214
+ limit: pulumi.Input<number>;
215
+ /**
216
+ * Time window in seconds
217
+ */
218
+ window: pulumi.Input<number>;
219
+ }
220
+ export interface FirewallConfigRulesRuleActionRedirect {
221
+ location: pulumi.Input<string>;
222
+ permanent: pulumi.Input<boolean>;
223
+ }
224
+ export interface FirewallConfigRulesRuleConditionGroup {
225
+ /**
226
+ * Conditions that must all match within a group
227
+ */
228
+ conditions: pulumi.Input<pulumi.Input<inputs.FirewallConfigRulesRuleConditionGroupCondition>[]>;
229
+ }
230
+ export interface FirewallConfigRulesRuleConditionGroupCondition {
231
+ /**
232
+ * Key within type to match against
233
+ */
234
+ key?: pulumi.Input<string>;
235
+ neg?: pulumi.Input<boolean>;
236
+ /**
237
+ * How to comparse type to value
238
+ */
239
+ op: pulumi.Input<string>;
240
+ /**
241
+ * Request key type to match against
242
+ */
243
+ type: pulumi.Input<string>;
244
+ value?: pulumi.Input<string>;
245
+ }
43
246
  export interface ProjectEnvironment {
247
+ /**
248
+ * A comment explaining what the environment variable is for.
249
+ */
250
+ comment?: pulumi.Input<string>;
251
+ /**
252
+ * The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
253
+ */
254
+ customEnvironmentIds?: pulumi.Input<pulumi.Input<string>[]>;
44
255
  /**
45
256
  * The git branch of the Environment Variable.
46
257
  */
@@ -58,9 +269,43 @@ export interface ProjectEnvironment {
58
269
  */
59
270
  sensitive?: pulumi.Input<boolean>;
60
271
  /**
61
- * The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
272
+ * The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `customEnvironmentIds` must be set.
62
273
  */
63
- targets: pulumi.Input<pulumi.Input<string>[]>;
274
+ targets?: pulumi.Input<pulumi.Input<string>[]>;
275
+ /**
276
+ * The value of the Environment Variable.
277
+ */
278
+ value: pulumi.Input<string>;
279
+ }
280
+ export interface ProjectEnvironmentVariablesVariable {
281
+ /**
282
+ * A comment explaining what the environment variable is for.
283
+ */
284
+ comment?: pulumi.Input<string>;
285
+ /**
286
+ * The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
287
+ */
288
+ customEnvironmentIds?: pulumi.Input<pulumi.Input<string>[]>;
289
+ /**
290
+ * The git branch of the Environment Variable.
291
+ */
292
+ gitBranch?: pulumi.Input<string>;
293
+ /**
294
+ * The ID of the Environment Variable.
295
+ */
296
+ id?: pulumi.Input<string>;
297
+ /**
298
+ * The name of the Environment Variable.
299
+ */
300
+ key: pulumi.Input<string>;
301
+ /**
302
+ * Whether the Environment Variable is sensitive or not.
303
+ */
304
+ sensitive?: pulumi.Input<boolean>;
305
+ /**
306
+ * The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `customEnvironmentIds` must be set.
307
+ */
308
+ targets?: pulumi.Input<pulumi.Input<string>[]>;
64
309
  /**
65
310
  * The value of the Environment Variable.
66
311
  */
@@ -112,11 +357,33 @@ export interface ProjectGitRepositoryDeployHook {
112
357
  */
113
358
  url?: pulumi.Input<string>;
114
359
  }
360
+ export interface ProjectMembersMember {
361
+ /**
362
+ * The email of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
363
+ */
364
+ email?: pulumi.Input<string>;
365
+ /**
366
+ * The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
367
+ */
368
+ role: pulumi.Input<string>;
369
+ /**
370
+ * The ID of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
371
+ */
372
+ userId?: pulumi.Input<string>;
373
+ /**
374
+ * The username of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
375
+ */
376
+ username?: pulumi.Input<string>;
377
+ }
115
378
  export interface ProjectOidcTokenConfig {
116
379
  /**
117
380
  * When true, Vercel issued OpenID Connect (OIDC) tokens will be available on the compute environments. See https://vercel.com/docs/security/secure-backend-access/oidc for more information.
118
381
  */
119
382
  enabled: pulumi.Input<boolean>;
383
+ /**
384
+ * Configures the URL of the `iss` claim. `team` = `https://oidc.vercel.com/[teamSlug]` `global` = `https://oidc.vercel.com`
385
+ */
386
+ issuerMode?: pulumi.Input<string>;
120
387
  }
121
388
  export interface ProjectOptionsAllowlist {
122
389
  /**
@@ -180,3 +447,35 @@ export interface ProjectVercelAuthentication {
180
447
  */
181
448
  deploymentType: pulumi.Input<string>;
182
449
  }
450
+ export interface TeamConfigRemoteCaching {
451
+ /**
452
+ * Indicates if Remote Caching is enabled.
453
+ */
454
+ enabled?: pulumi.Input<boolean>;
455
+ }
456
+ export interface TeamConfigSaml {
457
+ /**
458
+ * The ID of the access group to use for the team.
459
+ */
460
+ accessGroupId?: pulumi.Input<string>;
461
+ /**
462
+ * Indicates if SAML is enforced for the team.
463
+ */
464
+ enforced: pulumi.Input<boolean>;
465
+ /**
466
+ * Directory groups to role or access group mappings.
467
+ */
468
+ roles?: pulumi.Input<{
469
+ [key: string]: pulumi.Input<string>;
470
+ }>;
471
+ }
472
+ export interface TeamMemberProject {
473
+ /**
474
+ * The ID of the project that the user should be granted access to.
475
+ */
476
+ projectId: pulumi.Input<string>;
477
+ /**
478
+ * The role that the user should have in the project.
479
+ */
480
+ role: pulumi.Input<string>;
481
+ }