@pulumiverse/vercel 4.6.1 → 5.3.1

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 (153) hide show
  1. package/accessGroup.d.ts +3 -2
  2. package/accessGroup.js +3 -2
  3. package/accessGroup.js.map +1 -1
  4. package/accessGroupProject.d.ts +4 -3
  5. package/accessGroupProject.js +4 -3
  6. package/accessGroupProject.js.map +1 -1
  7. package/attackChallengeMode.d.ts +4 -4
  8. package/attackChallengeMode.js +4 -4
  9. package/blobObject.d.ts +177 -0
  10. package/blobObject.js +89 -0
  11. package/blobObject.js.map +1 -0
  12. package/blobProjectConnection.d.ts +144 -0
  13. package/blobProjectConnection.js +105 -0
  14. package/blobProjectConnection.js.map +1 -0
  15. package/blobStore.d.ts +159 -0
  16. package/blobStore.js +100 -0
  17. package/blobStore.js.map +1 -0
  18. package/bulkRedirects.d.ts +135 -0
  19. package/bulkRedirects.js +114 -0
  20. package/bulkRedirects.js.map +1 -0
  21. package/customEnvironment.d.ts +7 -9
  22. package/customEnvironment.js +7 -9
  23. package/customEnvironment.js.map +1 -1
  24. package/deployment.d.ts +36 -0
  25. package/deployment.js +27 -0
  26. package/deployment.js.map +1 -1
  27. package/dnsRecord.d.ts +8 -12
  28. package/dnsRecord.js +8 -12
  29. package/dnsRecord.js.map +1 -1
  30. package/edgeConfig.d.ts +7 -9
  31. package/edgeConfig.js +7 -9
  32. package/edgeConfig.js.map +1 -1
  33. package/edgeConfigItem.d.ts +6 -10
  34. package/edgeConfigItem.js +6 -10
  35. package/edgeConfigItem.js.map +1 -1
  36. package/edgeConfigSchema.d.ts +6 -8
  37. package/edgeConfigSchema.js +6 -8
  38. package/edgeConfigSchema.js.map +1 -1
  39. package/edgeConfigToken.d.ts +7 -11
  40. package/edgeConfigToken.js +7 -11
  41. package/edgeConfigToken.js.map +1 -1
  42. package/featureFlagConfig.d.ts +167 -0
  43. package/featureFlagConfig.js +131 -0
  44. package/featureFlagConfig.js.map +1 -0
  45. package/featureFlagDefinition.d.ts +160 -0
  46. package/featureFlagDefinition.js +111 -0
  47. package/featureFlagDefinition.js.map +1 -0
  48. package/featureFlagSdkKey.d.ts +160 -0
  49. package/featureFlagSdkKey.js +120 -0
  50. package/featureFlagSdkKey.js.map +1 -0
  51. package/featureFlagSegment.d.ts +191 -0
  52. package/featureFlagSegment.js +126 -0
  53. package/featureFlagSegment.js.map +1 -0
  54. package/firewallBypass.d.ts +3 -2
  55. package/firewallBypass.js +3 -2
  56. package/firewallBypass.js.map +1 -1
  57. package/firewallConfig.d.ts +2 -0
  58. package/firewallConfig.js +2 -0
  59. package/firewallConfig.js.map +1 -1
  60. package/getBlobObject.d.ts +100 -0
  61. package/getBlobObject.js +32 -0
  62. package/getBlobObject.js.map +1 -0
  63. package/getBlobProjectConnections.d.ts +91 -0
  64. package/getBlobProjectConnections.js +64 -0
  65. package/getBlobProjectConnections.js.map +1 -0
  66. package/getBlobStore.d.ts +104 -0
  67. package/getBlobStore.js +54 -0
  68. package/getBlobStore.js.map +1 -0
  69. package/getBlobStoreSecrets.d.ts +80 -0
  70. package/getBlobStoreSecrets.js +54 -0
  71. package/getBlobStoreSecrets.js.map +1 -0
  72. package/getBlobStores.d.ts +63 -0
  73. package/getBlobStores.js +48 -0
  74. package/getBlobStores.js.map +1 -0
  75. package/getBulkRedirects.d.ts +97 -0
  76. package/getBulkRedirects.js +60 -0
  77. package/getBulkRedirects.js.map +1 -0
  78. package/getFeatureFlag.d.ts +121 -0
  79. package/getFeatureFlag.js +60 -0
  80. package/getFeatureFlag.js.map +1 -0
  81. package/getFeatureFlagSdkKey.d.ts +100 -0
  82. package/getFeatureFlagSdkKey.js +60 -0
  83. package/getFeatureFlagSdkKey.js.map +1 -0
  84. package/getFeatureFlagSegment.d.ts +113 -0
  85. package/getFeatureFlagSegment.js +60 -0
  86. package/getFeatureFlagSegment.js.map +1 -0
  87. package/getFile.d.ts +9 -0
  88. package/getFile.js.map +1 -1
  89. package/getPrebuiltProject.d.ts +51 -0
  90. package/getPrebuiltProject.js +42 -0
  91. package/getPrebuiltProject.js.map +1 -1
  92. package/getProject.d.ts +14 -4
  93. package/getProject.js.map +1 -1
  94. package/getProjectDirectory.d.ts +47 -0
  95. package/getProjectDirectory.js +38 -0
  96. package/getProjectDirectory.js.map +1 -1
  97. package/getProjectRoutes.d.ts +89 -0
  98. package/getProjectRoutes.js +62 -0
  99. package/getProjectRoutes.js.map +1 -0
  100. package/index.d.ts +63 -0
  101. package/index.js +88 -2
  102. package/index.js.map +1 -1
  103. package/logDrain.d.ts +6 -8
  104. package/logDrain.js +6 -8
  105. package/logDrain.js.map +1 -1
  106. package/microfrontendGroup.d.ts +4 -5
  107. package/microfrontendGroup.js +4 -5
  108. package/microfrontendGroup.js.map +1 -1
  109. package/microfrontendGroupMembership.d.ts +4 -7
  110. package/microfrontendGroupMembership.js +4 -7
  111. package/microfrontendGroupMembership.js.map +1 -1
  112. package/package.json +2 -2
  113. package/project.d.ts +75 -38
  114. package/project.js +53 -14
  115. package/project.js.map +1 -1
  116. package/projectCrons.d.ts +6 -7
  117. package/projectCrons.js +6 -7
  118. package/projectCrons.js.map +1 -1
  119. package/projectDeploymentRetention.d.ts +12 -4
  120. package/projectDeploymentRetention.js +12 -4
  121. package/projectDeploymentRetention.js.map +1 -1
  122. package/projectDomain.d.ts +6 -8
  123. package/projectDomain.js +6 -8
  124. package/projectDomain.js.map +1 -1
  125. package/projectEnvironmentVariable.d.ts +24 -20
  126. package/projectEnvironmentVariable.js +23 -16
  127. package/projectEnvironmentVariable.js.map +1 -1
  128. package/projectEnvironmentVariables.d.ts +18 -5
  129. package/projectEnvironmentVariables.js +18 -5
  130. package/projectEnvironmentVariables.js.map +1 -1
  131. package/projectMembers.d.ts +6 -0
  132. package/projectMembers.js +6 -0
  133. package/projectMembers.js.map +1 -1
  134. package/projectProtectionBypass.d.ts +171 -0
  135. package/projectProtectionBypass.js +119 -0
  136. package/projectProtectionBypass.js.map +1 -0
  137. package/projectRoute.d.ts +219 -0
  138. package/projectRoute.js +148 -0
  139. package/projectRoute.js.map +1 -0
  140. package/sharedEnvironmentVariable.d.ts +28 -9
  141. package/sharedEnvironmentVariable.js +27 -5
  142. package/sharedEnvironmentVariable.js.map +1 -1
  143. package/teamConfig.d.ts +3 -2
  144. package/teamConfig.js +3 -2
  145. package/teamConfig.js.map +1 -1
  146. package/teamMember.d.ts +3 -1
  147. package/teamMember.js +3 -1
  148. package/teamMember.js.map +1 -1
  149. package/types/input.d.ts +324 -4
  150. package/types/output.d.ts +705 -2
  151. package/userToken.d.ts +186 -0
  152. package/userToken.js +115 -0
  153. package/userToken.js.map +1 -0
