diff --git a/.pulumi-java-gen.version b/.pulumi-java-gen.version
index 92e0c74..a881cf7 100644
--- a/.pulumi-java-gen.version
+++ b/.pulumi-java-gen.version
@@ -1 +1 @@
-0.16.1
\ No newline at end of file
+0.20.0
\ No newline at end of file
diff --git a/provider/cmd/pulumi-resource-vercel/bridge-metadata.json b/provider/cmd/pulumi-resource-vercel/bridge-metadata.json
index 496aa67..1badbb4 100644
--- a/provider/cmd/pulumi-resource-vercel/bridge-metadata.json
+++ b/provider/cmd/pulumi-resource-vercel/bridge-metadata.json
@@ -2,6 +2,14 @@
"attribution": "This Pulumi package is based on the [`vercel` Terraform Provider](https://github.com/vercel/terraform-provider-vercel).",
"auto-aliasing": {
"resources": {
+ "vercel_access_group": {
+ "current": "vercel:index/accessGroup:AccessGroup",
+ "majorVersion": 1
+ },
+ "vercel_access_group_project": {
+ "current": "vercel:index/accessGroupProject:AccessGroupProject",
+ "majorVersion": 1
+ },
"vercel_alias": {
"current": "vercel:index/alias:Alias",
"majorVersion": 1
@@ -10,6 +18,10 @@
"current": "vercel:index/attackChallengeMode:AttackChallengeMode",
"majorVersion": 1
},
+ "vercel_custom_environment": {
+ "current": "vercel:index/customEnvironment:CustomEnvironment",
+ "majorVersion": 1
+ },
"vercel_deployment": {
"current": "vercel:index/deployment:Deployment",
"majorVersion": 1,
@@ -107,6 +119,9 @@
"maxItemsOne": false,
"elem": {
"fields": {
+ "custom_environment_ids": {
+ "maxItemsOne": false
+ },
"target": {
"maxItemsOne": false
}
@@ -148,6 +163,9 @@
"current": "vercel:index/projectEnvironmentVariable:ProjectEnvironmentVariable",
"majorVersion": 1,
"fields": {
+ "custom_environment_ids": {
+ "maxItemsOne": false
+ },
"target": {
"maxItemsOne": false
}
@@ -161,6 +179,9 @@
"maxItemsOne": false,
"elem": {
"fields": {
+ "custom_environment_ids": {
+ "maxItemsOne": false
+ },
"target": {
"maxItemsOne": false
}
@@ -169,6 +190,15 @@
}
}
},
+ "vercel_project_members": {
+ "current": "vercel:index/projectMembers:ProjectMembers",
+ "majorVersion": 1,
+ "fields": {
+ "members": {
+ "maxItemsOne": false
+ }
+ }
+ },
"vercel_shared_environment_variable": {
"current": "vercel:index/sharedEnvironmentVariable:SharedEnvironmentVariable",
"majorVersion": 1,
@@ -185,6 +215,18 @@
"current": "vercel:index/teamConfig:TeamConfig",
"majorVersion": 1
},
+ "vercel_team_member": {
+ "current": "vercel:index/teamMember:TeamMember",
+ "majorVersion": 1,
+ "fields": {
+ "access_groups": {
+ "maxItemsOne": false
+ },
+ "projects": {
+ "maxItemsOne": false
+ }
+ }
+ },
"vercel_webhook": {
"current": "vercel:index/webhook:Webhook",
"majorVersion": 1,
@@ -199,6 +241,14 @@
}
},
"datasources": {
+ "vercel_access_group": {
+ "current": "vercel:index/getAccessGroup:getAccessGroup",
+ "majorVersion": 1
+ },
+ "vercel_access_group_project": {
+ "current": "vercel:index/getAccessGroupProject:getAccessGroupProject",
+ "majorVersion": 1
+ },
"vercel_alias": {
"current": "vercel:index/getAlias:getAlias",
"majorVersion": 1
@@ -207,6 +257,10 @@
"current": "vercel:index/getAttackChallengeMode:getAttackChallengeMode",
"majorVersion": 1
},
+ "vercel_custom_environment": {
+ "current": "vercel:index/getCustomEnvironment:getCustomEnvironment",
+ "majorVersion": 1
+ },
"vercel_deployment": {
"current": "vercel:index/getDeployment:getDeployment",
"majorVersion": 1,
@@ -267,6 +321,9 @@
"maxItemsOne": false,
"elem": {
"fields": {
+ "custom_environment_ids": {
+ "maxItemsOne": false
+ },
"target": {
"maxItemsOne": false
}
@@ -304,6 +361,15 @@
"current": "vercel:index/getProjectDirectory:getProjectDirectory",
"majorVersion": 1
},
+ "vercel_project_members": {
+ "current": "vercel:index/getProjectMembers:getProjectMembers",
+ "majorVersion": 1,
+ "fields": {
+ "members": {
+ "maxItemsOne": false
+ }
+ }
+ },
"vercel_shared_environment_variable": {
"current": "vercel:index/getSharedEnvironmentVariable:getSharedEnvironmentVariable",
"majorVersion": 1,
@@ -319,6 +385,18 @@
"vercel_team_config": {
"current": "vercel:index/getTeamConfig:getTeamConfig",
"majorVersion": 1
+ },
+ "vercel_team_member": {
+ "current": "vercel:index/getTeamMember:getTeamMember",
+ "majorVersion": 1,
+ "fields": {
+ "access_groups": {
+ "maxItemsOne": false
+ },
+ "projects": {
+ "maxItemsOne": false
+ }
+ }
}
}
},
diff --git a/provider/cmd/pulumi-resource-vercel/schema.json b/provider/cmd/pulumi-resource-vercel/schema.json
index cd417f1..3e8a50d 100644
--- a/provider/cmd/pulumi-resource-vercel/schema.json
+++ b/provider/cmd/pulumi-resource-vercel/schema.json
@@ -70,6 +70,23 @@
}
},
"types": {
+ "vercel:index/CustomEnvironmentBranchTracking:CustomEnvironmentBranchTracking": {
+ "properties": {
+ "pattern": {
+ "type": "string",
+ "description": "The pattern of the branch name to track.\n"
+ },
+ "type": {
+ "type": "string",
+ "description": "How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "pattern",
+ "type"
+ ]
+ },
"vercel:index/DeploymentProjectSettings:DeploymentProjectSettings": {
"properties": {
"buildCommand": {
@@ -542,6 +559,13 @@
"type": "string",
"description": "A comment explaining what the environment variable is for.\n"
},
+ "customEnvironmentIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.\n"
+ },
"gitBranch": {
"type": "string",
"description": "The git branch of the Environment Variable.\n"
@@ -563,7 +587,7 @@
"items": {
"type": "string"
},
- "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.\n"
+ "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.\n"
},
"value": {
"type": "string",
@@ -574,13 +598,13 @@
"type": "object",
"required": [
"key",
- "targets",
"value"
],
"language": {
"nodejs": {
"requiredOutputs": [
"comment",
+ "customEnvironmentIds",
"id",
"key",
"sensitive",
@@ -596,6 +620,13 @@
"type": "string",
"description": "A comment explaining what the environment variable is for.\n"
},
+ "customEnvironmentIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.\n"
+ },
"gitBranch": {
"type": "string",
"description": "The git branch of the Environment Variable.\n"
@@ -617,7 +648,7 @@
"items": {
"type": "string"
},
- "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.\n"
+ "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.\n"
},
"value": {
"type": "string",
@@ -627,13 +658,13 @@
"type": "object",
"required": [
"key",
- "targets",
"value"
],
"language": {
"nodejs": {
"requiredOutputs": [
"comment",
+ "customEnvironmentIds",
"id",
"key",
"sensitive",
@@ -733,6 +764,40 @@
}
}
},
+ "vercel:index/ProjectMembersMember:ProjectMembersMember": {
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.\n"
+ },
+ "userId": {
+ "type": "string",
+ "description": "The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.\n"
+ },
+ "username": {
+ "type": "string",
+ "description": "The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "role"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredOutputs": [
+ "email",
+ "role",
+ "userId",
+ "username"
+ ]
+ }
+ }
+ },
"vercel:index/ProjectOidcTokenConfig:ProjectOidcTokenConfig": {
"properties": {
"enabled": {
@@ -924,12 +989,58 @@
"enforced"
]
},
+ "vercel:index/TeamMemberProject:TeamMemberProject": {
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the project that the user should be granted access to.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The role that the user should have in the project.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "projectId",
+ "role"
+ ]
+ },
+ "vercel:index/getCustomEnvironmentBranchTracking:getCustomEnvironmentBranchTracking": {
+ "properties": {
+ "pattern": {
+ "type": "string",
+ "description": "The pattern of the branch name to track.\n"
+ },
+ "type": {
+ "type": "string",
+ "description": "How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "pattern",
+ "type"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
"vercel:index/getProjectEnvironment:getProjectEnvironment": {
"properties": {
"comment": {
"type": "string",
"description": "A comment explaining what the environment variable is for.\n"
},
+ "customEnvironmentIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IDs of Custom Environments that the Environment Variable should be present on.\n"
+ },
"gitBranch": {
"type": "string",
"description": "The git branch of the environment variable.\n"
@@ -961,6 +1072,7 @@
"type": "object",
"required": [
"comment",
+ "customEnvironmentIds",
"gitBranch",
"id",
"key",
@@ -1064,6 +1176,38 @@
}
}
},
+ "vercel:index/getProjectMembersMember:getProjectMembersMember": {
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "The email of the user.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.\n"
+ },
+ "userId": {
+ "type": "string",
+ "description": "The ID of the user.\n"
+ },
+ "username": {
+ "type": "string",
+ "description": "The username of the user.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "email",
+ "role",
+ "userId",
+ "username"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
+ },
"vercel:index/getProjectOidcTokenConfig:getProjectOidcTokenConfig": {
"properties": {
"enabled": {
@@ -1274,6 +1418,28 @@
"requiredInputs": []
}
}
+ },
+ "vercel:index/getTeamMemberProject:getTeamMemberProject": {
+ "properties": {
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the project that the user should be granted access to.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The role that the user should have in the project.\n"
+ }
+ },
+ "type": "object",
+ "required": [
+ "projectId",
+ "role"
+ ],
+ "language": {
+ "nodejs": {
+ "requiredInputs": []
+ }
+ }
}
},
"provider": {
@@ -1302,6 +1468,117 @@
}
},
"resources": {
+ "vercel:index/accessGroup:AccessGroup": {
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the Access Group\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has\nnot been set in the provider.\n"
+ }
+ },
+ "required": [
+ "name",
+ "teamId"
+ ],
+ "inputProperties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the Access Group\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has\nnot been set in the provider.\n"
+ }
+ },
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering AccessGroup resources.\n",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "The name of the Access Group\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has\nnot been set in the provider.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "vercel:index/accessGroupProject:AccessGroupProject": {
+ "properties": {
+ "accessGroupId": {
+ "type": "string",
+ "description": "The ID of the Access Group.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The Project ID to assign to the access group.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the team the access group project should exist under. Required when configuring a team resource if a default\nteam has not been set in the provider.\n"
+ }
+ },
+ "required": [
+ "accessGroupId",
+ "projectId",
+ "role",
+ "teamId"
+ ],
+ "inputProperties": {
+ "accessGroupId": {
+ "type": "string",
+ "description": "The ID of the Access Group.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The Project ID to assign to the access group.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the team the access group project should exist under. Required when configuring a team resource if a default\nteam has not been set in the provider.\n"
+ }
+ },
+ "requiredInputs": [
+ "accessGroupId",
+ "projectId",
+ "role"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering AccessGroupProject resources.\n",
+ "properties": {
+ "accessGroupId": {
+ "type": "string",
+ "description": "The ID of the Access Group.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The Project ID to assign to the access group.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the team the access group project should exist under. Required when configuring a team resource if a default\nteam has not been set in the provider.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"vercel:index/alias:Alias": {
"properties": {
"alias": {
@@ -1431,75 +1708,157 @@
"type": "object"
}
},
- "vercel:index/deployment:Deployment": {
+ "vercel:index/customEnvironment:CustomEnvironment": {
"properties": {
- "deleteOnDestroy": {
- "type": "boolean"
- },
- "domains": {
- "type": "array",
- "items": {
- "type": "string"
- },
- "description": "A list of all the domains (default domains, staging domains and production domains) that were assigned upon deployment\ncreation.\n"
- },
- "environment": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of environment variable names to values. These are specific to a Deployment, and can also be configured on the\n`vercel.Project` resource.\n"
- },
- "files": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "description": "A map of files to be uploaded for the deployment. This should be provided by a `vercel.getProjectDirectory` or\n`vercel.getFile` data source. Required if `git_source` is not set.\n"
+ "branchTracking": {
+ "$ref": "#/types/vercel:index/CustomEnvironmentBranchTracking:CustomEnvironmentBranchTracking",
+ "description": "The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.\n"
},
- "pathPrefix": {
+ "description": {
"type": "string",
- "description": "If specified then the `path_prefix` will be stripped from the start of file paths as they are uploaded to Vercel. If\nthis is omitted, then any leading `../`s will be stripped.\n"
+ "description": "A description of what the environment is.\n"
},
- "production": {
- "type": "boolean",
- "description": "true if the deployment is a production deployment, meaning production aliases will be assigned.\n"
- },
- "projectId": {
+ "name": {
"type": "string",
- "description": "The project ID to add the deployment to.\n"
- },
- "projectSettings": {
- "$ref": "#/types/vercel:index/DeploymentProjectSettings:DeploymentProjectSettings",
- "description": "Project settings that will be applied to the deployment.\n"
+ "description": "The name of the environment.\n"
},
- "ref": {
+ "projectId": {
"type": "string",
- "description": "The branch or commit hash that should be deployed. Note this will only work if the project is configured to use a Git\nrepository. Required if `files` is not set.\n"
+ "description": "The ID of the existing Vercel Project.\n"
},
"teamId": {
"type": "string",
- "description": "The team ID to add the deployment to. Required when configuring a team resource if a default team has not been set in\nthe provider.\n"
- },
- "url": {
- "type": "string",
- "description": "A unique URL that is automatically generated for a deployment.\n"
+ "description": "The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the\nprovider.\n"
}
},
"required": [
- "domains",
- "production",
+ "branchTracking",
+ "description",
+ "name",
"projectId",
- "teamId",
- "url"
+ "teamId"
],
"inputProperties": {
- "deleteOnDestroy": {
- "type": "boolean"
+ "branchTracking": {
+ "$ref": "#/types/vercel:index/CustomEnvironmentBranchTracking:CustomEnvironmentBranchTracking",
+ "description": "The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.\n"
},
- "environment": {
- "type": "object",
- "additionalProperties": {
+ "description": {
+ "type": "string",
+ "description": "A description of what the environment is.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the environment.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Project.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the\nprovider.\n"
+ }
+ },
+ "requiredInputs": [
+ "projectId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering CustomEnvironment resources.\n",
+ "properties": {
+ "branchTracking": {
+ "$ref": "#/types/vercel:index/CustomEnvironmentBranchTracking:CustomEnvironmentBranchTracking",
+ "description": "The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.\n"
+ },
+ "description": {
+ "type": "string",
+ "description": "A description of what the environment is.\n"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the environment.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Project.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the\nprovider.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "vercel:index/deployment:Deployment": {
+ "properties": {
+ "deleteOnDestroy": {
+ "type": "boolean"
+ },
+ "domains": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "A list of all the domains (default domains, staging domains and production domains) that were assigned upon deployment\ncreation.\n"
+ },
+ "environment": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of environment variable names to values. These are specific to a Deployment, and can also be configured on the\n`vercel.Project` resource.\n"
+ },
+ "files": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "A map of files to be uploaded for the deployment. This should be provided by a `vercel.getProjectDirectory` or\n`vercel.getFile` data source. Required if `git_source` is not set.\n"
+ },
+ "pathPrefix": {
+ "type": "string",
+ "description": "If specified then the `path_prefix` will be stripped from the start of file paths as they are uploaded to Vercel. If\nthis is omitted, then any leading `../`s will be stripped.\n"
+ },
+ "production": {
+ "type": "boolean",
+ "description": "true if the deployment is a production deployment, meaning production aliases will be assigned.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The project ID to add the deployment to.\n"
+ },
+ "projectSettings": {
+ "$ref": "#/types/vercel:index/DeploymentProjectSettings:DeploymentProjectSettings",
+ "description": "Project settings that will be applied to the deployment.\n"
+ },
+ "ref": {
+ "type": "string",
+ "description": "The branch or commit hash that should be deployed. Note this will only work if the project is configured to use a Git\nrepository. Required if `files` is not set.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The team ID to add the deployment to. Required when configuring a team resource if a default team has not been set in\nthe provider.\n"
+ },
+ "url": {
+ "type": "string",
+ "description": "A unique URL that is automatically generated for a deployment.\n"
+ }
+ },
+ "required": [
+ "domains",
+ "production",
+ "projectId",
+ "teamId",
+ "url"
+ ],
+ "inputProperties": {
+ "deleteOnDestroy": {
+ "type": "boolean"
+ },
+ "environment": {
+ "type": "object",
+ "additionalProperties": {
"type": "string"
},
"description": "A map of environment variable names to values. These are specific to a Deployment, and can also be configured on the\n`vercel.Project` resource.\n"
@@ -2319,11 +2678,12 @@
},
"protectionBypassForAutomation": {
"type": "boolean",
- "description": "Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production\nDeployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the\n`password_protection_for_automation_secret` field.\n"
+ "description": "Allow automation services to bypass Deployment Protection on this project when using an HTTP header named\n`x-vercel-protection-bypass` with a value of the `protection_bypass_for_automation_secret` field.\n"
},
"protectionBypassForAutomationSecret": {
"type": "string",
- "description": "If `protection_bypass_for_automation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass\nVercel Authentication and Password Protection for both Preview and Production Deployments.\n"
+ "description": "If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise\na secret will be generated.\n",
+ "secret": true
},
"publicSource": {
"type": "boolean",
@@ -2469,7 +2829,12 @@
},
"protectionBypassForAutomation": {
"type": "boolean",
- "description": "Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production\nDeployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the\n`password_protection_for_automation_secret` field.\n"
+ "description": "Allow automation services to bypass Deployment Protection on this project when using an HTTP header named\n`x-vercel-protection-bypass` with a value of the `protection_bypass_for_automation_secret` field.\n"
+ },
+ "protectionBypassForAutomationSecret": {
+ "type": "string",
+ "description": "If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise\na secret will be generated.\n",
+ "secret": true
},
"publicSource": {
"type": "boolean",
@@ -2600,11 +2965,12 @@
},
"protectionBypassForAutomation": {
"type": "boolean",
- "description": "Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production\nDeployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the\n`password_protection_for_automation_secret` field.\n"
+ "description": "Allow automation services to bypass Deployment Protection on this project when using an HTTP header named\n`x-vercel-protection-bypass` with a value of the `protection_bypass_for_automation_secret` field.\n"
},
"protectionBypassForAutomationSecret": {
"type": "string",
- "description": "If `protection_bypass_for_automation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass\nVercel Authentication and Password Protection for both Preview and Production Deployments.\n"
+ "description": "If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise\na secret will be generated.\n",
+ "secret": true
},
"publicSource": {
"type": "boolean",
@@ -2739,6 +3105,10 @@
},
"vercel:index/projectDomain:ProjectDomain": {
"properties": {
+ "customEnvironmentId": {
+ "type": "string",
+ "description": "The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be\nassigned the domain name.\n"
+ },
"domain": {
"type": "string",
"description": "The domain name to associate with the project.\n"
@@ -2770,6 +3140,10 @@
"teamId"
],
"inputProperties": {
+ "customEnvironmentId": {
+ "type": "string",
+ "description": "The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be\nassigned the domain name.\n"
+ },
"domain": {
"type": "string",
"description": "The domain name to associate with the project.\n"
@@ -2802,6 +3176,10 @@
"stateInputs": {
"description": "Input properties used for looking up and filtering ProjectDomain resources.\n",
"properties": {
+ "customEnvironmentId": {
+ "type": "string",
+ "description": "The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be\nassigned the domain name.\n"
+ },
"domain": {
"type": "string",
"description": "The domain name to associate with the project.\n"
@@ -2836,6 +3214,13 @@
"type": "string",
"description": "A comment explaining what the environment variable is for.\n"
},
+ "customEnvironmentIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or\n`custom_environment_ids` must be set.\n"
+ },
"gitBranch": {
"type": "string",
"description": "The git branch of the Environment Variable.\n"
@@ -2857,7 +3242,7 @@
"items": {
"type": "string"
},
- "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,\nor `development`.\n"
+ "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,\nor `development`. At least one of `target` or `custom_environment_ids` must be set.\n"
},
"teamId": {
"type": "string",
@@ -2871,6 +3256,7 @@
},
"required": [
"comment",
+ "customEnvironmentIds",
"key",
"projectId",
"sensitive",
@@ -2883,6 +3269,13 @@
"type": "string",
"description": "A comment explaining what the environment variable is for.\n"
},
+ "customEnvironmentIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or\n`custom_environment_ids` must be set.\n"
+ },
"gitBranch": {
"type": "string",
"description": "The git branch of the Environment Variable.\n"
@@ -2904,7 +3297,7 @@
"items": {
"type": "string"
},
- "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,\nor `development`.\n"
+ "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,\nor `development`. At least one of `target` or `custom_environment_ids` must be set.\n"
},
"teamId": {
"type": "string",
@@ -2919,7 +3312,6 @@
"requiredInputs": [
"key",
"projectId",
- "targets",
"value"
],
"stateInputs": {
@@ -2929,6 +3321,13 @@
"type": "string",
"description": "A comment explaining what the environment variable is for.\n"
},
+ "customEnvironmentIds": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or\n`custom_environment_ids` must be set.\n"
+ },
"gitBranch": {
"type": "string",
"description": "The git branch of the Environment Variable.\n"
@@ -2950,7 +3349,7 @@
"items": {
"type": "string"
},
- "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,\nor `development`.\n"
+ "description": "The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,\nor `development`. At least one of `target` or `custom_environment_ids` must be set.\n"
},
"teamId": {
"type": "string",
@@ -3031,6 +3430,72 @@
"type": "object"
}
},
+ "vercel:index/projectMembers:ProjectMembers": {
+ "properties": {
+ "members": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/ProjectMembersMember:ProjectMembersMember"
+ },
+ "description": "The set of members to manage for this project.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Project.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the\nprovider.\n"
+ }
+ },
+ "required": [
+ "members",
+ "projectId",
+ "teamId"
+ ],
+ "inputProperties": {
+ "members": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/ProjectMembersMember:ProjectMembersMember"
+ },
+ "description": "The set of members to manage for this project.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Project.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the\nprovider.\n"
+ }
+ },
+ "requiredInputs": [
+ "members",
+ "projectId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering ProjectMembers resources.\n",
+ "properties": {
+ "members": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/ProjectMembersMember:ProjectMembersMember"
+ },
+ "description": "The set of members to manage for this project.\n"
+ },
+ "projectId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Project.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the\nprovider.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"vercel:index/sharedEnvironmentVariable:SharedEnvironmentVariable": {
"properties": {
"comment": {
@@ -3181,10 +3646,12 @@
"description": "Hostname that'll be matched with emails on sign-up to automatically join the Team.\n"
},
"enablePreviewFeedback": {
- "type": "string"
+ "type": "string",
+ "description": "Enables the Vercel Toolbar on your preview deployments: one of on, off or default.\n"
},
"enableProductionFeedback": {
- "type": "string"
+ "type": "string",
+ "description": "Enables the Vercel Toolbar on your production deployments: one of on, off or default.\n"
},
"hideIpAddresses": {
"type": "boolean",
@@ -3215,7 +3682,8 @@
"description": "Configuration for SAML authentication.\n"
},
"sensitiveEnvironmentVariablePolicy": {
- "type": "string"
+ "type": "string",
+ "description": "Ensures that all environment variables created by members of this team will be created as Sensitive Environment\nVariables which can only be decrypted by Vercel's deployment system.: one of on, off or default.\n"
},
"slug": {
"type": "string",
@@ -3254,10 +3722,12 @@
"description": "Hostname that'll be matched with emails on sign-up to automatically join the Team.\n"
},
"enablePreviewFeedback": {
- "type": "string"
+ "type": "string",
+ "description": "Enables the Vercel Toolbar on your preview deployments: one of on, off or default.\n"
},
"enableProductionFeedback": {
- "type": "string"
+ "type": "string",
+ "description": "Enables the Vercel Toolbar on your production deployments: one of on, off or default.\n"
},
"hideIpAddresses": {
"type": "boolean",
@@ -3284,7 +3754,8 @@
"description": "Configuration for SAML authentication.\n"
},
"sensitiveEnvironmentVariablePolicy": {
- "type": "string"
+ "type": "string",
+ "description": "Ensures that all environment variables created by members of this team will be created as Sensitive Environment\nVariables which can only be decrypted by Vercel's deployment system.: one of on, off or default.\n"
},
"slug": {
"type": "string",
@@ -3310,10 +3781,12 @@
"description": "Hostname that'll be matched with emails on sign-up to automatically join the Team.\n"
},
"enablePreviewFeedback": {
- "type": "string"
+ "type": "string",
+ "description": "Enables the Vercel Toolbar on your preview deployments: one of on, off or default.\n"
},
"enableProductionFeedback": {
- "type": "string"
+ "type": "string",
+ "description": "Enables the Vercel Toolbar on your production deployments: one of on, off or default.\n"
},
"hideIpAddresses": {
"type": "boolean",
@@ -3344,7 +3817,8 @@
"description": "Configuration for SAML authentication.\n"
},
"sensitiveEnvironmentVariablePolicy": {
- "type": "string"
+ "type": "string",
+ "description": "Ensures that all environment variables created by members of this team will be created as Sensitive Environment\nVariables which can only be decrypted by Vercel's deployment system.: one of on, off or default.\n"
},
"slug": {
"type": "string",
@@ -3354,6 +3828,108 @@
"type": "object"
}
},
+ "vercel:index/teamMember:TeamMember": {
+ "properties": {
+ "accessGroups": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be\nspecified. A set of access groups IDs that the user should be granted access to.\n"
+ },
+ "projects": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/TeamMemberProject:TeamMemberProject"
+ },
+ "description": "If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be\nspecified. A set of projects that the user should be granted access to, along with their role in each project.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or\n'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Team.\n"
+ },
+ "userId": {
+ "type": "string",
+ "description": "The ID of the user to add to the team.\n"
+ }
+ },
+ "required": [
+ "accessGroups",
+ "projects",
+ "role",
+ "teamId",
+ "userId"
+ ],
+ "inputProperties": {
+ "accessGroups": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be\nspecified. A set of access groups IDs that the user should be granted access to.\n"
+ },
+ "projects": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/TeamMemberProject:TeamMemberProject"
+ },
+ "description": "If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be\nspecified. A set of projects that the user should be granted access to, along with their role in each project.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or\n'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Team.\n"
+ },
+ "userId": {
+ "type": "string",
+ "description": "The ID of the user to add to the team.\n"
+ }
+ },
+ "requiredInputs": [
+ "role",
+ "teamId",
+ "userId"
+ ],
+ "stateInputs": {
+ "description": "Input properties used for looking up and filtering TeamMember resources.\n",
+ "properties": {
+ "accessGroups": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be\nspecified. A set of access groups IDs that the user should be granted access to.\n"
+ },
+ "projects": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/TeamMemberProject:TeamMemberProject"
+ },
+ "description": "If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be\nspecified. A set of projects that the user should be granted access to, along with their role in each project.\n"
+ },
+ "role": {
+ "type": "string",
+ "description": "The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or\n'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.\n"
+ },
+ "teamId": {
+ "type": "string",
+ "description": "The ID of the existing Vercel Team.\n"
+ },
+ "userId": {
+ "type": "string",
+ "description": "The ID of the user to add to the team.\n"
+ }
+ },
+ "type": "object"
+ }
+ },
"vercel:index/webhook:Webhook": {
"properties": {
"endpoint": {
@@ -3454,6 +4030,93 @@
}
},
"functions": {
+ "vercel:index/getAccessGroup:getAccessGroup": {
+ "inputs": {
+ "description": "A collection of arguments for invoking getAccessGroup.\n",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "id"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getAccessGroup.\n",
+ "properties": {
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "id",
+ "name",
+ "teamId"
+ ]
+ }
+ },
+ "vercel:index/getAccessGroupProject:getAccessGroupProject": {
+ "inputs": {
+ "description": "A collection of arguments for invoking getAccessGroupProject.\n",
+ "properties": {
+ "accessGroupId": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "accessGroupId",
+ "projectId"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getAccessGroupProject.\n",
+ "properties": {
+ "accessGroupId": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string",
+ "description": "The provider-assigned unique ID for this managed resource.\n"
+ },
+ "projectId": {
+ "type": "string"
+ },
+ "role": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "accessGroupId",
+ "projectId",
+ "role",
+ "teamId",
+ "id"
+ ]
+ }
+ },
"vercel:index/getAlias:getAlias": {
"inputs": {
"description": "A collection of arguments for invoking getAlias.\n",
@@ -3536,6 +4199,59 @@
]
}
},
+ "vercel:index/getCustomEnvironment:getCustomEnvironment": {
+ "inputs": {
+ "description": "A collection of arguments for invoking getCustomEnvironment.\n",
+ "properties": {
+ "name": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "name",
+ "projectId"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getCustomEnvironment.\n",
+ "properties": {
+ "branchTracking": {
+ "$ref": "#/types/vercel:index/getCustomEnvironmentBranchTracking:getCustomEnvironmentBranchTracking"
+ },
+ "description": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "projectId": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "branchTracking",
+ "description",
+ "id",
+ "name",
+ "projectId",
+ "teamId"
+ ]
+ }
+ },
"vercel:index/getDeployment:getDeployment": {
"inputs": {
"description": "A collection of arguments for invoking getDeployment.\n",
@@ -4040,6 +4756,10 @@
"protectionBypassForAutomation": {
"type": "boolean"
},
+ "protectionBypassForAutomationSecret": {
+ "type": "string",
+ "secret": true
+ },
"publicSource": {
"type": "boolean"
},
@@ -4091,6 +4811,7 @@
"previewComments",
"prioritiseProductionBuilds",
"protectionBypassForAutomation",
+ "protectionBypassForAutomationSecret",
"publicSource",
"resourceConfig",
"rootDirectory",
@@ -4192,6 +4913,50 @@
]
}
},
+ "vercel:index/getProjectMembers:getProjectMembers": {
+ "inputs": {
+ "description": "A collection of arguments for invoking getProjectMembers.\n",
+ "properties": {
+ "projectId": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "projectId"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getProjectMembers.\n",
+ "properties": {
+ "id": {
+ "type": "string",
+ "description": "The provider-assigned unique ID for this managed resource.\n"
+ },
+ "members": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/getProjectMembersMember:getProjectMembersMember"
+ }
+ },
+ "projectId": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "members",
+ "projectId",
+ "id"
+ ]
+ }
+ },
"vercel:index/getSharedEnvironmentVariable:getSharedEnvironmentVariable": {
"inputs": {
"description": "A collection of arguments for invoking getSharedEnvironmentVariable.\n",
@@ -4339,6 +5104,62 @@
"slug"
]
}
+ },
+ "vercel:index/getTeamMember:getTeamMember": {
+ "inputs": {
+ "description": "A collection of arguments for invoking getTeamMember.\n",
+ "properties": {
+ "teamId": {
+ "type": "string"
+ },
+ "userId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "teamId",
+ "userId"
+ ]
+ },
+ "outputs": {
+ "description": "A collection of values returned by getTeamMember.\n",
+ "properties": {
+ "accessGroups": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ }
+ },
+ "id": {
+ "type": "string"
+ },
+ "projects": {
+ "type": "array",
+ "items": {
+ "$ref": "#/types/vercel:index/getTeamMemberProject:getTeamMemberProject"
+ }
+ },
+ "role": {
+ "type": "string"
+ },
+ "teamId": {
+ "type": "string"
+ },
+ "userId": {
+ "type": "string"
+ }
+ },
+ "type": "object",
+ "required": [
+ "accessGroups",
+ "id",
+ "projects",
+ "role",
+ "teamId",
+ "userId"
+ ]
+ }
}
}
}
\ No newline at end of file
diff --git a/provider/go.mod b/provider/go.mod
index e6e4cee..09d78c8 100644
--- a/provider/go.mod
+++ b/provider/go.mod
@@ -8,7 +8,7 @@ require (
github.com/pulumi/pulumi-terraform-bridge/pf v0.45.0
github.com/pulumi/pulumi-terraform-bridge/v3 v3.96.0
github.com/pulumi/pulumi/sdk/v3 v3.142.0
- github.com/vercel/terraform-provider-vercel/v2 v2.3.0
+ github.com/vercel/terraform-provider-vercel/v2 v2.8.0
golang.org/x/text v0.21.0
)
diff --git a/provider/go.sum b/provider/go.sum
index 9e6080e..7a1cbf2 100644
--- a/provider/go.sum
+++ b/provider/go.sum
@@ -811,8 +811,8 @@ github.com/uber/jaeger-lib v2.4.1+incompatible h1:td4jdvLcExb4cBISKIpHuGoVXh+dVK
github.com/uber/jaeger-lib v2.4.1+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U=
github.com/ulikunitz/xz v0.5.10 h1:t92gobL9l3HE202wg3rlk19F6X+JOxl9BBrCCMYEYd8=
github.com/ulikunitz/xz v0.5.10/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
-github.com/vercel/terraform-provider-vercel/v2 v2.3.0 h1:CjLv4hJXSVRT0Ozgo7BLJIBCEyw4Z/c5fAREkNdvyV0=
-github.com/vercel/terraform-provider-vercel/v2 v2.3.0/go.mod h1:Ja1DHbNme08cIo9q5uqeWASuLpp55H8+pHn3e4AYj3g=
+github.com/vercel/terraform-provider-vercel/v2 v2.8.0 h1:jKkRGglZ2Qlre2TdRcRNQjP3F2xly+LjqLX4JfSJbZk=
+github.com/vercel/terraform-provider-vercel/v2 v2.8.0/go.mod h1:Ja1DHbNme08cIo9q5uqeWASuLpp55H8+pHn3e4AYj3g=
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI=
github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
diff --git a/provider/resources.go b/provider/resources.go
index ad616da..ed97194 100644
--- a/provider/resources.go
+++ b/provider/resources.go
@@ -106,6 +106,23 @@ func Provider() tfbridge.ProviderInfo {
return resource.ID(state["project_id"].StringValue()), nil
},
},
+ "vercel_project_members": {
+ ComputeID: func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) {
+ return resource.ID(state["project_id"].StringValue()), nil
+ },
+ },
+ "vercel_access_group_project": {
+ ComputeID: func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) {
+ parts := []string{state["access_group_id"].StringValue(), state["project_id"].StringValue()}
+ return resource.ID(strings.Join(parts, "/")), nil
+ },
+ },
+ "vercel_team_member": {
+ ComputeID: func(ctx context.Context, state resource.PropertyMap) (resource.ID, error) {
+ parts := []string{state["team_id"].StringValue(), state["email"].StringValue()}
+ return resource.ID(strings.Join(parts, "/")), nil
+ },
+ },
},
JavaScript: &tfbridge.JavaScriptInfo{
PackageName: fmt.Sprintf("@%s/%s", publisher, mainPkg),
diff --git a/sdk/dotnet/AccessGroup.cs b/sdk/dotnet/AccessGroup.cs
new file mode 100644
index 0000000..b31dd6c
--- /dev/null
+++ b/sdk/dotnet/AccessGroup.cs
@@ -0,0 +1,115 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ [VercelResourceType("vercel:index/accessGroup:AccessGroup")]
+ public partial class AccessGroup : global::Pulumi.CustomResource
+ {
+ ///
+ /// The name of the Access Group
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ /// not been set in the provider.
+ ///
+ [Output("teamId")]
+ public Output TeamId { get; private set; } = null!;
+
+
+ ///
+ /// Create a AccessGroup resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public AccessGroup(string name, AccessGroupArgs? args = null, CustomResourceOptions? options = null)
+ : base("vercel:index/accessGroup:AccessGroup", name, args ?? new AccessGroupArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private AccessGroup(string name, Input id, AccessGroupState? state = null, CustomResourceOptions? options = null)
+ : base("vercel:index/accessGroup:AccessGroup", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing AccessGroup resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static AccessGroup Get(string name, Input id, AccessGroupState? state = null, CustomResourceOptions? options = null)
+ {
+ return new AccessGroup(name, id, state, options);
+ }
+ }
+
+ public sealed class AccessGroupArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The name of the Access Group
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ /// not been set in the provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public AccessGroupArgs()
+ {
+ }
+ public static new AccessGroupArgs Empty => new AccessGroupArgs();
+ }
+
+ public sealed class AccessGroupState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The name of the Access Group
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ /// not been set in the provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public AccessGroupState()
+ {
+ }
+ public static new AccessGroupState Empty => new AccessGroupState();
+ }
+}
diff --git a/sdk/dotnet/AccessGroupProject.cs b/sdk/dotnet/AccessGroupProject.cs
new file mode 100644
index 0000000..4eb633e
--- /dev/null
+++ b/sdk/dotnet/AccessGroupProject.cs
@@ -0,0 +1,151 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ [VercelResourceType("vercel:index/accessGroupProject:AccessGroupProject")]
+ public partial class AccessGroupProject : global::Pulumi.CustomResource
+ {
+ ///
+ /// The ID of the Access Group.
+ ///
+ [Output("accessGroupId")]
+ public Output AccessGroupId { get; private set; } = null!;
+
+ ///
+ /// The Project ID to assign to the access group.
+ ///
+ [Output("projectId")]
+ public Output ProjectId { get; private set; } = null!;
+
+ ///
+ /// The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ ///
+ [Output("role")]
+ public Output Role { get; private set; } = null!;
+
+ ///
+ /// The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ /// team has not been set in the provider.
+ ///
+ [Output("teamId")]
+ public Output TeamId { get; private set; } = null!;
+
+
+ ///
+ /// Create a AccessGroupProject resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public AccessGroupProject(string name, AccessGroupProjectArgs args, CustomResourceOptions? options = null)
+ : base("vercel:index/accessGroupProject:AccessGroupProject", name, args ?? new AccessGroupProjectArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private AccessGroupProject(string name, Input id, AccessGroupProjectState? state = null, CustomResourceOptions? options = null)
+ : base("vercel:index/accessGroupProject:AccessGroupProject", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing AccessGroupProject resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static AccessGroupProject Get(string name, Input id, AccessGroupProjectState? state = null, CustomResourceOptions? options = null)
+ {
+ return new AccessGroupProject(name, id, state, options);
+ }
+ }
+
+ public sealed class AccessGroupProjectArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ID of the Access Group.
+ ///
+ [Input("accessGroupId", required: true)]
+ public Input AccessGroupId { get; set; } = null!;
+
+ ///
+ /// The Project ID to assign to the access group.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ ///
+ /// The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ ///
+ /// The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ /// team has not been set in the provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public AccessGroupProjectArgs()
+ {
+ }
+ public static new AccessGroupProjectArgs Empty => new AccessGroupProjectArgs();
+ }
+
+ public sealed class AccessGroupProjectState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ID of the Access Group.
+ ///
+ [Input("accessGroupId")]
+ public Input? AccessGroupId { get; set; }
+
+ ///
+ /// The Project ID to assign to the access group.
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ ///
+ [Input("role")]
+ public Input? Role { get; set; }
+
+ ///
+ /// The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ /// team has not been set in the provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public AccessGroupProjectState()
+ {
+ }
+ public static new AccessGroupProjectState Empty => new AccessGroupProjectState();
+ }
+}
diff --git a/sdk/dotnet/CustomEnvironment.cs b/sdk/dotnet/CustomEnvironment.cs
new file mode 100644
index 0000000..687d370
--- /dev/null
+++ b/sdk/dotnet/CustomEnvironment.cs
@@ -0,0 +1,169 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ [VercelResourceType("vercel:index/customEnvironment:CustomEnvironment")]
+ public partial class CustomEnvironment : global::Pulumi.CustomResource
+ {
+ ///
+ /// The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ ///
+ [Output("branchTracking")]
+ public Output BranchTracking { get; private set; } = null!;
+
+ ///
+ /// A description of what the environment is.
+ ///
+ [Output("description")]
+ public Output Description { get; private set; } = null!;
+
+ ///
+ /// The name of the environment.
+ ///
+ [Output("name")]
+ public Output Name { get; private set; } = null!;
+
+ ///
+ /// The ID of the existing Vercel Project.
+ ///
+ [Output("projectId")]
+ public Output ProjectId { get; private set; } = null!;
+
+ ///
+ /// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ /// provider.
+ ///
+ [Output("teamId")]
+ public Output TeamId { get; private set; } = null!;
+
+
+ ///
+ /// Create a CustomEnvironment resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public CustomEnvironment(string name, CustomEnvironmentArgs args, CustomResourceOptions? options = null)
+ : base("vercel:index/customEnvironment:CustomEnvironment", name, args ?? new CustomEnvironmentArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private CustomEnvironment(string name, Input id, CustomEnvironmentState? state = null, CustomResourceOptions? options = null)
+ : base("vercel:index/customEnvironment:CustomEnvironment", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing CustomEnvironment resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static CustomEnvironment Get(string name, Input id, CustomEnvironmentState? state = null, CustomResourceOptions? options = null)
+ {
+ return new CustomEnvironment(name, id, state, options);
+ }
+ }
+
+ public sealed class CustomEnvironmentArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ ///
+ [Input("branchTracking")]
+ public Input? BranchTracking { get; set; }
+
+ ///
+ /// A description of what the environment is.
+ ///
+ [Input("description")]
+ public Input? Description { get; set; }
+
+ ///
+ /// The name of the environment.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the existing Vercel Project.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ ///
+ /// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ /// provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public CustomEnvironmentArgs()
+ {
+ }
+ public static new CustomEnvironmentArgs Empty => new CustomEnvironmentArgs();
+ }
+
+ public sealed class CustomEnvironmentState : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ ///
+ [Input("branchTracking")]
+ public Input? BranchTracking { get; set; }
+
+ ///
+ /// A description of what the environment is.
+ ///
+ [Input("description")]
+ public Input? Description { get; set; }
+
+ ///
+ /// The name of the environment.
+ ///
+ [Input("name")]
+ public Input? Name { get; set; }
+
+ ///
+ /// The ID of the existing Vercel Project.
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ /// provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public CustomEnvironmentState()
+ {
+ }
+ public static new CustomEnvironmentState Empty => new CustomEnvironmentState();
+ }
+}
diff --git a/sdk/dotnet/GetAccessGroup.cs b/sdk/dotnet/GetAccessGroup.cs
new file mode 100644
index 0000000..ff93fef
--- /dev/null
+++ b/sdk/dotnet/GetAccessGroup.cs
@@ -0,0 +1,72 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ public static class GetAccessGroup
+ {
+ public static Task InvokeAsync(GetAccessGroupArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("vercel:index/getAccessGroup:getAccessGroup", args ?? new GetAccessGroupArgs(), options.WithDefaults());
+
+ public static Output Invoke(GetAccessGroupInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("vercel:index/getAccessGroup:getAccessGroup", args ?? new GetAccessGroupInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetAccessGroupArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("id", required: true)]
+ public string Id { get; set; } = null!;
+
+ [Input("teamId")]
+ public string? TeamId { get; set; }
+
+ public GetAccessGroupArgs()
+ {
+ }
+ public static new GetAccessGroupArgs Empty => new GetAccessGroupArgs();
+ }
+
+ public sealed class GetAccessGroupInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("id", required: true)]
+ public Input Id { get; set; } = null!;
+
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public GetAccessGroupInvokeArgs()
+ {
+ }
+ public static new GetAccessGroupInvokeArgs Empty => new GetAccessGroupInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetAccessGroupResult
+ {
+ public readonly string Id;
+ public readonly string Name;
+ public readonly string TeamId;
+
+ [OutputConstructor]
+ private GetAccessGroupResult(
+ string id,
+
+ string name,
+
+ string teamId)
+ {
+ Id = id;
+ Name = name;
+ TeamId = teamId;
+ }
+ }
+}
diff --git a/sdk/dotnet/GetAccessGroupProject.cs b/sdk/dotnet/GetAccessGroupProject.cs
new file mode 100644
index 0000000..c0195b7
--- /dev/null
+++ b/sdk/dotnet/GetAccessGroupProject.cs
@@ -0,0 +1,89 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ public static class GetAccessGroupProject
+ {
+ public static Task InvokeAsync(GetAccessGroupProjectArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("vercel:index/getAccessGroupProject:getAccessGroupProject", args ?? new GetAccessGroupProjectArgs(), options.WithDefaults());
+
+ public static Output Invoke(GetAccessGroupProjectInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("vercel:index/getAccessGroupProject:getAccessGroupProject", args ?? new GetAccessGroupProjectInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetAccessGroupProjectArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("accessGroupId", required: true)]
+ public string AccessGroupId { get; set; } = null!;
+
+ [Input("projectId", required: true)]
+ public string ProjectId { get; set; } = null!;
+
+ [Input("teamId")]
+ public string? TeamId { get; set; }
+
+ public GetAccessGroupProjectArgs()
+ {
+ }
+ public static new GetAccessGroupProjectArgs Empty => new GetAccessGroupProjectArgs();
+ }
+
+ public sealed class GetAccessGroupProjectInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("accessGroupId", required: true)]
+ public Input AccessGroupId { get; set; } = null!;
+
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public GetAccessGroupProjectInvokeArgs()
+ {
+ }
+ public static new GetAccessGroupProjectInvokeArgs Empty => new GetAccessGroupProjectInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetAccessGroupProjectResult
+ {
+ public readonly string AccessGroupId;
+ ///
+ /// The provider-assigned unique ID for this managed resource.
+ ///
+ public readonly string Id;
+ public readonly string ProjectId;
+ public readonly string Role;
+ public readonly string TeamId;
+
+ [OutputConstructor]
+ private GetAccessGroupProjectResult(
+ string accessGroupId,
+
+ string id,
+
+ string projectId,
+
+ string role,
+
+ string teamId)
+ {
+ AccessGroupId = accessGroupId;
+ Id = id;
+ ProjectId = projectId;
+ Role = role;
+ TeamId = teamId;
+ }
+ }
+}
diff --git a/sdk/dotnet/GetCustomEnvironment.cs b/sdk/dotnet/GetCustomEnvironment.cs
new file mode 100644
index 0000000..896b5bc
--- /dev/null
+++ b/sdk/dotnet/GetCustomEnvironment.cs
@@ -0,0 +1,90 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ public static class GetCustomEnvironment
+ {
+ public static Task InvokeAsync(GetCustomEnvironmentArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("vercel:index/getCustomEnvironment:getCustomEnvironment", args ?? new GetCustomEnvironmentArgs(), options.WithDefaults());
+
+ public static Output Invoke(GetCustomEnvironmentInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("vercel:index/getCustomEnvironment:getCustomEnvironment", args ?? new GetCustomEnvironmentInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetCustomEnvironmentArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("name", required: true)]
+ public string Name { get; set; } = null!;
+
+ [Input("projectId", required: true)]
+ public string ProjectId { get; set; } = null!;
+
+ [Input("teamId")]
+ public string? TeamId { get; set; }
+
+ public GetCustomEnvironmentArgs()
+ {
+ }
+ public static new GetCustomEnvironmentArgs Empty => new GetCustomEnvironmentArgs();
+ }
+
+ public sealed class GetCustomEnvironmentInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("name", required: true)]
+ public Input Name { get; set; } = null!;
+
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public GetCustomEnvironmentInvokeArgs()
+ {
+ }
+ public static new GetCustomEnvironmentInvokeArgs Empty => new GetCustomEnvironmentInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetCustomEnvironmentResult
+ {
+ public readonly Outputs.GetCustomEnvironmentBranchTrackingResult BranchTracking;
+ public readonly string Description;
+ public readonly string Id;
+ public readonly string Name;
+ public readonly string ProjectId;
+ public readonly string TeamId;
+
+ [OutputConstructor]
+ private GetCustomEnvironmentResult(
+ Outputs.GetCustomEnvironmentBranchTrackingResult branchTracking,
+
+ string description,
+
+ string id,
+
+ string name,
+
+ string projectId,
+
+ string teamId)
+ {
+ BranchTracking = branchTracking;
+ Description = description;
+ Id = id;
+ Name = name;
+ ProjectId = projectId;
+ TeamId = teamId;
+ }
+ }
+}
diff --git a/sdk/dotnet/GetProject.cs b/sdk/dotnet/GetProject.cs
index 6727a89..da4ad0b 100644
--- a/sdk/dotnet/GetProject.cs
+++ b/sdk/dotnet/GetProject.cs
@@ -76,6 +76,7 @@ public sealed class GetProjectResult
public readonly bool PreviewComments;
public readonly bool PrioritiseProductionBuilds;
public readonly bool ProtectionBypassForAutomation;
+ public readonly string ProtectionBypassForAutomationSecret;
public readonly bool PublicSource;
public readonly Outputs.GetProjectResourceConfigResult ResourceConfig;
public readonly string RootDirectory;
@@ -135,6 +136,8 @@ private GetProjectResult(
bool protectionBypassForAutomation,
+ string protectionBypassForAutomationSecret,
+
bool publicSource,
Outputs.GetProjectResourceConfigResult resourceConfig,
@@ -175,6 +178,7 @@ private GetProjectResult(
PreviewComments = previewComments;
PrioritiseProductionBuilds = prioritiseProductionBuilds;
ProtectionBypassForAutomation = protectionBypassForAutomation;
+ ProtectionBypassForAutomationSecret = protectionBypassForAutomationSecret;
PublicSource = publicSource;
ResourceConfig = resourceConfig;
RootDirectory = rootDirectory;
diff --git a/sdk/dotnet/GetProjectMembers.cs b/sdk/dotnet/GetProjectMembers.cs
new file mode 100644
index 0000000..64164c9
--- /dev/null
+++ b/sdk/dotnet/GetProjectMembers.cs
@@ -0,0 +1,79 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ public static class GetProjectMembers
+ {
+ public static Task InvokeAsync(GetProjectMembersArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("vercel:index/getProjectMembers:getProjectMembers", args ?? new GetProjectMembersArgs(), options.WithDefaults());
+
+ public static Output Invoke(GetProjectMembersInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("vercel:index/getProjectMembers:getProjectMembers", args ?? new GetProjectMembersInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetProjectMembersArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("projectId", required: true)]
+ public string ProjectId { get; set; } = null!;
+
+ [Input("teamId")]
+ public string? TeamId { get; set; }
+
+ public GetProjectMembersArgs()
+ {
+ }
+ public static new GetProjectMembersArgs Empty => new GetProjectMembersArgs();
+ }
+
+ public sealed class GetProjectMembersInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public GetProjectMembersInvokeArgs()
+ {
+ }
+ public static new GetProjectMembersInvokeArgs Empty => new GetProjectMembersInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetProjectMembersResult
+ {
+ ///
+ /// The provider-assigned unique ID for this managed resource.
+ ///
+ public readonly string Id;
+ public readonly ImmutableArray Members;
+ public readonly string ProjectId;
+ public readonly string? TeamId;
+
+ [OutputConstructor]
+ private GetProjectMembersResult(
+ string id,
+
+ ImmutableArray members,
+
+ string projectId,
+
+ string? teamId)
+ {
+ Id = id;
+ Members = members;
+ ProjectId = projectId;
+ TeamId = teamId;
+ }
+ }
+}
diff --git a/sdk/dotnet/GetTeamMember.cs b/sdk/dotnet/GetTeamMember.cs
new file mode 100644
index 0000000..6a33302
--- /dev/null
+++ b/sdk/dotnet/GetTeamMember.cs
@@ -0,0 +1,84 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ public static class GetTeamMember
+ {
+ public static Task InvokeAsync(GetTeamMemberArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.InvokeAsync("vercel:index/getTeamMember:getTeamMember", args ?? new GetTeamMemberArgs(), options.WithDefaults());
+
+ public static Output Invoke(GetTeamMemberInvokeArgs args, InvokeOptions? options = null)
+ => global::Pulumi.Deployment.Instance.Invoke("vercel:index/getTeamMember:getTeamMember", args ?? new GetTeamMemberInvokeArgs(), options.WithDefaults());
+ }
+
+
+ public sealed class GetTeamMemberArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("teamId", required: true)]
+ public string TeamId { get; set; } = null!;
+
+ [Input("userId", required: true)]
+ public string UserId { get; set; } = null!;
+
+ public GetTeamMemberArgs()
+ {
+ }
+ public static new GetTeamMemberArgs Empty => new GetTeamMemberArgs();
+ }
+
+ public sealed class GetTeamMemberInvokeArgs : global::Pulumi.InvokeArgs
+ {
+ [Input("teamId", required: true)]
+ public Input TeamId { get; set; } = null!;
+
+ [Input("userId", required: true)]
+ public Input UserId { get; set; } = null!;
+
+ public GetTeamMemberInvokeArgs()
+ {
+ }
+ public static new GetTeamMemberInvokeArgs Empty => new GetTeamMemberInvokeArgs();
+ }
+
+
+ [OutputType]
+ public sealed class GetTeamMemberResult
+ {
+ public readonly ImmutableArray AccessGroups;
+ public readonly string Id;
+ public readonly ImmutableArray Projects;
+ public readonly string Role;
+ public readonly string TeamId;
+ public readonly string UserId;
+
+ [OutputConstructor]
+ private GetTeamMemberResult(
+ ImmutableArray accessGroups,
+
+ string id,
+
+ ImmutableArray projects,
+
+ string role,
+
+ string teamId,
+
+ string userId)
+ {
+ AccessGroups = accessGroups;
+ Id = id;
+ Projects = projects;
+ Role = role;
+ TeamId = teamId;
+ UserId = userId;
+ }
+ }
+}
diff --git a/sdk/dotnet/Inputs/CustomEnvironmentBranchTrackingArgs.cs b/sdk/dotnet/Inputs/CustomEnvironmentBranchTrackingArgs.cs
new file mode 100644
index 0000000..1e1debe
--- /dev/null
+++ b/sdk/dotnet/Inputs/CustomEnvironmentBranchTrackingArgs.cs
@@ -0,0 +1,33 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Inputs
+{
+
+ public sealed class CustomEnvironmentBranchTrackingArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The pattern of the branch name to track.
+ ///
+ [Input("pattern", required: true)]
+ public Input Pattern { get; set; } = null!;
+
+ ///
+ /// How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ ///
+ [Input("type", required: true)]
+ public Input Type { get; set; } = null!;
+
+ public CustomEnvironmentBranchTrackingArgs()
+ {
+ }
+ public static new CustomEnvironmentBranchTrackingArgs Empty => new CustomEnvironmentBranchTrackingArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/CustomEnvironmentBranchTrackingGetArgs.cs b/sdk/dotnet/Inputs/CustomEnvironmentBranchTrackingGetArgs.cs
new file mode 100644
index 0000000..0ecd7c7
--- /dev/null
+++ b/sdk/dotnet/Inputs/CustomEnvironmentBranchTrackingGetArgs.cs
@@ -0,0 +1,33 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Inputs
+{
+
+ public sealed class CustomEnvironmentBranchTrackingGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The pattern of the branch name to track.
+ ///
+ [Input("pattern", required: true)]
+ public Input Pattern { get; set; } = null!;
+
+ ///
+ /// How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ ///
+ [Input("type", required: true)]
+ public Input Type { get; set; } = null!;
+
+ public CustomEnvironmentBranchTrackingGetArgs()
+ {
+ }
+ public static new CustomEnvironmentBranchTrackingGetArgs Empty => new CustomEnvironmentBranchTrackingGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ProjectEnvironmentArgs.cs b/sdk/dotnet/Inputs/ProjectEnvironmentArgs.cs
index b060549..eb0598d 100644
--- a/sdk/dotnet/Inputs/ProjectEnvironmentArgs.cs
+++ b/sdk/dotnet/Inputs/ProjectEnvironmentArgs.cs
@@ -19,6 +19,18 @@ public sealed class ProjectEnvironmentArgs : global::Pulumi.ResourceArgs
[Input("comment")]
public Input? Comment { get; set; }
+ [Input("customEnvironmentIds")]
+ private InputList? _customEnvironmentIds;
+
+ ///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.
+ ///
+ public InputList CustomEnvironmentIds
+ {
+ get => _customEnvironmentIds ?? (_customEnvironmentIds = new InputList());
+ set => _customEnvironmentIds = value;
+ }
+
///
/// The git branch of the Environment Variable.
///
@@ -43,11 +55,11 @@ public sealed class ProjectEnvironmentArgs : global::Pulumi.ResourceArgs
[Input("sensitive")]
public Input? Sensitive { get; set; }
- [Input("targets", required: true)]
+ [Input("targets")]
private InputList? _targets;
///
- /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public InputList Targets
{
diff --git a/sdk/dotnet/Inputs/ProjectEnvironmentGetArgs.cs b/sdk/dotnet/Inputs/ProjectEnvironmentGetArgs.cs
index e9e6f64..0195246 100644
--- a/sdk/dotnet/Inputs/ProjectEnvironmentGetArgs.cs
+++ b/sdk/dotnet/Inputs/ProjectEnvironmentGetArgs.cs
@@ -19,6 +19,18 @@ public sealed class ProjectEnvironmentGetArgs : global::Pulumi.ResourceArgs
[Input("comment")]
public Input? Comment { get; set; }
+ [Input("customEnvironmentIds")]
+ private InputList? _customEnvironmentIds;
+
+ ///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.
+ ///
+ public InputList CustomEnvironmentIds
+ {
+ get => _customEnvironmentIds ?? (_customEnvironmentIds = new InputList());
+ set => _customEnvironmentIds = value;
+ }
+
///
/// The git branch of the Environment Variable.
///
@@ -43,11 +55,11 @@ public sealed class ProjectEnvironmentGetArgs : global::Pulumi.ResourceArgs
[Input("sensitive")]
public Input? Sensitive { get; set; }
- [Input("targets", required: true)]
+ [Input("targets")]
private InputList? _targets;
///
- /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public InputList Targets
{
diff --git a/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableArgs.cs b/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableArgs.cs
index 8978fb4..51c1fcd 100644
--- a/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableArgs.cs
+++ b/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableArgs.cs
@@ -19,6 +19,18 @@ public sealed class ProjectEnvironmentVariablesVariableArgs : global::Pulumi.Res
[Input("comment")]
public Input? Comment { get; set; }
+ [Input("customEnvironmentIds")]
+ private InputList? _customEnvironmentIds;
+
+ ///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.
+ ///
+ public InputList CustomEnvironmentIds
+ {
+ get => _customEnvironmentIds ?? (_customEnvironmentIds = new InputList());
+ set => _customEnvironmentIds = value;
+ }
+
///
/// The git branch of the Environment Variable.
///
@@ -43,11 +55,11 @@ public sealed class ProjectEnvironmentVariablesVariableArgs : global::Pulumi.Res
[Input("sensitive")]
public Input? Sensitive { get; set; }
- [Input("targets", required: true)]
+ [Input("targets")]
private InputList? _targets;
///
- /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public InputList Targets
{
diff --git a/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableGetArgs.cs b/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableGetArgs.cs
index 7dea61c..df54851 100644
--- a/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableGetArgs.cs
+++ b/sdk/dotnet/Inputs/ProjectEnvironmentVariablesVariableGetArgs.cs
@@ -19,6 +19,18 @@ public sealed class ProjectEnvironmentVariablesVariableGetArgs : global::Pulumi.
[Input("comment")]
public Input? Comment { get; set; }
+ [Input("customEnvironmentIds")]
+ private InputList? _customEnvironmentIds;
+
+ ///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.
+ ///
+ public InputList CustomEnvironmentIds
+ {
+ get => _customEnvironmentIds ?? (_customEnvironmentIds = new InputList());
+ set => _customEnvironmentIds = value;
+ }
+
///
/// The git branch of the Environment Variable.
///
@@ -43,11 +55,11 @@ public sealed class ProjectEnvironmentVariablesVariableGetArgs : global::Pulumi.
[Input("sensitive")]
public Input? Sensitive { get; set; }
- [Input("targets", required: true)]
+ [Input("targets")]
private InputList? _targets;
///
- /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public InputList Targets
{
diff --git a/sdk/dotnet/Inputs/ProjectMembersMemberArgs.cs b/sdk/dotnet/Inputs/ProjectMembersMemberArgs.cs
new file mode 100644
index 0000000..0189f0d
--- /dev/null
+++ b/sdk/dotnet/Inputs/ProjectMembersMemberArgs.cs
@@ -0,0 +1,45 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Inputs
+{
+
+ public sealed class ProjectMembersMemberArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ [Input("email")]
+ public Input? Email { get; set; }
+
+ ///
+ /// The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ ///
+ /// The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ [Input("userId")]
+ public Input? UserId { get; set; }
+
+ ///
+ /// The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ [Input("username")]
+ public Input? Username { get; set; }
+
+ public ProjectMembersMemberArgs()
+ {
+ }
+ public static new ProjectMembersMemberArgs Empty => new ProjectMembersMemberArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/ProjectMembersMemberGetArgs.cs b/sdk/dotnet/Inputs/ProjectMembersMemberGetArgs.cs
new file mode 100644
index 0000000..c8adfcf
--- /dev/null
+++ b/sdk/dotnet/Inputs/ProjectMembersMemberGetArgs.cs
@@ -0,0 +1,45 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Inputs
+{
+
+ public sealed class ProjectMembersMemberGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ [Input("email")]
+ public Input? Email { get; set; }
+
+ ///
+ /// The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ ///
+ /// The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ [Input("userId")]
+ public Input? UserId { get; set; }
+
+ ///
+ /// The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ [Input("username")]
+ public Input? Username { get; set; }
+
+ public ProjectMembersMemberGetArgs()
+ {
+ }
+ public static new ProjectMembersMemberGetArgs Empty => new ProjectMembersMemberGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/TeamMemberProjectArgs.cs b/sdk/dotnet/Inputs/TeamMemberProjectArgs.cs
new file mode 100644
index 0000000..baf455c
--- /dev/null
+++ b/sdk/dotnet/Inputs/TeamMemberProjectArgs.cs
@@ -0,0 +1,33 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Inputs
+{
+
+ public sealed class TeamMemberProjectArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ID of the project that the user should be granted access to.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ ///
+ /// The role that the user should have in the project.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ public TeamMemberProjectArgs()
+ {
+ }
+ public static new TeamMemberProjectArgs Empty => new TeamMemberProjectArgs();
+ }
+}
diff --git a/sdk/dotnet/Inputs/TeamMemberProjectGetArgs.cs b/sdk/dotnet/Inputs/TeamMemberProjectGetArgs.cs
new file mode 100644
index 0000000..6a04127
--- /dev/null
+++ b/sdk/dotnet/Inputs/TeamMemberProjectGetArgs.cs
@@ -0,0 +1,33 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Inputs
+{
+
+ public sealed class TeamMemberProjectGetArgs : global::Pulumi.ResourceArgs
+ {
+ ///
+ /// The ID of the project that the user should be granted access to.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ ///
+ /// The role that the user should have in the project.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ public TeamMemberProjectGetArgs()
+ {
+ }
+ public static new TeamMemberProjectGetArgs Empty => new TeamMemberProjectGetArgs();
+ }
+}
diff --git a/sdk/dotnet/Outputs/CustomEnvironmentBranchTracking.cs b/sdk/dotnet/Outputs/CustomEnvironmentBranchTracking.cs
new file mode 100644
index 0000000..aa09272
--- /dev/null
+++ b/sdk/dotnet/Outputs/CustomEnvironmentBranchTracking.cs
@@ -0,0 +1,36 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Outputs
+{
+
+ [OutputType]
+ public sealed class CustomEnvironmentBranchTracking
+ {
+ ///
+ /// The pattern of the branch name to track.
+ ///
+ public readonly string Pattern;
+ ///
+ /// How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ ///
+ public readonly string Type;
+
+ [OutputConstructor]
+ private CustomEnvironmentBranchTracking(
+ string pattern,
+
+ string type)
+ {
+ Pattern = pattern;
+ Type = type;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/GetCustomEnvironmentBranchTrackingResult.cs b/sdk/dotnet/Outputs/GetCustomEnvironmentBranchTrackingResult.cs
new file mode 100644
index 0000000..c1c533e
--- /dev/null
+++ b/sdk/dotnet/Outputs/GetCustomEnvironmentBranchTrackingResult.cs
@@ -0,0 +1,36 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Outputs
+{
+
+ [OutputType]
+ public sealed class GetCustomEnvironmentBranchTrackingResult
+ {
+ ///
+ /// The pattern of the branch name to track.
+ ///
+ public readonly string Pattern;
+ ///
+ /// How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ ///
+ public readonly string Type;
+
+ [OutputConstructor]
+ private GetCustomEnvironmentBranchTrackingResult(
+ string pattern,
+
+ string type)
+ {
+ Pattern = pattern;
+ Type = type;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs b/sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs
index acd033b..50e6c79 100644
--- a/sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs
+++ b/sdk/dotnet/Outputs/GetProjectEnvironmentResult.cs
@@ -19,6 +19,10 @@ public sealed class GetProjectEnvironmentResult
///
public readonly string Comment;
///
+ /// The IDs of Custom Environments that the Environment Variable should be present on.
+ ///
+ public readonly ImmutableArray CustomEnvironmentIds;
+ ///
/// The git branch of the environment variable.
///
public readonly string GitBranch;
@@ -47,6 +51,8 @@ public sealed class GetProjectEnvironmentResult
private GetProjectEnvironmentResult(
string comment,
+ ImmutableArray customEnvironmentIds,
+
string gitBranch,
string id,
@@ -60,6 +66,7 @@ private GetProjectEnvironmentResult(
string value)
{
Comment = comment;
+ CustomEnvironmentIds = customEnvironmentIds;
GitBranch = gitBranch;
Id = id;
Key = key;
diff --git a/sdk/dotnet/Outputs/GetProjectMembersMemberResult.cs b/sdk/dotnet/Outputs/GetProjectMembersMemberResult.cs
new file mode 100644
index 0000000..4417531
--- /dev/null
+++ b/sdk/dotnet/Outputs/GetProjectMembersMemberResult.cs
@@ -0,0 +1,50 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Outputs
+{
+
+ [OutputType]
+ public sealed class GetProjectMembersMemberResult
+ {
+ ///
+ /// The email of the user.
+ ///
+ public readonly string Email;
+ ///
+ /// The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ ///
+ public readonly string Role;
+ ///
+ /// The ID of the user.
+ ///
+ public readonly string UserId;
+ ///
+ /// The username of the user.
+ ///
+ public readonly string Username;
+
+ [OutputConstructor]
+ private GetProjectMembersMemberResult(
+ string email,
+
+ string role,
+
+ string userId,
+
+ string username)
+ {
+ Email = email;
+ Role = role;
+ UserId = userId;
+ Username = username;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/GetTeamMemberProjectResult.cs b/sdk/dotnet/Outputs/GetTeamMemberProjectResult.cs
new file mode 100644
index 0000000..0e35764
--- /dev/null
+++ b/sdk/dotnet/Outputs/GetTeamMemberProjectResult.cs
@@ -0,0 +1,36 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Outputs
+{
+
+ [OutputType]
+ public sealed class GetTeamMemberProjectResult
+ {
+ ///
+ /// The ID of the project that the user should be granted access to.
+ ///
+ public readonly string ProjectId;
+ ///
+ /// The role that the user should have in the project.
+ ///
+ public readonly string Role;
+
+ [OutputConstructor]
+ private GetTeamMemberProjectResult(
+ string projectId,
+
+ string role)
+ {
+ ProjectId = projectId;
+ Role = role;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/ProjectEnvironment.cs b/sdk/dotnet/Outputs/ProjectEnvironment.cs
index 5ac68ff..2cae455 100644
--- a/sdk/dotnet/Outputs/ProjectEnvironment.cs
+++ b/sdk/dotnet/Outputs/ProjectEnvironment.cs
@@ -19,6 +19,10 @@ public sealed class ProjectEnvironment
///
public readonly string? Comment;
///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.
+ ///
+ public readonly ImmutableArray CustomEnvironmentIds;
+ ///
/// The git branch of the Environment Variable.
///
public readonly string? GitBranch;
@@ -35,7 +39,7 @@ public sealed class ProjectEnvironment
///
public readonly bool? Sensitive;
///
- /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public readonly ImmutableArray Targets;
///
@@ -47,6 +51,8 @@ public sealed class ProjectEnvironment
private ProjectEnvironment(
string? comment,
+ ImmutableArray customEnvironmentIds,
+
string? gitBranch,
string? id,
@@ -60,6 +66,7 @@ private ProjectEnvironment(
string value)
{
Comment = comment;
+ CustomEnvironmentIds = customEnvironmentIds;
GitBranch = gitBranch;
Id = id;
Key = key;
diff --git a/sdk/dotnet/Outputs/ProjectEnvironmentVariablesVariable.cs b/sdk/dotnet/Outputs/ProjectEnvironmentVariablesVariable.cs
index c48df16..2404d88 100644
--- a/sdk/dotnet/Outputs/ProjectEnvironmentVariablesVariable.cs
+++ b/sdk/dotnet/Outputs/ProjectEnvironmentVariablesVariable.cs
@@ -19,6 +19,10 @@ public sealed class ProjectEnvironmentVariablesVariable
///
public readonly string? Comment;
///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `custom_environment_ids` must be set.
+ ///
+ public readonly ImmutableArray CustomEnvironmentIds;
+ ///
/// The git branch of the Environment Variable.
///
public readonly string? GitBranch;
@@ -35,7 +39,7 @@ public sealed class ProjectEnvironmentVariablesVariable
///
public readonly bool? Sensitive;
///
- /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ /// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public readonly ImmutableArray Targets;
///
@@ -47,6 +51,8 @@ public sealed class ProjectEnvironmentVariablesVariable
private ProjectEnvironmentVariablesVariable(
string? comment,
+ ImmutableArray customEnvironmentIds,
+
string? gitBranch,
string? id,
@@ -60,6 +66,7 @@ private ProjectEnvironmentVariablesVariable(
string value)
{
Comment = comment;
+ CustomEnvironmentIds = customEnvironmentIds;
GitBranch = gitBranch;
Id = id;
Key = key;
diff --git a/sdk/dotnet/Outputs/ProjectMembersMember.cs b/sdk/dotnet/Outputs/ProjectMembersMember.cs
new file mode 100644
index 0000000..cb03e86
--- /dev/null
+++ b/sdk/dotnet/Outputs/ProjectMembersMember.cs
@@ -0,0 +1,50 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Outputs
+{
+
+ [OutputType]
+ public sealed class ProjectMembersMember
+ {
+ ///
+ /// The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ public readonly string? Email;
+ ///
+ /// The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ ///
+ public readonly string Role;
+ ///
+ /// The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ public readonly string? UserId;
+ ///
+ /// The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified.
+ ///
+ public readonly string? Username;
+
+ [OutputConstructor]
+ private ProjectMembersMember(
+ string? email,
+
+ string role,
+
+ string? userId,
+
+ string? username)
+ {
+ Email = email;
+ Role = role;
+ UserId = userId;
+ Username = username;
+ }
+ }
+}
diff --git a/sdk/dotnet/Outputs/TeamMemberProject.cs b/sdk/dotnet/Outputs/TeamMemberProject.cs
new file mode 100644
index 0000000..964e83d
--- /dev/null
+++ b/sdk/dotnet/Outputs/TeamMemberProject.cs
@@ -0,0 +1,36 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel.Outputs
+{
+
+ [OutputType]
+ public sealed class TeamMemberProject
+ {
+ ///
+ /// The ID of the project that the user should be granted access to.
+ ///
+ public readonly string ProjectId;
+ ///
+ /// The role that the user should have in the project.
+ ///
+ public readonly string Role;
+
+ [OutputConstructor]
+ private TeamMemberProject(
+ string projectId,
+
+ string role)
+ {
+ ProjectId = projectId;
+ Role = role;
+ }
+ }
+}
diff --git a/sdk/dotnet/Project.cs b/sdk/dotnet/Project.cs
index 04d3261..f2466f1 100644
--- a/sdk/dotnet/Project.cs
+++ b/sdk/dotnet/Project.cs
@@ -158,16 +158,15 @@ public partial class Project : global::Pulumi.CustomResource
public Output PrioritiseProductionBuilds { get; private set; } = null!;
///
- /// Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- /// Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- /// `password_protection_for_automation_secret` field.
+ /// Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ /// `x-vercel-protection-bypass` with a value of the `protection_bypass_for_automation_secret` field.
///
[Output("protectionBypassForAutomation")]
public Output ProtectionBypassForAutomation { get; private set; } = null!;
///
- /// If `protection_bypass_for_automation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass
- /// Vercel Authentication and Password Protection for both Preview and Production Deployments.
+ /// If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise
+ /// a secret will be generated.
///
[Output("protectionBypassForAutomationSecret")]
public Output ProtectionBypassForAutomationSecret { get; private set; } = null!;
@@ -252,6 +251,10 @@ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions?
{
Version = Utilities.Version,
PluginDownloadURL = "github://api.github.com/pulumiverse",
+ AdditionalSecretOutputs =
+ {
+ "protectionBypassForAutomationSecret",
+ },
};
var merged = CustomResourceOptions.Merge(defaultOptions, options);
// Override the ID if one was specified for consistency with other language SDKs.
@@ -426,13 +429,29 @@ public InputList Environments
public Input? PrioritiseProductionBuilds { get; set; }
///
- /// Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- /// Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- /// `password_protection_for_automation_secret` field.
+ /// Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ /// `x-vercel-protection-bypass` with a value of the `protection_bypass_for_automation_secret` field.
///
[Input("protectionBypassForAutomation")]
public Input? ProtectionBypassForAutomation { get; set; }
+ [Input("protectionBypassForAutomationSecret")]
+ private Input? _protectionBypassForAutomationSecret;
+
+ ///
+ /// If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise
+ /// a secret will be generated.
+ ///
+ public Input? ProtectionBypassForAutomationSecret
+ {
+ get => _protectionBypassForAutomationSecret;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _protectionBypassForAutomationSecret = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
+
///
/// By default, visitors to the `/_logs` and `/_src` paths of your Production and Preview Deployments must log in with
/// Vercel (requires being a member of your team) to see the Source, Logs and Deployment Status of your project. Setting
@@ -648,19 +667,28 @@ public InputList Environments
public Input? PrioritiseProductionBuilds { get; set; }
///
- /// Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- /// Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- /// `password_protection_for_automation_secret` field.
+ /// Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ /// `x-vercel-protection-bypass` with a value of the `protection_bypass_for_automation_secret` field.
///
[Input("protectionBypassForAutomation")]
public Input? ProtectionBypassForAutomation { get; set; }
+ [Input("protectionBypassForAutomationSecret")]
+ private Input? _protectionBypassForAutomationSecret;
+
///
- /// If `protection_bypass_for_automation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass
- /// Vercel Authentication and Password Protection for both Preview and Production Deployments.
+ /// If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise
+ /// a secret will be generated.
///
- [Input("protectionBypassForAutomationSecret")]
- public Input? ProtectionBypassForAutomationSecret { get; set; }
+ public Input? ProtectionBypassForAutomationSecret
+ {
+ get => _protectionBypassForAutomationSecret;
+ set
+ {
+ var emptySecret = Output.CreateSecret(0);
+ _protectionBypassForAutomationSecret = Output.Tuple?, int>(value, emptySecret).Apply(t => t.Item1);
+ }
+ }
///
/// By default, visitors to the `/_logs` and `/_src` paths of your Production and Preview Deployments must log in with
diff --git a/sdk/dotnet/ProjectDomain.cs b/sdk/dotnet/ProjectDomain.cs
index ac2160d..b42841e 100644
--- a/sdk/dotnet/ProjectDomain.cs
+++ b/sdk/dotnet/ProjectDomain.cs
@@ -13,6 +13,13 @@ namespace Pulumiverse.Vercel
[VercelResourceType("vercel:index/projectDomain:ProjectDomain")]
public partial class ProjectDomain : global::Pulumi.CustomResource
{
+ ///
+ /// The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ /// assigned the domain name.
+ ///
+ [Output("customEnvironmentId")]
+ public Output CustomEnvironmentId { get; private set; } = null!;
+
///
/// The domain name to associate with the project.
///
@@ -97,6 +104,13 @@ public static ProjectDomain Get(string name, Input id, ProjectDomainStat
public sealed class ProjectDomainArgs : global::Pulumi.ResourceArgs
{
+ ///
+ /// The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ /// assigned the domain name.
+ ///
+ [Input("customEnvironmentId")]
+ public Input? CustomEnvironmentId { get; set; }
+
///
/// The domain name to associate with the project.
///
@@ -142,6 +156,13 @@ public ProjectDomainArgs()
public sealed class ProjectDomainState : global::Pulumi.ResourceArgs
{
+ ///
+ /// The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ /// assigned the domain name.
+ ///
+ [Input("customEnvironmentId")]
+ public Input? CustomEnvironmentId { get; set; }
+
///
/// The domain name to associate with the project.
///
diff --git a/sdk/dotnet/ProjectEnvironmentVariable.cs b/sdk/dotnet/ProjectEnvironmentVariable.cs
index 9bc5424..1711ef6 100644
--- a/sdk/dotnet/ProjectEnvironmentVariable.cs
+++ b/sdk/dotnet/ProjectEnvironmentVariable.cs
@@ -19,6 +19,13 @@ public partial class ProjectEnvironmentVariable : global::Pulumi.CustomResource
[Output("comment")]
public Output Comment { get; private set; } = null!;
+ ///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ /// `custom_environment_ids` must be set.
+ ///
+ [Output("customEnvironmentIds")]
+ public Output> CustomEnvironmentIds { get; private set; } = null!;
+
///
/// The git branch of the Environment Variable.
///
@@ -46,7 +53,7 @@ public partial class ProjectEnvironmentVariable : global::Pulumi.CustomResource
///
/// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- /// or `development`.
+ /// or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
[Output("targets")]
public Output> Targets { get; private set; } = null!;
@@ -120,6 +127,19 @@ public sealed class ProjectEnvironmentVariableArgs : global::Pulumi.ResourceArgs
[Input("comment")]
public Input? Comment { get; set; }
+ [Input("customEnvironmentIds")]
+ private InputList? _customEnvironmentIds;
+
+ ///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ /// `custom_environment_ids` must be set.
+ ///
+ public InputList CustomEnvironmentIds
+ {
+ get => _customEnvironmentIds ?? (_customEnvironmentIds = new InputList());
+ set => _customEnvironmentIds = value;
+ }
+
///
/// The git branch of the Environment Variable.
///
@@ -145,12 +165,12 @@ public sealed class ProjectEnvironmentVariableArgs : global::Pulumi.ResourceArgs
[Input("sensitive")]
public Input? Sensitive { get; set; }
- [Input("targets", required: true)]
+ [Input("targets")]
private InputList? _targets;
///
/// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- /// or `development`.
+ /// or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public InputList Targets
{
@@ -194,6 +214,19 @@ public sealed class ProjectEnvironmentVariableState : global::Pulumi.ResourceArg
[Input("comment")]
public Input? Comment { get; set; }
+ [Input("customEnvironmentIds")]
+ private InputList? _customEnvironmentIds;
+
+ ///
+ /// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ /// `custom_environment_ids` must be set.
+ ///
+ public InputList CustomEnvironmentIds
+ {
+ get => _customEnvironmentIds ?? (_customEnvironmentIds = new InputList());
+ set => _customEnvironmentIds = value;
+ }
+
///
/// The git branch of the Environment Variable.
///
@@ -224,7 +257,7 @@ public sealed class ProjectEnvironmentVariableState : global::Pulumi.ResourceArg
///
/// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- /// or `development`.
+ /// or `development`. At least one of `target` or `custom_environment_ids` must be set.
///
public InputList Targets
{
diff --git a/sdk/dotnet/ProjectMembers.cs b/sdk/dotnet/ProjectMembers.cs
new file mode 100644
index 0000000..9b70dc4
--- /dev/null
+++ b/sdk/dotnet/ProjectMembers.cs
@@ -0,0 +1,145 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ [VercelResourceType("vercel:index/projectMembers:ProjectMembers")]
+ public partial class ProjectMembers : global::Pulumi.CustomResource
+ {
+ ///
+ /// The set of members to manage for this project.
+ ///
+ [Output("members")]
+ public Output> Members { get; private set; } = null!;
+
+ ///
+ /// The ID of the existing Vercel Project.
+ ///
+ [Output("projectId")]
+ public Output ProjectId { get; private set; } = null!;
+
+ ///
+ /// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ /// provider.
+ ///
+ [Output("teamId")]
+ public Output TeamId { get; private set; } = null!;
+
+
+ ///
+ /// Create a ProjectMembers resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public ProjectMembers(string name, ProjectMembersArgs args, CustomResourceOptions? options = null)
+ : base("vercel:index/projectMembers:ProjectMembers", name, args ?? new ProjectMembersArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private ProjectMembers(string name, Input id, ProjectMembersState? state = null, CustomResourceOptions? options = null)
+ : base("vercel:index/projectMembers:ProjectMembers", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing ProjectMembers resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static ProjectMembers Get(string name, Input id, ProjectMembersState? state = null, CustomResourceOptions? options = null)
+ {
+ return new ProjectMembers(name, id, state, options);
+ }
+ }
+
+ public sealed class ProjectMembersArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("members", required: true)]
+ private InputList? _members;
+
+ ///
+ /// The set of members to manage for this project.
+ ///
+ public InputList Members
+ {
+ get => _members ?? (_members = new InputList());
+ set => _members = value;
+ }
+
+ ///
+ /// The ID of the existing Vercel Project.
+ ///
+ [Input("projectId", required: true)]
+ public Input ProjectId { get; set; } = null!;
+
+ ///
+ /// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ /// provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public ProjectMembersArgs()
+ {
+ }
+ public static new ProjectMembersArgs Empty => new ProjectMembersArgs();
+ }
+
+ public sealed class ProjectMembersState : global::Pulumi.ResourceArgs
+ {
+ [Input("members")]
+ private InputList? _members;
+
+ ///
+ /// The set of members to manage for this project.
+ ///
+ public InputList Members
+ {
+ get => _members ?? (_members = new InputList());
+ set => _members = value;
+ }
+
+ ///
+ /// The ID of the existing Vercel Project.
+ ///
+ [Input("projectId")]
+ public Input? ProjectId { get; set; }
+
+ ///
+ /// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ /// provider.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ public ProjectMembersState()
+ {
+ }
+ public static new ProjectMembersState Empty => new ProjectMembersState();
+ }
+}
diff --git a/sdk/dotnet/TeamConfig.cs b/sdk/dotnet/TeamConfig.cs
index 0f6b195..92fbb79 100644
--- a/sdk/dotnet/TeamConfig.cs
+++ b/sdk/dotnet/TeamConfig.cs
@@ -31,9 +31,15 @@ public partial class TeamConfig : global::Pulumi.CustomResource
[Output("emailDomain")]
public Output EmailDomain { get; private set; } = null!;
+ ///
+ /// Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ ///
[Output("enablePreviewFeedback")]
public Output EnablePreviewFeedback { get; private set; } = null!;
+ ///
+ /// Enables the Vercel Toolbar on your production deployments: one of on, off or default.
+ ///
[Output("enableProductionFeedback")]
public Output EnableProductionFeedback { get; private set; } = null!;
@@ -79,6 +85,10 @@ public partial class TeamConfig : global::Pulumi.CustomResource
[Output("saml")]
public Output Saml { get; private set; } = null!;
+ ///
+ /// Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ /// Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
+ ///
[Output("sensitiveEnvironmentVariablePolicy")]
public Output SensitiveEnvironmentVariablePolicy { get; private set; } = null!;
@@ -159,9 +169,15 @@ public InputMap Avatar
[Input("emailDomain")]
public Input? EmailDomain { get; set; }
+ ///
+ /// Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ ///
[Input("enablePreviewFeedback")]
public Input? EnablePreviewFeedback { get; set; }
+ ///
+ /// Enables the Vercel Toolbar on your production deployments: one of on, off or default.
+ ///
[Input("enableProductionFeedback")]
public Input? EnableProductionFeedback { get; set; }
@@ -201,6 +217,10 @@ public InputMap Avatar
[Input("saml")]
public Input? Saml { get; set; }
+ ///
+ /// Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ /// Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
+ ///
[Input("sensitiveEnvironmentVariablePolicy")]
public Input? SensitiveEnvironmentVariablePolicy { get; set; }
@@ -242,9 +262,15 @@ public InputMap Avatar
[Input("emailDomain")]
public Input? EmailDomain { get; set; }
+ ///
+ /// Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ ///
[Input("enablePreviewFeedback")]
public Input? EnablePreviewFeedback { get; set; }
+ ///
+ /// Enables the Vercel Toolbar on your production deployments: one of on, off or default.
+ ///
[Input("enableProductionFeedback")]
public Input? EnableProductionFeedback { get; set; }
@@ -290,6 +316,10 @@ public InputMap Avatar
[Input("saml")]
public Input? Saml { get; set; }
+ ///
+ /// Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ /// Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
+ ///
[Input("sensitiveEnvironmentVariablePolicy")]
public Input? SensitiveEnvironmentVariablePolicy { get; set; }
diff --git a/sdk/dotnet/TeamMember.cs b/sdk/dotnet/TeamMember.cs
new file mode 100644
index 0000000..9539b0e
--- /dev/null
+++ b/sdk/dotnet/TeamMember.cs
@@ -0,0 +1,199 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+using System;
+using System.Collections.Generic;
+using System.Collections.Immutable;
+using System.Threading.Tasks;
+using Pulumi.Serialization;
+using Pulumi;
+
+namespace Pulumiverse.Vercel
+{
+ [VercelResourceType("vercel:index/teamMember:TeamMember")]
+ public partial class TeamMember : global::Pulumi.CustomResource
+ {
+ ///
+ /// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be
+ /// specified. A set of access groups IDs that the user should be granted access to.
+ ///
+ [Output("accessGroups")]
+ public Output> AccessGroups { get; private set; } = null!;
+
+ ///
+ /// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be
+ /// specified. A set of projects that the user should be granted access to, along with their role in each project.
+ ///
+ [Output("projects")]
+ public Output> Projects { get; private set; } = null!;
+
+ ///
+ /// The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ /// 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ ///
+ [Output("role")]
+ public Output Role { get; private set; } = null!;
+
+ ///
+ /// The ID of the existing Vercel Team.
+ ///
+ [Output("teamId")]
+ public Output TeamId { get; private set; } = null!;
+
+ ///
+ /// The ID of the user to add to the team.
+ ///
+ [Output("userId")]
+ public Output UserId { get; private set; } = null!;
+
+
+ ///
+ /// Create a TeamMember resource with the given unique name, arguments, and options.
+ ///
+ ///
+ /// The unique name of the resource
+ /// The arguments used to populate this resource's properties
+ /// A bag of options that control this resource's behavior
+ public TeamMember(string name, TeamMemberArgs args, CustomResourceOptions? options = null)
+ : base("vercel:index/teamMember:TeamMember", name, args ?? new TeamMemberArgs(), MakeResourceOptions(options, ""))
+ {
+ }
+
+ private TeamMember(string name, Input id, TeamMemberState? state = null, CustomResourceOptions? options = null)
+ : base("vercel:index/teamMember:TeamMember", name, state, MakeResourceOptions(options, id))
+ {
+ }
+
+ private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id)
+ {
+ var defaultOptions = new CustomResourceOptions
+ {
+ Version = Utilities.Version,
+ PluginDownloadURL = "github://api.github.com/pulumiverse",
+ };
+ var merged = CustomResourceOptions.Merge(defaultOptions, options);
+ // Override the ID if one was specified for consistency with other language SDKs.
+ merged.Id = id ?? merged.Id;
+ return merged;
+ }
+ ///
+ /// Get an existing TeamMember resource's state with the given name, ID, and optional extra
+ /// properties used to qualify the lookup.
+ ///
+ ///
+ /// The unique name of the resulting resource.
+ /// The unique provider ID of the resource to lookup.
+ /// Any extra arguments used during the lookup.
+ /// A bag of options that control this resource's behavior
+ public static TeamMember Get(string name, Input id, TeamMemberState? state = null, CustomResourceOptions? options = null)
+ {
+ return new TeamMember(name, id, state, options);
+ }
+ }
+
+ public sealed class TeamMemberArgs : global::Pulumi.ResourceArgs
+ {
+ [Input("accessGroups")]
+ private InputList? _accessGroups;
+
+ ///
+ /// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be
+ /// specified. A set of access groups IDs that the user should be granted access to.
+ ///
+ public InputList AccessGroups
+ {
+ get => _accessGroups ?? (_accessGroups = new InputList());
+ set => _accessGroups = value;
+ }
+
+ [Input("projects")]
+ private InputList? _projects;
+
+ ///
+ /// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be
+ /// specified. A set of projects that the user should be granted access to, along with their role in each project.
+ ///
+ public InputList Projects
+ {
+ get => _projects ?? (_projects = new InputList());
+ set => _projects = value;
+ }
+
+ ///
+ /// The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ /// 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ ///
+ [Input("role", required: true)]
+ public Input Role { get; set; } = null!;
+
+ ///
+ /// The ID of the existing Vercel Team.
+ ///
+ [Input("teamId", required: true)]
+ public Input TeamId { get; set; } = null!;
+
+ ///
+ /// The ID of the user to add to the team.
+ ///
+ [Input("userId", required: true)]
+ public Input UserId { get; set; } = null!;
+
+ public TeamMemberArgs()
+ {
+ }
+ public static new TeamMemberArgs Empty => new TeamMemberArgs();
+ }
+
+ public sealed class TeamMemberState : global::Pulumi.ResourceArgs
+ {
+ [Input("accessGroups")]
+ private InputList? _accessGroups;
+
+ ///
+ /// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be
+ /// specified. A set of access groups IDs that the user should be granted access to.
+ ///
+ public InputList AccessGroups
+ {
+ get => _accessGroups ?? (_accessGroups = new InputList());
+ set => _accessGroups = value;
+ }
+
+ [Input("projects")]
+ private InputList? _projects;
+
+ ///
+ /// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `access_groups` or both must be
+ /// specified. A set of projects that the user should be granted access to, along with their role in each project.
+ ///
+ public InputList Projects
+ {
+ get => _projects ?? (_projects = new InputList());
+ set => _projects = value;
+ }
+
+ ///
+ /// The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ /// 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ ///
+ [Input("role")]
+ public Input? Role { get; set; }
+
+ ///
+ /// The ID of the existing Vercel Team.
+ ///
+ [Input("teamId")]
+ public Input? TeamId { get; set; }
+
+ ///
+ /// The ID of the user to add to the team.
+ ///
+ [Input("userId")]
+ public Input? UserId { get; set; }
+
+ public TeamMemberState()
+ {
+ }
+ public static new TeamMemberState Empty => new TeamMemberState();
+ }
+}
diff --git a/sdk/go/vercel/accessGroup.go b/sdk/go/vercel/accessGroup.go
new file mode 100644
index 0000000..a19913f
--- /dev/null
+++ b/sdk/go/vercel/accessGroup.go
@@ -0,0 +1,235 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+type AccessGroup struct {
+ pulumi.CustomResourceState
+
+ // The name of the Access Group
+ Name pulumi.StringOutput `pulumi:"name"`
+ // The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ // not been set in the provider.
+ TeamId pulumi.StringOutput `pulumi:"teamId"`
+}
+
+// NewAccessGroup registers a new resource with the given unique name, arguments, and options.
+func NewAccessGroup(ctx *pulumi.Context,
+ name string, args *AccessGroupArgs, opts ...pulumi.ResourceOption) (*AccessGroup, error) {
+ if args == nil {
+ args = &AccessGroupArgs{}
+ }
+
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource AccessGroup
+ err := ctx.RegisterResource("vercel:index/accessGroup:AccessGroup", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetAccessGroup gets an existing AccessGroup resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetAccessGroup(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *AccessGroupState, opts ...pulumi.ResourceOption) (*AccessGroup, error) {
+ var resource AccessGroup
+ err := ctx.ReadResource("vercel:index/accessGroup:AccessGroup", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering AccessGroup resources.
+type accessGroupState struct {
+ // The name of the Access Group
+ Name *string `pulumi:"name"`
+ // The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ // not been set in the provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+type AccessGroupState struct {
+ // The name of the Access Group
+ Name pulumi.StringPtrInput
+ // The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ // not been set in the provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (AccessGroupState) ElementType() reflect.Type {
+ return reflect.TypeOf((*accessGroupState)(nil)).Elem()
+}
+
+type accessGroupArgs struct {
+ // The name of the Access Group
+ Name *string `pulumi:"name"`
+ // The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ // not been set in the provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+// The set of arguments for constructing a AccessGroup resource.
+type AccessGroupArgs struct {
+ // The name of the Access Group
+ Name pulumi.StringPtrInput
+ // The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ // not been set in the provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (AccessGroupArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*accessGroupArgs)(nil)).Elem()
+}
+
+type AccessGroupInput interface {
+ pulumi.Input
+
+ ToAccessGroupOutput() AccessGroupOutput
+ ToAccessGroupOutputWithContext(ctx context.Context) AccessGroupOutput
+}
+
+func (*AccessGroup) ElementType() reflect.Type {
+ return reflect.TypeOf((**AccessGroup)(nil)).Elem()
+}
+
+func (i *AccessGroup) ToAccessGroupOutput() AccessGroupOutput {
+ return i.ToAccessGroupOutputWithContext(context.Background())
+}
+
+func (i *AccessGroup) ToAccessGroupOutputWithContext(ctx context.Context) AccessGroupOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(AccessGroupOutput)
+}
+
+// AccessGroupArrayInput is an input type that accepts AccessGroupArray and AccessGroupArrayOutput values.
+// You can construct a concrete instance of `AccessGroupArrayInput` via:
+//
+// AccessGroupArray{ AccessGroupArgs{...} }
+type AccessGroupArrayInput interface {
+ pulumi.Input
+
+ ToAccessGroupArrayOutput() AccessGroupArrayOutput
+ ToAccessGroupArrayOutputWithContext(context.Context) AccessGroupArrayOutput
+}
+
+type AccessGroupArray []AccessGroupInput
+
+func (AccessGroupArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*AccessGroup)(nil)).Elem()
+}
+
+func (i AccessGroupArray) ToAccessGroupArrayOutput() AccessGroupArrayOutput {
+ return i.ToAccessGroupArrayOutputWithContext(context.Background())
+}
+
+func (i AccessGroupArray) ToAccessGroupArrayOutputWithContext(ctx context.Context) AccessGroupArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(AccessGroupArrayOutput)
+}
+
+// AccessGroupMapInput is an input type that accepts AccessGroupMap and AccessGroupMapOutput values.
+// You can construct a concrete instance of `AccessGroupMapInput` via:
+//
+// AccessGroupMap{ "key": AccessGroupArgs{...} }
+type AccessGroupMapInput interface {
+ pulumi.Input
+
+ ToAccessGroupMapOutput() AccessGroupMapOutput
+ ToAccessGroupMapOutputWithContext(context.Context) AccessGroupMapOutput
+}
+
+type AccessGroupMap map[string]AccessGroupInput
+
+func (AccessGroupMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*AccessGroup)(nil)).Elem()
+}
+
+func (i AccessGroupMap) ToAccessGroupMapOutput() AccessGroupMapOutput {
+ return i.ToAccessGroupMapOutputWithContext(context.Background())
+}
+
+func (i AccessGroupMap) ToAccessGroupMapOutputWithContext(ctx context.Context) AccessGroupMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(AccessGroupMapOutput)
+}
+
+type AccessGroupOutput struct{ *pulumi.OutputState }
+
+func (AccessGroupOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**AccessGroup)(nil)).Elem()
+}
+
+func (o AccessGroupOutput) ToAccessGroupOutput() AccessGroupOutput {
+ return o
+}
+
+func (o AccessGroupOutput) ToAccessGroupOutputWithContext(ctx context.Context) AccessGroupOutput {
+ return o
+}
+
+// The name of the Access Group
+func (o AccessGroupOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v *AccessGroup) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
+}
+
+// The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+// not been set in the provider.
+func (o AccessGroupOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v *AccessGroup) pulumi.StringOutput { return v.TeamId }).(pulumi.StringOutput)
+}
+
+type AccessGroupArrayOutput struct{ *pulumi.OutputState }
+
+func (AccessGroupArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*AccessGroup)(nil)).Elem()
+}
+
+func (o AccessGroupArrayOutput) ToAccessGroupArrayOutput() AccessGroupArrayOutput {
+ return o
+}
+
+func (o AccessGroupArrayOutput) ToAccessGroupArrayOutputWithContext(ctx context.Context) AccessGroupArrayOutput {
+ return o
+}
+
+func (o AccessGroupArrayOutput) Index(i pulumi.IntInput) AccessGroupOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccessGroup {
+ return vs[0].([]*AccessGroup)[vs[1].(int)]
+ }).(AccessGroupOutput)
+}
+
+type AccessGroupMapOutput struct{ *pulumi.OutputState }
+
+func (AccessGroupMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*AccessGroup)(nil)).Elem()
+}
+
+func (o AccessGroupMapOutput) ToAccessGroupMapOutput() AccessGroupMapOutput {
+ return o
+}
+
+func (o AccessGroupMapOutput) ToAccessGroupMapOutputWithContext(ctx context.Context) AccessGroupMapOutput {
+ return o
+}
+
+func (o AccessGroupMapOutput) MapIndex(k pulumi.StringInput) AccessGroupOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccessGroup {
+ return vs[0].(map[string]*AccessGroup)[vs[1].(string)]
+ }).(AccessGroupOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*AccessGroupInput)(nil)).Elem(), &AccessGroup{})
+ pulumi.RegisterInputType(reflect.TypeOf((*AccessGroupArrayInput)(nil)).Elem(), AccessGroupArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*AccessGroupMapInput)(nil)).Elem(), AccessGroupMap{})
+ pulumi.RegisterOutputType(AccessGroupOutput{})
+ pulumi.RegisterOutputType(AccessGroupArrayOutput{})
+ pulumi.RegisterOutputType(AccessGroupMapOutput{})
+}
diff --git a/sdk/go/vercel/accessGroupProject.go b/sdk/go/vercel/accessGroupProject.go
new file mode 100644
index 0000000..9785ed1
--- /dev/null
+++ b/sdk/go/vercel/accessGroupProject.go
@@ -0,0 +1,275 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+type AccessGroupProject struct {
+ pulumi.CustomResourceState
+
+ // The ID of the Access Group.
+ AccessGroupId pulumi.StringOutput `pulumi:"accessGroupId"`
+ // The Project ID to assign to the access group.
+ ProjectId pulumi.StringOutput `pulumi:"projectId"`
+ // The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ Role pulumi.StringOutput `pulumi:"role"`
+ // The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ // team has not been set in the provider.
+ TeamId pulumi.StringOutput `pulumi:"teamId"`
+}
+
+// NewAccessGroupProject registers a new resource with the given unique name, arguments, and options.
+func NewAccessGroupProject(ctx *pulumi.Context,
+ name string, args *AccessGroupProjectArgs, opts ...pulumi.ResourceOption) (*AccessGroupProject, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.AccessGroupId == nil {
+ return nil, errors.New("invalid value for required argument 'AccessGroupId'")
+ }
+ if args.ProjectId == nil {
+ return nil, errors.New("invalid value for required argument 'ProjectId'")
+ }
+ if args.Role == nil {
+ return nil, errors.New("invalid value for required argument 'Role'")
+ }
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource AccessGroupProject
+ err := ctx.RegisterResource("vercel:index/accessGroupProject:AccessGroupProject", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetAccessGroupProject gets an existing AccessGroupProject resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetAccessGroupProject(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *AccessGroupProjectState, opts ...pulumi.ResourceOption) (*AccessGroupProject, error) {
+ var resource AccessGroupProject
+ err := ctx.ReadResource("vercel:index/accessGroupProject:AccessGroupProject", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering AccessGroupProject resources.
+type accessGroupProjectState struct {
+ // The ID of the Access Group.
+ AccessGroupId *string `pulumi:"accessGroupId"`
+ // The Project ID to assign to the access group.
+ ProjectId *string `pulumi:"projectId"`
+ // The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ Role *string `pulumi:"role"`
+ // The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ // team has not been set in the provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+type AccessGroupProjectState struct {
+ // The ID of the Access Group.
+ AccessGroupId pulumi.StringPtrInput
+ // The Project ID to assign to the access group.
+ ProjectId pulumi.StringPtrInput
+ // The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ Role pulumi.StringPtrInput
+ // The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ // team has not been set in the provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (AccessGroupProjectState) ElementType() reflect.Type {
+ return reflect.TypeOf((*accessGroupProjectState)(nil)).Elem()
+}
+
+type accessGroupProjectArgs struct {
+ // The ID of the Access Group.
+ AccessGroupId string `pulumi:"accessGroupId"`
+ // The Project ID to assign to the access group.
+ ProjectId string `pulumi:"projectId"`
+ // The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ Role string `pulumi:"role"`
+ // The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ // team has not been set in the provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+// The set of arguments for constructing a AccessGroupProject resource.
+type AccessGroupProjectArgs struct {
+ // The ID of the Access Group.
+ AccessGroupId pulumi.StringInput
+ // The Project ID to assign to the access group.
+ ProjectId pulumi.StringInput
+ // The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ Role pulumi.StringInput
+ // The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ // team has not been set in the provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (AccessGroupProjectArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*accessGroupProjectArgs)(nil)).Elem()
+}
+
+type AccessGroupProjectInput interface {
+ pulumi.Input
+
+ ToAccessGroupProjectOutput() AccessGroupProjectOutput
+ ToAccessGroupProjectOutputWithContext(ctx context.Context) AccessGroupProjectOutput
+}
+
+func (*AccessGroupProject) ElementType() reflect.Type {
+ return reflect.TypeOf((**AccessGroupProject)(nil)).Elem()
+}
+
+func (i *AccessGroupProject) ToAccessGroupProjectOutput() AccessGroupProjectOutput {
+ return i.ToAccessGroupProjectOutputWithContext(context.Background())
+}
+
+func (i *AccessGroupProject) ToAccessGroupProjectOutputWithContext(ctx context.Context) AccessGroupProjectOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(AccessGroupProjectOutput)
+}
+
+// AccessGroupProjectArrayInput is an input type that accepts AccessGroupProjectArray and AccessGroupProjectArrayOutput values.
+// You can construct a concrete instance of `AccessGroupProjectArrayInput` via:
+//
+// AccessGroupProjectArray{ AccessGroupProjectArgs{...} }
+type AccessGroupProjectArrayInput interface {
+ pulumi.Input
+
+ ToAccessGroupProjectArrayOutput() AccessGroupProjectArrayOutput
+ ToAccessGroupProjectArrayOutputWithContext(context.Context) AccessGroupProjectArrayOutput
+}
+
+type AccessGroupProjectArray []AccessGroupProjectInput
+
+func (AccessGroupProjectArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*AccessGroupProject)(nil)).Elem()
+}
+
+func (i AccessGroupProjectArray) ToAccessGroupProjectArrayOutput() AccessGroupProjectArrayOutput {
+ return i.ToAccessGroupProjectArrayOutputWithContext(context.Background())
+}
+
+func (i AccessGroupProjectArray) ToAccessGroupProjectArrayOutputWithContext(ctx context.Context) AccessGroupProjectArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(AccessGroupProjectArrayOutput)
+}
+
+// AccessGroupProjectMapInput is an input type that accepts AccessGroupProjectMap and AccessGroupProjectMapOutput values.
+// You can construct a concrete instance of `AccessGroupProjectMapInput` via:
+//
+// AccessGroupProjectMap{ "key": AccessGroupProjectArgs{...} }
+type AccessGroupProjectMapInput interface {
+ pulumi.Input
+
+ ToAccessGroupProjectMapOutput() AccessGroupProjectMapOutput
+ ToAccessGroupProjectMapOutputWithContext(context.Context) AccessGroupProjectMapOutput
+}
+
+type AccessGroupProjectMap map[string]AccessGroupProjectInput
+
+func (AccessGroupProjectMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*AccessGroupProject)(nil)).Elem()
+}
+
+func (i AccessGroupProjectMap) ToAccessGroupProjectMapOutput() AccessGroupProjectMapOutput {
+ return i.ToAccessGroupProjectMapOutputWithContext(context.Background())
+}
+
+func (i AccessGroupProjectMap) ToAccessGroupProjectMapOutputWithContext(ctx context.Context) AccessGroupProjectMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(AccessGroupProjectMapOutput)
+}
+
+type AccessGroupProjectOutput struct{ *pulumi.OutputState }
+
+func (AccessGroupProjectOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**AccessGroupProject)(nil)).Elem()
+}
+
+func (o AccessGroupProjectOutput) ToAccessGroupProjectOutput() AccessGroupProjectOutput {
+ return o
+}
+
+func (o AccessGroupProjectOutput) ToAccessGroupProjectOutputWithContext(ctx context.Context) AccessGroupProjectOutput {
+ return o
+}
+
+// The ID of the Access Group.
+func (o AccessGroupProjectOutput) AccessGroupId() pulumi.StringOutput {
+ return o.ApplyT(func(v *AccessGroupProject) pulumi.StringOutput { return v.AccessGroupId }).(pulumi.StringOutput)
+}
+
+// The Project ID to assign to the access group.
+func (o AccessGroupProjectOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v *AccessGroupProject) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+// The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+func (o AccessGroupProjectOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v *AccessGroupProject) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput)
+}
+
+// The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+// team has not been set in the provider.
+func (o AccessGroupProjectOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v *AccessGroupProject) pulumi.StringOutput { return v.TeamId }).(pulumi.StringOutput)
+}
+
+type AccessGroupProjectArrayOutput struct{ *pulumi.OutputState }
+
+func (AccessGroupProjectArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*AccessGroupProject)(nil)).Elem()
+}
+
+func (o AccessGroupProjectArrayOutput) ToAccessGroupProjectArrayOutput() AccessGroupProjectArrayOutput {
+ return o
+}
+
+func (o AccessGroupProjectArrayOutput) ToAccessGroupProjectArrayOutputWithContext(ctx context.Context) AccessGroupProjectArrayOutput {
+ return o
+}
+
+func (o AccessGroupProjectArrayOutput) Index(i pulumi.IntInput) AccessGroupProjectOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *AccessGroupProject {
+ return vs[0].([]*AccessGroupProject)[vs[1].(int)]
+ }).(AccessGroupProjectOutput)
+}
+
+type AccessGroupProjectMapOutput struct{ *pulumi.OutputState }
+
+func (AccessGroupProjectMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*AccessGroupProject)(nil)).Elem()
+}
+
+func (o AccessGroupProjectMapOutput) ToAccessGroupProjectMapOutput() AccessGroupProjectMapOutput {
+ return o
+}
+
+func (o AccessGroupProjectMapOutput) ToAccessGroupProjectMapOutputWithContext(ctx context.Context) AccessGroupProjectMapOutput {
+ return o
+}
+
+func (o AccessGroupProjectMapOutput) MapIndex(k pulumi.StringInput) AccessGroupProjectOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *AccessGroupProject {
+ return vs[0].(map[string]*AccessGroupProject)[vs[1].(string)]
+ }).(AccessGroupProjectOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*AccessGroupProjectInput)(nil)).Elem(), &AccessGroupProject{})
+ pulumi.RegisterInputType(reflect.TypeOf((*AccessGroupProjectArrayInput)(nil)).Elem(), AccessGroupProjectArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*AccessGroupProjectMapInput)(nil)).Elem(), AccessGroupProjectMap{})
+ pulumi.RegisterOutputType(AccessGroupProjectOutput{})
+ pulumi.RegisterOutputType(AccessGroupProjectArrayOutput{})
+ pulumi.RegisterOutputType(AccessGroupProjectMapOutput{})
+}
diff --git a/sdk/go/vercel/customEnvironment.go b/sdk/go/vercel/customEnvironment.go
new file mode 100644
index 0000000..5b51f9b
--- /dev/null
+++ b/sdk/go/vercel/customEnvironment.go
@@ -0,0 +1,284 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+type CustomEnvironment struct {
+ pulumi.CustomResourceState
+
+ // The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ BranchTracking CustomEnvironmentBranchTrackingOutput `pulumi:"branchTracking"`
+ // A description of what the environment is.
+ Description pulumi.StringOutput `pulumi:"description"`
+ // The name of the environment.
+ Name pulumi.StringOutput `pulumi:"name"`
+ // The ID of the existing Vercel Project.
+ ProjectId pulumi.StringOutput `pulumi:"projectId"`
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId pulumi.StringOutput `pulumi:"teamId"`
+}
+
+// NewCustomEnvironment registers a new resource with the given unique name, arguments, and options.
+func NewCustomEnvironment(ctx *pulumi.Context,
+ name string, args *CustomEnvironmentArgs, opts ...pulumi.ResourceOption) (*CustomEnvironment, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.ProjectId == nil {
+ return nil, errors.New("invalid value for required argument 'ProjectId'")
+ }
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource CustomEnvironment
+ err := ctx.RegisterResource("vercel:index/customEnvironment:CustomEnvironment", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetCustomEnvironment gets an existing CustomEnvironment resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetCustomEnvironment(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *CustomEnvironmentState, opts ...pulumi.ResourceOption) (*CustomEnvironment, error) {
+ var resource CustomEnvironment
+ err := ctx.ReadResource("vercel:index/customEnvironment:CustomEnvironment", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering CustomEnvironment resources.
+type customEnvironmentState struct {
+ // The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ BranchTracking *CustomEnvironmentBranchTracking `pulumi:"branchTracking"`
+ // A description of what the environment is.
+ Description *string `pulumi:"description"`
+ // The name of the environment.
+ Name *string `pulumi:"name"`
+ // The ID of the existing Vercel Project.
+ ProjectId *string `pulumi:"projectId"`
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+type CustomEnvironmentState struct {
+ // The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ BranchTracking CustomEnvironmentBranchTrackingPtrInput
+ // A description of what the environment is.
+ Description pulumi.StringPtrInput
+ // The name of the environment.
+ Name pulumi.StringPtrInput
+ // The ID of the existing Vercel Project.
+ ProjectId pulumi.StringPtrInput
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (CustomEnvironmentState) ElementType() reflect.Type {
+ return reflect.TypeOf((*customEnvironmentState)(nil)).Elem()
+}
+
+type customEnvironmentArgs struct {
+ // The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ BranchTracking *CustomEnvironmentBranchTracking `pulumi:"branchTracking"`
+ // A description of what the environment is.
+ Description *string `pulumi:"description"`
+ // The name of the environment.
+ Name *string `pulumi:"name"`
+ // The ID of the existing Vercel Project.
+ ProjectId string `pulumi:"projectId"`
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+// The set of arguments for constructing a CustomEnvironment resource.
+type CustomEnvironmentArgs struct {
+ // The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ BranchTracking CustomEnvironmentBranchTrackingPtrInput
+ // A description of what the environment is.
+ Description pulumi.StringPtrInput
+ // The name of the environment.
+ Name pulumi.StringPtrInput
+ // The ID of the existing Vercel Project.
+ ProjectId pulumi.StringInput
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (CustomEnvironmentArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*customEnvironmentArgs)(nil)).Elem()
+}
+
+type CustomEnvironmentInput interface {
+ pulumi.Input
+
+ ToCustomEnvironmentOutput() CustomEnvironmentOutput
+ ToCustomEnvironmentOutputWithContext(ctx context.Context) CustomEnvironmentOutput
+}
+
+func (*CustomEnvironment) ElementType() reflect.Type {
+ return reflect.TypeOf((**CustomEnvironment)(nil)).Elem()
+}
+
+func (i *CustomEnvironment) ToCustomEnvironmentOutput() CustomEnvironmentOutput {
+ return i.ToCustomEnvironmentOutputWithContext(context.Background())
+}
+
+func (i *CustomEnvironment) ToCustomEnvironmentOutputWithContext(ctx context.Context) CustomEnvironmentOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(CustomEnvironmentOutput)
+}
+
+// CustomEnvironmentArrayInput is an input type that accepts CustomEnvironmentArray and CustomEnvironmentArrayOutput values.
+// You can construct a concrete instance of `CustomEnvironmentArrayInput` via:
+//
+// CustomEnvironmentArray{ CustomEnvironmentArgs{...} }
+type CustomEnvironmentArrayInput interface {
+ pulumi.Input
+
+ ToCustomEnvironmentArrayOutput() CustomEnvironmentArrayOutput
+ ToCustomEnvironmentArrayOutputWithContext(context.Context) CustomEnvironmentArrayOutput
+}
+
+type CustomEnvironmentArray []CustomEnvironmentInput
+
+func (CustomEnvironmentArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*CustomEnvironment)(nil)).Elem()
+}
+
+func (i CustomEnvironmentArray) ToCustomEnvironmentArrayOutput() CustomEnvironmentArrayOutput {
+ return i.ToCustomEnvironmentArrayOutputWithContext(context.Background())
+}
+
+func (i CustomEnvironmentArray) ToCustomEnvironmentArrayOutputWithContext(ctx context.Context) CustomEnvironmentArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(CustomEnvironmentArrayOutput)
+}
+
+// CustomEnvironmentMapInput is an input type that accepts CustomEnvironmentMap and CustomEnvironmentMapOutput values.
+// You can construct a concrete instance of `CustomEnvironmentMapInput` via:
+//
+// CustomEnvironmentMap{ "key": CustomEnvironmentArgs{...} }
+type CustomEnvironmentMapInput interface {
+ pulumi.Input
+
+ ToCustomEnvironmentMapOutput() CustomEnvironmentMapOutput
+ ToCustomEnvironmentMapOutputWithContext(context.Context) CustomEnvironmentMapOutput
+}
+
+type CustomEnvironmentMap map[string]CustomEnvironmentInput
+
+func (CustomEnvironmentMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*CustomEnvironment)(nil)).Elem()
+}
+
+func (i CustomEnvironmentMap) ToCustomEnvironmentMapOutput() CustomEnvironmentMapOutput {
+ return i.ToCustomEnvironmentMapOutputWithContext(context.Background())
+}
+
+func (i CustomEnvironmentMap) ToCustomEnvironmentMapOutputWithContext(ctx context.Context) CustomEnvironmentMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(CustomEnvironmentMapOutput)
+}
+
+type CustomEnvironmentOutput struct{ *pulumi.OutputState }
+
+func (CustomEnvironmentOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**CustomEnvironment)(nil)).Elem()
+}
+
+func (o CustomEnvironmentOutput) ToCustomEnvironmentOutput() CustomEnvironmentOutput {
+ return o
+}
+
+func (o CustomEnvironmentOutput) ToCustomEnvironmentOutputWithContext(ctx context.Context) CustomEnvironmentOutput {
+ return o
+}
+
+// The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+func (o CustomEnvironmentOutput) BranchTracking() CustomEnvironmentBranchTrackingOutput {
+ return o.ApplyT(func(v *CustomEnvironment) CustomEnvironmentBranchTrackingOutput { return v.BranchTracking }).(CustomEnvironmentBranchTrackingOutput)
+}
+
+// A description of what the environment is.
+func (o CustomEnvironmentOutput) Description() pulumi.StringOutput {
+ return o.ApplyT(func(v *CustomEnvironment) pulumi.StringOutput { return v.Description }).(pulumi.StringOutput)
+}
+
+// The name of the environment.
+func (o CustomEnvironmentOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v *CustomEnvironment) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
+}
+
+// The ID of the existing Vercel Project.
+func (o CustomEnvironmentOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v *CustomEnvironment) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+// provider.
+func (o CustomEnvironmentOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v *CustomEnvironment) pulumi.StringOutput { return v.TeamId }).(pulumi.StringOutput)
+}
+
+type CustomEnvironmentArrayOutput struct{ *pulumi.OutputState }
+
+func (CustomEnvironmentArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*CustomEnvironment)(nil)).Elem()
+}
+
+func (o CustomEnvironmentArrayOutput) ToCustomEnvironmentArrayOutput() CustomEnvironmentArrayOutput {
+ return o
+}
+
+func (o CustomEnvironmentArrayOutput) ToCustomEnvironmentArrayOutputWithContext(ctx context.Context) CustomEnvironmentArrayOutput {
+ return o
+}
+
+func (o CustomEnvironmentArrayOutput) Index(i pulumi.IntInput) CustomEnvironmentOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CustomEnvironment {
+ return vs[0].([]*CustomEnvironment)[vs[1].(int)]
+ }).(CustomEnvironmentOutput)
+}
+
+type CustomEnvironmentMapOutput struct{ *pulumi.OutputState }
+
+func (CustomEnvironmentMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*CustomEnvironment)(nil)).Elem()
+}
+
+func (o CustomEnvironmentMapOutput) ToCustomEnvironmentMapOutput() CustomEnvironmentMapOutput {
+ return o
+}
+
+func (o CustomEnvironmentMapOutput) ToCustomEnvironmentMapOutputWithContext(ctx context.Context) CustomEnvironmentMapOutput {
+ return o
+}
+
+func (o CustomEnvironmentMapOutput) MapIndex(k pulumi.StringInput) CustomEnvironmentOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CustomEnvironment {
+ return vs[0].(map[string]*CustomEnvironment)[vs[1].(string)]
+ }).(CustomEnvironmentOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*CustomEnvironmentInput)(nil)).Elem(), &CustomEnvironment{})
+ pulumi.RegisterInputType(reflect.TypeOf((*CustomEnvironmentArrayInput)(nil)).Elem(), CustomEnvironmentArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*CustomEnvironmentMapInput)(nil)).Elem(), CustomEnvironmentMap{})
+ pulumi.RegisterOutputType(CustomEnvironmentOutput{})
+ pulumi.RegisterOutputType(CustomEnvironmentArrayOutput{})
+ pulumi.RegisterOutputType(CustomEnvironmentMapOutput{})
+}
diff --git a/sdk/go/vercel/getAccessGroup.go b/sdk/go/vercel/getAccessGroup.go
new file mode 100644
index 0000000..2feffe8
--- /dev/null
+++ b/sdk/go/vercel/getAccessGroup.go
@@ -0,0 +1,95 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+func LookupAccessGroup(ctx *pulumi.Context, args *LookupAccessGroupArgs, opts ...pulumi.InvokeOption) (*LookupAccessGroupResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupAccessGroupResult
+ err := ctx.Invoke("vercel:index/getAccessGroup:getAccessGroup", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getAccessGroup.
+type LookupAccessGroupArgs struct {
+ Id string `pulumi:"id"`
+ TeamId *string `pulumi:"teamId"`
+}
+
+// A collection of values returned by getAccessGroup.
+type LookupAccessGroupResult struct {
+ Id string `pulumi:"id"`
+ Name string `pulumi:"name"`
+ TeamId string `pulumi:"teamId"`
+}
+
+func LookupAccessGroupOutput(ctx *pulumi.Context, args LookupAccessGroupOutputArgs, opts ...pulumi.InvokeOption) LookupAccessGroupResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (LookupAccessGroupResultOutput, error) {
+ args := v.(LookupAccessGroupArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupAccessGroupResult
+ secret, err := ctx.InvokePackageRaw("vercel:index/getAccessGroup:getAccessGroup", args, &rv, "", opts...)
+ if err != nil {
+ return LookupAccessGroupResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(LookupAccessGroupResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(LookupAccessGroupResultOutput), nil
+ }
+ return output, nil
+ }).(LookupAccessGroupResultOutput)
+}
+
+// A collection of arguments for invoking getAccessGroup.
+type LookupAccessGroupOutputArgs struct {
+ Id pulumi.StringInput `pulumi:"id"`
+ TeamId pulumi.StringPtrInput `pulumi:"teamId"`
+}
+
+func (LookupAccessGroupOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupAccessGroupArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getAccessGroup.
+type LookupAccessGroupResultOutput struct{ *pulumi.OutputState }
+
+func (LookupAccessGroupResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupAccessGroupResult)(nil)).Elem()
+}
+
+func (o LookupAccessGroupResultOutput) ToLookupAccessGroupResultOutput() LookupAccessGroupResultOutput {
+ return o
+}
+
+func (o LookupAccessGroupResultOutput) ToLookupAccessGroupResultOutputWithContext(ctx context.Context) LookupAccessGroupResultOutput {
+ return o
+}
+
+func (o LookupAccessGroupResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+func (o LookupAccessGroupResultOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupResult) string { return v.Name }).(pulumi.StringOutput)
+}
+
+func (o LookupAccessGroupResultOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupResult) string { return v.TeamId }).(pulumi.StringOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(LookupAccessGroupResultOutput{})
+}
diff --git a/sdk/go/vercel/getAccessGroupProject.go b/sdk/go/vercel/getAccessGroupProject.go
new file mode 100644
index 0000000..23047cf
--- /dev/null
+++ b/sdk/go/vercel/getAccessGroupProject.go
@@ -0,0 +1,109 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+func LookupAccessGroupProject(ctx *pulumi.Context, args *LookupAccessGroupProjectArgs, opts ...pulumi.InvokeOption) (*LookupAccessGroupProjectResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupAccessGroupProjectResult
+ err := ctx.Invoke("vercel:index/getAccessGroupProject:getAccessGroupProject", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getAccessGroupProject.
+type LookupAccessGroupProjectArgs struct {
+ AccessGroupId string `pulumi:"accessGroupId"`
+ ProjectId string `pulumi:"projectId"`
+ TeamId *string `pulumi:"teamId"`
+}
+
+// A collection of values returned by getAccessGroupProject.
+type LookupAccessGroupProjectResult struct {
+ AccessGroupId string `pulumi:"accessGroupId"`
+ // The provider-assigned unique ID for this managed resource.
+ Id string `pulumi:"id"`
+ ProjectId string `pulumi:"projectId"`
+ Role string `pulumi:"role"`
+ TeamId string `pulumi:"teamId"`
+}
+
+func LookupAccessGroupProjectOutput(ctx *pulumi.Context, args LookupAccessGroupProjectOutputArgs, opts ...pulumi.InvokeOption) LookupAccessGroupProjectResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (LookupAccessGroupProjectResultOutput, error) {
+ args := v.(LookupAccessGroupProjectArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupAccessGroupProjectResult
+ secret, err := ctx.InvokePackageRaw("vercel:index/getAccessGroupProject:getAccessGroupProject", args, &rv, "", opts...)
+ if err != nil {
+ return LookupAccessGroupProjectResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(LookupAccessGroupProjectResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(LookupAccessGroupProjectResultOutput), nil
+ }
+ return output, nil
+ }).(LookupAccessGroupProjectResultOutput)
+}
+
+// A collection of arguments for invoking getAccessGroupProject.
+type LookupAccessGroupProjectOutputArgs struct {
+ AccessGroupId pulumi.StringInput `pulumi:"accessGroupId"`
+ ProjectId pulumi.StringInput `pulumi:"projectId"`
+ TeamId pulumi.StringPtrInput `pulumi:"teamId"`
+}
+
+func (LookupAccessGroupProjectOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupAccessGroupProjectArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getAccessGroupProject.
+type LookupAccessGroupProjectResultOutput struct{ *pulumi.OutputState }
+
+func (LookupAccessGroupProjectResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupAccessGroupProjectResult)(nil)).Elem()
+}
+
+func (o LookupAccessGroupProjectResultOutput) ToLookupAccessGroupProjectResultOutput() LookupAccessGroupProjectResultOutput {
+ return o
+}
+
+func (o LookupAccessGroupProjectResultOutput) ToLookupAccessGroupProjectResultOutputWithContext(ctx context.Context) LookupAccessGroupProjectResultOutput {
+ return o
+}
+
+func (o LookupAccessGroupProjectResultOutput) AccessGroupId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupProjectResult) string { return v.AccessGroupId }).(pulumi.StringOutput)
+}
+
+// The provider-assigned unique ID for this managed resource.
+func (o LookupAccessGroupProjectResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupProjectResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+func (o LookupAccessGroupProjectResultOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupProjectResult) string { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+func (o LookupAccessGroupProjectResultOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupProjectResult) string { return v.Role }).(pulumi.StringOutput)
+}
+
+func (o LookupAccessGroupProjectResultOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupAccessGroupProjectResult) string { return v.TeamId }).(pulumi.StringOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(LookupAccessGroupProjectResultOutput{})
+}
diff --git a/sdk/go/vercel/getCustomEnvironment.go b/sdk/go/vercel/getCustomEnvironment.go
new file mode 100644
index 0000000..19d5d99
--- /dev/null
+++ b/sdk/go/vercel/getCustomEnvironment.go
@@ -0,0 +1,112 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+func LookupCustomEnvironment(ctx *pulumi.Context, args *LookupCustomEnvironmentArgs, opts ...pulumi.InvokeOption) (*LookupCustomEnvironmentResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupCustomEnvironmentResult
+ err := ctx.Invoke("vercel:index/getCustomEnvironment:getCustomEnvironment", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getCustomEnvironment.
+type LookupCustomEnvironmentArgs struct {
+ Name string `pulumi:"name"`
+ ProjectId string `pulumi:"projectId"`
+ TeamId *string `pulumi:"teamId"`
+}
+
+// A collection of values returned by getCustomEnvironment.
+type LookupCustomEnvironmentResult struct {
+ BranchTracking GetCustomEnvironmentBranchTracking `pulumi:"branchTracking"`
+ Description string `pulumi:"description"`
+ Id string `pulumi:"id"`
+ Name string `pulumi:"name"`
+ ProjectId string `pulumi:"projectId"`
+ TeamId string `pulumi:"teamId"`
+}
+
+func LookupCustomEnvironmentOutput(ctx *pulumi.Context, args LookupCustomEnvironmentOutputArgs, opts ...pulumi.InvokeOption) LookupCustomEnvironmentResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (LookupCustomEnvironmentResultOutput, error) {
+ args := v.(LookupCustomEnvironmentArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupCustomEnvironmentResult
+ secret, err := ctx.InvokePackageRaw("vercel:index/getCustomEnvironment:getCustomEnvironment", args, &rv, "", opts...)
+ if err != nil {
+ return LookupCustomEnvironmentResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(LookupCustomEnvironmentResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(LookupCustomEnvironmentResultOutput), nil
+ }
+ return output, nil
+ }).(LookupCustomEnvironmentResultOutput)
+}
+
+// A collection of arguments for invoking getCustomEnvironment.
+type LookupCustomEnvironmentOutputArgs struct {
+ Name pulumi.StringInput `pulumi:"name"`
+ ProjectId pulumi.StringInput `pulumi:"projectId"`
+ TeamId pulumi.StringPtrInput `pulumi:"teamId"`
+}
+
+func (LookupCustomEnvironmentOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupCustomEnvironmentArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getCustomEnvironment.
+type LookupCustomEnvironmentResultOutput struct{ *pulumi.OutputState }
+
+func (LookupCustomEnvironmentResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupCustomEnvironmentResult)(nil)).Elem()
+}
+
+func (o LookupCustomEnvironmentResultOutput) ToLookupCustomEnvironmentResultOutput() LookupCustomEnvironmentResultOutput {
+ return o
+}
+
+func (o LookupCustomEnvironmentResultOutput) ToLookupCustomEnvironmentResultOutputWithContext(ctx context.Context) LookupCustomEnvironmentResultOutput {
+ return o
+}
+
+func (o LookupCustomEnvironmentResultOutput) BranchTracking() GetCustomEnvironmentBranchTrackingOutput {
+ return o.ApplyT(func(v LookupCustomEnvironmentResult) GetCustomEnvironmentBranchTracking { return v.BranchTracking }).(GetCustomEnvironmentBranchTrackingOutput)
+}
+
+func (o LookupCustomEnvironmentResultOutput) Description() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupCustomEnvironmentResult) string { return v.Description }).(pulumi.StringOutput)
+}
+
+func (o LookupCustomEnvironmentResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupCustomEnvironmentResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+func (o LookupCustomEnvironmentResultOutput) Name() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupCustomEnvironmentResult) string { return v.Name }).(pulumi.StringOutput)
+}
+
+func (o LookupCustomEnvironmentResultOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupCustomEnvironmentResult) string { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+func (o LookupCustomEnvironmentResultOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupCustomEnvironmentResult) string { return v.TeamId }).(pulumi.StringOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(LookupCustomEnvironmentResultOutput{})
+}
diff --git a/sdk/go/vercel/getProject.go b/sdk/go/vercel/getProject.go
index 9fd32e6..134509a 100644
--- a/sdk/go/vercel/getProject.go
+++ b/sdk/go/vercel/getProject.go
@@ -53,6 +53,7 @@ type LookupProjectResult struct {
PreviewComments bool `pulumi:"previewComments"`
PrioritiseProductionBuilds bool `pulumi:"prioritiseProductionBuilds"`
ProtectionBypassForAutomation bool `pulumi:"protectionBypassForAutomation"`
+ ProtectionBypassForAutomationSecret string `pulumi:"protectionBypassForAutomationSecret"`
PublicSource bool `pulumi:"publicSource"`
ResourceConfig GetProjectResourceConfig `pulumi:"resourceConfig"`
RootDirectory string `pulumi:"rootDirectory"`
@@ -203,6 +204,10 @@ func (o LookupProjectResultOutput) ProtectionBypassForAutomation() pulumi.BoolOu
return o.ApplyT(func(v LookupProjectResult) bool { return v.ProtectionBypassForAutomation }).(pulumi.BoolOutput)
}
+func (o LookupProjectResultOutput) ProtectionBypassForAutomationSecret() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupProjectResult) string { return v.ProtectionBypassForAutomationSecret }).(pulumi.StringOutput)
+}
+
func (o LookupProjectResultOutput) PublicSource() pulumi.BoolOutput {
return o.ApplyT(func(v LookupProjectResult) bool { return v.PublicSource }).(pulumi.BoolOutput)
}
diff --git a/sdk/go/vercel/getProjectMembers.go b/sdk/go/vercel/getProjectMembers.go
new file mode 100644
index 0000000..2cd0178
--- /dev/null
+++ b/sdk/go/vercel/getProjectMembers.go
@@ -0,0 +1,102 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+func LookupProjectMembers(ctx *pulumi.Context, args *LookupProjectMembersArgs, opts ...pulumi.InvokeOption) (*LookupProjectMembersResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupProjectMembersResult
+ err := ctx.Invoke("vercel:index/getProjectMembers:getProjectMembers", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getProjectMembers.
+type LookupProjectMembersArgs struct {
+ ProjectId string `pulumi:"projectId"`
+ TeamId *string `pulumi:"teamId"`
+}
+
+// A collection of values returned by getProjectMembers.
+type LookupProjectMembersResult struct {
+ // The provider-assigned unique ID for this managed resource.
+ Id string `pulumi:"id"`
+ Members []GetProjectMembersMember `pulumi:"members"`
+ ProjectId string `pulumi:"projectId"`
+ TeamId *string `pulumi:"teamId"`
+}
+
+func LookupProjectMembersOutput(ctx *pulumi.Context, args LookupProjectMembersOutputArgs, opts ...pulumi.InvokeOption) LookupProjectMembersResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (LookupProjectMembersResultOutput, error) {
+ args := v.(LookupProjectMembersArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupProjectMembersResult
+ secret, err := ctx.InvokePackageRaw("vercel:index/getProjectMembers:getProjectMembers", args, &rv, "", opts...)
+ if err != nil {
+ return LookupProjectMembersResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(LookupProjectMembersResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(LookupProjectMembersResultOutput), nil
+ }
+ return output, nil
+ }).(LookupProjectMembersResultOutput)
+}
+
+// A collection of arguments for invoking getProjectMembers.
+type LookupProjectMembersOutputArgs struct {
+ ProjectId pulumi.StringInput `pulumi:"projectId"`
+ TeamId pulumi.StringPtrInput `pulumi:"teamId"`
+}
+
+func (LookupProjectMembersOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupProjectMembersArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getProjectMembers.
+type LookupProjectMembersResultOutput struct{ *pulumi.OutputState }
+
+func (LookupProjectMembersResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupProjectMembersResult)(nil)).Elem()
+}
+
+func (o LookupProjectMembersResultOutput) ToLookupProjectMembersResultOutput() LookupProjectMembersResultOutput {
+ return o
+}
+
+func (o LookupProjectMembersResultOutput) ToLookupProjectMembersResultOutputWithContext(ctx context.Context) LookupProjectMembersResultOutput {
+ return o
+}
+
+// The provider-assigned unique ID for this managed resource.
+func (o LookupProjectMembersResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupProjectMembersResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+func (o LookupProjectMembersResultOutput) Members() GetProjectMembersMemberArrayOutput {
+ return o.ApplyT(func(v LookupProjectMembersResult) []GetProjectMembersMember { return v.Members }).(GetProjectMembersMemberArrayOutput)
+}
+
+func (o LookupProjectMembersResultOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupProjectMembersResult) string { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+func (o LookupProjectMembersResultOutput) TeamId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v LookupProjectMembersResult) *string { return v.TeamId }).(pulumi.StringPtrOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(LookupProjectMembersResultOutput{})
+}
diff --git a/sdk/go/vercel/getTeamMember.go b/sdk/go/vercel/getTeamMember.go
new file mode 100644
index 0000000..70715d2
--- /dev/null
+++ b/sdk/go/vercel/getTeamMember.go
@@ -0,0 +1,110 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+func LookupTeamMember(ctx *pulumi.Context, args *LookupTeamMemberArgs, opts ...pulumi.InvokeOption) (*LookupTeamMemberResult, error) {
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupTeamMemberResult
+ err := ctx.Invoke("vercel:index/getTeamMember:getTeamMember", args, &rv, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &rv, nil
+}
+
+// A collection of arguments for invoking getTeamMember.
+type LookupTeamMemberArgs struct {
+ TeamId string `pulumi:"teamId"`
+ UserId string `pulumi:"userId"`
+}
+
+// A collection of values returned by getTeamMember.
+type LookupTeamMemberResult struct {
+ AccessGroups []string `pulumi:"accessGroups"`
+ Id string `pulumi:"id"`
+ Projects []GetTeamMemberProject `pulumi:"projects"`
+ Role string `pulumi:"role"`
+ TeamId string `pulumi:"teamId"`
+ UserId string `pulumi:"userId"`
+}
+
+func LookupTeamMemberOutput(ctx *pulumi.Context, args LookupTeamMemberOutputArgs, opts ...pulumi.InvokeOption) LookupTeamMemberResultOutput {
+ return pulumi.ToOutputWithContext(context.Background(), args).
+ ApplyT(func(v interface{}) (LookupTeamMemberResultOutput, error) {
+ args := v.(LookupTeamMemberArgs)
+ opts = internal.PkgInvokeDefaultOpts(opts)
+ var rv LookupTeamMemberResult
+ secret, err := ctx.InvokePackageRaw("vercel:index/getTeamMember:getTeamMember", args, &rv, "", opts...)
+ if err != nil {
+ return LookupTeamMemberResultOutput{}, err
+ }
+
+ output := pulumi.ToOutput(rv).(LookupTeamMemberResultOutput)
+ if secret {
+ return pulumi.ToSecret(output).(LookupTeamMemberResultOutput), nil
+ }
+ return output, nil
+ }).(LookupTeamMemberResultOutput)
+}
+
+// A collection of arguments for invoking getTeamMember.
+type LookupTeamMemberOutputArgs struct {
+ TeamId pulumi.StringInput `pulumi:"teamId"`
+ UserId pulumi.StringInput `pulumi:"userId"`
+}
+
+func (LookupTeamMemberOutputArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupTeamMemberArgs)(nil)).Elem()
+}
+
+// A collection of values returned by getTeamMember.
+type LookupTeamMemberResultOutput struct{ *pulumi.OutputState }
+
+func (LookupTeamMemberResultOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*LookupTeamMemberResult)(nil)).Elem()
+}
+
+func (o LookupTeamMemberResultOutput) ToLookupTeamMemberResultOutput() LookupTeamMemberResultOutput {
+ return o
+}
+
+func (o LookupTeamMemberResultOutput) ToLookupTeamMemberResultOutputWithContext(ctx context.Context) LookupTeamMemberResultOutput {
+ return o
+}
+
+func (o LookupTeamMemberResultOutput) AccessGroups() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v LookupTeamMemberResult) []string { return v.AccessGroups }).(pulumi.StringArrayOutput)
+}
+
+func (o LookupTeamMemberResultOutput) Id() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupTeamMemberResult) string { return v.Id }).(pulumi.StringOutput)
+}
+
+func (o LookupTeamMemberResultOutput) Projects() GetTeamMemberProjectArrayOutput {
+ return o.ApplyT(func(v LookupTeamMemberResult) []GetTeamMemberProject { return v.Projects }).(GetTeamMemberProjectArrayOutput)
+}
+
+func (o LookupTeamMemberResultOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupTeamMemberResult) string { return v.Role }).(pulumi.StringOutput)
+}
+
+func (o LookupTeamMemberResultOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupTeamMemberResult) string { return v.TeamId }).(pulumi.StringOutput)
+}
+
+func (o LookupTeamMemberResultOutput) UserId() pulumi.StringOutput {
+ return o.ApplyT(func(v LookupTeamMemberResult) string { return v.UserId }).(pulumi.StringOutput)
+}
+
+func init() {
+ pulumi.RegisterOutputType(LookupTeamMemberResultOutput{})
+}
diff --git a/sdk/go/vercel/init.go b/sdk/go/vercel/init.go
index eecbeb8..50f6763 100644
--- a/sdk/go/vercel/init.go
+++ b/sdk/go/vercel/init.go
@@ -21,10 +21,16 @@ func (m *module) Version() semver.Version {
func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) {
switch typ {
+ case "vercel:index/accessGroup:AccessGroup":
+ r = &AccessGroup{}
+ case "vercel:index/accessGroupProject:AccessGroupProject":
+ r = &AccessGroupProject{}
case "vercel:index/alias:Alias":
r = &Alias{}
case "vercel:index/attackChallengeMode:AttackChallengeMode":
r = &AttackChallengeMode{}
+ case "vercel:index/customEnvironment:CustomEnvironment":
+ r = &CustomEnvironment{}
case "vercel:index/deployment:Deployment":
r = &Deployment{}
case "vercel:index/dnsRecord:DnsRecord":
@@ -51,10 +57,14 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi
r = &ProjectEnvironmentVariable{}
case "vercel:index/projectEnvironmentVariables:ProjectEnvironmentVariables":
r = &ProjectEnvironmentVariables{}
+ case "vercel:index/projectMembers:ProjectMembers":
+ r = &ProjectMembers{}
case "vercel:index/sharedEnvironmentVariable:SharedEnvironmentVariable":
r = &SharedEnvironmentVariable{}
case "vercel:index/teamConfig:TeamConfig":
r = &TeamConfig{}
+ case "vercel:index/teamMember:TeamMember":
+ r = &TeamMember{}
case "vercel:index/webhook:Webhook":
r = &Webhook{}
default:
@@ -88,6 +98,16 @@ func init() {
if err != nil {
version = semver.Version{Major: 1}
}
+ pulumi.RegisterResourceModule(
+ "vercel",
+ "index/accessGroup",
+ &module{version},
+ )
+ pulumi.RegisterResourceModule(
+ "vercel",
+ "index/accessGroupProject",
+ &module{version},
+ )
pulumi.RegisterResourceModule(
"vercel",
"index/alias",
@@ -98,6 +118,11 @@ func init() {
"index/attackChallengeMode",
&module{version},
)
+ pulumi.RegisterResourceModule(
+ "vercel",
+ "index/customEnvironment",
+ &module{version},
+ )
pulumi.RegisterResourceModule(
"vercel",
"index/deployment",
@@ -163,6 +188,11 @@ func init() {
"index/projectEnvironmentVariables",
&module{version},
)
+ pulumi.RegisterResourceModule(
+ "vercel",
+ "index/projectMembers",
+ &module{version},
+ )
pulumi.RegisterResourceModule(
"vercel",
"index/sharedEnvironmentVariable",
@@ -173,6 +203,11 @@ func init() {
"index/teamConfig",
&module{version},
)
+ pulumi.RegisterResourceModule(
+ "vercel",
+ "index/teamMember",
+ &module{version},
+ )
pulumi.RegisterResourceModule(
"vercel",
"index/webhook",
diff --git a/sdk/go/vercel/project.go b/sdk/go/vercel/project.go
index cdeb847..f6dd768 100644
--- a/sdk/go/vercel/project.go
+++ b/sdk/go/vercel/project.go
@@ -70,12 +70,11 @@ type Project struct {
PreviewComments pulumi.BoolPtrOutput `pulumi:"previewComments"`
// If enabled, builds for the Production environment will be prioritized over Preview environments.
PrioritiseProductionBuilds pulumi.BoolOutput `pulumi:"prioritiseProductionBuilds"`
- // Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- // Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- // `passwordProtectionForAutomationSecret` field.
+ // Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ // `x-vercel-protection-bypass` with a value of the `protectionBypassForAutomationSecret` field.
ProtectionBypassForAutomation pulumi.BoolPtrOutput `pulumi:"protectionBypassForAutomation"`
- // If `protectionBypassForAutomation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass
- // Vercel Authentication and Password Protection for both Preview and Production Deployments.
+ // If `protectionBypassForAutomation` is enabled, optionally set this value to specify a 32 character secret, otherwise a
+ // secret will be generated.
ProtectionBypassForAutomationSecret pulumi.StringOutput `pulumi:"protectionBypassForAutomationSecret"`
// By default, visitors to the `/_logs` and `/_src` paths of your Production and Preview Deployments must log in with
// Vercel (requires being a member of your team) to see the Source, Logs and Deployment Status of your project. Setting
@@ -109,6 +108,13 @@ func NewProject(ctx *pulumi.Context,
args = &ProjectArgs{}
}
+ if args.ProtectionBypassForAutomationSecret != nil {
+ args.ProtectionBypassForAutomationSecret = pulumi.ToSecret(args.ProtectionBypassForAutomationSecret).(pulumi.StringPtrInput)
+ }
+ secrets := pulumi.AdditionalSecretOutputs([]string{
+ "protectionBypassForAutomationSecret",
+ })
+ opts = append(opts, secrets)
opts = internal.PkgResourceDefaultOpts(opts)
var resource Project
err := ctx.RegisterResource("vercel:index/project:Project", name, args, &resource, opts...)
@@ -188,12 +194,11 @@ type projectState struct {
PreviewComments *bool `pulumi:"previewComments"`
// If enabled, builds for the Production environment will be prioritized over Preview environments.
PrioritiseProductionBuilds *bool `pulumi:"prioritiseProductionBuilds"`
- // Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- // Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- // `passwordProtectionForAutomationSecret` field.
+ // Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ // `x-vercel-protection-bypass` with a value of the `protectionBypassForAutomationSecret` field.
ProtectionBypassForAutomation *bool `pulumi:"protectionBypassForAutomation"`
- // If `protectionBypassForAutomation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass
- // Vercel Authentication and Password Protection for both Preview and Production Deployments.
+ // If `protectionBypassForAutomation` is enabled, optionally set this value to specify a 32 character secret, otherwise a
+ // secret will be generated.
ProtectionBypassForAutomationSecret *string `pulumi:"protectionBypassForAutomationSecret"`
// By default, visitors to the `/_logs` and `/_src` paths of your Production and Preview Deployments must log in with
// Vercel (requires being a member of your team) to see the Source, Logs and Deployment Status of your project. Setting
@@ -277,12 +282,11 @@ type ProjectState struct {
PreviewComments pulumi.BoolPtrInput
// If enabled, builds for the Production environment will be prioritized over Preview environments.
PrioritiseProductionBuilds pulumi.BoolPtrInput
- // Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- // Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- // `passwordProtectionForAutomationSecret` field.
+ // Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ // `x-vercel-protection-bypass` with a value of the `protectionBypassForAutomationSecret` field.
ProtectionBypassForAutomation pulumi.BoolPtrInput
- // If `protectionBypassForAutomation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass
- // Vercel Authentication and Password Protection for both Preview and Production Deployments.
+ // If `protectionBypassForAutomation` is enabled, optionally set this value to specify a 32 character secret, otherwise a
+ // secret will be generated.
ProtectionBypassForAutomationSecret pulumi.StringPtrInput
// By default, visitors to the `/_logs` and `/_src` paths of your Production and Preview Deployments must log in with
// Vercel (requires being a member of your team) to see the Source, Logs and Deployment Status of your project. Setting
@@ -370,10 +374,12 @@ type projectArgs struct {
PreviewComments *bool `pulumi:"previewComments"`
// If enabled, builds for the Production environment will be prioritized over Preview environments.
PrioritiseProductionBuilds *bool `pulumi:"prioritiseProductionBuilds"`
- // Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- // Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- // `passwordProtectionForAutomationSecret` field.
+ // Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ // `x-vercel-protection-bypass` with a value of the `protectionBypassForAutomationSecret` field.
ProtectionBypassForAutomation *bool `pulumi:"protectionBypassForAutomation"`
+ // If `protectionBypassForAutomation` is enabled, optionally set this value to specify a 32 character secret, otherwise a
+ // secret will be generated.
+ ProtectionBypassForAutomationSecret *string `pulumi:"protectionBypassForAutomationSecret"`
// By default, visitors to the `/_logs` and `/_src` paths of your Production and Preview Deployments must log in with
// Vercel (requires being a member of your team) to see the Source, Logs and Deployment Status of your project. Setting
// `publicSource` to `true` disables this behaviour, meaning the Source, Logs and Deployment Status can be publicly viewed.
@@ -457,10 +463,12 @@ type ProjectArgs struct {
PreviewComments pulumi.BoolPtrInput
// If enabled, builds for the Production environment will be prioritized over Preview environments.
PrioritiseProductionBuilds pulumi.BoolPtrInput
- // Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
- // Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
- // `passwordProtectionForAutomationSecret` field.
+ // Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+ // `x-vercel-protection-bypass` with a value of the `protectionBypassForAutomationSecret` field.
ProtectionBypassForAutomation pulumi.BoolPtrInput
+ // If `protectionBypassForAutomation` is enabled, optionally set this value to specify a 32 character secret, otherwise a
+ // secret will be generated.
+ ProtectionBypassForAutomationSecret pulumi.StringPtrInput
// By default, visitors to the `/_logs` and `/_src` paths of your Production and Preview Deployments must log in with
// Vercel (requires being a member of your team) to see the Source, Logs and Deployment Status of your project. Setting
// `publicSource` to `true` disables this behaviour, meaning the Source, Logs and Deployment Status can be publicly viewed.
@@ -695,15 +703,14 @@ func (o ProjectOutput) PrioritiseProductionBuilds() pulumi.BoolOutput {
return o.ApplyT(func(v *Project) pulumi.BoolOutput { return v.PrioritiseProductionBuilds }).(pulumi.BoolOutput)
}
-// Allow automation services to bypass Vercel Authentication and Password Protection for both Preview and Production
-// Deployments on this project when using an HTTP header named `x-vercel-protection-bypass` with a value of the
-// `passwordProtectionForAutomationSecret` field.
+// Allow automation services to bypass Deployment Protection on this project when using an HTTP header named
+// `x-vercel-protection-bypass` with a value of the `protectionBypassForAutomationSecret` field.
func (o ProjectOutput) ProtectionBypassForAutomation() pulumi.BoolPtrOutput {
return o.ApplyT(func(v *Project) pulumi.BoolPtrOutput { return v.ProtectionBypassForAutomation }).(pulumi.BoolPtrOutput)
}
-// If `protectionBypassForAutomation` is enabled, use this value in the `x-vercel-protection-bypass` header to bypass
-// Vercel Authentication and Password Protection for both Preview and Production Deployments.
+// If `protectionBypassForAutomation` is enabled, optionally set this value to specify a 32 character secret, otherwise a
+// secret will be generated.
func (o ProjectOutput) ProtectionBypassForAutomationSecret() pulumi.StringOutput {
return o.ApplyT(func(v *Project) pulumi.StringOutput { return v.ProtectionBypassForAutomationSecret }).(pulumi.StringOutput)
}
diff --git a/sdk/go/vercel/projectDomain.go b/sdk/go/vercel/projectDomain.go
index b5a3eb9..9ae8a8c 100644
--- a/sdk/go/vercel/projectDomain.go
+++ b/sdk/go/vercel/projectDomain.go
@@ -15,6 +15,9 @@ import (
type ProjectDomain struct {
pulumi.CustomResourceState
+ // The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ // assigned the domain name.
+ CustomEnvironmentId pulumi.StringPtrOutput `pulumi:"customEnvironmentId"`
// The domain name to associate with the project.
Domain pulumi.StringOutput `pulumi:"domain"`
// Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name.
@@ -66,6 +69,9 @@ func GetProjectDomain(ctx *pulumi.Context,
// Input properties used for looking up and filtering ProjectDomain resources.
type projectDomainState struct {
+ // The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ // assigned the domain name.
+ CustomEnvironmentId *string `pulumi:"customEnvironmentId"`
// The domain name to associate with the project.
Domain *string `pulumi:"domain"`
// Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name.
@@ -82,6 +88,9 @@ type projectDomainState struct {
}
type ProjectDomainState struct {
+ // The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ // assigned the domain name.
+ CustomEnvironmentId pulumi.StringPtrInput
// The domain name to associate with the project.
Domain pulumi.StringPtrInput
// Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name.
@@ -102,6 +111,9 @@ func (ProjectDomainState) ElementType() reflect.Type {
}
type projectDomainArgs struct {
+ // The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ // assigned the domain name.
+ CustomEnvironmentId *string `pulumi:"customEnvironmentId"`
// The domain name to associate with the project.
Domain string `pulumi:"domain"`
// Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name.
@@ -119,6 +131,9 @@ type projectDomainArgs struct {
// The set of arguments for constructing a ProjectDomain resource.
type ProjectDomainArgs struct {
+ // The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+ // assigned the domain name.
+ CustomEnvironmentId pulumi.StringPtrInput
// The domain name to associate with the project.
Domain pulumi.StringInput
// Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name.
@@ -221,6 +236,12 @@ func (o ProjectDomainOutput) ToProjectDomainOutputWithContext(ctx context.Contex
return o
}
+// The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be
+// assigned the domain name.
+func (o ProjectDomainOutput) CustomEnvironmentId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *ProjectDomain) pulumi.StringPtrOutput { return v.CustomEnvironmentId }).(pulumi.StringPtrOutput)
+}
+
// The domain name to associate with the project.
func (o ProjectDomainOutput) Domain() pulumi.StringOutput {
return o.ApplyT(func(v *ProjectDomain) pulumi.StringOutput { return v.Domain }).(pulumi.StringOutput)
diff --git a/sdk/go/vercel/projectEnvironmentVariable.go b/sdk/go/vercel/projectEnvironmentVariable.go
index c01e11a..7583551 100644
--- a/sdk/go/vercel/projectEnvironmentVariable.go
+++ b/sdk/go/vercel/projectEnvironmentVariable.go
@@ -17,6 +17,9 @@ type ProjectEnvironmentVariable struct {
// A comment explaining what the environment variable is for.
Comment pulumi.StringOutput `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ // `customEnvironmentIds` must be set.
+ CustomEnvironmentIds pulumi.StringArrayOutput `pulumi:"customEnvironmentIds"`
// The git branch of the Environment Variable.
GitBranch pulumi.StringPtrOutput `pulumi:"gitBranch"`
// The name of the Environment Variable.
@@ -27,7 +30,7 @@ type ProjectEnvironmentVariable struct {
// policy](https://vercel.com/docs/projects/environment-variables/sensitive-environment-variables#environment-variables-policy))
Sensitive pulumi.BoolOutput `pulumi:"sensitive"`
// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- // or `development`.
+ // or `development`. At least one of `target` or `customEnvironmentIds` must be set.
Targets pulumi.StringArrayOutput `pulumi:"targets"`
// The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider.
TeamId pulumi.StringOutput `pulumi:"teamId"`
@@ -48,9 +51,6 @@ func NewProjectEnvironmentVariable(ctx *pulumi.Context,
if args.ProjectId == nil {
return nil, errors.New("invalid value for required argument 'ProjectId'")
}
- if args.Targets == nil {
- return nil, errors.New("invalid value for required argument 'Targets'")
- }
if args.Value == nil {
return nil, errors.New("invalid value for required argument 'Value'")
}
@@ -86,6 +86,9 @@ func GetProjectEnvironmentVariable(ctx *pulumi.Context,
type projectEnvironmentVariableState struct {
// A comment explaining what the environment variable is for.
Comment *string `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ // `customEnvironmentIds` must be set.
+ CustomEnvironmentIds []string `pulumi:"customEnvironmentIds"`
// The git branch of the Environment Variable.
GitBranch *string `pulumi:"gitBranch"`
// The name of the Environment Variable.
@@ -96,7 +99,7 @@ type projectEnvironmentVariableState struct {
// policy](https://vercel.com/docs/projects/environment-variables/sensitive-environment-variables#environment-variables-policy))
Sensitive *bool `pulumi:"sensitive"`
// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- // or `development`.
+ // or `development`. At least one of `target` or `customEnvironmentIds` must be set.
Targets []string `pulumi:"targets"`
// The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider.
TeamId *string `pulumi:"teamId"`
@@ -107,6 +110,9 @@ type projectEnvironmentVariableState struct {
type ProjectEnvironmentVariableState struct {
// A comment explaining what the environment variable is for.
Comment pulumi.StringPtrInput
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ // `customEnvironmentIds` must be set.
+ CustomEnvironmentIds pulumi.StringArrayInput
// The git branch of the Environment Variable.
GitBranch pulumi.StringPtrInput
// The name of the Environment Variable.
@@ -117,7 +123,7 @@ type ProjectEnvironmentVariableState struct {
// policy](https://vercel.com/docs/projects/environment-variables/sensitive-environment-variables#environment-variables-policy))
Sensitive pulumi.BoolPtrInput
// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- // or `development`.
+ // or `development`. At least one of `target` or `customEnvironmentIds` must be set.
Targets pulumi.StringArrayInput
// The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider.
TeamId pulumi.StringPtrInput
@@ -132,6 +138,9 @@ func (ProjectEnvironmentVariableState) ElementType() reflect.Type {
type projectEnvironmentVariableArgs struct {
// A comment explaining what the environment variable is for.
Comment *string `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ // `customEnvironmentIds` must be set.
+ CustomEnvironmentIds []string `pulumi:"customEnvironmentIds"`
// The git branch of the Environment Variable.
GitBranch *string `pulumi:"gitBranch"`
// The name of the Environment Variable.
@@ -142,7 +151,7 @@ type projectEnvironmentVariableArgs struct {
// policy](https://vercel.com/docs/projects/environment-variables/sensitive-environment-variables#environment-variables-policy))
Sensitive *bool `pulumi:"sensitive"`
// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- // or `development`.
+ // or `development`. At least one of `target` or `customEnvironmentIds` must be set.
Targets []string `pulumi:"targets"`
// The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider.
TeamId *string `pulumi:"teamId"`
@@ -154,6 +163,9 @@ type projectEnvironmentVariableArgs struct {
type ProjectEnvironmentVariableArgs struct {
// A comment explaining what the environment variable is for.
Comment pulumi.StringPtrInput
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+ // `customEnvironmentIds` must be set.
+ CustomEnvironmentIds pulumi.StringArrayInput
// The git branch of the Environment Variable.
GitBranch pulumi.StringPtrInput
// The name of the Environment Variable.
@@ -164,7 +176,7 @@ type ProjectEnvironmentVariableArgs struct {
// policy](https://vercel.com/docs/projects/environment-variables/sensitive-environment-variables#environment-variables-policy))
Sensitive pulumi.BoolPtrInput
// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
- // or `development`.
+ // or `development`. At least one of `target` or `customEnvironmentIds` must be set.
Targets pulumi.StringArrayInput
// The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider.
TeamId pulumi.StringPtrInput
@@ -264,6 +276,12 @@ func (o ProjectEnvironmentVariableOutput) Comment() pulumi.StringOutput {
return o.ApplyT(func(v *ProjectEnvironmentVariable) pulumi.StringOutput { return v.Comment }).(pulumi.StringOutput)
}
+// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or
+// `customEnvironmentIds` must be set.
+func (o ProjectEnvironmentVariableOutput) CustomEnvironmentIds() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v *ProjectEnvironmentVariable) pulumi.StringArrayOutput { return v.CustomEnvironmentIds }).(pulumi.StringArrayOutput)
+}
+
// The git branch of the Environment Variable.
func (o ProjectEnvironmentVariableOutput) GitBranch() pulumi.StringPtrOutput {
return o.ApplyT(func(v *ProjectEnvironmentVariable) pulumi.StringPtrOutput { return v.GitBranch }).(pulumi.StringPtrOutput)
@@ -286,7 +304,7 @@ func (o ProjectEnvironmentVariableOutput) Sensitive() pulumi.BoolOutput {
}
// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`,
-// or `development`.
+// or `development`. At least one of `target` or `customEnvironmentIds` must be set.
func (o ProjectEnvironmentVariableOutput) Targets() pulumi.StringArrayOutput {
return o.ApplyT(func(v *ProjectEnvironmentVariable) pulumi.StringArrayOutput { return v.Targets }).(pulumi.StringArrayOutput)
}
diff --git a/sdk/go/vercel/projectMembers.go b/sdk/go/vercel/projectMembers.go
new file mode 100644
index 0000000..78e106a
--- /dev/null
+++ b/sdk/go/vercel/projectMembers.go
@@ -0,0 +1,257 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+type ProjectMembers struct {
+ pulumi.CustomResourceState
+
+ // The set of members to manage for this project.
+ Members ProjectMembersMemberArrayOutput `pulumi:"members"`
+ // The ID of the existing Vercel Project.
+ ProjectId pulumi.StringOutput `pulumi:"projectId"`
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId pulumi.StringOutput `pulumi:"teamId"`
+}
+
+// NewProjectMembers registers a new resource with the given unique name, arguments, and options.
+func NewProjectMembers(ctx *pulumi.Context,
+ name string, args *ProjectMembersArgs, opts ...pulumi.ResourceOption) (*ProjectMembers, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.Members == nil {
+ return nil, errors.New("invalid value for required argument 'Members'")
+ }
+ if args.ProjectId == nil {
+ return nil, errors.New("invalid value for required argument 'ProjectId'")
+ }
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource ProjectMembers
+ err := ctx.RegisterResource("vercel:index/projectMembers:ProjectMembers", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetProjectMembers gets an existing ProjectMembers resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetProjectMembers(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *ProjectMembersState, opts ...pulumi.ResourceOption) (*ProjectMembers, error) {
+ var resource ProjectMembers
+ err := ctx.ReadResource("vercel:index/projectMembers:ProjectMembers", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering ProjectMembers resources.
+type projectMembersState struct {
+ // The set of members to manage for this project.
+ Members []ProjectMembersMember `pulumi:"members"`
+ // The ID of the existing Vercel Project.
+ ProjectId *string `pulumi:"projectId"`
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+type ProjectMembersState struct {
+ // The set of members to manage for this project.
+ Members ProjectMembersMemberArrayInput
+ // The ID of the existing Vercel Project.
+ ProjectId pulumi.StringPtrInput
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (ProjectMembersState) ElementType() reflect.Type {
+ return reflect.TypeOf((*projectMembersState)(nil)).Elem()
+}
+
+type projectMembersArgs struct {
+ // The set of members to manage for this project.
+ Members []ProjectMembersMember `pulumi:"members"`
+ // The ID of the existing Vercel Project.
+ ProjectId string `pulumi:"projectId"`
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId *string `pulumi:"teamId"`
+}
+
+// The set of arguments for constructing a ProjectMembers resource.
+type ProjectMembersArgs struct {
+ // The set of members to manage for this project.
+ Members ProjectMembersMemberArrayInput
+ // The ID of the existing Vercel Project.
+ ProjectId pulumi.StringInput
+ // The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+ // provider.
+ TeamId pulumi.StringPtrInput
+}
+
+func (ProjectMembersArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*projectMembersArgs)(nil)).Elem()
+}
+
+type ProjectMembersInput interface {
+ pulumi.Input
+
+ ToProjectMembersOutput() ProjectMembersOutput
+ ToProjectMembersOutputWithContext(ctx context.Context) ProjectMembersOutput
+}
+
+func (*ProjectMembers) ElementType() reflect.Type {
+ return reflect.TypeOf((**ProjectMembers)(nil)).Elem()
+}
+
+func (i *ProjectMembers) ToProjectMembersOutput() ProjectMembersOutput {
+ return i.ToProjectMembersOutputWithContext(context.Background())
+}
+
+func (i *ProjectMembers) ToProjectMembersOutputWithContext(ctx context.Context) ProjectMembersOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ProjectMembersOutput)
+}
+
+// ProjectMembersArrayInput is an input type that accepts ProjectMembersArray and ProjectMembersArrayOutput values.
+// You can construct a concrete instance of `ProjectMembersArrayInput` via:
+//
+// ProjectMembersArray{ ProjectMembersArgs{...} }
+type ProjectMembersArrayInput interface {
+ pulumi.Input
+
+ ToProjectMembersArrayOutput() ProjectMembersArrayOutput
+ ToProjectMembersArrayOutputWithContext(context.Context) ProjectMembersArrayOutput
+}
+
+type ProjectMembersArray []ProjectMembersInput
+
+func (ProjectMembersArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*ProjectMembers)(nil)).Elem()
+}
+
+func (i ProjectMembersArray) ToProjectMembersArrayOutput() ProjectMembersArrayOutput {
+ return i.ToProjectMembersArrayOutputWithContext(context.Background())
+}
+
+func (i ProjectMembersArray) ToProjectMembersArrayOutputWithContext(ctx context.Context) ProjectMembersArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ProjectMembersArrayOutput)
+}
+
+// ProjectMembersMapInput is an input type that accepts ProjectMembersMap and ProjectMembersMapOutput values.
+// You can construct a concrete instance of `ProjectMembersMapInput` via:
+//
+// ProjectMembersMap{ "key": ProjectMembersArgs{...} }
+type ProjectMembersMapInput interface {
+ pulumi.Input
+
+ ToProjectMembersMapOutput() ProjectMembersMapOutput
+ ToProjectMembersMapOutputWithContext(context.Context) ProjectMembersMapOutput
+}
+
+type ProjectMembersMap map[string]ProjectMembersInput
+
+func (ProjectMembersMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*ProjectMembers)(nil)).Elem()
+}
+
+func (i ProjectMembersMap) ToProjectMembersMapOutput() ProjectMembersMapOutput {
+ return i.ToProjectMembersMapOutputWithContext(context.Background())
+}
+
+func (i ProjectMembersMap) ToProjectMembersMapOutputWithContext(ctx context.Context) ProjectMembersMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ProjectMembersMapOutput)
+}
+
+type ProjectMembersOutput struct{ *pulumi.OutputState }
+
+func (ProjectMembersOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**ProjectMembers)(nil)).Elem()
+}
+
+func (o ProjectMembersOutput) ToProjectMembersOutput() ProjectMembersOutput {
+ return o
+}
+
+func (o ProjectMembersOutput) ToProjectMembersOutputWithContext(ctx context.Context) ProjectMembersOutput {
+ return o
+}
+
+// The set of members to manage for this project.
+func (o ProjectMembersOutput) Members() ProjectMembersMemberArrayOutput {
+ return o.ApplyT(func(v *ProjectMembers) ProjectMembersMemberArrayOutput { return v.Members }).(ProjectMembersMemberArrayOutput)
+}
+
+// The ID of the existing Vercel Project.
+func (o ProjectMembersOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v *ProjectMembers) pulumi.StringOutput { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+// The team ID to add the project to. Required when configuring a team resource if a default team has not been set in the
+// provider.
+func (o ProjectMembersOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v *ProjectMembers) pulumi.StringOutput { return v.TeamId }).(pulumi.StringOutput)
+}
+
+type ProjectMembersArrayOutput struct{ *pulumi.OutputState }
+
+func (ProjectMembersArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*ProjectMembers)(nil)).Elem()
+}
+
+func (o ProjectMembersArrayOutput) ToProjectMembersArrayOutput() ProjectMembersArrayOutput {
+ return o
+}
+
+func (o ProjectMembersArrayOutput) ToProjectMembersArrayOutputWithContext(ctx context.Context) ProjectMembersArrayOutput {
+ return o
+}
+
+func (o ProjectMembersArrayOutput) Index(i pulumi.IntInput) ProjectMembersOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *ProjectMembers {
+ return vs[0].([]*ProjectMembers)[vs[1].(int)]
+ }).(ProjectMembersOutput)
+}
+
+type ProjectMembersMapOutput struct{ *pulumi.OutputState }
+
+func (ProjectMembersMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*ProjectMembers)(nil)).Elem()
+}
+
+func (o ProjectMembersMapOutput) ToProjectMembersMapOutput() ProjectMembersMapOutput {
+ return o
+}
+
+func (o ProjectMembersMapOutput) ToProjectMembersMapOutputWithContext(ctx context.Context) ProjectMembersMapOutput {
+ return o
+}
+
+func (o ProjectMembersMapOutput) MapIndex(k pulumi.StringInput) ProjectMembersOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *ProjectMembers {
+ return vs[0].(map[string]*ProjectMembers)[vs[1].(string)]
+ }).(ProjectMembersOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*ProjectMembersInput)(nil)).Elem(), &ProjectMembers{})
+ pulumi.RegisterInputType(reflect.TypeOf((*ProjectMembersArrayInput)(nil)).Elem(), ProjectMembersArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*ProjectMembersMapInput)(nil)).Elem(), ProjectMembersMap{})
+ pulumi.RegisterOutputType(ProjectMembersOutput{})
+ pulumi.RegisterOutputType(ProjectMembersArrayOutput{})
+ pulumi.RegisterOutputType(ProjectMembersMapOutput{})
+}
diff --git a/sdk/go/vercel/pulumiTypes.go b/sdk/go/vercel/pulumiTypes.go
index b4b0f59..bb5e54d 100644
--- a/sdk/go/vercel/pulumiTypes.go
+++ b/sdk/go/vercel/pulumiTypes.go
@@ -13,6 +13,162 @@ import (
var _ = internal.GetEnvOrDefault
+type CustomEnvironmentBranchTracking struct {
+ // The pattern of the branch name to track.
+ Pattern string `pulumi:"pattern"`
+ // How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ Type string `pulumi:"type"`
+}
+
+// CustomEnvironmentBranchTrackingInput is an input type that accepts CustomEnvironmentBranchTrackingArgs and CustomEnvironmentBranchTrackingOutput values.
+// You can construct a concrete instance of `CustomEnvironmentBranchTrackingInput` via:
+//
+// CustomEnvironmentBranchTrackingArgs{...}
+type CustomEnvironmentBranchTrackingInput interface {
+ pulumi.Input
+
+ ToCustomEnvironmentBranchTrackingOutput() CustomEnvironmentBranchTrackingOutput
+ ToCustomEnvironmentBranchTrackingOutputWithContext(context.Context) CustomEnvironmentBranchTrackingOutput
+}
+
+type CustomEnvironmentBranchTrackingArgs struct {
+ // The pattern of the branch name to track.
+ Pattern pulumi.StringInput `pulumi:"pattern"`
+ // How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ Type pulumi.StringInput `pulumi:"type"`
+}
+
+func (CustomEnvironmentBranchTrackingArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*CustomEnvironmentBranchTracking)(nil)).Elem()
+}
+
+func (i CustomEnvironmentBranchTrackingArgs) ToCustomEnvironmentBranchTrackingOutput() CustomEnvironmentBranchTrackingOutput {
+ return i.ToCustomEnvironmentBranchTrackingOutputWithContext(context.Background())
+}
+
+func (i CustomEnvironmentBranchTrackingArgs) ToCustomEnvironmentBranchTrackingOutputWithContext(ctx context.Context) CustomEnvironmentBranchTrackingOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(CustomEnvironmentBranchTrackingOutput)
+}
+
+func (i CustomEnvironmentBranchTrackingArgs) ToCustomEnvironmentBranchTrackingPtrOutput() CustomEnvironmentBranchTrackingPtrOutput {
+ return i.ToCustomEnvironmentBranchTrackingPtrOutputWithContext(context.Background())
+}
+
+func (i CustomEnvironmentBranchTrackingArgs) ToCustomEnvironmentBranchTrackingPtrOutputWithContext(ctx context.Context) CustomEnvironmentBranchTrackingPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(CustomEnvironmentBranchTrackingOutput).ToCustomEnvironmentBranchTrackingPtrOutputWithContext(ctx)
+}
+
+// CustomEnvironmentBranchTrackingPtrInput is an input type that accepts CustomEnvironmentBranchTrackingArgs, CustomEnvironmentBranchTrackingPtr and CustomEnvironmentBranchTrackingPtrOutput values.
+// You can construct a concrete instance of `CustomEnvironmentBranchTrackingPtrInput` via:
+//
+// CustomEnvironmentBranchTrackingArgs{...}
+//
+// or:
+//
+// nil
+type CustomEnvironmentBranchTrackingPtrInput interface {
+ pulumi.Input
+
+ ToCustomEnvironmentBranchTrackingPtrOutput() CustomEnvironmentBranchTrackingPtrOutput
+ ToCustomEnvironmentBranchTrackingPtrOutputWithContext(context.Context) CustomEnvironmentBranchTrackingPtrOutput
+}
+
+type customEnvironmentBranchTrackingPtrType CustomEnvironmentBranchTrackingArgs
+
+func CustomEnvironmentBranchTrackingPtr(v *CustomEnvironmentBranchTrackingArgs) CustomEnvironmentBranchTrackingPtrInput {
+ return (*customEnvironmentBranchTrackingPtrType)(v)
+}
+
+func (*customEnvironmentBranchTrackingPtrType) ElementType() reflect.Type {
+ return reflect.TypeOf((**CustomEnvironmentBranchTracking)(nil)).Elem()
+}
+
+func (i *customEnvironmentBranchTrackingPtrType) ToCustomEnvironmentBranchTrackingPtrOutput() CustomEnvironmentBranchTrackingPtrOutput {
+ return i.ToCustomEnvironmentBranchTrackingPtrOutputWithContext(context.Background())
+}
+
+func (i *customEnvironmentBranchTrackingPtrType) ToCustomEnvironmentBranchTrackingPtrOutputWithContext(ctx context.Context) CustomEnvironmentBranchTrackingPtrOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(CustomEnvironmentBranchTrackingPtrOutput)
+}
+
+type CustomEnvironmentBranchTrackingOutput struct{ *pulumi.OutputState }
+
+func (CustomEnvironmentBranchTrackingOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*CustomEnvironmentBranchTracking)(nil)).Elem()
+}
+
+func (o CustomEnvironmentBranchTrackingOutput) ToCustomEnvironmentBranchTrackingOutput() CustomEnvironmentBranchTrackingOutput {
+ return o
+}
+
+func (o CustomEnvironmentBranchTrackingOutput) ToCustomEnvironmentBranchTrackingOutputWithContext(ctx context.Context) CustomEnvironmentBranchTrackingOutput {
+ return o
+}
+
+func (o CustomEnvironmentBranchTrackingOutput) ToCustomEnvironmentBranchTrackingPtrOutput() CustomEnvironmentBranchTrackingPtrOutput {
+ return o.ToCustomEnvironmentBranchTrackingPtrOutputWithContext(context.Background())
+}
+
+func (o CustomEnvironmentBranchTrackingOutput) ToCustomEnvironmentBranchTrackingPtrOutputWithContext(ctx context.Context) CustomEnvironmentBranchTrackingPtrOutput {
+ return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomEnvironmentBranchTracking) *CustomEnvironmentBranchTracking {
+ return &v
+ }).(CustomEnvironmentBranchTrackingPtrOutput)
+}
+
+// The pattern of the branch name to track.
+func (o CustomEnvironmentBranchTrackingOutput) Pattern() pulumi.StringOutput {
+ return o.ApplyT(func(v CustomEnvironmentBranchTracking) string { return v.Pattern }).(pulumi.StringOutput)
+}
+
+// How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+func (o CustomEnvironmentBranchTrackingOutput) Type() pulumi.StringOutput {
+ return o.ApplyT(func(v CustomEnvironmentBranchTracking) string { return v.Type }).(pulumi.StringOutput)
+}
+
+type CustomEnvironmentBranchTrackingPtrOutput struct{ *pulumi.OutputState }
+
+func (CustomEnvironmentBranchTrackingPtrOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**CustomEnvironmentBranchTracking)(nil)).Elem()
+}
+
+func (o CustomEnvironmentBranchTrackingPtrOutput) ToCustomEnvironmentBranchTrackingPtrOutput() CustomEnvironmentBranchTrackingPtrOutput {
+ return o
+}
+
+func (o CustomEnvironmentBranchTrackingPtrOutput) ToCustomEnvironmentBranchTrackingPtrOutputWithContext(ctx context.Context) CustomEnvironmentBranchTrackingPtrOutput {
+ return o
+}
+
+func (o CustomEnvironmentBranchTrackingPtrOutput) Elem() CustomEnvironmentBranchTrackingOutput {
+ return o.ApplyT(func(v *CustomEnvironmentBranchTracking) CustomEnvironmentBranchTracking {
+ if v != nil {
+ return *v
+ }
+ var ret CustomEnvironmentBranchTracking
+ return ret
+ }).(CustomEnvironmentBranchTrackingOutput)
+}
+
+// The pattern of the branch name to track.
+func (o CustomEnvironmentBranchTrackingPtrOutput) Pattern() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *CustomEnvironmentBranchTracking) *string {
+ if v == nil {
+ return nil
+ }
+ return &v.Pattern
+ }).(pulumi.StringPtrOutput)
+}
+
+// How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+func (o CustomEnvironmentBranchTrackingPtrOutput) Type() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v *CustomEnvironmentBranchTracking) *string {
+ if v == nil {
+ return nil
+ }
+ return &v.Type
+ }).(pulumi.StringPtrOutput)
+}
+
type DeploymentProjectSettings struct {
// The build command for this deployment. If omitted, this value will be taken from the project or automatically detected.
BuildCommand *string `pulumi:"buildCommand"`
@@ -3540,6 +3696,8 @@ func (o FirewallConfigRulesRuleConditionGroupConditionArrayOutput) Index(i pulum
type ProjectEnvironment struct {
// A comment explaining what the environment variable is for.
Comment *string `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
+ CustomEnvironmentIds []string `pulumi:"customEnvironmentIds"`
// The git branch of the Environment Variable.
GitBranch *string `pulumi:"gitBranch"`
// The ID of the Environment Variable.
@@ -3548,7 +3706,7 @@ type ProjectEnvironment struct {
Key string `pulumi:"key"`
// Whether the Environment Variable is sensitive or not. (May be affected by a [team-wide environment variable policy](https://vercel.com/docs/projects/environment-variables/sensitive-environment-variables#environment-variables-policy))
Sensitive *bool `pulumi:"sensitive"`
- // The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ // 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.
Targets []string `pulumi:"targets"`
// The value of the Environment Variable.
Value string `pulumi:"value"`
@@ -3568,6 +3726,8 @@ type ProjectEnvironmentInput interface {
type ProjectEnvironmentArgs struct {
// A comment explaining what the environment variable is for.
Comment pulumi.StringPtrInput `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
+ CustomEnvironmentIds pulumi.StringArrayInput `pulumi:"customEnvironmentIds"`
// The git branch of the Environment Variable.
GitBranch pulumi.StringPtrInput `pulumi:"gitBranch"`
// The ID of the Environment Variable.
@@ -3576,7 +3736,7 @@ type ProjectEnvironmentArgs struct {
Key pulumi.StringInput `pulumi:"key"`
// Whether the Environment Variable is sensitive or not. (May be affected by a [team-wide environment variable policy](https://vercel.com/docs/projects/environment-variables/sensitive-environment-variables#environment-variables-policy))
Sensitive pulumi.BoolPtrInput `pulumi:"sensitive"`
- // The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ // 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.
Targets pulumi.StringArrayInput `pulumi:"targets"`
// The value of the Environment Variable.
Value pulumi.StringInput `pulumi:"value"`
@@ -3638,6 +3798,11 @@ func (o ProjectEnvironmentOutput) Comment() pulumi.StringPtrOutput {
return o.ApplyT(func(v ProjectEnvironment) *string { return v.Comment }).(pulumi.StringPtrOutput)
}
+// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
+func (o ProjectEnvironmentOutput) CustomEnvironmentIds() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v ProjectEnvironment) []string { return v.CustomEnvironmentIds }).(pulumi.StringArrayOutput)
+}
+
// The git branch of the Environment Variable.
func (o ProjectEnvironmentOutput) GitBranch() pulumi.StringPtrOutput {
return o.ApplyT(func(v ProjectEnvironment) *string { return v.GitBranch }).(pulumi.StringPtrOutput)
@@ -3658,7 +3823,7 @@ func (o ProjectEnvironmentOutput) Sensitive() pulumi.BoolPtrOutput {
return o.ApplyT(func(v ProjectEnvironment) *bool { return v.Sensitive }).(pulumi.BoolPtrOutput)
}
-// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+// 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.
func (o ProjectEnvironmentOutput) Targets() pulumi.StringArrayOutput {
return o.ApplyT(func(v ProjectEnvironment) []string { return v.Targets }).(pulumi.StringArrayOutput)
}
@@ -3691,6 +3856,8 @@ func (o ProjectEnvironmentArrayOutput) Index(i pulumi.IntInput) ProjectEnvironme
type ProjectEnvironmentVariablesVariable struct {
// A comment explaining what the environment variable is for.
Comment *string `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
+ CustomEnvironmentIds []string `pulumi:"customEnvironmentIds"`
// The git branch of the Environment Variable.
GitBranch *string `pulumi:"gitBranch"`
// The ID of the Environment Variable.
@@ -3699,7 +3866,7 @@ type ProjectEnvironmentVariablesVariable struct {
Key string `pulumi:"key"`
// Whether the Environment Variable is sensitive or not.
Sensitive *bool `pulumi:"sensitive"`
- // The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ // 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.
Targets []string `pulumi:"targets"`
// The value of the Environment Variable.
Value string `pulumi:"value"`
@@ -3719,6 +3886,8 @@ type ProjectEnvironmentVariablesVariableInput interface {
type ProjectEnvironmentVariablesVariableArgs struct {
// A comment explaining what the environment variable is for.
Comment pulumi.StringPtrInput `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
+ CustomEnvironmentIds pulumi.StringArrayInput `pulumi:"customEnvironmentIds"`
// The git branch of the Environment Variable.
GitBranch pulumi.StringPtrInput `pulumi:"gitBranch"`
// The ID of the Environment Variable.
@@ -3727,7 +3896,7 @@ type ProjectEnvironmentVariablesVariableArgs struct {
Key pulumi.StringInput `pulumi:"key"`
// Whether the Environment Variable is sensitive or not.
Sensitive pulumi.BoolPtrInput `pulumi:"sensitive"`
- // The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+ // 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.
Targets pulumi.StringArrayInput `pulumi:"targets"`
// The value of the Environment Variable.
Value pulumi.StringInput `pulumi:"value"`
@@ -3789,6 +3958,11 @@ func (o ProjectEnvironmentVariablesVariableOutput) Comment() pulumi.StringPtrOut
return o.ApplyT(func(v ProjectEnvironmentVariablesVariable) *string { return v.Comment }).(pulumi.StringPtrOutput)
}
+// The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or `customEnvironmentIds` must be set.
+func (o ProjectEnvironmentVariablesVariableOutput) CustomEnvironmentIds() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v ProjectEnvironmentVariablesVariable) []string { return v.CustomEnvironmentIds }).(pulumi.StringArrayOutput)
+}
+
// The git branch of the Environment Variable.
func (o ProjectEnvironmentVariablesVariableOutput) GitBranch() pulumi.StringPtrOutput {
return o.ApplyT(func(v ProjectEnvironmentVariablesVariable) *string { return v.GitBranch }).(pulumi.StringPtrOutput)
@@ -3809,7 +3983,7 @@ func (o ProjectEnvironmentVariablesVariableOutput) Sensitive() pulumi.BoolPtrOut
return o.ApplyT(func(v ProjectEnvironmentVariablesVariable) *bool { return v.Sensitive }).(pulumi.BoolPtrOutput)
}
-// The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`.
+// 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.
func (o ProjectEnvironmentVariablesVariableOutput) Targets() pulumi.StringArrayOutput {
return o.ApplyT(func(v ProjectEnvironmentVariablesVariable) []string { return v.Targets }).(pulumi.StringArrayOutput)
}
@@ -4313,6 +4487,130 @@ func (o ProjectGitRepositoryDeployHookArrayOutput) Index(i pulumi.IntInput) Proj
}).(ProjectGitRepositoryDeployHookOutput)
}
+type ProjectMembersMember struct {
+ // The email of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+ Email *string `pulumi:"email"`
+ // The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ Role string `pulumi:"role"`
+ // The ID of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+ UserId *string `pulumi:"userId"`
+ // The username of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+ Username *string `pulumi:"username"`
+}
+
+// ProjectMembersMemberInput is an input type that accepts ProjectMembersMemberArgs and ProjectMembersMemberOutput values.
+// You can construct a concrete instance of `ProjectMembersMemberInput` via:
+//
+// ProjectMembersMemberArgs{...}
+type ProjectMembersMemberInput interface {
+ pulumi.Input
+
+ ToProjectMembersMemberOutput() ProjectMembersMemberOutput
+ ToProjectMembersMemberOutputWithContext(context.Context) ProjectMembersMemberOutput
+}
+
+type ProjectMembersMemberArgs struct {
+ // The email of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+ Email pulumi.StringPtrInput `pulumi:"email"`
+ // The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ Role pulumi.StringInput `pulumi:"role"`
+ // The ID of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+ UserId pulumi.StringPtrInput `pulumi:"userId"`
+ // The username of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+ Username pulumi.StringPtrInput `pulumi:"username"`
+}
+
+func (ProjectMembersMemberArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*ProjectMembersMember)(nil)).Elem()
+}
+
+func (i ProjectMembersMemberArgs) ToProjectMembersMemberOutput() ProjectMembersMemberOutput {
+ return i.ToProjectMembersMemberOutputWithContext(context.Background())
+}
+
+func (i ProjectMembersMemberArgs) ToProjectMembersMemberOutputWithContext(ctx context.Context) ProjectMembersMemberOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ProjectMembersMemberOutput)
+}
+
+// ProjectMembersMemberArrayInput is an input type that accepts ProjectMembersMemberArray and ProjectMembersMemberArrayOutput values.
+// You can construct a concrete instance of `ProjectMembersMemberArrayInput` via:
+//
+// ProjectMembersMemberArray{ ProjectMembersMemberArgs{...} }
+type ProjectMembersMemberArrayInput interface {
+ pulumi.Input
+
+ ToProjectMembersMemberArrayOutput() ProjectMembersMemberArrayOutput
+ ToProjectMembersMemberArrayOutputWithContext(context.Context) ProjectMembersMemberArrayOutput
+}
+
+type ProjectMembersMemberArray []ProjectMembersMemberInput
+
+func (ProjectMembersMemberArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]ProjectMembersMember)(nil)).Elem()
+}
+
+func (i ProjectMembersMemberArray) ToProjectMembersMemberArrayOutput() ProjectMembersMemberArrayOutput {
+ return i.ToProjectMembersMemberArrayOutputWithContext(context.Background())
+}
+
+func (i ProjectMembersMemberArray) ToProjectMembersMemberArrayOutputWithContext(ctx context.Context) ProjectMembersMemberArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(ProjectMembersMemberArrayOutput)
+}
+
+type ProjectMembersMemberOutput struct{ *pulumi.OutputState }
+
+func (ProjectMembersMemberOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*ProjectMembersMember)(nil)).Elem()
+}
+
+func (o ProjectMembersMemberOutput) ToProjectMembersMemberOutput() ProjectMembersMemberOutput {
+ return o
+}
+
+func (o ProjectMembersMemberOutput) ToProjectMembersMemberOutputWithContext(ctx context.Context) ProjectMembersMemberOutput {
+ return o
+}
+
+// The email of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+func (o ProjectMembersMemberOutput) Email() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v ProjectMembersMember) *string { return v.Email }).(pulumi.StringPtrOutput)
+}
+
+// The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+func (o ProjectMembersMemberOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v ProjectMembersMember) string { return v.Role }).(pulumi.StringOutput)
+}
+
+// The ID of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+func (o ProjectMembersMemberOutput) UserId() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v ProjectMembersMember) *string { return v.UserId }).(pulumi.StringPtrOutput)
+}
+
+// The username of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified.
+func (o ProjectMembersMemberOutput) Username() pulumi.StringPtrOutput {
+ return o.ApplyT(func(v ProjectMembersMember) *string { return v.Username }).(pulumi.StringPtrOutput)
+}
+
+type ProjectMembersMemberArrayOutput struct{ *pulumi.OutputState }
+
+func (ProjectMembersMemberArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]ProjectMembersMember)(nil)).Elem()
+}
+
+func (o ProjectMembersMemberArrayOutput) ToProjectMembersMemberArrayOutput() ProjectMembersMemberArrayOutput {
+ return o
+}
+
+func (o ProjectMembersMemberArrayOutput) ToProjectMembersMemberArrayOutputWithContext(ctx context.Context) ProjectMembersMemberArrayOutput {
+ return o
+}
+
+func (o ProjectMembersMemberArrayOutput) Index(i pulumi.IntInput) ProjectMembersMemberOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) ProjectMembersMember {
+ return vs[0].([]ProjectMembersMember)[vs[1].(int)]
+ }).(ProjectMembersMemberOutput)
+}
+
type ProjectOidcTokenConfig struct {
// 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.
Enabled bool `pulumi:"enabled"`
@@ -5745,9 +6043,178 @@ func (o TeamConfigSamlPtrOutput) Roles() pulumi.StringMapOutput {
}).(pulumi.StringMapOutput)
}
+type TeamMemberProject struct {
+ // The ID of the project that the user should be granted access to.
+ ProjectId string `pulumi:"projectId"`
+ // The role that the user should have in the project.
+ Role string `pulumi:"role"`
+}
+
+// TeamMemberProjectInput is an input type that accepts TeamMemberProjectArgs and TeamMemberProjectOutput values.
+// You can construct a concrete instance of `TeamMemberProjectInput` via:
+//
+// TeamMemberProjectArgs{...}
+type TeamMemberProjectInput interface {
+ pulumi.Input
+
+ ToTeamMemberProjectOutput() TeamMemberProjectOutput
+ ToTeamMemberProjectOutputWithContext(context.Context) TeamMemberProjectOutput
+}
+
+type TeamMemberProjectArgs struct {
+ // The ID of the project that the user should be granted access to.
+ ProjectId pulumi.StringInput `pulumi:"projectId"`
+ // The role that the user should have in the project.
+ Role pulumi.StringInput `pulumi:"role"`
+}
+
+func (TeamMemberProjectArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*TeamMemberProject)(nil)).Elem()
+}
+
+func (i TeamMemberProjectArgs) ToTeamMemberProjectOutput() TeamMemberProjectOutput {
+ return i.ToTeamMemberProjectOutputWithContext(context.Background())
+}
+
+func (i TeamMemberProjectArgs) ToTeamMemberProjectOutputWithContext(ctx context.Context) TeamMemberProjectOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(TeamMemberProjectOutput)
+}
+
+// TeamMemberProjectArrayInput is an input type that accepts TeamMemberProjectArray and TeamMemberProjectArrayOutput values.
+// You can construct a concrete instance of `TeamMemberProjectArrayInput` via:
+//
+// TeamMemberProjectArray{ TeamMemberProjectArgs{...} }
+type TeamMemberProjectArrayInput interface {
+ pulumi.Input
+
+ ToTeamMemberProjectArrayOutput() TeamMemberProjectArrayOutput
+ ToTeamMemberProjectArrayOutputWithContext(context.Context) TeamMemberProjectArrayOutput
+}
+
+type TeamMemberProjectArray []TeamMemberProjectInput
+
+func (TeamMemberProjectArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]TeamMemberProject)(nil)).Elem()
+}
+
+func (i TeamMemberProjectArray) ToTeamMemberProjectArrayOutput() TeamMemberProjectArrayOutput {
+ return i.ToTeamMemberProjectArrayOutputWithContext(context.Background())
+}
+
+func (i TeamMemberProjectArray) ToTeamMemberProjectArrayOutputWithContext(ctx context.Context) TeamMemberProjectArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(TeamMemberProjectArrayOutput)
+}
+
+type TeamMemberProjectOutput struct{ *pulumi.OutputState }
+
+func (TeamMemberProjectOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*TeamMemberProject)(nil)).Elem()
+}
+
+func (o TeamMemberProjectOutput) ToTeamMemberProjectOutput() TeamMemberProjectOutput {
+ return o
+}
+
+func (o TeamMemberProjectOutput) ToTeamMemberProjectOutputWithContext(ctx context.Context) TeamMemberProjectOutput {
+ return o
+}
+
+// The ID of the project that the user should be granted access to.
+func (o TeamMemberProjectOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v TeamMemberProject) string { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+// The role that the user should have in the project.
+func (o TeamMemberProjectOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v TeamMemberProject) string { return v.Role }).(pulumi.StringOutput)
+}
+
+type TeamMemberProjectArrayOutput struct{ *pulumi.OutputState }
+
+func (TeamMemberProjectArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]TeamMemberProject)(nil)).Elem()
+}
+
+func (o TeamMemberProjectArrayOutput) ToTeamMemberProjectArrayOutput() TeamMemberProjectArrayOutput {
+ return o
+}
+
+func (o TeamMemberProjectArrayOutput) ToTeamMemberProjectArrayOutputWithContext(ctx context.Context) TeamMemberProjectArrayOutput {
+ return o
+}
+
+func (o TeamMemberProjectArrayOutput) Index(i pulumi.IntInput) TeamMemberProjectOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) TeamMemberProject {
+ return vs[0].([]TeamMemberProject)[vs[1].(int)]
+ }).(TeamMemberProjectOutput)
+}
+
+type GetCustomEnvironmentBranchTracking struct {
+ // The pattern of the branch name to track.
+ Pattern string `pulumi:"pattern"`
+ // How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ Type string `pulumi:"type"`
+}
+
+// GetCustomEnvironmentBranchTrackingInput is an input type that accepts GetCustomEnvironmentBranchTrackingArgs and GetCustomEnvironmentBranchTrackingOutput values.
+// You can construct a concrete instance of `GetCustomEnvironmentBranchTrackingInput` via:
+//
+// GetCustomEnvironmentBranchTrackingArgs{...}
+type GetCustomEnvironmentBranchTrackingInput interface {
+ pulumi.Input
+
+ ToGetCustomEnvironmentBranchTrackingOutput() GetCustomEnvironmentBranchTrackingOutput
+ ToGetCustomEnvironmentBranchTrackingOutputWithContext(context.Context) GetCustomEnvironmentBranchTrackingOutput
+}
+
+type GetCustomEnvironmentBranchTrackingArgs struct {
+ // The pattern of the branch name to track.
+ Pattern pulumi.StringInput `pulumi:"pattern"`
+ // How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+ Type pulumi.StringInput `pulumi:"type"`
+}
+
+func (GetCustomEnvironmentBranchTrackingArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetCustomEnvironmentBranchTracking)(nil)).Elem()
+}
+
+func (i GetCustomEnvironmentBranchTrackingArgs) ToGetCustomEnvironmentBranchTrackingOutput() GetCustomEnvironmentBranchTrackingOutput {
+ return i.ToGetCustomEnvironmentBranchTrackingOutputWithContext(context.Background())
+}
+
+func (i GetCustomEnvironmentBranchTrackingArgs) ToGetCustomEnvironmentBranchTrackingOutputWithContext(ctx context.Context) GetCustomEnvironmentBranchTrackingOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetCustomEnvironmentBranchTrackingOutput)
+}
+
+type GetCustomEnvironmentBranchTrackingOutput struct{ *pulumi.OutputState }
+
+func (GetCustomEnvironmentBranchTrackingOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetCustomEnvironmentBranchTracking)(nil)).Elem()
+}
+
+func (o GetCustomEnvironmentBranchTrackingOutput) ToGetCustomEnvironmentBranchTrackingOutput() GetCustomEnvironmentBranchTrackingOutput {
+ return o
+}
+
+func (o GetCustomEnvironmentBranchTrackingOutput) ToGetCustomEnvironmentBranchTrackingOutputWithContext(ctx context.Context) GetCustomEnvironmentBranchTrackingOutput {
+ return o
+}
+
+// The pattern of the branch name to track.
+func (o GetCustomEnvironmentBranchTrackingOutput) Pattern() pulumi.StringOutput {
+ return o.ApplyT(func(v GetCustomEnvironmentBranchTracking) string { return v.Pattern }).(pulumi.StringOutput)
+}
+
+// How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'.
+func (o GetCustomEnvironmentBranchTrackingOutput) Type() pulumi.StringOutput {
+ return o.ApplyT(func(v GetCustomEnvironmentBranchTracking) string { return v.Type }).(pulumi.StringOutput)
+}
+
type GetProjectEnvironment struct {
// A comment explaining what the environment variable is for.
Comment string `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on.
+ CustomEnvironmentIds []string `pulumi:"customEnvironmentIds"`
// The git branch of the environment variable.
GitBranch string `pulumi:"gitBranch"`
// The ID of the environment variable
@@ -5776,6 +6243,8 @@ type GetProjectEnvironmentInput interface {
type GetProjectEnvironmentArgs struct {
// A comment explaining what the environment variable is for.
Comment pulumi.StringInput `pulumi:"comment"`
+ // The IDs of Custom Environments that the Environment Variable should be present on.
+ CustomEnvironmentIds pulumi.StringArrayInput `pulumi:"customEnvironmentIds"`
// The git branch of the environment variable.
GitBranch pulumi.StringInput `pulumi:"gitBranch"`
// The ID of the environment variable
@@ -5846,6 +6315,11 @@ func (o GetProjectEnvironmentOutput) Comment() pulumi.StringOutput {
return o.ApplyT(func(v GetProjectEnvironment) string { return v.Comment }).(pulumi.StringOutput)
}
+// The IDs of Custom Environments that the Environment Variable should be present on.
+func (o GetProjectEnvironmentOutput) CustomEnvironmentIds() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v GetProjectEnvironment) []string { return v.CustomEnvironmentIds }).(pulumi.StringArrayOutput)
+}
+
// The git branch of the environment variable.
func (o GetProjectEnvironmentOutput) GitBranch() pulumi.StringOutput {
return o.ApplyT(func(v GetProjectEnvironment) string { return v.GitBranch }).(pulumi.StringOutput)
@@ -6160,6 +6634,130 @@ func (o GetProjectGitRepositoryDeployHookArrayOutput) Index(i pulumi.IntInput) G
}).(GetProjectGitRepositoryDeployHookOutput)
}
+type GetProjectMembersMember struct {
+ // The email of the user.
+ Email string `pulumi:"email"`
+ // The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ Role string `pulumi:"role"`
+ // The ID of the user.
+ UserId string `pulumi:"userId"`
+ // The username of the user.
+ Username string `pulumi:"username"`
+}
+
+// GetProjectMembersMemberInput is an input type that accepts GetProjectMembersMemberArgs and GetProjectMembersMemberOutput values.
+// You can construct a concrete instance of `GetProjectMembersMemberInput` via:
+//
+// GetProjectMembersMemberArgs{...}
+type GetProjectMembersMemberInput interface {
+ pulumi.Input
+
+ ToGetProjectMembersMemberOutput() GetProjectMembersMemberOutput
+ ToGetProjectMembersMemberOutputWithContext(context.Context) GetProjectMembersMemberOutput
+}
+
+type GetProjectMembersMemberArgs struct {
+ // The email of the user.
+ Email pulumi.StringInput `pulumi:"email"`
+ // The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+ Role pulumi.StringInput `pulumi:"role"`
+ // The ID of the user.
+ UserId pulumi.StringInput `pulumi:"userId"`
+ // The username of the user.
+ Username pulumi.StringInput `pulumi:"username"`
+}
+
+func (GetProjectMembersMemberArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetProjectMembersMember)(nil)).Elem()
+}
+
+func (i GetProjectMembersMemberArgs) ToGetProjectMembersMemberOutput() GetProjectMembersMemberOutput {
+ return i.ToGetProjectMembersMemberOutputWithContext(context.Background())
+}
+
+func (i GetProjectMembersMemberArgs) ToGetProjectMembersMemberOutputWithContext(ctx context.Context) GetProjectMembersMemberOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetProjectMembersMemberOutput)
+}
+
+// GetProjectMembersMemberArrayInput is an input type that accepts GetProjectMembersMemberArray and GetProjectMembersMemberArrayOutput values.
+// You can construct a concrete instance of `GetProjectMembersMemberArrayInput` via:
+//
+// GetProjectMembersMemberArray{ GetProjectMembersMemberArgs{...} }
+type GetProjectMembersMemberArrayInput interface {
+ pulumi.Input
+
+ ToGetProjectMembersMemberArrayOutput() GetProjectMembersMemberArrayOutput
+ ToGetProjectMembersMemberArrayOutputWithContext(context.Context) GetProjectMembersMemberArrayOutput
+}
+
+type GetProjectMembersMemberArray []GetProjectMembersMemberInput
+
+func (GetProjectMembersMemberArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetProjectMembersMember)(nil)).Elem()
+}
+
+func (i GetProjectMembersMemberArray) ToGetProjectMembersMemberArrayOutput() GetProjectMembersMemberArrayOutput {
+ return i.ToGetProjectMembersMemberArrayOutputWithContext(context.Background())
+}
+
+func (i GetProjectMembersMemberArray) ToGetProjectMembersMemberArrayOutputWithContext(ctx context.Context) GetProjectMembersMemberArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetProjectMembersMemberArrayOutput)
+}
+
+type GetProjectMembersMemberOutput struct{ *pulumi.OutputState }
+
+func (GetProjectMembersMemberOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetProjectMembersMember)(nil)).Elem()
+}
+
+func (o GetProjectMembersMemberOutput) ToGetProjectMembersMemberOutput() GetProjectMembersMemberOutput {
+ return o
+}
+
+func (o GetProjectMembersMemberOutput) ToGetProjectMembersMemberOutputWithContext(ctx context.Context) GetProjectMembersMemberOutput {
+ return o
+}
+
+// The email of the user.
+func (o GetProjectMembersMemberOutput) Email() pulumi.StringOutput {
+ return o.ApplyT(func(v GetProjectMembersMember) string { return v.Email }).(pulumi.StringOutput)
+}
+
+// The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'.
+func (o GetProjectMembersMemberOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v GetProjectMembersMember) string { return v.Role }).(pulumi.StringOutput)
+}
+
+// The ID of the user.
+func (o GetProjectMembersMemberOutput) UserId() pulumi.StringOutput {
+ return o.ApplyT(func(v GetProjectMembersMember) string { return v.UserId }).(pulumi.StringOutput)
+}
+
+// The username of the user.
+func (o GetProjectMembersMemberOutput) Username() pulumi.StringOutput {
+ return o.ApplyT(func(v GetProjectMembersMember) string { return v.Username }).(pulumi.StringOutput)
+}
+
+type GetProjectMembersMemberArrayOutput struct{ *pulumi.OutputState }
+
+func (GetProjectMembersMemberArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetProjectMembersMember)(nil)).Elem()
+}
+
+func (o GetProjectMembersMemberArrayOutput) ToGetProjectMembersMemberArrayOutput() GetProjectMembersMemberArrayOutput {
+ return o
+}
+
+func (o GetProjectMembersMemberArrayOutput) ToGetProjectMembersMemberArrayOutputWithContext(ctx context.Context) GetProjectMembersMemberArrayOutput {
+ return o
+}
+
+func (o GetProjectMembersMemberArrayOutput) Index(i pulumi.IntInput) GetProjectMembersMemberOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetProjectMembersMember {
+ return vs[0].([]GetProjectMembersMember)[vs[1].(int)]
+ }).(GetProjectMembersMemberOutput)
+}
+
type GetProjectOidcTokenConfig struct {
// 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.
Enabled bool `pulumi:"enabled"`
@@ -6824,7 +7422,115 @@ func (o GetTeamConfigSamlOutput) Roles() pulumi.StringMapOutput {
return o.ApplyT(func(v GetTeamConfigSaml) map[string]string { return v.Roles }).(pulumi.StringMapOutput)
}
+type GetTeamMemberProject struct {
+ // The ID of the project that the user should be granted access to.
+ ProjectId string `pulumi:"projectId"`
+ // The role that the user should have in the project.
+ Role string `pulumi:"role"`
+}
+
+// GetTeamMemberProjectInput is an input type that accepts GetTeamMemberProjectArgs and GetTeamMemberProjectOutput values.
+// You can construct a concrete instance of `GetTeamMemberProjectInput` via:
+//
+// GetTeamMemberProjectArgs{...}
+type GetTeamMemberProjectInput interface {
+ pulumi.Input
+
+ ToGetTeamMemberProjectOutput() GetTeamMemberProjectOutput
+ ToGetTeamMemberProjectOutputWithContext(context.Context) GetTeamMemberProjectOutput
+}
+
+type GetTeamMemberProjectArgs struct {
+ // The ID of the project that the user should be granted access to.
+ ProjectId pulumi.StringInput `pulumi:"projectId"`
+ // The role that the user should have in the project.
+ Role pulumi.StringInput `pulumi:"role"`
+}
+
+func (GetTeamMemberProjectArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetTeamMemberProject)(nil)).Elem()
+}
+
+func (i GetTeamMemberProjectArgs) ToGetTeamMemberProjectOutput() GetTeamMemberProjectOutput {
+ return i.ToGetTeamMemberProjectOutputWithContext(context.Background())
+}
+
+func (i GetTeamMemberProjectArgs) ToGetTeamMemberProjectOutputWithContext(ctx context.Context) GetTeamMemberProjectOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetTeamMemberProjectOutput)
+}
+
+// GetTeamMemberProjectArrayInput is an input type that accepts GetTeamMemberProjectArray and GetTeamMemberProjectArrayOutput values.
+// You can construct a concrete instance of `GetTeamMemberProjectArrayInput` via:
+//
+// GetTeamMemberProjectArray{ GetTeamMemberProjectArgs{...} }
+type GetTeamMemberProjectArrayInput interface {
+ pulumi.Input
+
+ ToGetTeamMemberProjectArrayOutput() GetTeamMemberProjectArrayOutput
+ ToGetTeamMemberProjectArrayOutputWithContext(context.Context) GetTeamMemberProjectArrayOutput
+}
+
+type GetTeamMemberProjectArray []GetTeamMemberProjectInput
+
+func (GetTeamMemberProjectArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetTeamMemberProject)(nil)).Elem()
+}
+
+func (i GetTeamMemberProjectArray) ToGetTeamMemberProjectArrayOutput() GetTeamMemberProjectArrayOutput {
+ return i.ToGetTeamMemberProjectArrayOutputWithContext(context.Background())
+}
+
+func (i GetTeamMemberProjectArray) ToGetTeamMemberProjectArrayOutputWithContext(ctx context.Context) GetTeamMemberProjectArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(GetTeamMemberProjectArrayOutput)
+}
+
+type GetTeamMemberProjectOutput struct{ *pulumi.OutputState }
+
+func (GetTeamMemberProjectOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*GetTeamMemberProject)(nil)).Elem()
+}
+
+func (o GetTeamMemberProjectOutput) ToGetTeamMemberProjectOutput() GetTeamMemberProjectOutput {
+ return o
+}
+
+func (o GetTeamMemberProjectOutput) ToGetTeamMemberProjectOutputWithContext(ctx context.Context) GetTeamMemberProjectOutput {
+ return o
+}
+
+// The ID of the project that the user should be granted access to.
+func (o GetTeamMemberProjectOutput) ProjectId() pulumi.StringOutput {
+ return o.ApplyT(func(v GetTeamMemberProject) string { return v.ProjectId }).(pulumi.StringOutput)
+}
+
+// The role that the user should have in the project.
+func (o GetTeamMemberProjectOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v GetTeamMemberProject) string { return v.Role }).(pulumi.StringOutput)
+}
+
+type GetTeamMemberProjectArrayOutput struct{ *pulumi.OutputState }
+
+func (GetTeamMemberProjectArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]GetTeamMemberProject)(nil)).Elem()
+}
+
+func (o GetTeamMemberProjectArrayOutput) ToGetTeamMemberProjectArrayOutput() GetTeamMemberProjectArrayOutput {
+ return o
+}
+
+func (o GetTeamMemberProjectArrayOutput) ToGetTeamMemberProjectArrayOutputWithContext(ctx context.Context) GetTeamMemberProjectArrayOutput {
+ return o
+}
+
+func (o GetTeamMemberProjectArrayOutput) Index(i pulumi.IntInput) GetTeamMemberProjectOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetTeamMemberProject {
+ return vs[0].([]GetTeamMemberProject)[vs[1].(int)]
+ }).(GetTeamMemberProjectOutput)
+}
+
func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*CustomEnvironmentBranchTrackingInput)(nil)).Elem(), CustomEnvironmentBranchTrackingArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*CustomEnvironmentBranchTrackingPtrInput)(nil)).Elem(), CustomEnvironmentBranchTrackingArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*DeploymentProjectSettingsInput)(nil)).Elem(), DeploymentProjectSettingsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*DeploymentProjectSettingsPtrInput)(nil)).Elem(), DeploymentProjectSettingsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*DnsRecordSrvInput)(nil)).Elem(), DnsRecordSrvArgs{})
@@ -6880,6 +7586,8 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*ProjectGitRepositoryPtrInput)(nil)).Elem(), ProjectGitRepositoryArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ProjectGitRepositoryDeployHookInput)(nil)).Elem(), ProjectGitRepositoryDeployHookArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ProjectGitRepositoryDeployHookArrayInput)(nil)).Elem(), ProjectGitRepositoryDeployHookArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*ProjectMembersMemberInput)(nil)).Elem(), ProjectMembersMemberArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*ProjectMembersMemberArrayInput)(nil)).Elem(), ProjectMembersMemberArray{})
pulumi.RegisterInputType(reflect.TypeOf((*ProjectOidcTokenConfigInput)(nil)).Elem(), ProjectOidcTokenConfigArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ProjectOidcTokenConfigPtrInput)(nil)).Elem(), ProjectOidcTokenConfigArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*ProjectOptionsAllowlistInput)(nil)).Elem(), ProjectOptionsAllowlistArgs{})
@@ -6900,12 +7608,17 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*TeamConfigRemoteCachingPtrInput)(nil)).Elem(), TeamConfigRemoteCachingArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*TeamConfigSamlInput)(nil)).Elem(), TeamConfigSamlArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*TeamConfigSamlPtrInput)(nil)).Elem(), TeamConfigSamlArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*TeamMemberProjectInput)(nil)).Elem(), TeamMemberProjectArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*TeamMemberProjectArrayInput)(nil)).Elem(), TeamMemberProjectArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetCustomEnvironmentBranchTrackingInput)(nil)).Elem(), GetCustomEnvironmentBranchTrackingArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectEnvironmentInput)(nil)).Elem(), GetProjectEnvironmentArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectEnvironmentArrayInput)(nil)).Elem(), GetProjectEnvironmentArray{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectGitCommentsInput)(nil)).Elem(), GetProjectGitCommentsArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectGitRepositoryInput)(nil)).Elem(), GetProjectGitRepositoryArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectGitRepositoryDeployHookInput)(nil)).Elem(), GetProjectGitRepositoryDeployHookArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectGitRepositoryDeployHookArrayInput)(nil)).Elem(), GetProjectGitRepositoryDeployHookArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetProjectMembersMemberInput)(nil)).Elem(), GetProjectMembersMemberArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetProjectMembersMemberArrayInput)(nil)).Elem(), GetProjectMembersMemberArray{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectOidcTokenConfigInput)(nil)).Elem(), GetProjectOidcTokenConfigArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectOptionsAllowlistInput)(nil)).Elem(), GetProjectOptionsAllowlistArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectOptionsAllowlistPathInput)(nil)).Elem(), GetProjectOptionsAllowlistPathArgs{})
@@ -6918,6 +7631,10 @@ func init() {
pulumi.RegisterInputType(reflect.TypeOf((*GetProjectVercelAuthenticationInput)(nil)).Elem(), GetProjectVercelAuthenticationArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetTeamConfigRemoteCachingInput)(nil)).Elem(), GetTeamConfigRemoteCachingArgs{})
pulumi.RegisterInputType(reflect.TypeOf((*GetTeamConfigSamlInput)(nil)).Elem(), GetTeamConfigSamlArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetTeamMemberProjectInput)(nil)).Elem(), GetTeamMemberProjectArgs{})
+ pulumi.RegisterInputType(reflect.TypeOf((*GetTeamMemberProjectArrayInput)(nil)).Elem(), GetTeamMemberProjectArray{})
+ pulumi.RegisterOutputType(CustomEnvironmentBranchTrackingOutput{})
+ pulumi.RegisterOutputType(CustomEnvironmentBranchTrackingPtrOutput{})
pulumi.RegisterOutputType(DeploymentProjectSettingsOutput{})
pulumi.RegisterOutputType(DeploymentProjectSettingsPtrOutput{})
pulumi.RegisterOutputType(DnsRecordSrvOutput{})
@@ -6973,6 +7690,8 @@ func init() {
pulumi.RegisterOutputType(ProjectGitRepositoryPtrOutput{})
pulumi.RegisterOutputType(ProjectGitRepositoryDeployHookOutput{})
pulumi.RegisterOutputType(ProjectGitRepositoryDeployHookArrayOutput{})
+ pulumi.RegisterOutputType(ProjectMembersMemberOutput{})
+ pulumi.RegisterOutputType(ProjectMembersMemberArrayOutput{})
pulumi.RegisterOutputType(ProjectOidcTokenConfigOutput{})
pulumi.RegisterOutputType(ProjectOidcTokenConfigPtrOutput{})
pulumi.RegisterOutputType(ProjectOptionsAllowlistOutput{})
@@ -6993,12 +7712,17 @@ func init() {
pulumi.RegisterOutputType(TeamConfigRemoteCachingPtrOutput{})
pulumi.RegisterOutputType(TeamConfigSamlOutput{})
pulumi.RegisterOutputType(TeamConfigSamlPtrOutput{})
+ pulumi.RegisterOutputType(TeamMemberProjectOutput{})
+ pulumi.RegisterOutputType(TeamMemberProjectArrayOutput{})
+ pulumi.RegisterOutputType(GetCustomEnvironmentBranchTrackingOutput{})
pulumi.RegisterOutputType(GetProjectEnvironmentOutput{})
pulumi.RegisterOutputType(GetProjectEnvironmentArrayOutput{})
pulumi.RegisterOutputType(GetProjectGitCommentsOutput{})
pulumi.RegisterOutputType(GetProjectGitRepositoryOutput{})
pulumi.RegisterOutputType(GetProjectGitRepositoryDeployHookOutput{})
pulumi.RegisterOutputType(GetProjectGitRepositoryDeployHookArrayOutput{})
+ pulumi.RegisterOutputType(GetProjectMembersMemberOutput{})
+ pulumi.RegisterOutputType(GetProjectMembersMemberArrayOutput{})
pulumi.RegisterOutputType(GetProjectOidcTokenConfigOutput{})
pulumi.RegisterOutputType(GetProjectOptionsAllowlistOutput{})
pulumi.RegisterOutputType(GetProjectOptionsAllowlistPathOutput{})
@@ -7011,4 +7735,6 @@ func init() {
pulumi.RegisterOutputType(GetProjectVercelAuthenticationOutput{})
pulumi.RegisterOutputType(GetTeamConfigRemoteCachingOutput{})
pulumi.RegisterOutputType(GetTeamConfigSamlOutput{})
+ pulumi.RegisterOutputType(GetTeamMemberProjectOutput{})
+ pulumi.RegisterOutputType(GetTeamMemberProjectArrayOutput{})
}
diff --git a/sdk/go/vercel/teamConfig.go b/sdk/go/vercel/teamConfig.go
index d02a3e4..c4470d6 100644
--- a/sdk/go/vercel/teamConfig.go
+++ b/sdk/go/vercel/teamConfig.go
@@ -19,8 +19,10 @@ type TeamConfig struct {
// A description of the team.
Description pulumi.StringOutput `pulumi:"description"`
// Hostname that'll be matched with emails on sign-up to automatically join the Team.
- EmailDomain pulumi.StringOutput `pulumi:"emailDomain"`
- EnablePreviewFeedback pulumi.StringOutput `pulumi:"enablePreviewFeedback"`
+ EmailDomain pulumi.StringOutput `pulumi:"emailDomain"`
+ // Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ EnablePreviewFeedback pulumi.StringOutput `pulumi:"enablePreviewFeedback"`
+ // Enables the Vercel Toolbar on your production deployments: one of on, off or default.
EnableProductionFeedback pulumi.StringOutput `pulumi:"enableProductionFeedback"`
// Indicates if ip addresses should be accessible in o11y tooling.
HideIpAddresses pulumi.BoolOutput `pulumi:"hideIpAddresses"`
@@ -35,8 +37,10 @@ type TeamConfig struct {
// Configuration for Remote Caching.
RemoteCaching TeamConfigRemoteCachingOutput `pulumi:"remoteCaching"`
// Configuration for SAML authentication.
- Saml TeamConfigSamlOutput `pulumi:"saml"`
- SensitiveEnvironmentVariablePolicy pulumi.StringOutput `pulumi:"sensitiveEnvironmentVariablePolicy"`
+ Saml TeamConfigSamlOutput `pulumi:"saml"`
+ // Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ // Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
+ SensitiveEnvironmentVariablePolicy pulumi.StringOutput `pulumi:"sensitiveEnvironmentVariablePolicy"`
// The slug of the team. Will be used in the URL of the team's dashboard.
Slug pulumi.StringOutput `pulumi:"slug"`
}
@@ -76,8 +80,10 @@ type teamConfigState struct {
// A description of the team.
Description *string `pulumi:"description"`
// Hostname that'll be matched with emails on sign-up to automatically join the Team.
- EmailDomain *string `pulumi:"emailDomain"`
- EnablePreviewFeedback *string `pulumi:"enablePreviewFeedback"`
+ EmailDomain *string `pulumi:"emailDomain"`
+ // Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ EnablePreviewFeedback *string `pulumi:"enablePreviewFeedback"`
+ // Enables the Vercel Toolbar on your production deployments: one of on, off or default.
EnableProductionFeedback *string `pulumi:"enableProductionFeedback"`
// Indicates if ip addresses should be accessible in o11y tooling.
HideIpAddresses *bool `pulumi:"hideIpAddresses"`
@@ -92,8 +98,10 @@ type teamConfigState struct {
// Configuration for Remote Caching.
RemoteCaching *TeamConfigRemoteCaching `pulumi:"remoteCaching"`
// Configuration for SAML authentication.
- Saml *TeamConfigSaml `pulumi:"saml"`
- SensitiveEnvironmentVariablePolicy *string `pulumi:"sensitiveEnvironmentVariablePolicy"`
+ Saml *TeamConfigSaml `pulumi:"saml"`
+ // Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ // Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
+ SensitiveEnvironmentVariablePolicy *string `pulumi:"sensitiveEnvironmentVariablePolicy"`
// The slug of the team. Will be used in the URL of the team's dashboard.
Slug *string `pulumi:"slug"`
}
@@ -104,8 +112,10 @@ type TeamConfigState struct {
// A description of the team.
Description pulumi.StringPtrInput
// Hostname that'll be matched with emails on sign-up to automatically join the Team.
- EmailDomain pulumi.StringPtrInput
- EnablePreviewFeedback pulumi.StringPtrInput
+ EmailDomain pulumi.StringPtrInput
+ // Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ EnablePreviewFeedback pulumi.StringPtrInput
+ // Enables the Vercel Toolbar on your production deployments: one of on, off or default.
EnableProductionFeedback pulumi.StringPtrInput
// Indicates if ip addresses should be accessible in o11y tooling.
HideIpAddresses pulumi.BoolPtrInput
@@ -120,7 +130,9 @@ type TeamConfigState struct {
// Configuration for Remote Caching.
RemoteCaching TeamConfigRemoteCachingPtrInput
// Configuration for SAML authentication.
- Saml TeamConfigSamlPtrInput
+ Saml TeamConfigSamlPtrInput
+ // Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ // Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
SensitiveEnvironmentVariablePolicy pulumi.StringPtrInput
// The slug of the team. Will be used in the URL of the team's dashboard.
Slug pulumi.StringPtrInput
@@ -136,8 +148,10 @@ type teamConfigArgs struct {
// A description of the team.
Description *string `pulumi:"description"`
// Hostname that'll be matched with emails on sign-up to automatically join the Team.
- EmailDomain *string `pulumi:"emailDomain"`
- EnablePreviewFeedback *string `pulumi:"enablePreviewFeedback"`
+ EmailDomain *string `pulumi:"emailDomain"`
+ // Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ EnablePreviewFeedback *string `pulumi:"enablePreviewFeedback"`
+ // Enables the Vercel Toolbar on your production deployments: one of on, off or default.
EnableProductionFeedback *string `pulumi:"enableProductionFeedback"`
// Indicates if ip addresses should be accessible in o11y tooling.
HideIpAddresses *bool `pulumi:"hideIpAddresses"`
@@ -150,8 +164,10 @@ type teamConfigArgs struct {
// Configuration for Remote Caching.
RemoteCaching *TeamConfigRemoteCaching `pulumi:"remoteCaching"`
// Configuration for SAML authentication.
- Saml *TeamConfigSaml `pulumi:"saml"`
- SensitiveEnvironmentVariablePolicy *string `pulumi:"sensitiveEnvironmentVariablePolicy"`
+ Saml *TeamConfigSaml `pulumi:"saml"`
+ // Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ // Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
+ SensitiveEnvironmentVariablePolicy *string `pulumi:"sensitiveEnvironmentVariablePolicy"`
// The slug of the team. Will be used in the URL of the team's dashboard.
Slug *string `pulumi:"slug"`
}
@@ -163,8 +179,10 @@ type TeamConfigArgs struct {
// A description of the team.
Description pulumi.StringPtrInput
// Hostname that'll be matched with emails on sign-up to automatically join the Team.
- EmailDomain pulumi.StringPtrInput
- EnablePreviewFeedback pulumi.StringPtrInput
+ EmailDomain pulumi.StringPtrInput
+ // Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
+ EnablePreviewFeedback pulumi.StringPtrInput
+ // Enables the Vercel Toolbar on your production deployments: one of on, off or default.
EnableProductionFeedback pulumi.StringPtrInput
// Indicates if ip addresses should be accessible in o11y tooling.
HideIpAddresses pulumi.BoolPtrInput
@@ -177,7 +195,9 @@ type TeamConfigArgs struct {
// Configuration for Remote Caching.
RemoteCaching TeamConfigRemoteCachingPtrInput
// Configuration for SAML authentication.
- Saml TeamConfigSamlPtrInput
+ Saml TeamConfigSamlPtrInput
+ // Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+ // Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
SensitiveEnvironmentVariablePolicy pulumi.StringPtrInput
// The slug of the team. Will be used in the URL of the team's dashboard.
Slug pulumi.StringPtrInput
@@ -285,10 +305,12 @@ func (o TeamConfigOutput) EmailDomain() pulumi.StringOutput {
return o.ApplyT(func(v *TeamConfig) pulumi.StringOutput { return v.EmailDomain }).(pulumi.StringOutput)
}
+// Enables the Vercel Toolbar on your preview deployments: one of on, off or default.
func (o TeamConfigOutput) EnablePreviewFeedback() pulumi.StringOutput {
return o.ApplyT(func(v *TeamConfig) pulumi.StringOutput { return v.EnablePreviewFeedback }).(pulumi.StringOutput)
}
+// Enables the Vercel Toolbar on your production deployments: one of on, off or default.
func (o TeamConfigOutput) EnableProductionFeedback() pulumi.StringOutput {
return o.ApplyT(func(v *TeamConfig) pulumi.StringOutput { return v.EnableProductionFeedback }).(pulumi.StringOutput)
}
@@ -328,6 +350,8 @@ func (o TeamConfigOutput) Saml() TeamConfigSamlOutput {
return o.ApplyT(func(v *TeamConfig) TeamConfigSamlOutput { return v.Saml }).(TeamConfigSamlOutput)
}
+// Ensures that all environment variables created by members of this team will be created as Sensitive Environment
+// Variables which can only be decrypted by Vercel's deployment system.: one of on, off or default.
func (o TeamConfigOutput) SensitiveEnvironmentVariablePolicy() pulumi.StringOutput {
return o.ApplyT(func(v *TeamConfig) pulumi.StringOutput { return v.SensitiveEnvironmentVariablePolicy }).(pulumi.StringOutput)
}
diff --git a/sdk/go/vercel/teamMember.go b/sdk/go/vercel/teamMember.go
new file mode 100644
index 0000000..3760677
--- /dev/null
+++ b/sdk/go/vercel/teamMember.go
@@ -0,0 +1,302 @@
+// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
+// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
+
+package vercel
+
+import (
+ "context"
+ "reflect"
+
+ "errors"
+ "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
+ "github.com/pulumiverse/pulumi-vercel/sdk/go/vercel/internal"
+)
+
+type TeamMember struct {
+ pulumi.CustomResourceState
+
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of access groups IDs that the user should be granted access to.
+ AccessGroups pulumi.StringArrayOutput `pulumi:"accessGroups"`
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of projects that the user should be granted access to, along with their role in each project.
+ Projects TeamMemberProjectArrayOutput `pulumi:"projects"`
+ // The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ // 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ Role pulumi.StringOutput `pulumi:"role"`
+ // The ID of the existing Vercel Team.
+ TeamId pulumi.StringOutput `pulumi:"teamId"`
+ // The ID of the user to add to the team.
+ UserId pulumi.StringOutput `pulumi:"userId"`
+}
+
+// NewTeamMember registers a new resource with the given unique name, arguments, and options.
+func NewTeamMember(ctx *pulumi.Context,
+ name string, args *TeamMemberArgs, opts ...pulumi.ResourceOption) (*TeamMember, error) {
+ if args == nil {
+ return nil, errors.New("missing one or more required arguments")
+ }
+
+ if args.Role == nil {
+ return nil, errors.New("invalid value for required argument 'Role'")
+ }
+ if args.TeamId == nil {
+ return nil, errors.New("invalid value for required argument 'TeamId'")
+ }
+ if args.UserId == nil {
+ return nil, errors.New("invalid value for required argument 'UserId'")
+ }
+ opts = internal.PkgResourceDefaultOpts(opts)
+ var resource TeamMember
+ err := ctx.RegisterResource("vercel:index/teamMember:TeamMember", name, args, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// GetTeamMember gets an existing TeamMember resource's state with the given name, ID, and optional
+// state properties that are used to uniquely qualify the lookup (nil if not required).
+func GetTeamMember(ctx *pulumi.Context,
+ name string, id pulumi.IDInput, state *TeamMemberState, opts ...pulumi.ResourceOption) (*TeamMember, error) {
+ var resource TeamMember
+ err := ctx.ReadResource("vercel:index/teamMember:TeamMember", name, id, state, &resource, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return &resource, nil
+}
+
+// Input properties used for looking up and filtering TeamMember resources.
+type teamMemberState struct {
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of access groups IDs that the user should be granted access to.
+ AccessGroups []string `pulumi:"accessGroups"`
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of projects that the user should be granted access to, along with their role in each project.
+ Projects []TeamMemberProject `pulumi:"projects"`
+ // The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ // 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ Role *string `pulumi:"role"`
+ // The ID of the existing Vercel Team.
+ TeamId *string `pulumi:"teamId"`
+ // The ID of the user to add to the team.
+ UserId *string `pulumi:"userId"`
+}
+
+type TeamMemberState struct {
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of access groups IDs that the user should be granted access to.
+ AccessGroups pulumi.StringArrayInput
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of projects that the user should be granted access to, along with their role in each project.
+ Projects TeamMemberProjectArrayInput
+ // The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ // 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ Role pulumi.StringPtrInput
+ // The ID of the existing Vercel Team.
+ TeamId pulumi.StringPtrInput
+ // The ID of the user to add to the team.
+ UserId pulumi.StringPtrInput
+}
+
+func (TeamMemberState) ElementType() reflect.Type {
+ return reflect.TypeOf((*teamMemberState)(nil)).Elem()
+}
+
+type teamMemberArgs struct {
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of access groups IDs that the user should be granted access to.
+ AccessGroups []string `pulumi:"accessGroups"`
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of projects that the user should be granted access to, along with their role in each project.
+ Projects []TeamMemberProject `pulumi:"projects"`
+ // The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ // 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ Role string `pulumi:"role"`
+ // The ID of the existing Vercel Team.
+ TeamId string `pulumi:"teamId"`
+ // The ID of the user to add to the team.
+ UserId string `pulumi:"userId"`
+}
+
+// The set of arguments for constructing a TeamMember resource.
+type TeamMemberArgs struct {
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of access groups IDs that the user should be granted access to.
+ AccessGroups pulumi.StringArrayInput
+ // If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+ // specified. A set of projects that the user should be granted access to, along with their role in each project.
+ Projects TeamMemberProjectArrayInput
+ // The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+ // 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+ Role pulumi.StringInput
+ // The ID of the existing Vercel Team.
+ TeamId pulumi.StringInput
+ // The ID of the user to add to the team.
+ UserId pulumi.StringInput
+}
+
+func (TeamMemberArgs) ElementType() reflect.Type {
+ return reflect.TypeOf((*teamMemberArgs)(nil)).Elem()
+}
+
+type TeamMemberInput interface {
+ pulumi.Input
+
+ ToTeamMemberOutput() TeamMemberOutput
+ ToTeamMemberOutputWithContext(ctx context.Context) TeamMemberOutput
+}
+
+func (*TeamMember) ElementType() reflect.Type {
+ return reflect.TypeOf((**TeamMember)(nil)).Elem()
+}
+
+func (i *TeamMember) ToTeamMemberOutput() TeamMemberOutput {
+ return i.ToTeamMemberOutputWithContext(context.Background())
+}
+
+func (i *TeamMember) ToTeamMemberOutputWithContext(ctx context.Context) TeamMemberOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(TeamMemberOutput)
+}
+
+// TeamMemberArrayInput is an input type that accepts TeamMemberArray and TeamMemberArrayOutput values.
+// You can construct a concrete instance of `TeamMemberArrayInput` via:
+//
+// TeamMemberArray{ TeamMemberArgs{...} }
+type TeamMemberArrayInput interface {
+ pulumi.Input
+
+ ToTeamMemberArrayOutput() TeamMemberArrayOutput
+ ToTeamMemberArrayOutputWithContext(context.Context) TeamMemberArrayOutput
+}
+
+type TeamMemberArray []TeamMemberInput
+
+func (TeamMemberArray) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*TeamMember)(nil)).Elem()
+}
+
+func (i TeamMemberArray) ToTeamMemberArrayOutput() TeamMemberArrayOutput {
+ return i.ToTeamMemberArrayOutputWithContext(context.Background())
+}
+
+func (i TeamMemberArray) ToTeamMemberArrayOutputWithContext(ctx context.Context) TeamMemberArrayOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(TeamMemberArrayOutput)
+}
+
+// TeamMemberMapInput is an input type that accepts TeamMemberMap and TeamMemberMapOutput values.
+// You can construct a concrete instance of `TeamMemberMapInput` via:
+//
+// TeamMemberMap{ "key": TeamMemberArgs{...} }
+type TeamMemberMapInput interface {
+ pulumi.Input
+
+ ToTeamMemberMapOutput() TeamMemberMapOutput
+ ToTeamMemberMapOutputWithContext(context.Context) TeamMemberMapOutput
+}
+
+type TeamMemberMap map[string]TeamMemberInput
+
+func (TeamMemberMap) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*TeamMember)(nil)).Elem()
+}
+
+func (i TeamMemberMap) ToTeamMemberMapOutput() TeamMemberMapOutput {
+ return i.ToTeamMemberMapOutputWithContext(context.Background())
+}
+
+func (i TeamMemberMap) ToTeamMemberMapOutputWithContext(ctx context.Context) TeamMemberMapOutput {
+ return pulumi.ToOutputWithContext(ctx, i).(TeamMemberMapOutput)
+}
+
+type TeamMemberOutput struct{ *pulumi.OutputState }
+
+func (TeamMemberOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((**TeamMember)(nil)).Elem()
+}
+
+func (o TeamMemberOutput) ToTeamMemberOutput() TeamMemberOutput {
+ return o
+}
+
+func (o TeamMemberOutput) ToTeamMemberOutputWithContext(ctx context.Context) TeamMemberOutput {
+ return o
+}
+
+// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+// specified. A set of access groups IDs that the user should be granted access to.
+func (o TeamMemberOutput) AccessGroups() pulumi.StringArrayOutput {
+ return o.ApplyT(func(v *TeamMember) pulumi.StringArrayOutput { return v.AccessGroups }).(pulumi.StringArrayOutput)
+}
+
+// If access groups are enabled on the team, and the user is a CONTRIBUTOR, `projects`, `accessGroups` or both must be
+// specified. A set of projects that the user should be granted access to, along with their role in each project.
+func (o TeamMemberOutput) Projects() TeamMemberProjectArrayOutput {
+ return o.ApplyT(func(v *TeamMember) TeamMemberProjectArrayOutput { return v.Projects }).(TeamMemberProjectArrayOutput)
+}
+
+// The role that the user should have in the project. One of 'MEMBER', 'OWNER', 'VIEWER', 'DEVELOPER', 'BILLING' or
+// 'CONTRIBUTOR'. Depending on your Team's plan, some of these roles may be unavailable.
+func (o TeamMemberOutput) Role() pulumi.StringOutput {
+ return o.ApplyT(func(v *TeamMember) pulumi.StringOutput { return v.Role }).(pulumi.StringOutput)
+}
+
+// The ID of the existing Vercel Team.
+func (o TeamMemberOutput) TeamId() pulumi.StringOutput {
+ return o.ApplyT(func(v *TeamMember) pulumi.StringOutput { return v.TeamId }).(pulumi.StringOutput)
+}
+
+// The ID of the user to add to the team.
+func (o TeamMemberOutput) UserId() pulumi.StringOutput {
+ return o.ApplyT(func(v *TeamMember) pulumi.StringOutput { return v.UserId }).(pulumi.StringOutput)
+}
+
+type TeamMemberArrayOutput struct{ *pulumi.OutputState }
+
+func (TeamMemberArrayOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*[]*TeamMember)(nil)).Elem()
+}
+
+func (o TeamMemberArrayOutput) ToTeamMemberArrayOutput() TeamMemberArrayOutput {
+ return o
+}
+
+func (o TeamMemberArrayOutput) ToTeamMemberArrayOutputWithContext(ctx context.Context) TeamMemberArrayOutput {
+ return o
+}
+
+func (o TeamMemberArrayOutput) Index(i pulumi.IntInput) TeamMemberOutput {
+ return pulumi.All(o, i).ApplyT(func(vs []interface{}) *TeamMember {
+ return vs[0].([]*TeamMember)[vs[1].(int)]
+ }).(TeamMemberOutput)
+}
+
+type TeamMemberMapOutput struct{ *pulumi.OutputState }
+
+func (TeamMemberMapOutput) ElementType() reflect.Type {
+ return reflect.TypeOf((*map[string]*TeamMember)(nil)).Elem()
+}
+
+func (o TeamMemberMapOutput) ToTeamMemberMapOutput() TeamMemberMapOutput {
+ return o
+}
+
+func (o TeamMemberMapOutput) ToTeamMemberMapOutputWithContext(ctx context.Context) TeamMemberMapOutput {
+ return o
+}
+
+func (o TeamMemberMapOutput) MapIndex(k pulumi.StringInput) TeamMemberOutput {
+ return pulumi.All(o, k).ApplyT(func(vs []interface{}) *TeamMember {
+ return vs[0].(map[string]*TeamMember)[vs[1].(string)]
+ }).(TeamMemberOutput)
+}
+
+func init() {
+ pulumi.RegisterInputType(reflect.TypeOf((*TeamMemberInput)(nil)).Elem(), &TeamMember{})
+ pulumi.RegisterInputType(reflect.TypeOf((*TeamMemberArrayInput)(nil)).Elem(), TeamMemberArray{})
+ pulumi.RegisterInputType(reflect.TypeOf((*TeamMemberMapInput)(nil)).Elem(), TeamMemberMap{})
+ pulumi.RegisterOutputType(TeamMemberOutput{})
+ pulumi.RegisterOutputType(TeamMemberArrayOutput{})
+ pulumi.RegisterOutputType(TeamMemberMapOutput{})
+}
diff --git a/sdk/nodejs/accessGroup.ts b/sdk/nodejs/accessGroup.ts
new file mode 100644
index 0000000..4db917b
--- /dev/null
+++ b/sdk/nodejs/accessGroup.ts
@@ -0,0 +1,98 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as utilities from "./utilities";
+
+export class AccessGroup extends pulumi.CustomResource {
+ /**
+ * Get an existing AccessGroup resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param state Any extra arguments used during the lookup.
+ * @param opts Optional settings to control the behavior of the CustomResource.
+ */
+ public static get(name: string, id: pulumi.Input, state?: AccessGroupState, opts?: pulumi.CustomResourceOptions): AccessGroup {
+ return new AccessGroup(name, state, { ...opts, id: id });
+ }
+
+ /** @internal */
+ public static readonly __pulumiType = 'vercel:index/accessGroup:AccessGroup';
+
+ /**
+ * Returns true if the given object is an instance of AccessGroup. This is designed to work even
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
+ */
+ public static isInstance(obj: any): obj is AccessGroup {
+ if (obj === undefined || obj === null) {
+ return false;
+ }
+ return obj['__pulumiType'] === AccessGroup.__pulumiType;
+ }
+
+ /**
+ * The name of the Access Group
+ */
+ public readonly name!: pulumi.Output;
+ /**
+ * The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ * not been set in the provider.
+ */
+ public readonly teamId!: pulumi.Output;
+
+ /**
+ * Create a AccessGroup resource with the given unique name, arguments, and options.
+ *
+ * @param name The _unique_ name of the resource.
+ * @param args The arguments to use to populate this resource's properties.
+ * @param opts A bag of options that control this resource's behavior.
+ */
+ constructor(name: string, args?: AccessGroupArgs, opts?: pulumi.CustomResourceOptions)
+ constructor(name: string, argsOrState?: AccessGroupArgs | AccessGroupState, opts?: pulumi.CustomResourceOptions) {
+ let resourceInputs: pulumi.Inputs = {};
+ opts = opts || {};
+ if (opts.id) {
+ const state = argsOrState as AccessGroupState | undefined;
+ resourceInputs["name"] = state ? state.name : undefined;
+ resourceInputs["teamId"] = state ? state.teamId : undefined;
+ } else {
+ const args = argsOrState as AccessGroupArgs | undefined;
+ resourceInputs["name"] = args ? args.name : undefined;
+ resourceInputs["teamId"] = args ? args.teamId : undefined;
+ }
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
+ super(AccessGroup.__pulumiType, name, resourceInputs, opts);
+ }
+}
+
+/**
+ * Input properties used for looking up and filtering AccessGroup resources.
+ */
+export interface AccessGroupState {
+ /**
+ * The name of the Access Group
+ */
+ name?: pulumi.Input;
+ /**
+ * The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ * not been set in the provider.
+ */
+ teamId?: pulumi.Input;
+}
+
+/**
+ * The set of arguments for constructing a AccessGroup resource.
+ */
+export interface AccessGroupArgs {
+ /**
+ * The name of the Access Group
+ */
+ name?: pulumi.Input;
+ /**
+ * The ID of the team the Access Group should exist under. Required when configuring a team resource if a default team has
+ * not been set in the provider.
+ */
+ teamId?: pulumi.Input;
+}
diff --git a/sdk/nodejs/accessGroupProject.ts b/sdk/nodejs/accessGroupProject.ts
new file mode 100644
index 0000000..2b945b6
--- /dev/null
+++ b/sdk/nodejs/accessGroupProject.ts
@@ -0,0 +1,135 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as utilities from "./utilities";
+
+export class AccessGroupProject extends pulumi.CustomResource {
+ /**
+ * Get an existing AccessGroupProject resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param state Any extra arguments used during the lookup.
+ * @param opts Optional settings to control the behavior of the CustomResource.
+ */
+ public static get(name: string, id: pulumi.Input, state?: AccessGroupProjectState, opts?: pulumi.CustomResourceOptions): AccessGroupProject {
+ return new AccessGroupProject(name, state, { ...opts, id: id });
+ }
+
+ /** @internal */
+ public static readonly __pulumiType = 'vercel:index/accessGroupProject:AccessGroupProject';
+
+ /**
+ * Returns true if the given object is an instance of AccessGroupProject. This is designed to work even
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
+ */
+ public static isInstance(obj: any): obj is AccessGroupProject {
+ if (obj === undefined || obj === null) {
+ return false;
+ }
+ return obj['__pulumiType'] === AccessGroupProject.__pulumiType;
+ }
+
+ /**
+ * The ID of the Access Group.
+ */
+ public readonly accessGroupId!: pulumi.Output;
+ /**
+ * The Project ID to assign to the access group.
+ */
+ public readonly projectId!: pulumi.Output;
+ /**
+ * The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ */
+ public readonly role!: pulumi.Output;
+ /**
+ * The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ * team has not been set in the provider.
+ */
+ public readonly teamId!: pulumi.Output;
+
+ /**
+ * Create a AccessGroupProject resource with the given unique name, arguments, and options.
+ *
+ * @param name The _unique_ name of the resource.
+ * @param args The arguments to use to populate this resource's properties.
+ * @param opts A bag of options that control this resource's behavior.
+ */
+ constructor(name: string, args: AccessGroupProjectArgs, opts?: pulumi.CustomResourceOptions)
+ constructor(name: string, argsOrState?: AccessGroupProjectArgs | AccessGroupProjectState, opts?: pulumi.CustomResourceOptions) {
+ let resourceInputs: pulumi.Inputs = {};
+ opts = opts || {};
+ if (opts.id) {
+ const state = argsOrState as AccessGroupProjectState | undefined;
+ resourceInputs["accessGroupId"] = state ? state.accessGroupId : undefined;
+ resourceInputs["projectId"] = state ? state.projectId : undefined;
+ resourceInputs["role"] = state ? state.role : undefined;
+ resourceInputs["teamId"] = state ? state.teamId : undefined;
+ } else {
+ const args = argsOrState as AccessGroupProjectArgs | undefined;
+ if ((!args || args.accessGroupId === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'accessGroupId'");
+ }
+ if ((!args || args.projectId === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'projectId'");
+ }
+ if ((!args || args.role === undefined) && !opts.urn) {
+ throw new Error("Missing required property 'role'");
+ }
+ resourceInputs["accessGroupId"] = args ? args.accessGroupId : undefined;
+ resourceInputs["projectId"] = args ? args.projectId : undefined;
+ resourceInputs["role"] = args ? args.role : undefined;
+ resourceInputs["teamId"] = args ? args.teamId : undefined;
+ }
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
+ super(AccessGroupProject.__pulumiType, name, resourceInputs, opts);
+ }
+}
+
+/**
+ * Input properties used for looking up and filtering AccessGroupProject resources.
+ */
+export interface AccessGroupProjectState {
+ /**
+ * The ID of the Access Group.
+ */
+ accessGroupId?: pulumi.Input;
+ /**
+ * The Project ID to assign to the access group.
+ */
+ projectId?: pulumi.Input;
+ /**
+ * The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ */
+ role?: pulumi.Input;
+ /**
+ * The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ * team has not been set in the provider.
+ */
+ teamId?: pulumi.Input;
+}
+
+/**
+ * The set of arguments for constructing a AccessGroupProject resource.
+ */
+export interface AccessGroupProjectArgs {
+ /**
+ * The ID of the Access Group.
+ */
+ accessGroupId: pulumi.Input;
+ /**
+ * The Project ID to assign to the access group.
+ */
+ projectId: pulumi.Input;
+ /**
+ * The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`.
+ */
+ role: pulumi.Input;
+ /**
+ * The ID of the team the access group project should exist under. Required when configuring a team resource if a default
+ * team has not been set in the provider.
+ */
+ teamId?: pulumi.Input;
+}
diff --git a/sdk/nodejs/customEnvironment.ts b/sdk/nodejs/customEnvironment.ts
new file mode 100644
index 0000000..2709da1
--- /dev/null
+++ b/sdk/nodejs/customEnvironment.ts
@@ -0,0 +1,145 @@
+// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
+// *** Do not edit by hand unless you're certain you know what you are doing! ***
+
+import * as pulumi from "@pulumi/pulumi";
+import * as inputs from "./types/input";
+import * as outputs from "./types/output";
+import * as utilities from "./utilities";
+
+export class CustomEnvironment extends pulumi.CustomResource {
+ /**
+ * Get an existing CustomEnvironment resource's state with the given name, ID, and optional extra
+ * properties used to qualify the lookup.
+ *
+ * @param name The _unique_ name of the resulting resource.
+ * @param id The _unique_ provider ID of the resource to lookup.
+ * @param state Any extra arguments used during the lookup.
+ * @param opts Optional settings to control the behavior of the CustomResource.
+ */
+ public static get(name: string, id: pulumi.Input, state?: CustomEnvironmentState, opts?: pulumi.CustomResourceOptions): CustomEnvironment {
+ return new CustomEnvironment(name, state, { ...opts, id: id });
+ }
+
+ /** @internal */
+ public static readonly __pulumiType = 'vercel:index/customEnvironment:CustomEnvironment';
+
+ /**
+ * Returns true if the given object is an instance of CustomEnvironment. This is designed to work even
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
+ */
+ public static isInstance(obj: any): obj is CustomEnvironment {
+ if (obj === undefined || obj === null) {
+ return false;
+ }
+ return obj['__pulumiType'] === CustomEnvironment.__pulumiType;
+ }
+
+ /**
+ * The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment.
+ */
+ public readonly branchTracking!: pulumi.Output;
+ /**
+ * A description of what the environment is.
+ */
+ public readonly description!: pulumi.Output;
+ /**
+ * The name of the environment.
+ */
+ public readonly name!: pulumi.Output