package/userToken.d.ts ADDED
@@ -0,0 +1,186 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * Provides a User Token resource.
4
+ *
5
+ * A User Token is an authentication token that can be used to access the Vercel API.
6
+ *
7
+ * Creating user tokens requires a Vercel API token with full account access. Limited tokens cannot create additional user tokens.
8
+ *
9
+ * The `bearerToken` value is only returned during creation and cannot be retrieved again later. Imported resources will not populate `bearerToken`.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ```typescript
14
+ * import * as pulumi from "@pulumi/pulumi";
15
+ * import * as vercel from "@pulumiverse/vercel";
16
+ *
17
+ * const example = new vercel.UserToken("example", {name: "example-token"});
18
+ * const exampleExpiring = new vercel.UserToken("example_expiring", {
19
+ * name: "example-expiring-token",
20
+ * expiresAt: 1767225600000,
21
+ * });
22
+ * ```
23
+ *
24
+ * ## Import
25
+ *
26
+ * The `pulumi import` command can be used, for example:
27
+ *
28
+ * If importing into a personal account, or with a team configured on
29
+ * the provider, simply use the token ID.
30
+ * - tokenId can be found in the Vercel UI under Account Settings, Tokens.
31
+ *
32
+ * ```sh
33
+ * $ pulumi import vercel:index/userToken:UserToken example 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391
34
+ * ```
35
+ *
36
+ * Alternatively, you can import via the teamId and token_id.
37
+ * - teamId can be found in the team `settings` tab in the Vercel UI.
38
+ * - tokenId can be found in the Vercel UI under Account Settings, Tokens.
39
+ *
40
+ * ```sh
41
+ * $ pulumi import vercel:index/userToken:UserToken example team_xxxxxxxxxxxxxxxxxxxxxxxx/5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391
42
+ * ```
43
+ */
44
+ export declare class UserToken extends pulumi.CustomResource {
45
+ /**
46
+ * Get an existing UserToken resource's state with the given name, ID, and optional extra
47
+ * properties used to qualify the lookup.
48
+ *
49
+ * @param name The _unique_ name of the resulting resource.
50
+ * @param id The _unique_ provider ID of the resource to lookup.
51
+ * @param state Any extra arguments used during the lookup.
52
+ * @param opts Optional settings to control the behavior of the CustomResource.
53
+ */
54
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: UserTokenState, opts?: pulumi.CustomResourceOptions): UserToken;
55
+ /**
56
+ * Returns true if the given object is an instance of UserToken. This is designed to work even
57
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
58
+ */
59
+ static isInstance(obj: any): obj is UserToken;
60
+ /**
61
+ * The Unix timestamp in milliseconds when the token was last active.
62
+ */
63
+ readonly activeAt: pulumi.Output<number>;
64
+ /**
65
+ * The actual token value. This is only returned during create and then preserved from Terraform state.
66
+ */
67
+ readonly bearerToken: pulumi.Output<string>;
68
+ /**
69
+ * The Unix timestamp in milliseconds when the token was created.
70
+ */
71
+ readonly createdAt: pulumi.Output<number>;
72
+ /**
73
+ * The Unix timestamp in milliseconds when the token should expire.
74
+ */
75
+ readonly expiresAt: pulumi.Output<number | undefined>;
76
+ /**
77
+ * The Unix timestamp in milliseconds when the token was marked as leaked.
78
+ */
79
+ readonly leakedAt: pulumi.Output<number>;
80
+ /**
81
+ * The URL where the token was discovered as leaked.
82
+ */
83
+ readonly leakedUrl: pulumi.Output<string>;
84
+ /**
85
+ * The human-readable name of the token.
86
+ */
87
+ readonly name: pulumi.Output<string>;
88
+ /**
89
+ * How the token was created.
90
+ */
91
+ readonly origin: pulumi.Output<string>;
92
+ /**
93
+ * The token prefix used for identification.
94
+ */
95
+ readonly prefix: pulumi.Output<string>;
96
+ /**
97
+ * The token suffix used for identification.
98
+ */
99
+ readonly suffix: pulumi.Output<string>;
100
+ /**
101
+ * The ID of the Vercel team scope for this token. Required when creating a team-scoped token if a default team has not been set in the provider.
102
+ */
103
+ readonly teamId: pulumi.Output<string>;
104
+ /**
105
+ * The type of the token.
106
+ */
107
+ readonly type: pulumi.Output<string>;
108
+ /**
109
+ * Create a UserToken resource with the given unique name, arguments, and options.
110
+ *
111
+ * @param name The _unique_ name of the resource.
112
+ * @param args The arguments to use to populate this resource's properties.
113
+ * @param opts A bag of options that control this resource's behavior.
114
+ */
115
+ constructor(name: string, args?: UserTokenArgs, opts?: pulumi.CustomResourceOptions);
116
+ }
117
+ /**
118
+ * Input properties used for looking up and filtering UserToken resources.
119
+ */
120
+ export interface UserTokenState {
121
+ /**
122
+ * The Unix timestamp in milliseconds when the token was last active.
123
+ */
124
+ activeAt?: pulumi.Input<number>;
125
+ /**
126
+ * The actual token value. This is only returned during create and then preserved from Terraform state.
127
+ */
128
+ bearerToken?: pulumi.Input<string>;
129
+ /**
130
+ * The Unix timestamp in milliseconds when the token was created.
131
+ */
132
+ createdAt?: pulumi.Input<number>;
133
+ /**
134
+ * The Unix timestamp in milliseconds when the token should expire.
135
+ */
136
+ expiresAt?: pulumi.Input<number>;
137
+ /**
138
+ * The Unix timestamp in milliseconds when the token was marked as leaked.
139
+ */
140
+ leakedAt?: pulumi.Input<number>;
141
+ /**
142
+ * The URL where the token was discovered as leaked.
143
+ */
144
+ leakedUrl?: pulumi.Input<string>;
145
+ /**
146
+ * The human-readable name of the token.
147
+ */
148
+ name?: pulumi.Input<string>;
149
+ /**
150
+ * How the token was created.
151
+ */
152
+ origin?: pulumi.Input<string>;
153
+ /**
154
+ * The token prefix used for identification.
155
+ */
156
+ prefix?: pulumi.Input<string>;
157
+ /**
158
+ * The token suffix used for identification.
159
+ */
160
+ suffix?: pulumi.Input<string>;
161
+ /**
162
+ * The ID of the Vercel team scope for this token. Required when creating a team-scoped token if a default team has not been set in the provider.
163
+ */
164
+ teamId?: pulumi.Input<string>;
165
+ /**
166
+ * The type of the token.
167
+ */
168
+ type?: pulumi.Input<string>;
169
+ }
170
+ /**
171
+ * The set of arguments for constructing a UserToken resource.
172
+ */
173
+ export interface UserTokenArgs {
174
+ /**
175
+ * The Unix timestamp in milliseconds when the token should expire.
176
+ */
177
+ expiresAt?: pulumi.Input<number>;
178
+ /**
179
+ * The human-readable name of the token.
180
+ */
181
+ name?: pulumi.Input<string>;
182
+ /**
183
+ * The ID of the Vercel team scope for this token. Required when creating a team-scoped token if a default team has not been set in the provider.
184
+ */
185
+ teamId?: pulumi.Input<string>;
186
+ }
package/userToken.js ADDED
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
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.UserToken = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * Provides a User Token resource.
10
+ *
11
+ * A User Token is an authentication token that can be used to access the Vercel API.
12
+ *
13
+ * Creating user tokens requires a Vercel API token with full account access. Limited tokens cannot create additional user tokens.
14
+ *
15
+ * The `bearerToken` value is only returned during creation and cannot be retrieved again later. Imported resources will not populate `bearerToken`.
16
+ *
17
+ * ## Example Usage
18
+ *
19
+ * ```typescript
20
+ * import * as pulumi from "@pulumi/pulumi";
21
+ * import * as vercel from "@pulumiverse/vercel";
22
+ *
23
+ * const example = new vercel.UserToken("example", {name: "example-token"});
24
+ * const exampleExpiring = new vercel.UserToken("example_expiring", {
25
+ * name: "example-expiring-token",
26
+ * expiresAt: 1767225600000,
27
+ * });
28
+ * ```
29
+ *
30
+ * ## Import
31
+ *
32
+ * The `pulumi import` command can be used, for example:
33
+ *
34
+ * If importing into a personal account, or with a team configured on
35
+ * the provider, simply use the token ID.
36
+ * - tokenId can be found in the Vercel UI under Account Settings, Tokens.
37
+ *
38
+ * ```sh
39
+ * $ pulumi import vercel:index/userToken:UserToken example 5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391
40
+ * ```
41
+ *
42
+ * Alternatively, you can import via the teamId and token_id.
43
+ * - teamId can be found in the team `settings` tab in the Vercel UI.
44
+ * - tokenId can be found in the Vercel UI under Account Settings, Tokens.
45
+ *
46
+ * ```sh
47
+ * $ pulumi import vercel:index/userToken:UserToken example team_xxxxxxxxxxxxxxxxxxxxxxxx/5d9f2ebd38ddca62e5d51e9c1704c72530bdc8bfdd41e782a6687c48399e8391
48
+ * ```
49
+ */
50
+ class UserToken extends pulumi.CustomResource {
51
+ /**
52
+ * Get an existing UserToken resource's state with the given name, ID, and optional extra
53
+ * properties used to qualify the lookup.
54
+ *
55
+ * @param name The _unique_ name of the resulting resource.
56
+ * @param id The _unique_ provider ID of the resource to lookup.
57
+ * @param state Any extra arguments used during the lookup.
58
+ * @param opts Optional settings to control the behavior of the CustomResource.
59
+ */
60
+ static get(name, id, state, opts) {
61
+ return new UserToken(name, state, { ...opts, id: id });
62
+ }
63
+ /**
64
+ * Returns true if the given object is an instance of UserToken. This is designed to work even
65
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
66
+ */
67
+ static isInstance(obj) {
68
+ if (obj === undefined || obj === null) {
69
+ return false;
70
+ }
71
+ return obj['__pulumiType'] === UserToken.__pulumiType;
72
+ }
73
+ constructor(name, argsOrState, opts) {
74
+ let resourceInputs = {};
75
+ opts = opts || {};
76
+ if (opts.id) {
77
+ const state = argsOrState;
78
+ resourceInputs["activeAt"] = state?.activeAt;
79
+ resourceInputs["bearerToken"] = state?.bearerToken;
80
+ resourceInputs["createdAt"] = state?.createdAt;
81
+ resourceInputs["expiresAt"] = state?.expiresAt;
82
+ resourceInputs["leakedAt"] = state?.leakedAt;
83
+ resourceInputs["leakedUrl"] = state?.leakedUrl;
84
+ resourceInputs["name"] = state?.name;
85
+ resourceInputs["origin"] = state?.origin;
86
+ resourceInputs["prefix"] = state?.prefix;
87
+ resourceInputs["suffix"] = state?.suffix;
88
+ resourceInputs["teamId"] = state?.teamId;
89
+ resourceInputs["type"] = state?.type;
90
+ }
91
+ else {
92
+ const args = argsOrState;
93
+ resourceInputs["expiresAt"] = args?.expiresAt;
94
+ resourceInputs["name"] = args?.name;
95
+ resourceInputs["teamId"] = args?.teamId;
96
+ resourceInputs["activeAt"] = undefined /*out*/;
97
+ resourceInputs["bearerToken"] = undefined /*out*/;
98
+ resourceInputs["createdAt"] = undefined /*out*/;
99
+ resourceInputs["leakedAt"] = undefined /*out*/;
100
+ resourceInputs["leakedUrl"] = undefined /*out*/;
101
+ resourceInputs["origin"] = undefined /*out*/;
102
+ resourceInputs["prefix"] = undefined /*out*/;
103
+ resourceInputs["suffix"] = undefined /*out*/;
104
+ resourceInputs["type"] = undefined /*out*/;
105
+ }
106
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
107
+ const secretOpts = { additionalSecretOutputs: ["bearerToken"] };
108
+ opts = pulumi.mergeOptions(opts, secretOpts);
109
+ super(UserToken.__pulumiType, name, resourceInputs, opts);
110
+ }
111
+ }
112
+ exports.UserToken = UserToken;
113
+ /** @internal */
114
+ UserToken.__pulumiType = 'vercel:index/userToken:UserToken';
115
+ //# sourceMappingURL=userToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"userToken.js","sourceRoot":"","sources":["../userToken.ts"],"names":[],"mappings":"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"}