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; + /** + * The ID of the existing Vercel Project. + */ + public readonly projectId!: pulumi.Output; + /** + * 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. + */ + public readonly teamId!: pulumi.Output; + + /** + * Create a CustomEnvironment 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: CustomEnvironmentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CustomEnvironmentArgs | CustomEnvironmentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CustomEnvironmentState | undefined; + resourceInputs["branchTracking"] = state ? state.branchTracking : undefined; + resourceInputs["description"] = state ? state.description : undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["teamId"] = state ? state.teamId : undefined; + } else { + const args = argsOrState as CustomEnvironmentArgs | undefined; + if ((!args || args.projectId === undefined) && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + resourceInputs["branchTracking"] = args ? args.branchTracking : undefined; + resourceInputs["description"] = args ? args.description : undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["teamId"] = args ? args.teamId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CustomEnvironment.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CustomEnvironment resources. + */ +export interface CustomEnvironmentState { + /** + * The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + */ + branchTracking?: pulumi.Input; + /** + * A description of what the environment is. + */ + description?: pulumi.Input; + /** + * The name of the environment. + */ + name?: pulumi.Input; + /** + * The ID of the existing Vercel Project. + */ + projectId?: pulumi.Input; + /** + * 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.Input; +} + +/** + * The set of arguments for constructing a CustomEnvironment resource. + */ +export interface CustomEnvironmentArgs { + /** + * The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + */ + branchTracking?: pulumi.Input; + /** + * A description of what the environment is. + */ + description?: pulumi.Input; + /** + * The name of the environment. + */ + name?: pulumi.Input; + /** + * The ID of the existing Vercel Project. + */ + projectId: pulumi.Input; + /** + * 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.Input; +} diff --git a/sdk/nodejs/getAccessGroup.ts b/sdk/nodejs/getAccessGroup.ts new file mode 100644 index 0000000..c038f18 --- /dev/null +++ b/sdk/nodejs/getAccessGroup.ts @@ -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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "./utilities"; + +export function getAccessGroup(args: GetAccessGroupArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("vercel:index/getAccessGroup:getAccessGroup", { + "id": args.id, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getAccessGroup. + */ +export interface GetAccessGroupArgs { + id: string; + teamId?: string; +} + +/** + * A collection of values returned by getAccessGroup. + */ +export interface GetAccessGroupResult { + readonly id: string; + readonly name: string; + readonly teamId: string; +} +export function getAccessGroupOutput(args: GetAccessGroupOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("vercel:index/getAccessGroup:getAccessGroup", { + "id": args.id, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getAccessGroup. + */ +export interface GetAccessGroupOutputArgs { + id: pulumi.Input; + teamId?: pulumi.Input; +} diff --git a/sdk/nodejs/getAccessGroupProject.ts b/sdk/nodejs/getAccessGroupProject.ts new file mode 100644 index 0000000..b09e618 --- /dev/null +++ b/sdk/nodejs/getAccessGroupProject.ts @@ -0,0 +1,54 @@ +// *** 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 function getAccessGroupProject(args: GetAccessGroupProjectArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("vercel:index/getAccessGroupProject:getAccessGroupProject", { + "accessGroupId": args.accessGroupId, + "projectId": args.projectId, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getAccessGroupProject. + */ +export interface GetAccessGroupProjectArgs { + accessGroupId: string; + projectId: string; + teamId?: string; +} + +/** + * A collection of values returned by getAccessGroupProject. + */ +export interface GetAccessGroupProjectResult { + readonly accessGroupId: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly projectId: string; + readonly role: string; + readonly teamId: string; +} +export function getAccessGroupProjectOutput(args: GetAccessGroupProjectOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("vercel:index/getAccessGroupProject:getAccessGroupProject", { + "accessGroupId": args.accessGroupId, + "projectId": args.projectId, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getAccessGroupProject. + */ +export interface GetAccessGroupProjectOutputArgs { + accessGroupId: pulumi.Input; + projectId: pulumi.Input; + teamId?: pulumi.Input; +} diff --git a/sdk/nodejs/getCustomEnvironment.ts b/sdk/nodejs/getCustomEnvironment.ts new file mode 100644 index 0000000..acab978 --- /dev/null +++ b/sdk/nodejs/getCustomEnvironment.ts @@ -0,0 +1,54 @@ +// *** 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 function getCustomEnvironment(args: GetCustomEnvironmentArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("vercel:index/getCustomEnvironment:getCustomEnvironment", { + "name": args.name, + "projectId": args.projectId, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getCustomEnvironment. + */ +export interface GetCustomEnvironmentArgs { + name: string; + projectId: string; + teamId?: string; +} + +/** + * A collection of values returned by getCustomEnvironment. + */ +export interface GetCustomEnvironmentResult { + readonly branchTracking: outputs.GetCustomEnvironmentBranchTracking; + readonly description: string; + readonly id: string; + readonly name: string; + readonly projectId: string; + readonly teamId: string; +} +export function getCustomEnvironmentOutput(args: GetCustomEnvironmentOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("vercel:index/getCustomEnvironment:getCustomEnvironment", { + "name": args.name, + "projectId": args.projectId, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getCustomEnvironment. + */ +export interface GetCustomEnvironmentOutputArgs { + name: pulumi.Input; + projectId: pulumi.Input; + teamId?: pulumi.Input; +} diff --git a/sdk/nodejs/getProject.ts b/sdk/nodejs/getProject.ts index 896b488..e92ba24 100644 --- a/sdk/nodejs/getProject.ts +++ b/sdk/nodejs/getProject.ts @@ -50,6 +50,7 @@ export interface GetProjectResult { readonly previewComments: boolean; readonly prioritiseProductionBuilds: boolean; readonly protectionBypassForAutomation: boolean; + readonly protectionBypassForAutomationSecret: string; readonly publicSource: boolean; readonly resourceConfig: outputs.GetProjectResourceConfig; readonly rootDirectory: string; diff --git a/sdk/nodejs/getProjectMembers.ts b/sdk/nodejs/getProjectMembers.ts new file mode 100644 index 0000000..d508935 --- /dev/null +++ b/sdk/nodejs/getProjectMembers.ts @@ -0,0 +1,51 @@ +// *** 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 function getProjectMembers(args: GetProjectMembersArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("vercel:index/getProjectMembers:getProjectMembers", { + "projectId": args.projectId, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getProjectMembers. + */ +export interface GetProjectMembersArgs { + projectId: string; + teamId?: string; +} + +/** + * A collection of values returned by getProjectMembers. + */ +export interface GetProjectMembersResult { + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly members: outputs.GetProjectMembersMember[]; + readonly projectId: string; + readonly teamId?: string; +} +export function getProjectMembersOutput(args: GetProjectMembersOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("vercel:index/getProjectMembers:getProjectMembers", { + "projectId": args.projectId, + "teamId": args.teamId, + }, opts); +} + +/** + * A collection of arguments for invoking getProjectMembers. + */ +export interface GetProjectMembersOutputArgs { + projectId: pulumi.Input; + teamId?: pulumi.Input; +} diff --git a/sdk/nodejs/getTeamMember.ts b/sdk/nodejs/getTeamMember.ts new file mode 100644 index 0000000..2720672 --- /dev/null +++ b/sdk/nodejs/getTeamMember.ts @@ -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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "./types/input"; +import * as outputs from "./types/output"; +import * as utilities from "./utilities"; + +export function getTeamMember(args: GetTeamMemberArgs, opts?: pulumi.InvokeOptions): Promise { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invoke("vercel:index/getTeamMember:getTeamMember", { + "teamId": args.teamId, + "userId": args.userId, + }, opts); +} + +/** + * A collection of arguments for invoking getTeamMember. + */ +export interface GetTeamMemberArgs { + teamId: string; + userId: string; +} + +/** + * A collection of values returned by getTeamMember. + */ +export interface GetTeamMemberResult { + readonly accessGroups: string[]; + readonly id: string; + readonly projects: outputs.GetTeamMemberProject[]; + readonly role: string; + readonly teamId: string; + readonly userId: string; +} +export function getTeamMemberOutput(args: GetTeamMemberOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output { + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); + return pulumi.runtime.invokeOutput("vercel:index/getTeamMember:getTeamMember", { + "teamId": args.teamId, + "userId": args.userId, + }, opts); +} + +/** + * A collection of arguments for invoking getTeamMember. + */ +export interface GetTeamMemberOutputArgs { + teamId: pulumi.Input; + userId: pulumi.Input; +} diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index c7615d4..9e0b11f 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -5,6 +5,16 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "./utilities"; // Export members: +export { AccessGroupArgs, AccessGroupState } from "./accessGroup"; +export type AccessGroup = import("./accessGroup").AccessGroup; +export const AccessGroup: typeof import("./accessGroup").AccessGroup = null as any; +utilities.lazyLoad(exports, ["AccessGroup"], () => require("./accessGroup")); + +export { AccessGroupProjectArgs, AccessGroupProjectState } from "./accessGroupProject"; +export type AccessGroupProject = import("./accessGroupProject").AccessGroupProject; +export const AccessGroupProject: typeof import("./accessGroupProject").AccessGroupProject = null as any; +utilities.lazyLoad(exports, ["AccessGroupProject"], () => require("./accessGroupProject")); + export { AliasArgs, AliasState } from "./alias"; export type Alias = import("./alias").Alias; export const Alias: typeof import("./alias").Alias = null as any; @@ -15,6 +25,11 @@ export type AttackChallengeMode = import("./attackChallengeMode").AttackChalleng export const AttackChallengeMode: typeof import("./attackChallengeMode").AttackChallengeMode = null as any; utilities.lazyLoad(exports, ["AttackChallengeMode"], () => require("./attackChallengeMode")); +export { CustomEnvironmentArgs, CustomEnvironmentState } from "./customEnvironment"; +export type CustomEnvironment = import("./customEnvironment").CustomEnvironment; +export const CustomEnvironment: typeof import("./customEnvironment").CustomEnvironment = null as any; +utilities.lazyLoad(exports, ["CustomEnvironment"], () => require("./customEnvironment")); + export { DeploymentArgs, DeploymentState } from "./deployment"; export type Deployment = import("./deployment").Deployment; export const Deployment: typeof import("./deployment").Deployment = null as any; @@ -50,6 +65,16 @@ export type FirewallConfig = import("./firewallConfig").FirewallConfig; export const FirewallConfig: typeof import("./firewallConfig").FirewallConfig = null as any; utilities.lazyLoad(exports, ["FirewallConfig"], () => require("./firewallConfig")); +export { GetAccessGroupArgs, GetAccessGroupResult, GetAccessGroupOutputArgs } from "./getAccessGroup"; +export const getAccessGroup: typeof import("./getAccessGroup").getAccessGroup = null as any; +export const getAccessGroupOutput: typeof import("./getAccessGroup").getAccessGroupOutput = null as any; +utilities.lazyLoad(exports, ["getAccessGroup","getAccessGroupOutput"], () => require("./getAccessGroup")); + +export { GetAccessGroupProjectArgs, GetAccessGroupProjectResult, GetAccessGroupProjectOutputArgs } from "./getAccessGroupProject"; +export const getAccessGroupProject: typeof import("./getAccessGroupProject").getAccessGroupProject = null as any; +export const getAccessGroupProjectOutput: typeof import("./getAccessGroupProject").getAccessGroupProjectOutput = null as any; +utilities.lazyLoad(exports, ["getAccessGroupProject","getAccessGroupProjectOutput"], () => require("./getAccessGroupProject")); + export { GetAliasArgs, GetAliasResult, GetAliasOutputArgs } from "./getAlias"; export const getAlias: typeof import("./getAlias").getAlias = null as any; export const getAliasOutput: typeof import("./getAlias").getAliasOutput = null as any; @@ -60,6 +85,11 @@ export const getAttackChallengeMode: typeof import("./getAttackChallengeMode").g export const getAttackChallengeModeOutput: typeof import("./getAttackChallengeMode").getAttackChallengeModeOutput = null as any; utilities.lazyLoad(exports, ["getAttackChallengeMode","getAttackChallengeModeOutput"], () => require("./getAttackChallengeMode")); +export { GetCustomEnvironmentArgs, GetCustomEnvironmentResult, GetCustomEnvironmentOutputArgs } from "./getCustomEnvironment"; +export const getCustomEnvironment: typeof import("./getCustomEnvironment").getCustomEnvironment = null as any; +export const getCustomEnvironmentOutput: typeof import("./getCustomEnvironment").getCustomEnvironmentOutput = null as any; +utilities.lazyLoad(exports, ["getCustomEnvironment","getCustomEnvironmentOutput"], () => require("./getCustomEnvironment")); + export { GetDeploymentArgs, GetDeploymentResult, GetDeploymentOutputArgs } from "./getDeployment"; export const getDeployment: typeof import("./getDeployment").getDeployment = null as any; export const getDeploymentOutput: typeof import("./getDeployment").getDeploymentOutput = null as any; @@ -120,6 +150,11 @@ export const getProjectDirectory: typeof import("./getProjectDirectory").getProj export const getProjectDirectoryOutput: typeof import("./getProjectDirectory").getProjectDirectoryOutput = null as any; utilities.lazyLoad(exports, ["getProjectDirectory","getProjectDirectoryOutput"], () => require("./getProjectDirectory")); +export { GetProjectMembersArgs, GetProjectMembersResult, GetProjectMembersOutputArgs } from "./getProjectMembers"; +export const getProjectMembers: typeof import("./getProjectMembers").getProjectMembers = null as any; +export const getProjectMembersOutput: typeof import("./getProjectMembers").getProjectMembersOutput = null as any; +utilities.lazyLoad(exports, ["getProjectMembers","getProjectMembersOutput"], () => require("./getProjectMembers")); + export { GetSharedEnvironmentVariableArgs, GetSharedEnvironmentVariableResult, GetSharedEnvironmentVariableOutputArgs } from "./getSharedEnvironmentVariable"; export const getSharedEnvironmentVariable: typeof import("./getSharedEnvironmentVariable").getSharedEnvironmentVariable = null as any; export const getSharedEnvironmentVariableOutput: typeof import("./getSharedEnvironmentVariable").getSharedEnvironmentVariableOutput = null as any; @@ -130,6 +165,11 @@ export const getTeamConfig: typeof import("./getTeamConfig").getTeamConfig = nul export const getTeamConfigOutput: typeof import("./getTeamConfig").getTeamConfigOutput = null as any; utilities.lazyLoad(exports, ["getTeamConfig","getTeamConfigOutput"], () => require("./getTeamConfig")); +export { GetTeamMemberArgs, GetTeamMemberResult, GetTeamMemberOutputArgs } from "./getTeamMember"; +export const getTeamMember: typeof import("./getTeamMember").getTeamMember = null as any; +export const getTeamMemberOutput: typeof import("./getTeamMember").getTeamMemberOutput = null as any; +utilities.lazyLoad(exports, ["getTeamMember","getTeamMemberOutput"], () => require("./getTeamMember")); + export { LogDrainArgs, LogDrainState } from "./logDrain"; export type LogDrain = import("./logDrain").LogDrain; export const LogDrain: typeof import("./logDrain").LogDrain = null as any; @@ -160,6 +200,11 @@ export type ProjectEnvironmentVariables = import("./projectEnvironmentVariables" export const ProjectEnvironmentVariables: typeof import("./projectEnvironmentVariables").ProjectEnvironmentVariables = null as any; utilities.lazyLoad(exports, ["ProjectEnvironmentVariables"], () => require("./projectEnvironmentVariables")); +export { ProjectMembersArgs, ProjectMembersState } from "./projectMembers"; +export type ProjectMembers = import("./projectMembers").ProjectMembers; +export const ProjectMembers: typeof import("./projectMembers").ProjectMembers = null as any; +utilities.lazyLoad(exports, ["ProjectMembers"], () => require("./projectMembers")); + export { ProviderArgs } from "./provider"; export type Provider = import("./provider").Provider; export const Provider: typeof import("./provider").Provider = null as any; @@ -175,6 +220,11 @@ export type TeamConfig = import("./teamConfig").TeamConfig; export const TeamConfig: typeof import("./teamConfig").TeamConfig = null as any; utilities.lazyLoad(exports, ["TeamConfig"], () => require("./teamConfig")); +export { TeamMemberArgs, TeamMemberState } from "./teamMember"; +export type TeamMember = import("./teamMember").TeamMember; +export const TeamMember: typeof import("./teamMember").TeamMember = null as any; +utilities.lazyLoad(exports, ["TeamMember"], () => require("./teamMember")); + export { WebhookArgs, WebhookState } from "./webhook"; export type Webhook = import("./webhook").Webhook; export const Webhook: typeof import("./webhook").Webhook = null as any; @@ -194,10 +244,16 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "vercel:index/accessGroup:AccessGroup": + return new AccessGroup(name, undefined, { urn }) + case "vercel:index/accessGroupProject:AccessGroupProject": + return new AccessGroupProject(name, undefined, { urn }) case "vercel:index/alias:Alias": return new Alias(name, undefined, { urn }) case "vercel:index/attackChallengeMode:AttackChallengeMode": return new AttackChallengeMode(name, undefined, { urn }) + case "vercel:index/customEnvironment:CustomEnvironment": + return new CustomEnvironment(name, undefined, { urn }) case "vercel:index/deployment:Deployment": return new Deployment(name, undefined, { urn }) case "vercel:index/dnsRecord:DnsRecord": @@ -224,10 +280,14 @@ const _module = { return new ProjectEnvironmentVariable(name, undefined, { urn }) case "vercel:index/projectEnvironmentVariables:ProjectEnvironmentVariables": return new ProjectEnvironmentVariables(name, undefined, { urn }) + case "vercel:index/projectMembers:ProjectMembers": + return new ProjectMembers(name, undefined, { urn }) case "vercel:index/sharedEnvironmentVariable:SharedEnvironmentVariable": return new SharedEnvironmentVariable(name, undefined, { urn }) case "vercel:index/teamConfig:TeamConfig": return new TeamConfig(name, undefined, { urn }) + case "vercel:index/teamMember:TeamMember": + return new TeamMember(name, undefined, { urn }) case "vercel:index/webhook:Webhook": return new Webhook(name, undefined, { urn }) default: @@ -235,8 +295,11 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("vercel", "index/accessGroup", _module) +pulumi.runtime.registerResourceModule("vercel", "index/accessGroupProject", _module) pulumi.runtime.registerResourceModule("vercel", "index/alias", _module) pulumi.runtime.registerResourceModule("vercel", "index/attackChallengeMode", _module) +pulumi.runtime.registerResourceModule("vercel", "index/customEnvironment", _module) pulumi.runtime.registerResourceModule("vercel", "index/deployment", _module) pulumi.runtime.registerResourceModule("vercel", "index/dnsRecord", _module) pulumi.runtime.registerResourceModule("vercel", "index/edgeConfig", _module) @@ -250,8 +313,10 @@ pulumi.runtime.registerResourceModule("vercel", "index/projectDeploymentRetentio pulumi.runtime.registerResourceModule("vercel", "index/projectDomain", _module) pulumi.runtime.registerResourceModule("vercel", "index/projectEnvironmentVariable", _module) pulumi.runtime.registerResourceModule("vercel", "index/projectEnvironmentVariables", _module) +pulumi.runtime.registerResourceModule("vercel", "index/projectMembers", _module) pulumi.runtime.registerResourceModule("vercel", "index/sharedEnvironmentVariable", _module) pulumi.runtime.registerResourceModule("vercel", "index/teamConfig", _module) +pulumi.runtime.registerResourceModule("vercel", "index/teamMember", _module) pulumi.runtime.registerResourceModule("vercel", "index/webhook", _module) pulumi.runtime.registerResourcePackage("vercel", { version: utilities.getVersion(), diff --git a/sdk/nodejs/project.ts b/sdk/nodejs/project.ts index 1b834be..4cc0140 100644 --- a/sdk/nodejs/project.ts +++ b/sdk/nodejs/project.ts @@ -135,16 +135,15 @@ export class Project extends pulumi.CustomResource { */ public readonly prioritiseProductionBuilds!: pulumi.Output; /** - * 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. */ public readonly protectionBypassForAutomation!: pulumi.Output; /** - * 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. */ - public /*out*/ readonly protectionBypassForAutomationSecret!: pulumi.Output; + public readonly protectionBypassForAutomationSecret!: pulumi.Output; /** * 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 @@ -255,6 +254,7 @@ export class Project extends pulumi.CustomResource { resourceInputs["previewComments"] = args ? args.previewComments : undefined; resourceInputs["prioritiseProductionBuilds"] = args ? args.prioritiseProductionBuilds : undefined; resourceInputs["protectionBypassForAutomation"] = args ? args.protectionBypassForAutomation : undefined; + resourceInputs["protectionBypassForAutomationSecret"] = args?.protectionBypassForAutomationSecret ? pulumi.secret(args.protectionBypassForAutomationSecret) : undefined; resourceInputs["publicSource"] = args ? args.publicSource : undefined; resourceInputs["resourceConfig"] = args ? args.resourceConfig : undefined; resourceInputs["rootDirectory"] = args ? args.rootDirectory : undefined; @@ -263,9 +263,10 @@ export class Project extends pulumi.CustomResource { resourceInputs["teamId"] = args ? args.teamId : undefined; resourceInputs["trustedIps"] = args ? args.trustedIps : undefined; resourceInputs["vercelAuthentication"] = args ? args.vercelAuthentication : undefined; - resourceInputs["protectionBypassForAutomationSecret"] = undefined /*out*/; } opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + const secretOpts = { additionalSecretOutputs: ["protectionBypassForAutomationSecret"] }; + opts = pulumi.mergeOptions(opts, secretOpts); super(Project.__pulumiType, name, resourceInputs, opts); } } @@ -375,14 +376,13 @@ export interface ProjectState { */ prioritiseProductionBuilds?: pulumi.Input; /** - * 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.Input; /** - * 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.Input; /** @@ -531,11 +531,15 @@ export interface ProjectArgs { */ prioritiseProductionBuilds?: pulumi.Input; /** - * 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.Input; + /** + * If `protectionBypassForAutomation` is enabled, optionally set this value to specify a 32 character secret, otherwise a + * secret will be generated. + */ + protectionBypassForAutomationSecret?: pulumi.Input; /** * 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 diff --git a/sdk/nodejs/projectDomain.ts b/sdk/nodejs/projectDomain.ts index 51968c1..ac07917 100644 --- a/sdk/nodejs/projectDomain.ts +++ b/sdk/nodejs/projectDomain.ts @@ -32,6 +32,11 @@ export class ProjectDomain extends pulumi.CustomResource { return obj['__pulumiType'] === ProjectDomain.__pulumiType; } + /** + * The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + * assigned the domain name. + */ + public readonly customEnvironmentId!: pulumi.Output; /** * The domain name to associate with the project. */ @@ -71,6 +76,7 @@ export class ProjectDomain extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as ProjectDomainState | undefined; + resourceInputs["customEnvironmentId"] = state ? state.customEnvironmentId : undefined; resourceInputs["domain"] = state ? state.domain : undefined; resourceInputs["gitBranch"] = state ? state.gitBranch : undefined; resourceInputs["projectId"] = state ? state.projectId : undefined; @@ -85,6 +91,7 @@ export class ProjectDomain extends pulumi.CustomResource { if ((!args || args.projectId === undefined) && !opts.urn) { throw new Error("Missing required property 'projectId'"); } + resourceInputs["customEnvironmentId"] = args ? args.customEnvironmentId : undefined; resourceInputs["domain"] = args ? args.domain : undefined; resourceInputs["gitBranch"] = args ? args.gitBranch : undefined; resourceInputs["projectId"] = args ? args.projectId : undefined; @@ -101,6 +108,11 @@ export class ProjectDomain extends pulumi.CustomResource { * Input properties used for looking up and filtering ProjectDomain resources. */ export interface ProjectDomainState { + /** + * 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.Input; /** * The domain name to associate with the project. */ @@ -132,6 +144,11 @@ export interface ProjectDomainState { * The set of arguments for constructing a ProjectDomain resource. */ export interface ProjectDomainArgs { + /** + * 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.Input; /** * The domain name to associate with the project. */ diff --git a/sdk/nodejs/projectEnvironmentVariable.ts b/sdk/nodejs/projectEnvironmentVariable.ts index 6acda22..fc532c9 100644 --- a/sdk/nodejs/projectEnvironmentVariable.ts +++ b/sdk/nodejs/projectEnvironmentVariable.ts @@ -36,6 +36,11 @@ export class ProjectEnvironmentVariable extends pulumi.CustomResource { * A comment explaining what the environment variable is for. */ public readonly comment!: pulumi.Output; + /** + * The IDs of Custom Environments that the Environment Variable should be present on. At least one of `target` or + * `customEnvironmentIds` must be set. + */ + public readonly customEnvironmentIds!: pulumi.Output; /** * The git branch of the Environment Variable. */ @@ -55,7 +60,7 @@ export class ProjectEnvironmentVariable extends pulumi.CustomResource { public readonly sensitive!: pulumi.Output; /** * 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. */ public readonly targets!: pulumi.Output; /** @@ -81,6 +86,7 @@ export class ProjectEnvironmentVariable extends pulumi.CustomResource { if (opts.id) { const state = argsOrState as ProjectEnvironmentVariableState | undefined; resourceInputs["comment"] = state ? state.comment : undefined; + resourceInputs["customEnvironmentIds"] = state ? state.customEnvironmentIds : undefined; resourceInputs["gitBranch"] = state ? state.gitBranch : undefined; resourceInputs["key"] = state ? state.key : undefined; resourceInputs["projectId"] = state ? state.projectId : undefined; @@ -96,13 +102,11 @@ export class ProjectEnvironmentVariable extends pulumi.CustomResource { if ((!args || args.projectId === undefined) && !opts.urn) { throw new Error("Missing required property 'projectId'"); } - if ((!args || args.targets === undefined) && !opts.urn) { - throw new Error("Missing required property 'targets'"); - } if ((!args || args.value === undefined) && !opts.urn) { throw new Error("Missing required property 'value'"); } resourceInputs["comment"] = args ? args.comment : undefined; + resourceInputs["customEnvironmentIds"] = args ? args.customEnvironmentIds : undefined; resourceInputs["gitBranch"] = args ? args.gitBranch : undefined; resourceInputs["key"] = args ? args.key : undefined; resourceInputs["projectId"] = args ? args.projectId : undefined; @@ -126,6 +130,11 @@ export interface ProjectEnvironmentVariableState { * A comment explaining what the environment variable is for. */ comment?: pulumi.Input; + /** + * 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.Input[]>; /** * The git branch of the Environment Variable. */ @@ -145,7 +154,7 @@ export interface ProjectEnvironmentVariableState { sensitive?: pulumi.Input; /** * 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.Input[]>; /** @@ -166,6 +175,11 @@ export interface ProjectEnvironmentVariableArgs { * A comment explaining what the environment variable is for. */ comment?: pulumi.Input; + /** + * 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.Input[]>; /** * The git branch of the Environment Variable. */ @@ -185,9 +199,9 @@ export interface ProjectEnvironmentVariableArgs { sensitive?: pulumi.Input; /** * 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.Input[]>; + targets?: pulumi.Input[]>; /** * The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider. */ diff --git a/sdk/nodejs/projectMembers.ts b/sdk/nodejs/projectMembers.ts new file mode 100644 index 0000000..d638cb5 --- /dev/null +++ b/sdk/nodejs/projectMembers.ts @@ -0,0 +1,120 @@ +// *** 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 ProjectMembers extends pulumi.CustomResource { + /** + * Get an existing ProjectMembers 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?: ProjectMembersState, opts?: pulumi.CustomResourceOptions): ProjectMembers { + return new ProjectMembers(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'vercel:index/projectMembers:ProjectMembers'; + + /** + * Returns true if the given object is an instance of ProjectMembers. 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 ProjectMembers { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === ProjectMembers.__pulumiType; + } + + /** + * The set of members to manage for this project. + */ + public readonly members!: pulumi.Output; + /** + * The ID of the existing Vercel Project. + */ + public readonly projectId!: pulumi.Output; + /** + * 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. + */ + public readonly teamId!: pulumi.Output; + + /** + * Create a ProjectMembers 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: ProjectMembersArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: ProjectMembersArgs | ProjectMembersState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as ProjectMembersState | undefined; + resourceInputs["members"] = state ? state.members : undefined; + resourceInputs["projectId"] = state ? state.projectId : undefined; + resourceInputs["teamId"] = state ? state.teamId : undefined; + } else { + const args = argsOrState as ProjectMembersArgs | undefined; + if ((!args || args.members === undefined) && !opts.urn) { + throw new Error("Missing required property 'members'"); + } + if ((!args || args.projectId === undefined) && !opts.urn) { + throw new Error("Missing required property 'projectId'"); + } + resourceInputs["members"] = args ? args.members : undefined; + resourceInputs["projectId"] = args ? args.projectId : undefined; + resourceInputs["teamId"] = args ? args.teamId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(ProjectMembers.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering ProjectMembers resources. + */ +export interface ProjectMembersState { + /** + * The set of members to manage for this project. + */ + members?: pulumi.Input[]>; + /** + * The ID of the existing Vercel Project. + */ + projectId?: pulumi.Input; + /** + * 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.Input; +} + +/** + * The set of arguments for constructing a ProjectMembers resource. + */ +export interface ProjectMembersArgs { + /** + * The set of members to manage for this project. + */ + members: pulumi.Input[]>; + /** + * The ID of the existing Vercel Project. + */ + projectId: pulumi.Input; + /** + * 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.Input; +} diff --git a/sdk/nodejs/teamConfig.ts b/sdk/nodejs/teamConfig.ts index ae056b9..cb018d7 100644 --- a/sdk/nodejs/teamConfig.ts +++ b/sdk/nodejs/teamConfig.ts @@ -46,7 +46,13 @@ export class TeamConfig extends pulumi.CustomResource { * Hostname that'll be matched with emails on sign-up to automatically join the Team. */ public readonly emailDomain!: pulumi.Output; + /** + * Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + */ public readonly enablePreviewFeedback!: pulumi.Output; + /** + * Enables the Vercel Toolbar on your production deployments: one of on, off or default. + */ public readonly enableProductionFeedback!: pulumi.Output; /** * Indicates if ip addresses should be accessible in o11y tooling. @@ -76,6 +82,10 @@ export class TeamConfig extends pulumi.CustomResource { * Configuration for SAML authentication. */ public readonly saml!: pulumi.Output; + /** + * 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. + */ public readonly sensitiveEnvironmentVariablePolicy!: pulumi.Output; /** * The slug of the team. Will be used in the URL of the team's dashboard. @@ -147,7 +157,13 @@ export interface TeamConfigState { * Hostname that'll be matched with emails on sign-up to automatically join the Team. */ emailDomain?: pulumi.Input; + /** + * Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + */ enablePreviewFeedback?: pulumi.Input; + /** + * Enables the Vercel Toolbar on your production deployments: one of on, off or default. + */ enableProductionFeedback?: pulumi.Input; /** * Indicates if ip addresses should be accessible in o11y tooling. @@ -177,6 +193,10 @@ export interface TeamConfigState { * Configuration for SAML authentication. */ saml?: pulumi.Input; + /** + * 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.Input; /** * The slug of the team. Will be used in the URL of the team's dashboard. @@ -200,7 +220,13 @@ export interface TeamConfigArgs { * Hostname that'll be matched with emails on sign-up to automatically join the Team. */ emailDomain?: pulumi.Input; + /** + * Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + */ enablePreviewFeedback?: pulumi.Input; + /** + * Enables the Vercel Toolbar on your production deployments: one of on, off or default. + */ enableProductionFeedback?: pulumi.Input; /** * Indicates if ip addresses should be accessible in o11y tooling. @@ -226,6 +252,10 @@ export interface TeamConfigArgs { * Configuration for SAML authentication. */ saml?: pulumi.Input; + /** + * 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.Input; /** * The slug of the team. Will be used in the URL of the team's dashboard. diff --git a/sdk/nodejs/teamMember.ts b/sdk/nodejs/teamMember.ts new file mode 100644 index 0000000..4ba23cf --- /dev/null +++ b/sdk/nodejs/teamMember.ts @@ -0,0 +1,157 @@ +// *** 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 TeamMember extends pulumi.CustomResource { + /** + * Get an existing TeamMember 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?: TeamMemberState, opts?: pulumi.CustomResourceOptions): TeamMember { + return new TeamMember(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'vercel:index/teamMember:TeamMember'; + + /** + * Returns true if the given object is an instance of TeamMember. 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 TeamMember { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === TeamMember.__pulumiType; + } + + /** + * 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. + */ + public readonly accessGroups!: pulumi.Output; + /** + * 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. + */ + public readonly projects!: pulumi.Output; + /** + * 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. + */ + public readonly role!: pulumi.Output; + /** + * The ID of the existing Vercel Team. + */ + public readonly teamId!: pulumi.Output; + /** + * The ID of the user to add to the team. + */ + public readonly userId!: pulumi.Output; + + /** + * Create a TeamMember 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: TeamMemberArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: TeamMemberArgs | TeamMemberState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as TeamMemberState | undefined; + resourceInputs["accessGroups"] = state ? state.accessGroups : undefined; + resourceInputs["projects"] = state ? state.projects : undefined; + resourceInputs["role"] = state ? state.role : undefined; + resourceInputs["teamId"] = state ? state.teamId : undefined; + resourceInputs["userId"] = state ? state.userId : undefined; + } else { + const args = argsOrState as TeamMemberArgs | undefined; + if ((!args || args.role === undefined) && !opts.urn) { + throw new Error("Missing required property 'role'"); + } + if ((!args || args.teamId === undefined) && !opts.urn) { + throw new Error("Missing required property 'teamId'"); + } + if ((!args || args.userId === undefined) && !opts.urn) { + throw new Error("Missing required property 'userId'"); + } + resourceInputs["accessGroups"] = args ? args.accessGroups : undefined; + resourceInputs["projects"] = args ? args.projects : undefined; + resourceInputs["role"] = args ? args.role : undefined; + resourceInputs["teamId"] = args ? args.teamId : undefined; + resourceInputs["userId"] = args ? args.userId : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(TeamMember.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering TeamMember resources. + */ +export interface TeamMemberState { + /** + * 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.Input[]>; + /** + * 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?: pulumi.Input[]>; + /** + * 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.Input; + /** + * The ID of the existing Vercel Team. + */ + teamId?: pulumi.Input; + /** + * The ID of the user to add to the team. + */ + userId?: pulumi.Input; +} + +/** + * The set of arguments for constructing a TeamMember resource. + */ +export interface TeamMemberArgs { + /** + * 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.Input[]>; + /** + * 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?: pulumi.Input[]>; + /** + * 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.Input; + /** + * The ID of the existing Vercel Team. + */ + teamId: pulumi.Input; + /** + * The ID of the user to add to the team. + */ + userId: pulumi.Input; +} diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 0eb2819..3f6e223 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -13,10 +13,13 @@ "strict": true }, "files": [ + "accessGroup.ts", + "accessGroupProject.ts", "alias.ts", "attackChallengeMode.ts", "config/index.ts", "config/vars.ts", + "customEnvironment.ts", "deployment.ts", "dnsRecord.ts", "edgeConfig.ts", @@ -24,8 +27,11 @@ "edgeConfigSchema.ts", "edgeConfigToken.ts", "firewallConfig.ts", + "getAccessGroup.ts", + "getAccessGroupProject.ts", "getAlias.ts", "getAttackChallengeMode.ts", + "getCustomEnvironment.ts", "getDeployment.ts", "getEdgeConfig.ts", "getEdgeConfigItem.ts", @@ -38,8 +44,10 @@ "getProject.ts", "getProjectDeploymentRetention.ts", "getProjectDirectory.ts", + "getProjectMembers.ts", "getSharedEnvironmentVariable.ts", "getTeamConfig.ts", + "getTeamMember.ts", "index.ts", "logDrain.ts", "project.ts", @@ -47,9 +55,11 @@ "projectDomain.ts", "projectEnvironmentVariable.ts", "projectEnvironmentVariables.ts", + "projectMembers.ts", "provider.ts", "sharedEnvironmentVariable.ts", "teamConfig.ts", + "teamMember.ts", "types/index.ts", "types/input.ts", "types/output.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 9619edb..3a84b24 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -5,6 +5,17 @@ import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; +export interface CustomEnvironmentBranchTracking { + /** + * The pattern of the branch name to track. + */ + pattern: pulumi.Input; + /** + * How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + */ + type: pulumi.Input; +} + export interface DeploymentProjectSettings { /** * The build command for this deployment. If omitted, this value will be taken from the project or automatically detected. @@ -266,6 +277,10 @@ export interface ProjectEnvironment { * A comment explaining what the environment variable is for. */ comment?: pulumi.Input; + /** + * 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.Input[]>; /** * The git branch of the Environment Variable. */ @@ -283,9 +298,9 @@ export interface ProjectEnvironment { */ sensitive?: pulumi.Input; /** - * 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.Input[]>; + targets?: pulumi.Input[]>; /** * The value of the Environment Variable. */ @@ -297,6 +312,10 @@ export interface ProjectEnvironmentVariablesVariable { * A comment explaining what the environment variable is for. */ comment?: pulumi.Input; + /** + * 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.Input[]>; /** * The git branch of the Environment Variable. */ @@ -314,9 +333,9 @@ export interface ProjectEnvironmentVariablesVariable { */ sensitive?: pulumi.Input; /** - * 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.Input[]>; + targets?: pulumi.Input[]>; /** * The value of the Environment Variable. */ @@ -372,6 +391,25 @@ export interface ProjectGitRepositoryDeployHook { url?: pulumi.Input; } +export interface ProjectMembersMember { + /** + * The email of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified. + */ + email?: pulumi.Input; + /** + * The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + */ + role: pulumi.Input; + /** + * The ID of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified. + */ + userId?: pulumi.Input; + /** + * The username of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified. + */ + username?: pulumi.Input; +} + export interface ProjectOidcTokenConfig { /** * 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. @@ -473,3 +511,14 @@ export interface TeamConfigSaml { */ roles?: pulumi.Input<{[key: string]: pulumi.Input}>; } + +export interface TeamMemberProject { + /** + * The ID of the project that the user should be granted access to. + */ + projectId: pulumi.Input; + /** + * The role that the user should have in the project. + */ + role: pulumi.Input; +} diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 0aa0d61..7d92ea2 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -5,6 +5,17 @@ import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; +export interface CustomEnvironmentBranchTracking { + /** + * The pattern of the branch name to track. + */ + pattern: string; + /** + * How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + */ + type: string; +} + export interface DeploymentProjectSettings { /** * The build command for this deployment. If omitted, this value will be taken from the project or automatically detected. @@ -261,11 +272,26 @@ export interface FirewallConfigRulesRuleConditionGroupCondition { value?: string; } +export interface GetCustomEnvironmentBranchTracking { + /** + * The pattern of the branch name to track. + */ + pattern: string; + /** + * How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + */ + type: string; +} + export interface GetProjectEnvironment { /** * A comment explaining what the environment variable is for. */ comment: string; + /** + * The IDs of Custom Environments that the Environment Variable should be present on. + */ + customEnvironmentIds: string[]; /** * The git branch of the environment variable. */ @@ -341,6 +367,25 @@ export interface GetProjectGitRepositoryDeployHook { url: string; } +export interface GetProjectMembersMember { + /** + * The email of the user. + */ + email: string; + /** + * The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + */ + role: string; + /** + * The ID of the user. + */ + userId: string; + /** + * The username of the user. + */ + username: string; +} + export interface GetProjectOidcTokenConfig { /** * 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. @@ -430,11 +475,26 @@ export interface GetTeamConfigSaml { roles: {[key: string]: string}; } +export interface GetTeamMemberProject { + /** + * The ID of the project that the user should be granted access to. + */ + projectId: string; + /** + * The role that the user should have in the project. + */ + role: string; +} + export interface ProjectEnvironment { /** * A comment explaining what the environment variable is for. */ comment: string; + /** + * 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[]; /** * The git branch of the Environment Variable. */ @@ -452,7 +512,7 @@ export interface ProjectEnvironment { */ sensitive: boolean; /** - * 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[]; /** @@ -466,6 +526,10 @@ export interface ProjectEnvironmentVariablesVariable { * A comment explaining what the environment variable is for. */ comment: string; + /** + * 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[]; /** * The git branch of the Environment Variable. */ @@ -483,7 +547,7 @@ export interface ProjectEnvironmentVariablesVariable { */ sensitive: boolean; /** - * 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[]; /** @@ -541,6 +605,25 @@ export interface ProjectGitRepositoryDeployHook { url: string; } +export interface ProjectMembersMember { + /** + * The email of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified. + */ + email: string; + /** + * The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + */ + role: string; + /** + * The ID of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified. + */ + userId: string; + /** + * The username of the user to add to the project. Exactly one of `userId`, `email`, or `username` must be specified. + */ + username: string; +} + export interface ProjectOidcTokenConfig { /** * 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. @@ -643,3 +726,14 @@ export interface TeamConfigSaml { roles?: {[key: string]: string}; } +export interface TeamMemberProject { + /** + * The ID of the project that the user should be granted access to. + */ + projectId: string; + /** + * The role that the user should have in the project. + */ + role: string; +} + diff --git a/sdk/python/pulumiverse_vercel/__init__.py b/sdk/python/pulumiverse_vercel/__init__.py index 13e7d0d..fa2ddb6 100644 --- a/sdk/python/pulumiverse_vercel/__init__.py +++ b/sdk/python/pulumiverse_vercel/__init__.py @@ -5,8 +5,11 @@ from . import _utilities import typing # Export this package's modules as members: +from .access_group import * +from .access_group_project import * from .alias import * from .attack_challenge_mode import * +from .custom_environment import * from .deployment import * from .dns_record import * from .edge_config import * @@ -14,8 +17,11 @@ from .edge_config_schema import * from .edge_config_token import * from .firewall_config import * +from .get_access_group import * +from .get_access_group_project import * from .get_alias import * from .get_attack_challenge_mode import * +from .get_custom_environment import * from .get_deployment import * from .get_edge_config import * from .get_edge_config_item import * @@ -28,17 +34,21 @@ from .get_project import * from .get_project_deployment_retention import * from .get_project_directory import * +from .get_project_members import * from .get_shared_environment_variable import * from .get_team_config import * +from .get_team_member import * from .log_drain import * from .project import * from .project_deployment_retention import * from .project_domain import * from .project_environment_variable import * from .project_environment_variables import * +from .project_members import * from .provider import * from .shared_environment_variable import * from .team_config import * +from .team_member import * from .webhook import * from ._inputs import * from . import outputs @@ -53,6 +63,22 @@ _utilities.register( resource_modules=""" [ + { + "pkg": "vercel", + "mod": "index/accessGroup", + "fqn": "pulumiverse_vercel", + "classes": { + "vercel:index/accessGroup:AccessGroup": "AccessGroup" + } + }, + { + "pkg": "vercel", + "mod": "index/accessGroupProject", + "fqn": "pulumiverse_vercel", + "classes": { + "vercel:index/accessGroupProject:AccessGroupProject": "AccessGroupProject" + } + }, { "pkg": "vercel", "mod": "index/alias", @@ -69,6 +95,14 @@ "vercel:index/attackChallengeMode:AttackChallengeMode": "AttackChallengeMode" } }, + { + "pkg": "vercel", + "mod": "index/customEnvironment", + "fqn": "pulumiverse_vercel", + "classes": { + "vercel:index/customEnvironment:CustomEnvironment": "CustomEnvironment" + } + }, { "pkg": "vercel", "mod": "index/deployment", @@ -173,6 +207,14 @@ "vercel:index/projectEnvironmentVariables:ProjectEnvironmentVariables": "ProjectEnvironmentVariables" } }, + { + "pkg": "vercel", + "mod": "index/projectMembers", + "fqn": "pulumiverse_vercel", + "classes": { + "vercel:index/projectMembers:ProjectMembers": "ProjectMembers" + } + }, { "pkg": "vercel", "mod": "index/sharedEnvironmentVariable", @@ -189,6 +231,14 @@ "vercel:index/teamConfig:TeamConfig": "TeamConfig" } }, + { + "pkg": "vercel", + "mod": "index/teamMember", + "fqn": "pulumiverse_vercel", + "classes": { + "vercel:index/teamMember:TeamMember": "TeamMember" + } + }, { "pkg": "vercel", "mod": "index/webhook", diff --git a/sdk/python/pulumiverse_vercel/_inputs.py b/sdk/python/pulumiverse_vercel/_inputs.py index a18e7be..0dc4ad3 100644 --- a/sdk/python/pulumiverse_vercel/_inputs.py +++ b/sdk/python/pulumiverse_vercel/_inputs.py @@ -15,6 +15,8 @@ from . import _utilities __all__ = [ + 'CustomEnvironmentBranchTrackingArgs', + 'CustomEnvironmentBranchTrackingArgsDict', 'DeploymentProjectSettingsArgs', 'DeploymentProjectSettingsArgsDict', 'DnsRecordSrvArgs', @@ -71,6 +73,8 @@ 'ProjectGitRepositoryArgsDict', 'ProjectGitRepositoryDeployHookArgs', 'ProjectGitRepositoryDeployHookArgsDict', + 'ProjectMembersMemberArgs', + 'ProjectMembersMemberArgsDict', 'ProjectOidcTokenConfigArgs', 'ProjectOidcTokenConfigArgsDict', 'ProjectOptionsAllowlistArgs', @@ -91,10 +95,62 @@ 'TeamConfigRemoteCachingArgsDict', 'TeamConfigSamlArgs', 'TeamConfigSamlArgsDict', + 'TeamMemberProjectArgs', + 'TeamMemberProjectArgsDict', ] MYPY = False +if not MYPY: + class CustomEnvironmentBranchTrackingArgsDict(TypedDict): + pattern: pulumi.Input[str] + """ + The pattern of the branch name to track. + """ + type: pulumi.Input[str] + """ + How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + """ +elif False: + CustomEnvironmentBranchTrackingArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class CustomEnvironmentBranchTrackingArgs: + def __init__(__self__, *, + pattern: pulumi.Input[str], + type: pulumi.Input[str]): + """ + :param pulumi.Input[str] pattern: The pattern of the branch name to track. + :param pulumi.Input[str] type: How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + """ + pulumi.set(__self__, "pattern", pattern) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def pattern(self) -> pulumi.Input[str]: + """ + The pattern of the branch name to track. + """ + return pulumi.get(self, "pattern") + + @pattern.setter + def pattern(self, value: pulumi.Input[str]): + pulumi.set(self, "pattern", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + if not MYPY: class DeploymentProjectSettingsArgsDict(TypedDict): build_command: NotRequired[pulumi.Input[str]] @@ -1503,10 +1559,6 @@ class ProjectEnvironmentArgsDict(TypedDict): """ The name of the Environment Variable. """ - targets: pulumi.Input[Sequence[pulumi.Input[str]]] - """ - The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. - """ value: pulumi.Input[str] """ The value of the Environment Variable. @@ -1515,6 +1567,10 @@ class ProjectEnvironmentArgsDict(TypedDict): """ A comment explaining what the environment variable is for. """ + custom_environment_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ git_branch: NotRequired[pulumi.Input[str]] """ The git branch of the Environment Variable. @@ -1527,6 +1583,10 @@ class ProjectEnvironmentArgsDict(TypedDict): """ 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)) """ + targets: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ elif False: ProjectEnvironmentArgsDict: TypeAlias = Mapping[str, Any] @@ -1534,32 +1594,37 @@ class ProjectEnvironmentArgsDict(TypedDict): class ProjectEnvironmentArgs: def __init__(__self__, *, key: pulumi.Input[str], - targets: pulumi.Input[Sequence[pulumi.Input[str]]], value: pulumi.Input[str], comment: Optional[pulumi.Input[str]] = None, + custom_environment_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, git_branch: Optional[pulumi.Input[str]] = None, id: Optional[pulumi.Input[str]] = None, - sensitive: Optional[pulumi.Input[bool]] = None): + sensitive: Optional[pulumi.Input[bool]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[str] key: The name of the Environment Variable. - :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. :param pulumi.Input[str] value: The value of the Environment Variable. :param pulumi.Input[str] comment: A comment explaining what the environment variable is for. + :param pulumi.Input[Sequence[pulumi.Input[str]]] custom_environment_ids: 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. :param pulumi.Input[str] git_branch: The git branch of the Environment Variable. :param pulumi.Input[str] id: The ID of the Environment Variable. :param pulumi.Input[bool] sensitive: 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)) + :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: 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. """ pulumi.set(__self__, "key", key) - pulumi.set(__self__, "targets", targets) pulumi.set(__self__, "value", value) if comment is not None: pulumi.set(__self__, "comment", comment) + if custom_environment_ids is not None: + pulumi.set(__self__, "custom_environment_ids", custom_environment_ids) if git_branch is not None: pulumi.set(__self__, "git_branch", git_branch) if id is not None: pulumi.set(__self__, "id", id) if sensitive is not None: pulumi.set(__self__, "sensitive", sensitive) + if targets is not None: + pulumi.set(__self__, "targets", targets) @property @pulumi.getter @@ -1573,18 +1638,6 @@ def key(self) -> pulumi.Input[str]: def key(self, value: pulumi.Input[str]): pulumi.set(self, "key", value) - @property - @pulumi.getter - def targets(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: - """ - The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. - """ - return pulumi.get(self, "targets") - - @targets.setter - def targets(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(self, "targets", value) - @property @pulumi.getter def value(self) -> pulumi.Input[str]: @@ -1609,6 +1662,18 @@ def comment(self) -> Optional[pulumi.Input[str]]: def comment(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "comment", value) + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "custom_environment_ids") + + @custom_environment_ids.setter + def custom_environment_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "custom_environment_ids", value) + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> Optional[pulumi.Input[str]]: @@ -1645,6 +1710,18 @@ def sensitive(self) -> Optional[pulumi.Input[bool]]: def sensitive(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "sensitive", value) + @property + @pulumi.getter + def targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "targets") + + @targets.setter + def targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "targets", value) + if not MYPY: class ProjectEnvironmentVariablesVariableArgsDict(TypedDict): @@ -1652,10 +1729,6 @@ class ProjectEnvironmentVariablesVariableArgsDict(TypedDict): """ The name of the Environment Variable. """ - targets: pulumi.Input[Sequence[pulumi.Input[str]]] - """ - The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. - """ value: pulumi.Input[str] """ The value of the Environment Variable. @@ -1664,6 +1737,10 @@ class ProjectEnvironmentVariablesVariableArgsDict(TypedDict): """ A comment explaining what the environment variable is for. """ + custom_environment_ids: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ git_branch: NotRequired[pulumi.Input[str]] """ The git branch of the Environment Variable. @@ -1676,6 +1753,10 @@ class ProjectEnvironmentVariablesVariableArgsDict(TypedDict): """ Whether the Environment Variable is sensitive or not. """ + targets: NotRequired[pulumi.Input[Sequence[pulumi.Input[str]]]] + """ + 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. + """ elif False: ProjectEnvironmentVariablesVariableArgsDict: TypeAlias = Mapping[str, Any] @@ -1683,32 +1764,37 @@ class ProjectEnvironmentVariablesVariableArgsDict(TypedDict): class ProjectEnvironmentVariablesVariableArgs: def __init__(__self__, *, key: pulumi.Input[str], - targets: pulumi.Input[Sequence[pulumi.Input[str]]], value: pulumi.Input[str], comment: Optional[pulumi.Input[str]] = None, + custom_environment_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, git_branch: Optional[pulumi.Input[str]] = None, id: Optional[pulumi.Input[str]] = None, - sensitive: Optional[pulumi.Input[bool]] = None): + sensitive: Optional[pulumi.Input[bool]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[str] key: The name of the Environment Variable. - :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. :param pulumi.Input[str] value: The value of the Environment Variable. :param pulumi.Input[str] comment: A comment explaining what the environment variable is for. + :param pulumi.Input[Sequence[pulumi.Input[str]]] custom_environment_ids: 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. :param pulumi.Input[str] git_branch: The git branch of the Environment Variable. :param pulumi.Input[str] id: The ID of the Environment Variable. :param pulumi.Input[bool] sensitive: Whether the Environment Variable is sensitive or not. + :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: 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. """ pulumi.set(__self__, "key", key) - pulumi.set(__self__, "targets", targets) pulumi.set(__self__, "value", value) if comment is not None: pulumi.set(__self__, "comment", comment) + if custom_environment_ids is not None: + pulumi.set(__self__, "custom_environment_ids", custom_environment_ids) if git_branch is not None: pulumi.set(__self__, "git_branch", git_branch) if id is not None: pulumi.set(__self__, "id", id) if sensitive is not None: pulumi.set(__self__, "sensitive", sensitive) + if targets is not None: + pulumi.set(__self__, "targets", targets) @property @pulumi.getter @@ -1722,18 +1808,6 @@ def key(self) -> pulumi.Input[str]: def key(self, value: pulumi.Input[str]): pulumi.set(self, "key", value) - @property - @pulumi.getter - def targets(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: - """ - The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. - """ - return pulumi.get(self, "targets") - - @targets.setter - def targets(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(self, "targets", value) - @property @pulumi.getter def value(self) -> pulumi.Input[str]: @@ -1758,6 +1832,18 @@ def comment(self) -> Optional[pulumi.Input[str]]: def comment(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "comment", value) + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "custom_environment_ids") + + @custom_environment_ids.setter + def custom_environment_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "custom_environment_ids", value) + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> Optional[pulumi.Input[str]]: @@ -1794,6 +1880,18 @@ def sensitive(self) -> Optional[pulumi.Input[bool]]: def sensitive(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "sensitive", value) + @property + @pulumi.getter + def targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "targets") + + @targets.setter + def targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "targets", value) + if not MYPY: class ProjectGitCommentsArgsDict(TypedDict): @@ -2025,6 +2123,97 @@ def url(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "url", value) +if not MYPY: + class ProjectMembersMemberArgsDict(TypedDict): + role: pulumi.Input[str] + """ + The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + """ + email: NotRequired[pulumi.Input[str]] + """ + The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + user_id: NotRequired[pulumi.Input[str]] + """ + The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + username: NotRequired[pulumi.Input[str]] + """ + The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ +elif False: + ProjectMembersMemberArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class ProjectMembersMemberArgs: + def __init__(__self__, *, + role: pulumi.Input[str], + email: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + username: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] role: The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + :param pulumi.Input[str] email: The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + :param pulumi.Input[str] user_id: The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + :param pulumi.Input[str] username: The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + pulumi.set(__self__, "role", role) + if email is not None: + pulumi.set(__self__, "email", email) + if user_id is not None: + pulumi.set(__self__, "user_id", user_id) + if username is not None: + pulumi.set(__self__, "username", username) + + @property + @pulumi.getter + def role(self) -> pulumi.Input[str]: + """ + The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[str]): + pulumi.set(self, "role", value) + + @property + @pulumi.getter + def email(self) -> Optional[pulumi.Input[str]]: + """ + The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + return pulumi.get(self, "email") + + @email.setter + def email(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "email", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_id", value) + + @property + @pulumi.getter + def username(self) -> Optional[pulumi.Input[str]]: + """ + The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + return pulumi.get(self, "username") + + @username.setter + def username(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "username", value) + + if not MYPY: class ProjectOidcTokenConfigArgsDict(TypedDict): enabled: pulumi.Input[bool] @@ -2495,3 +2684,53 @@ def roles(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): pulumi.set(self, "roles", value) +if not MYPY: + class TeamMemberProjectArgsDict(TypedDict): + project_id: pulumi.Input[str] + """ + The ID of the project that the user should be granted access to. + """ + role: pulumi.Input[str] + """ + The role that the user should have in the project. + """ +elif False: + TeamMemberProjectArgsDict: TypeAlias = Mapping[str, Any] + +@pulumi.input_type +class TeamMemberProjectArgs: + def __init__(__self__, *, + project_id: pulumi.Input[str], + role: pulumi.Input[str]): + """ + :param pulumi.Input[str] project_id: The ID of the project that the user should be granted access to. + :param pulumi.Input[str] role: The role that the user should have in the project. + """ + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "role", role) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[str]: + """ + The ID of the project that the user should be granted access to. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[str]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter + def role(self) -> pulumi.Input[str]: + """ + The role that the user should have in the project. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[str]): + pulumi.set(self, "role", value) + + diff --git a/sdk/python/pulumiverse_vercel/access_group.py b/sdk/python/pulumiverse_vercel/access_group.py new file mode 100644 index 0000000..0a4d7bf --- /dev/null +++ b/sdk/python/pulumiverse_vercel/access_group.py @@ -0,0 +1,202 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['AccessGroupArgs', 'AccessGroup'] + +@pulumi.input_type +class AccessGroupArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a AccessGroup resource. + :param pulumi.Input[str] name: The name of the Access Group + :param pulumi.Input[str] team_id: 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. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Access Group + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +@pulumi.input_type +class _AccessGroupState: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering AccessGroup resources. + :param pulumi.Input[str] name: The name of the Access Group + :param pulumi.Input[str] team_id: 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. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Access Group + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +class AccessGroup(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a AccessGroup resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: The name of the Access Group + :param pulumi.Input[str] team_id: 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. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[AccessGroupArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a AccessGroup resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param AccessGroupArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AccessGroupArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AccessGroupArgs.__new__(AccessGroupArgs) + + __props__.__dict__["name"] = name + __props__.__dict__["team_id"] = team_id + super(AccessGroup, __self__).__init__( + 'vercel:index/accessGroup:AccessGroup', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None) -> 'AccessGroup': + """ + Get an existing AccessGroup resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: The name of the Access Group + :param pulumi.Input[str] team_id: 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AccessGroupState.__new__(_AccessGroupState) + + __props__.__dict__["name"] = name + __props__.__dict__["team_id"] = team_id + return AccessGroup(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the Access Group + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "team_id") + diff --git a/sdk/python/pulumiverse_vercel/access_group_project.py b/sdk/python/pulumiverse_vercel/access_group_project.py new file mode 100644 index 0000000..fdd74ab --- /dev/null +++ b/sdk/python/pulumiverse_vercel/access_group_project.py @@ -0,0 +1,299 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = ['AccessGroupProjectArgs', 'AccessGroupProject'] + +@pulumi.input_type +class AccessGroupProjectArgs: + def __init__(__self__, *, + access_group_id: pulumi.Input[str], + project_id: pulumi.Input[str], + role: pulumi.Input[str], + team_id: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a AccessGroupProject resource. + :param pulumi.Input[str] access_group_id: The ID of the Access Group. + :param pulumi.Input[str] project_id: The Project ID to assign to the access group. + :param pulumi.Input[str] role: The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`. + :param pulumi.Input[str] team_id: 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. + """ + pulumi.set(__self__, "access_group_id", access_group_id) + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "role", role) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter(name="accessGroupId") + def access_group_id(self) -> pulumi.Input[str]: + """ + The ID of the Access Group. + """ + return pulumi.get(self, "access_group_id") + + @access_group_id.setter + def access_group_id(self, value: pulumi.Input[str]): + pulumi.set(self, "access_group_id", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[str]: + """ + The Project ID to assign to the access group. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[str]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter + def role(self) -> pulumi.Input[str]: + """ + The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[str]): + pulumi.set(self, "role", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +@pulumi.input_type +class _AccessGroupProjectState: + def __init__(__self__, *, + access_group_id: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering AccessGroupProject resources. + :param pulumi.Input[str] access_group_id: The ID of the Access Group. + :param pulumi.Input[str] project_id: The Project ID to assign to the access group. + :param pulumi.Input[str] role: The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`. + :param pulumi.Input[str] team_id: 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. + """ + if access_group_id is not None: + pulumi.set(__self__, "access_group_id", access_group_id) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if role is not None: + pulumi.set(__self__, "role", role) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter(name="accessGroupId") + def access_group_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the Access Group. + """ + return pulumi.get(self, "access_group_id") + + @access_group_id.setter + def access_group_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "access_group_id", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + The Project ID to assign to the access group. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter + def role(self) -> Optional[pulumi.Input[str]]: + """ + The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +class AccessGroupProject(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_group_id: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a AccessGroupProject resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] access_group_id: The ID of the Access Group. + :param pulumi.Input[str] project_id: The Project ID to assign to the access group. + :param pulumi.Input[str] role: The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`. + :param pulumi.Input[str] team_id: 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. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: AccessGroupProjectArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a AccessGroupProject resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param AccessGroupProjectArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(AccessGroupProjectArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_group_id: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = AccessGroupProjectArgs.__new__(AccessGroupProjectArgs) + + if access_group_id is None and not opts.urn: + raise TypeError("Missing required property 'access_group_id'") + __props__.__dict__["access_group_id"] = access_group_id + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + if role is None and not opts.urn: + raise TypeError("Missing required property 'role'") + __props__.__dict__["role"] = role + __props__.__dict__["team_id"] = team_id + super(AccessGroupProject, __self__).__init__( + 'vercel:index/accessGroupProject:AccessGroupProject', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + access_group_id: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None) -> 'AccessGroupProject': + """ + Get an existing AccessGroupProject resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] access_group_id: The ID of the Access Group. + :param pulumi.Input[str] project_id: The Project ID to assign to the access group. + :param pulumi.Input[str] role: The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`. + :param pulumi.Input[str] team_id: 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _AccessGroupProjectState.__new__(_AccessGroupProjectState) + + __props__.__dict__["access_group_id"] = access_group_id + __props__.__dict__["project_id"] = project_id + __props__.__dict__["role"] = role + __props__.__dict__["team_id"] = team_id + return AccessGroupProject(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="accessGroupId") + def access_group_id(self) -> pulumi.Output[str]: + """ + The ID of the Access Group. + """ + return pulumi.get(self, "access_group_id") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + The Project ID to assign to the access group. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def role(self) -> pulumi.Output[str]: + """ + The project role to assign to the access group. Must be either `ADMIN`, `PROJECT_DEVELOPER`, or `PROJECT_VIEWER`. + """ + return pulumi.get(self, "role") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "team_id") + diff --git a/sdk/python/pulumiverse_vercel/custom_environment.py b/sdk/python/pulumiverse_vercel/custom_environment.py new file mode 100644 index 0000000..028b4c1 --- /dev/null +++ b/sdk/python/pulumiverse_vercel/custom_environment.py @@ -0,0 +1,346 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['CustomEnvironmentArgs', 'CustomEnvironment'] + +@pulumi.input_type +class CustomEnvironmentArgs: + def __init__(__self__, *, + project_id: pulumi.Input[str], + branch_tracking: Optional[pulumi.Input['CustomEnvironmentBranchTrackingArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a CustomEnvironment resource. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input['CustomEnvironmentBranchTrackingArgs'] branch_tracking: The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + :param pulumi.Input[str] description: A description of what the environment is. + :param pulumi.Input[str] name: The name of the environment. + :param pulumi.Input[str] team_id: 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. + """ + pulumi.set(__self__, "project_id", project_id) + if branch_tracking is not None: + pulumi.set(__self__, "branch_tracking", branch_tracking) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[str]: + """ + The ID of the existing Vercel Project. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[str]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="branchTracking") + def branch_tracking(self) -> Optional[pulumi.Input['CustomEnvironmentBranchTrackingArgs']]: + """ + The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + """ + return pulumi.get(self, "branch_tracking") + + @branch_tracking.setter + def branch_tracking(self, value: Optional[pulumi.Input['CustomEnvironmentBranchTrackingArgs']]): + pulumi.set(self, "branch_tracking", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + A description of what the environment is. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the environment. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +@pulumi.input_type +class _CustomEnvironmentState: + def __init__(__self__, *, + branch_tracking: Optional[pulumi.Input['CustomEnvironmentBranchTrackingArgs']] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering CustomEnvironment resources. + :param pulumi.Input['CustomEnvironmentBranchTrackingArgs'] branch_tracking: The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + :param pulumi.Input[str] description: A description of what the environment is. + :param pulumi.Input[str] name: The name of the environment. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input[str] team_id: 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. + """ + if branch_tracking is not None: + pulumi.set(__self__, "branch_tracking", branch_tracking) + if description is not None: + pulumi.set(__self__, "description", description) + if name is not None: + pulumi.set(__self__, "name", name) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter(name="branchTracking") + def branch_tracking(self) -> Optional[pulumi.Input['CustomEnvironmentBranchTrackingArgs']]: + """ + The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + """ + return pulumi.get(self, "branch_tracking") + + @branch_tracking.setter + def branch_tracking(self, value: Optional[pulumi.Input['CustomEnvironmentBranchTrackingArgs']]): + pulumi.set(self, "branch_tracking", value) + + @property + @pulumi.getter + def description(self) -> Optional[pulumi.Input[str]]: + """ + A description of what the environment is. + """ + return pulumi.get(self, "description") + + @description.setter + def description(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "description", value) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the environment. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the existing Vercel Project. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +class CustomEnvironment(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + branch_tracking: Optional[pulumi.Input[Union['CustomEnvironmentBranchTrackingArgs', 'CustomEnvironmentBranchTrackingArgsDict']]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a CustomEnvironment resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['CustomEnvironmentBranchTrackingArgs', 'CustomEnvironmentBranchTrackingArgsDict']] branch_tracking: The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + :param pulumi.Input[str] description: A description of what the environment is. + :param pulumi.Input[str] name: The name of the environment. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input[str] team_id: 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. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CustomEnvironmentArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a CustomEnvironment resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param CustomEnvironmentArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(CustomEnvironmentArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + branch_tracking: Optional[pulumi.Input[Union['CustomEnvironmentBranchTrackingArgs', 'CustomEnvironmentBranchTrackingArgsDict']]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = CustomEnvironmentArgs.__new__(CustomEnvironmentArgs) + + __props__.__dict__["branch_tracking"] = branch_tracking + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + __props__.__dict__["team_id"] = team_id + super(CustomEnvironment, __self__).__init__( + 'vercel:index/customEnvironment:CustomEnvironment', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + branch_tracking: Optional[pulumi.Input[Union['CustomEnvironmentBranchTrackingArgs', 'CustomEnvironmentBranchTrackingArgsDict']]] = None, + description: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None) -> 'CustomEnvironment': + """ + Get an existing CustomEnvironment resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Union['CustomEnvironmentBranchTrackingArgs', 'CustomEnvironmentBranchTrackingArgsDict']] branch_tracking: The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + :param pulumi.Input[str] description: A description of what the environment is. + :param pulumi.Input[str] name: The name of the environment. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input[str] team_id: 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CustomEnvironmentState.__new__(_CustomEnvironmentState) + + __props__.__dict__["branch_tracking"] = branch_tracking + __props__.__dict__["description"] = description + __props__.__dict__["name"] = name + __props__.__dict__["project_id"] = project_id + __props__.__dict__["team_id"] = team_id + return CustomEnvironment(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="branchTracking") + def branch_tracking(self) -> pulumi.Output['outputs.CustomEnvironmentBranchTracking']: + """ + The branch tracking configuration for the environment. When enabled, each qualifying merge will generate a deployment. + """ + return pulumi.get(self, "branch_tracking") + + @property + @pulumi.getter + def description(self) -> pulumi.Output[str]: + """ + A description of what the environment is. + """ + return pulumi.get(self, "description") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name of the environment. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + The ID of the existing Vercel Project. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "team_id") + diff --git a/sdk/python/pulumiverse_vercel/get_access_group.py b/sdk/python/pulumiverse_vercel/get_access_group.py new file mode 100644 index 0000000..d5be5fb --- /dev/null +++ b/sdk/python/pulumiverse_vercel/get_access_group.py @@ -0,0 +1,97 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetAccessGroupResult', + 'AwaitableGetAccessGroupResult', + 'get_access_group', + 'get_access_group_output', +] + +@pulumi.output_type +class GetAccessGroupResult: + """ + A collection of values returned by getAccessGroup. + """ + def __init__(__self__, id=None, name=None, team_id=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if team_id and not isinstance(team_id, str): + raise TypeError("Expected argument 'team_id' to be a str") + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> str: + return pulumi.get(self, "team_id") + + +class AwaitableGetAccessGroupResult(GetAccessGroupResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAccessGroupResult( + id=self.id, + name=self.name, + team_id=self.team_id) + + +def get_access_group(id: Optional[str] = None, + team_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAccessGroupResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['id'] = id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('vercel:index/getAccessGroup:getAccessGroup', __args__, opts=opts, typ=GetAccessGroupResult).value + + return AwaitableGetAccessGroupResult( + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + team_id=pulumi.get(__ret__, 'team_id')) +def get_access_group_output(id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAccessGroupResult]: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['id'] = id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('vercel:index/getAccessGroup:getAccessGroup', __args__, opts=opts, typ=GetAccessGroupResult) + return __ret__.apply(lambda __response__: GetAccessGroupResult( + id=pulumi.get(__response__, 'id'), + name=pulumi.get(__response__, 'name'), + team_id=pulumi.get(__response__, 'team_id'))) diff --git a/sdk/python/pulumiverse_vercel/get_access_group_project.py b/sdk/python/pulumiverse_vercel/get_access_group_project.py new file mode 100644 index 0000000..ff317f7 --- /dev/null +++ b/sdk/python/pulumiverse_vercel/get_access_group_project.py @@ -0,0 +1,126 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities + +__all__ = [ + 'GetAccessGroupProjectResult', + 'AwaitableGetAccessGroupProjectResult', + 'get_access_group_project', + 'get_access_group_project_output', +] + +@pulumi.output_type +class GetAccessGroupProjectResult: + """ + A collection of values returned by getAccessGroupProject. + """ + def __init__(__self__, access_group_id=None, id=None, project_id=None, role=None, team_id=None): + if access_group_id and not isinstance(access_group_id, str): + raise TypeError("Expected argument 'access_group_id' to be a str") + pulumi.set(__self__, "access_group_id", access_group_id) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if role and not isinstance(role, str): + raise TypeError("Expected argument 'role' to be a str") + pulumi.set(__self__, "role", role) + if team_id and not isinstance(team_id, str): + raise TypeError("Expected argument 'team_id' to be a str") + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter(name="accessGroupId") + def access_group_id(self) -> str: + return pulumi.get(self, "access_group_id") + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def role(self) -> str: + return pulumi.get(self, "role") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> str: + return pulumi.get(self, "team_id") + + +class AwaitableGetAccessGroupProjectResult(GetAccessGroupProjectResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetAccessGroupProjectResult( + access_group_id=self.access_group_id, + id=self.id, + project_id=self.project_id, + role=self.role, + team_id=self.team_id) + + +def get_access_group_project(access_group_id: Optional[str] = None, + project_id: Optional[str] = None, + team_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetAccessGroupProjectResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['accessGroupId'] = access_group_id + __args__['projectId'] = project_id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('vercel:index/getAccessGroupProject:getAccessGroupProject', __args__, opts=opts, typ=GetAccessGroupProjectResult).value + + return AwaitableGetAccessGroupProjectResult( + access_group_id=pulumi.get(__ret__, 'access_group_id'), + id=pulumi.get(__ret__, 'id'), + project_id=pulumi.get(__ret__, 'project_id'), + role=pulumi.get(__ret__, 'role'), + team_id=pulumi.get(__ret__, 'team_id')) +def get_access_group_project_output(access_group_id: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetAccessGroupProjectResult]: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['accessGroupId'] = access_group_id + __args__['projectId'] = project_id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('vercel:index/getAccessGroupProject:getAccessGroupProject', __args__, opts=opts, typ=GetAccessGroupProjectResult) + return __ret__.apply(lambda __response__: GetAccessGroupProjectResult( + access_group_id=pulumi.get(__response__, 'access_group_id'), + id=pulumi.get(__response__, 'id'), + project_id=pulumi.get(__response__, 'project_id'), + role=pulumi.get(__response__, 'role'), + team_id=pulumi.get(__response__, 'team_id'))) diff --git a/sdk/python/pulumiverse_vercel/get_custom_environment.py b/sdk/python/pulumiverse_vercel/get_custom_environment.py new file mode 100644 index 0000000..a006692 --- /dev/null +++ b/sdk/python/pulumiverse_vercel/get_custom_environment.py @@ -0,0 +1,135 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetCustomEnvironmentResult', + 'AwaitableGetCustomEnvironmentResult', + 'get_custom_environment', + 'get_custom_environment_output', +] + +@pulumi.output_type +class GetCustomEnvironmentResult: + """ + A collection of values returned by getCustomEnvironment. + """ + def __init__(__self__, branch_tracking=None, description=None, id=None, name=None, project_id=None, team_id=None): + if branch_tracking and not isinstance(branch_tracking, dict): + raise TypeError("Expected argument 'branch_tracking' to be a dict") + pulumi.set(__self__, "branch_tracking", branch_tracking) + if description and not isinstance(description, str): + raise TypeError("Expected argument 'description' to be a str") + pulumi.set(__self__, "description", description) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if name and not isinstance(name, str): + raise TypeError("Expected argument 'name' to be a str") + pulumi.set(__self__, "name", name) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if team_id and not isinstance(team_id, str): + raise TypeError("Expected argument 'team_id' to be a str") + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter(name="branchTracking") + def branch_tracking(self) -> 'outputs.GetCustomEnvironmentBranchTrackingResult': + return pulumi.get(self, "branch_tracking") + + @property + @pulumi.getter + def description(self) -> str: + return pulumi.get(self, "description") + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def name(self) -> str: + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> str: + return pulumi.get(self, "team_id") + + +class AwaitableGetCustomEnvironmentResult(GetCustomEnvironmentResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetCustomEnvironmentResult( + branch_tracking=self.branch_tracking, + description=self.description, + id=self.id, + name=self.name, + project_id=self.project_id, + team_id=self.team_id) + + +def get_custom_environment(name: Optional[str] = None, + project_id: Optional[str] = None, + team_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetCustomEnvironmentResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['name'] = name + __args__['projectId'] = project_id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('vercel:index/getCustomEnvironment:getCustomEnvironment', __args__, opts=opts, typ=GetCustomEnvironmentResult).value + + return AwaitableGetCustomEnvironmentResult( + branch_tracking=pulumi.get(__ret__, 'branch_tracking'), + description=pulumi.get(__ret__, 'description'), + id=pulumi.get(__ret__, 'id'), + name=pulumi.get(__ret__, 'name'), + project_id=pulumi.get(__ret__, 'project_id'), + team_id=pulumi.get(__ret__, 'team_id')) +def get_custom_environment_output(name: Optional[pulumi.Input[str]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetCustomEnvironmentResult]: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['name'] = name + __args__['projectId'] = project_id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('vercel:index/getCustomEnvironment:getCustomEnvironment', __args__, opts=opts, typ=GetCustomEnvironmentResult) + return __ret__.apply(lambda __response__: GetCustomEnvironmentResult( + branch_tracking=pulumi.get(__response__, 'branch_tracking'), + description=pulumi.get(__response__, 'description'), + id=pulumi.get(__response__, 'id'), + name=pulumi.get(__response__, 'name'), + project_id=pulumi.get(__response__, 'project_id'), + team_id=pulumi.get(__response__, 'team_id'))) diff --git a/sdk/python/pulumiverse_vercel/get_project.py b/sdk/python/pulumiverse_vercel/get_project.py index 77c23c2..3f07d3c 100644 --- a/sdk/python/pulumiverse_vercel/get_project.py +++ b/sdk/python/pulumiverse_vercel/get_project.py @@ -27,7 +27,7 @@ class GetProjectResult: """ A collection of values returned by getProject. """ - def __init__(__self__, auto_assign_custom_domains=None, automatically_expose_system_environment_variables=None, build_command=None, customer_success_code_visibility=None, dev_command=None, directory_listing=None, environments=None, framework=None, function_failover=None, git_comments=None, git_fork_protection=None, git_lfs=None, git_repository=None, id=None, ignore_command=None, install_command=None, name=None, oidc_token_config=None, options_allowlist=None, output_directory=None, password_protection=None, preview_comments=None, prioritise_production_builds=None, protection_bypass_for_automation=None, public_source=None, resource_config=None, root_directory=None, serverless_function_region=None, skew_protection=None, team_id=None, trusted_ips=None, vercel_authentication=None): + def __init__(__self__, auto_assign_custom_domains=None, automatically_expose_system_environment_variables=None, build_command=None, customer_success_code_visibility=None, dev_command=None, directory_listing=None, environments=None, framework=None, function_failover=None, git_comments=None, git_fork_protection=None, git_lfs=None, git_repository=None, id=None, ignore_command=None, install_command=None, name=None, oidc_token_config=None, options_allowlist=None, output_directory=None, password_protection=None, preview_comments=None, prioritise_production_builds=None, protection_bypass_for_automation=None, protection_bypass_for_automation_secret=None, public_source=None, resource_config=None, root_directory=None, serverless_function_region=None, skew_protection=None, team_id=None, trusted_ips=None, vercel_authentication=None): if auto_assign_custom_domains and not isinstance(auto_assign_custom_domains, bool): raise TypeError("Expected argument 'auto_assign_custom_domains' to be a bool") pulumi.set(__self__, "auto_assign_custom_domains", auto_assign_custom_domains) @@ -100,6 +100,9 @@ def __init__(__self__, auto_assign_custom_domains=None, automatically_expose_sys if protection_bypass_for_automation and not isinstance(protection_bypass_for_automation, bool): raise TypeError("Expected argument 'protection_bypass_for_automation' to be a bool") pulumi.set(__self__, "protection_bypass_for_automation", protection_bypass_for_automation) + if protection_bypass_for_automation_secret and not isinstance(protection_bypass_for_automation_secret, str): + raise TypeError("Expected argument 'protection_bypass_for_automation_secret' to be a str") + pulumi.set(__self__, "protection_bypass_for_automation_secret", protection_bypass_for_automation_secret) if public_source and not isinstance(public_source, bool): raise TypeError("Expected argument 'public_source' to be a bool") pulumi.set(__self__, "public_source", public_source) @@ -245,6 +248,11 @@ def prioritise_production_builds(self) -> bool: def protection_bypass_for_automation(self) -> bool: return pulumi.get(self, "protection_bypass_for_automation") + @property + @pulumi.getter(name="protectionBypassForAutomationSecret") + def protection_bypass_for_automation_secret(self) -> str: + return pulumi.get(self, "protection_bypass_for_automation_secret") + @property @pulumi.getter(name="publicSource") def public_source(self) -> bool: @@ -316,6 +324,7 @@ def __await__(self): preview_comments=self.preview_comments, prioritise_production_builds=self.prioritise_production_builds, protection_bypass_for_automation=self.protection_bypass_for_automation, + protection_bypass_for_automation_secret=self.protection_bypass_for_automation_secret, public_source=self.public_source, resource_config=self.resource_config, root_directory=self.root_directory, @@ -363,6 +372,7 @@ def get_project(name: Optional[str] = None, preview_comments=pulumi.get(__ret__, 'preview_comments'), prioritise_production_builds=pulumi.get(__ret__, 'prioritise_production_builds'), protection_bypass_for_automation=pulumi.get(__ret__, 'protection_bypass_for_automation'), + protection_bypass_for_automation_secret=pulumi.get(__ret__, 'protection_bypass_for_automation_secret'), public_source=pulumi.get(__ret__, 'public_source'), resource_config=pulumi.get(__ret__, 'resource_config'), root_directory=pulumi.get(__ret__, 'root_directory'), @@ -407,6 +417,7 @@ def get_project_output(name: Optional[pulumi.Input[str]] = None, preview_comments=pulumi.get(__response__, 'preview_comments'), prioritise_production_builds=pulumi.get(__response__, 'prioritise_production_builds'), protection_bypass_for_automation=pulumi.get(__response__, 'protection_bypass_for_automation'), + protection_bypass_for_automation_secret=pulumi.get(__response__, 'protection_bypass_for_automation_secret'), public_source=pulumi.get(__response__, 'public_source'), resource_config=pulumi.get(__response__, 'resource_config'), root_directory=pulumi.get(__response__, 'root_directory'), diff --git a/sdk/python/pulumiverse_vercel/get_project_members.py b/sdk/python/pulumiverse_vercel/get_project_members.py new file mode 100644 index 0000000..4c9c2fd --- /dev/null +++ b/sdk/python/pulumiverse_vercel/get_project_members.py @@ -0,0 +1,112 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetProjectMembersResult', + 'AwaitableGetProjectMembersResult', + 'get_project_members', + 'get_project_members_output', +] + +@pulumi.output_type +class GetProjectMembersResult: + """ + A collection of values returned by getProjectMembers. + """ + def __init__(__self__, id=None, members=None, project_id=None, team_id=None): + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if members and not isinstance(members, list): + raise TypeError("Expected argument 'members' to be a list") + pulumi.set(__self__, "members", members) + if project_id and not isinstance(project_id, str): + raise TypeError("Expected argument 'project_id' to be a str") + pulumi.set(__self__, "project_id", project_id) + if team_id and not isinstance(team_id, str): + raise TypeError("Expected argument 'team_id' to be a str") + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter + def id(self) -> str: + """ + The provider-assigned unique ID for this managed resource. + """ + return pulumi.get(self, "id") + + @property + @pulumi.getter + def members(self) -> Sequence['outputs.GetProjectMembersMemberResult']: + return pulumi.get(self, "members") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[str]: + return pulumi.get(self, "team_id") + + +class AwaitableGetProjectMembersResult(GetProjectMembersResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetProjectMembersResult( + id=self.id, + members=self.members, + project_id=self.project_id, + team_id=self.team_id) + + +def get_project_members(project_id: Optional[str] = None, + team_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetProjectMembersResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['projectId'] = project_id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('vercel:index/getProjectMembers:getProjectMembers', __args__, opts=opts, typ=GetProjectMembersResult).value + + return AwaitableGetProjectMembersResult( + id=pulumi.get(__ret__, 'id'), + members=pulumi.get(__ret__, 'members'), + project_id=pulumi.get(__ret__, 'project_id'), + team_id=pulumi.get(__ret__, 'team_id')) +def get_project_members_output(project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[Optional[str]]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetProjectMembersResult]: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['projectId'] = project_id + __args__['teamId'] = team_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('vercel:index/getProjectMembers:getProjectMembers', __args__, opts=opts, typ=GetProjectMembersResult) + return __ret__.apply(lambda __response__: GetProjectMembersResult( + id=pulumi.get(__response__, 'id'), + members=pulumi.get(__response__, 'members'), + project_id=pulumi.get(__response__, 'project_id'), + team_id=pulumi.get(__response__, 'team_id'))) diff --git a/sdk/python/pulumiverse_vercel/get_team_member.py b/sdk/python/pulumiverse_vercel/get_team_member.py new file mode 100644 index 0000000..fe49b03 --- /dev/null +++ b/sdk/python/pulumiverse_vercel/get_team_member.py @@ -0,0 +1,131 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs + +__all__ = [ + 'GetTeamMemberResult', + 'AwaitableGetTeamMemberResult', + 'get_team_member', + 'get_team_member_output', +] + +@pulumi.output_type +class GetTeamMemberResult: + """ + A collection of values returned by getTeamMember. + """ + def __init__(__self__, access_groups=None, id=None, projects=None, role=None, team_id=None, user_id=None): + if access_groups and not isinstance(access_groups, list): + raise TypeError("Expected argument 'access_groups' to be a list") + pulumi.set(__self__, "access_groups", access_groups) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if projects and not isinstance(projects, list): + raise TypeError("Expected argument 'projects' to be a list") + pulumi.set(__self__, "projects", projects) + if role and not isinstance(role, str): + raise TypeError("Expected argument 'role' to be a str") + pulumi.set(__self__, "role", role) + if team_id and not isinstance(team_id, str): + raise TypeError("Expected argument 'team_id' to be a str") + pulumi.set(__self__, "team_id", team_id) + if user_id and not isinstance(user_id, str): + raise TypeError("Expected argument 'user_id' to be a str") + pulumi.set(__self__, "user_id", user_id) + + @property + @pulumi.getter(name="accessGroups") + def access_groups(self) -> Sequence[str]: + return pulumi.get(self, "access_groups") + + @property + @pulumi.getter + def id(self) -> str: + return pulumi.get(self, "id") + + @property + @pulumi.getter + def projects(self) -> Sequence['outputs.GetTeamMemberProjectResult']: + return pulumi.get(self, "projects") + + @property + @pulumi.getter + def role(self) -> str: + return pulumi.get(self, "role") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> str: + return pulumi.get(self, "team_id") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> str: + return pulumi.get(self, "user_id") + + +class AwaitableGetTeamMemberResult(GetTeamMemberResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetTeamMemberResult( + access_groups=self.access_groups, + id=self.id, + projects=self.projects, + role=self.role, + team_id=self.team_id, + user_id=self.user_id) + + +def get_team_member(team_id: Optional[str] = None, + user_id: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetTeamMemberResult: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['teamId'] = team_id + __args__['userId'] = user_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke('vercel:index/getTeamMember:getTeamMember', __args__, opts=opts, typ=GetTeamMemberResult).value + + return AwaitableGetTeamMemberResult( + access_groups=pulumi.get(__ret__, 'access_groups'), + id=pulumi.get(__ret__, 'id'), + projects=pulumi.get(__ret__, 'projects'), + role=pulumi.get(__ret__, 'role'), + team_id=pulumi.get(__ret__, 'team_id'), + user_id=pulumi.get(__ret__, 'user_id')) +def get_team_member_output(team_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetTeamMemberResult]: + """ + Use this data source to access information about an existing resource. + """ + __args__ = dict() + __args__['teamId'] = team_id + __args__['userId'] = user_id + opts = pulumi.InvokeOptions.merge(_utilities.get_invoke_opts_defaults(), opts) + __ret__ = pulumi.runtime.invoke_output('vercel:index/getTeamMember:getTeamMember', __args__, opts=opts, typ=GetTeamMemberResult) + return __ret__.apply(lambda __response__: GetTeamMemberResult( + access_groups=pulumi.get(__response__, 'access_groups'), + id=pulumi.get(__response__, 'id'), + projects=pulumi.get(__response__, 'projects'), + role=pulumi.get(__response__, 'role'), + team_id=pulumi.get(__response__, 'team_id'), + user_id=pulumi.get(__response__, 'user_id'))) diff --git a/sdk/python/pulumiverse_vercel/outputs.py b/sdk/python/pulumiverse_vercel/outputs.py index 9a46439..6f70adf 100644 --- a/sdk/python/pulumiverse_vercel/outputs.py +++ b/sdk/python/pulumiverse_vercel/outputs.py @@ -16,6 +16,7 @@ from . import outputs __all__ = [ + 'CustomEnvironmentBranchTracking', 'DeploymentProjectSettings', 'DnsRecordSrv', 'FirewallConfigIpRules', @@ -44,6 +45,7 @@ 'ProjectGitComments', 'ProjectGitRepository', 'ProjectGitRepositoryDeployHook', + 'ProjectMembersMember', 'ProjectOidcTokenConfig', 'ProjectOptionsAllowlist', 'ProjectOptionsAllowlistPath', @@ -54,10 +56,13 @@ 'ProjectVercelAuthentication', 'TeamConfigRemoteCaching', 'TeamConfigSaml', + 'TeamMemberProject', + 'GetCustomEnvironmentBranchTrackingResult', 'GetProjectEnvironmentResult', 'GetProjectGitCommentsResult', 'GetProjectGitRepositoryResult', 'GetProjectGitRepositoryDeployHookResult', + 'GetProjectMembersMemberResult', 'GetProjectOidcTokenConfigResult', 'GetProjectOptionsAllowlistResult', 'GetProjectOptionsAllowlistPathResult', @@ -68,8 +73,38 @@ 'GetProjectVercelAuthenticationResult', 'GetTeamConfigRemoteCachingResult', 'GetTeamConfigSamlResult', + 'GetTeamMemberProjectResult', ] +@pulumi.output_type +class CustomEnvironmentBranchTracking(dict): + def __init__(__self__, *, + pattern: str, + type: str): + """ + :param str pattern: The pattern of the branch name to track. + :param str type: How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + """ + pulumi.set(__self__, "pattern", pattern) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def pattern(self) -> str: + """ + The pattern of the branch name to track. + """ + return pulumi.get(self, "pattern") + + @property + @pulumi.getter + def type(self) -> str: + """ + How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + """ + return pulumi.get(self, "type") + + @pulumi.output_type class DeploymentProjectSettings(dict): @staticmethod @@ -954,7 +989,9 @@ class ProjectEnvironment(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "gitBranch": + if key == "customEnvironmentIds": + suggest = "custom_environment_ids" + elif key == "gitBranch": suggest = "git_branch" if suggest: @@ -970,32 +1007,37 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, key: str, - targets: Sequence[str], value: str, comment: Optional[str] = None, + custom_environment_ids: Optional[Sequence[str]] = None, git_branch: Optional[str] = None, id: Optional[str] = None, - sensitive: Optional[bool] = None): + sensitive: Optional[bool] = None, + targets: Optional[Sequence[str]] = None): """ :param str key: The name of the Environment Variable. - :param Sequence[str] targets: The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. :param str value: The value of the Environment Variable. :param str comment: A comment explaining what the environment variable is for. + :param Sequence[str] custom_environment_ids: 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. :param str git_branch: The git branch of the Environment Variable. :param str id: The ID of the Environment Variable. :param bool sensitive: 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)) + :param Sequence[str] targets: 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. """ pulumi.set(__self__, "key", key) - pulumi.set(__self__, "targets", targets) pulumi.set(__self__, "value", value) if comment is not None: pulumi.set(__self__, "comment", comment) + if custom_environment_ids is not None: + pulumi.set(__self__, "custom_environment_ids", custom_environment_ids) if git_branch is not None: pulumi.set(__self__, "git_branch", git_branch) if id is not None: pulumi.set(__self__, "id", id) if sensitive is not None: pulumi.set(__self__, "sensitive", sensitive) + if targets is not None: + pulumi.set(__self__, "targets", targets) @property @pulumi.getter @@ -1005,14 +1047,6 @@ def key(self) -> str: """ return pulumi.get(self, "key") - @property - @pulumi.getter - def targets(self) -> Sequence[str]: - """ - The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. - """ - return pulumi.get(self, "targets") - @property @pulumi.getter def value(self) -> str: @@ -1029,6 +1063,14 @@ def comment(self) -> Optional[str]: """ return pulumi.get(self, "comment") + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "custom_environment_ids") + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> Optional[str]: @@ -1053,13 +1095,23 @@ def sensitive(self) -> Optional[bool]: """ return pulumi.get(self, "sensitive") + @property + @pulumi.getter + def targets(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "targets") + @pulumi.output_type class ProjectEnvironmentVariablesVariable(dict): @staticmethod def __key_warning(key: str): suggest = None - if key == "gitBranch": + if key == "customEnvironmentIds": + suggest = "custom_environment_ids" + elif key == "gitBranch": suggest = "git_branch" if suggest: @@ -1075,32 +1127,37 @@ def get(self, key: str, default = None) -> Any: def __init__(__self__, *, key: str, - targets: Sequence[str], value: str, comment: Optional[str] = None, + custom_environment_ids: Optional[Sequence[str]] = None, git_branch: Optional[str] = None, id: Optional[str] = None, - sensitive: Optional[bool] = None): + sensitive: Optional[bool] = None, + targets: Optional[Sequence[str]] = None): """ :param str key: The name of the Environment Variable. - :param Sequence[str] targets: The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. :param str value: The value of the Environment Variable. :param str comment: A comment explaining what the environment variable is for. + :param Sequence[str] custom_environment_ids: 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. :param str git_branch: The git branch of the Environment Variable. :param str id: The ID of the Environment Variable. :param bool sensitive: Whether the Environment Variable is sensitive or not. + :param Sequence[str] targets: 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. """ pulumi.set(__self__, "key", key) - pulumi.set(__self__, "targets", targets) pulumi.set(__self__, "value", value) if comment is not None: pulumi.set(__self__, "comment", comment) + if custom_environment_ids is not None: + pulumi.set(__self__, "custom_environment_ids", custom_environment_ids) if git_branch is not None: pulumi.set(__self__, "git_branch", git_branch) if id is not None: pulumi.set(__self__, "id", id) if sensitive is not None: pulumi.set(__self__, "sensitive", sensitive) + if targets is not None: + pulumi.set(__self__, "targets", targets) @property @pulumi.getter @@ -1110,14 +1167,6 @@ def key(self) -> str: """ return pulumi.get(self, "key") - @property - @pulumi.getter - def targets(self) -> Sequence[str]: - """ - The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, or `development`. - """ - return pulumi.get(self, "targets") - @property @pulumi.getter def value(self) -> str: @@ -1134,6 +1183,14 @@ def comment(self) -> Optional[str]: """ return pulumi.get(self, "comment") + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "custom_environment_ids") + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> Optional[str]: @@ -1158,6 +1215,14 @@ def sensitive(self) -> Optional[bool]: """ return pulumi.get(self, "sensitive") + @property + @pulumi.getter + def targets(self) -> Optional[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "targets") + @pulumi.output_type class ProjectGitComments(dict): @@ -1332,6 +1397,77 @@ def url(self) -> Optional[str]: return pulumi.get(self, "url") +@pulumi.output_type +class ProjectMembersMember(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "userId": + suggest = "user_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ProjectMembersMember. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ProjectMembersMember.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ProjectMembersMember.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + role: str, + email: Optional[str] = None, + user_id: Optional[str] = None, + username: Optional[str] = None): + """ + :param str role: The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + :param str email: The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + :param str user_id: The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + :param str username: The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + pulumi.set(__self__, "role", role) + if email is not None: + pulumi.set(__self__, "email", email) + if user_id is not None: + pulumi.set(__self__, "user_id", user_id) + if username is not None: + pulumi.set(__self__, "username", username) + + @property + @pulumi.getter + def role(self) -> str: + """ + The role that the user should have in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + """ + return pulumi.get(self, "role") + + @property + @pulumi.getter + def email(self) -> Optional[str]: + """ + The email of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + return pulumi.get(self, "email") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> Optional[str]: + """ + The ID of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + return pulumi.get(self, "user_id") + + @property + @pulumi.getter + def username(self) -> Optional[str]: + """ + The username of the user to add to the project. Exactly one of `user_id`, `email`, or `username` must be specified. + """ + return pulumi.get(self, "username") + + @pulumi.output_type class ProjectOidcTokenConfig(dict): @staticmethod @@ -1714,10 +1850,86 @@ def roles(self) -> Optional[Mapping[str, str]]: return pulumi.get(self, "roles") +@pulumi.output_type +class TeamMemberProject(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "projectId": + suggest = "project_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in TeamMemberProject. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + TeamMemberProject.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + TeamMemberProject.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + project_id: str, + role: str): + """ + :param str project_id: The ID of the project that the user should be granted access to. + :param str role: The role that the user should have in the project. + """ + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "role", role) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + The ID of the project that the user should be granted access to. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def role(self) -> str: + """ + The role that the user should have in the project. + """ + return pulumi.get(self, "role") + + +@pulumi.output_type +class GetCustomEnvironmentBranchTrackingResult(dict): + def __init__(__self__, *, + pattern: str, + type: str): + """ + :param str pattern: The pattern of the branch name to track. + :param str type: How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + """ + pulumi.set(__self__, "pattern", pattern) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def pattern(self) -> str: + """ + The pattern of the branch name to track. + """ + return pulumi.get(self, "pattern") + + @property + @pulumi.getter + def type(self) -> str: + """ + How a branch name should be matched against the pattern. Must be one of 'startsWith', 'endsWith' or 'equals'. + """ + return pulumi.get(self, "type") + + @pulumi.output_type class GetProjectEnvironmentResult(dict): def __init__(__self__, *, comment: str, + custom_environment_ids: Sequence[str], git_branch: str, id: str, key: str, @@ -1726,6 +1938,7 @@ def __init__(__self__, *, value: str): """ :param str comment: A comment explaining what the environment variable is for. + :param Sequence[str] custom_environment_ids: The IDs of Custom Environments that the Environment Variable should be present on. :param str git_branch: The git branch of the environment variable. :param str id: The ID of the environment variable :param str key: The name of the environment variable. @@ -1734,6 +1947,7 @@ def __init__(__self__, *, :param str value: The value of the environment variable. """ pulumi.set(__self__, "comment", comment) + pulumi.set(__self__, "custom_environment_ids", custom_environment_ids) pulumi.set(__self__, "git_branch", git_branch) pulumi.set(__self__, "id", id) pulumi.set(__self__, "key", key) @@ -1749,6 +1963,14 @@ def comment(self) -> str: """ return pulumi.get(self, "comment") + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> Sequence[str]: + """ + The IDs of Custom Environments that the Environment Variable should be present on. + """ + return pulumi.get(self, "custom_environment_ids") + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> str: @@ -1929,6 +2151,57 @@ def url(self) -> str: return pulumi.get(self, "url") +@pulumi.output_type +class GetProjectMembersMemberResult(dict): + def __init__(__self__, *, + email: str, + role: str, + user_id: str, + username: str): + """ + :param str email: The email of the user. + :param str role: The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + :param str user_id: The ID of the user. + :param str username: The username of the user. + """ + pulumi.set(__self__, "email", email) + pulumi.set(__self__, "role", role) + pulumi.set(__self__, "user_id", user_id) + pulumi.set(__self__, "username", username) + + @property + @pulumi.getter + def email(self) -> str: + """ + The email of the user. + """ + return pulumi.get(self, "email") + + @property + @pulumi.getter + def role(self) -> str: + """ + The role of the user in the project. One of 'MEMBER', 'PROJECT_DEVELOPER', or 'PROJECT_VIEWER'. + """ + return pulumi.get(self, "role") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> str: + """ + The ID of the user. + """ + return pulumi.get(self, "user_id") + + @property + @pulumi.getter + def username(self) -> str: + """ + The username of the user. + """ + return pulumi.get(self, "username") + + @pulumi.output_type class GetProjectOidcTokenConfigResult(dict): def __init__(__self__, *, @@ -2170,3 +2443,32 @@ def roles(self) -> Mapping[str, str]: return pulumi.get(self, "roles") +@pulumi.output_type +class GetTeamMemberProjectResult(dict): + def __init__(__self__, *, + project_id: str, + role: str): + """ + :param str project_id: The ID of the project that the user should be granted access to. + :param str role: The role that the user should have in the project. + """ + pulumi.set(__self__, "project_id", project_id) + pulumi.set(__self__, "role", role) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> str: + """ + The ID of the project that the user should be granted access to. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter + def role(self) -> str: + """ + The role that the user should have in the project. + """ + return pulumi.get(self, "role") + + diff --git a/sdk/python/pulumiverse_vercel/project.py b/sdk/python/pulumiverse_vercel/project.py index e8dc5d0..23765ef 100644 --- a/sdk/python/pulumiverse_vercel/project.py +++ b/sdk/python/pulumiverse_vercel/project.py @@ -44,6 +44,7 @@ def __init__(__self__, *, preview_comments: Optional[pulumi.Input[bool]] = None, prioritise_production_builds: Optional[pulumi.Input[bool]] = None, protection_bypass_for_automation: Optional[pulumi.Input[bool]] = None, + protection_bypass_for_automation_secret: Optional[pulumi.Input[str]] = None, public_source: Optional[pulumi.Input[bool]] = None, resource_config: Optional[pulumi.Input['ProjectResourceConfigArgs']] = None, root_directory: Optional[pulumi.Input[str]] = None, @@ -88,9 +89,10 @@ def __init__(__self__, *, :param pulumi.Input[bool] preview_comments: Whether to enable comments on your Preview Deployments. If omitted, comments are controlled at the team level (default behaviour). :param pulumi.Input[bool] prioritise_production_builds: If enabled, builds for the Production environment will be prioritized over Preview environments. - :param pulumi.Input[bool] protection_bypass_for_automation: 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. + :param pulumi.Input[bool] protection_bypass_for_automation: 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. + :param pulumi.Input[str] protection_bypass_for_automation_secret: If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise + a secret will be generated. :param pulumi.Input[bool] public_source: 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 `public_source` to `true` disables this behaviour, meaning the Source, Logs and Deployment Status can be publicly @@ -154,6 +156,8 @@ def __init__(__self__, *, pulumi.set(__self__, "prioritise_production_builds", prioritise_production_builds) if protection_bypass_for_automation is not None: pulumi.set(__self__, "protection_bypass_for_automation", protection_bypass_for_automation) + if protection_bypass_for_automation_secret is not None: + pulumi.set(__self__, "protection_bypass_for_automation_secret", protection_bypass_for_automation_secret) if public_source is not None: pulumi.set(__self__, "public_source", public_source) if resource_config is not None: @@ -451,9 +455,8 @@ def prioritise_production_builds(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="protectionBypassForAutomation") def protection_bypass_for_automation(self) -> Optional[pulumi.Input[bool]]: """ - 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. """ return pulumi.get(self, "protection_bypass_for_automation") @@ -461,6 +464,19 @@ def protection_bypass_for_automation(self) -> Optional[pulumi.Input[bool]]: def protection_bypass_for_automation(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "protection_bypass_for_automation", value) + @property + @pulumi.getter(name="protectionBypassForAutomationSecret") + def protection_bypass_for_automation_secret(self) -> Optional[pulumi.Input[str]]: + """ + If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise + a secret will be generated. + """ + return pulumi.get(self, "protection_bypass_for_automation_secret") + + @protection_bypass_for_automation_secret.setter + def protection_bypass_for_automation_secret(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "protection_bypass_for_automation_secret", value) + @property @pulumi.getter(name="publicSource") def public_source(self) -> Optional[pulumi.Input[bool]]: @@ -637,11 +653,10 @@ def __init__(__self__, *, :param pulumi.Input[bool] preview_comments: Whether to enable comments on your Preview Deployments. If omitted, comments are controlled at the team level (default behaviour). :param pulumi.Input[bool] prioritise_production_builds: If enabled, builds for the Production environment will be prioritized over Preview environments. - :param pulumi.Input[bool] protection_bypass_for_automation: 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. - :param pulumi.Input[str] protection_bypass_for_automation_secret: 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. + :param pulumi.Input[bool] protection_bypass_for_automation: 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. + :param pulumi.Input[str] protection_bypass_for_automation_secret: If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise + a secret will be generated. :param pulumi.Input[bool] public_source: 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 `public_source` to `true` disables this behaviour, meaning the Source, Logs and Deployment Status can be publicly @@ -1004,9 +1019,8 @@ def prioritise_production_builds(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="protectionBypassForAutomation") def protection_bypass_for_automation(self) -> Optional[pulumi.Input[bool]]: """ - 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. """ return pulumi.get(self, "protection_bypass_for_automation") @@ -1018,8 +1032,8 @@ def protection_bypass_for_automation(self, value: Optional[pulumi.Input[bool]]): @pulumi.getter(name="protectionBypassForAutomationSecret") def protection_bypass_for_automation_secret(self) -> Optional[pulumi.Input[str]]: """ - 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. """ return pulumi.get(self, "protection_bypass_for_automation_secret") @@ -1160,6 +1174,7 @@ def __init__(__self__, preview_comments: Optional[pulumi.Input[bool]] = None, prioritise_production_builds: Optional[pulumi.Input[bool]] = None, protection_bypass_for_automation: Optional[pulumi.Input[bool]] = None, + protection_bypass_for_automation_secret: Optional[pulumi.Input[str]] = None, public_source: Optional[pulumi.Input[bool]] = None, resource_config: Optional[pulumi.Input[Union['ProjectResourceConfigArgs', 'ProjectResourceConfigArgsDict']]] = None, root_directory: Optional[pulumi.Input[str]] = None, @@ -1207,9 +1222,10 @@ def __init__(__self__, :param pulumi.Input[bool] preview_comments: Whether to enable comments on your Preview Deployments. If omitted, comments are controlled at the team level (default behaviour). :param pulumi.Input[bool] prioritise_production_builds: If enabled, builds for the Production environment will be prioritized over Preview environments. - :param pulumi.Input[bool] protection_bypass_for_automation: 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. + :param pulumi.Input[bool] protection_bypass_for_automation: 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. + :param pulumi.Input[str] protection_bypass_for_automation_secret: If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise + a secret will be generated. :param pulumi.Input[bool] public_source: 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 `public_source` to `true` disables this behaviour, meaning the Source, Logs and Deployment Status can be publicly @@ -1273,6 +1289,7 @@ def _internal_init(__self__, preview_comments: Optional[pulumi.Input[bool]] = None, prioritise_production_builds: Optional[pulumi.Input[bool]] = None, protection_bypass_for_automation: Optional[pulumi.Input[bool]] = None, + protection_bypass_for_automation_secret: Optional[pulumi.Input[str]] = None, public_source: Optional[pulumi.Input[bool]] = None, resource_config: Optional[pulumi.Input[Union['ProjectResourceConfigArgs', 'ProjectResourceConfigArgsDict']]] = None, root_directory: Optional[pulumi.Input[str]] = None, @@ -1313,6 +1330,7 @@ def _internal_init(__self__, __props__.__dict__["preview_comments"] = preview_comments __props__.__dict__["prioritise_production_builds"] = prioritise_production_builds __props__.__dict__["protection_bypass_for_automation"] = protection_bypass_for_automation + __props__.__dict__["protection_bypass_for_automation_secret"] = None if protection_bypass_for_automation_secret is None else pulumi.Output.secret(protection_bypass_for_automation_secret) __props__.__dict__["public_source"] = public_source __props__.__dict__["resource_config"] = resource_config __props__.__dict__["root_directory"] = root_directory @@ -1321,7 +1339,8 @@ def _internal_init(__self__, __props__.__dict__["team_id"] = team_id __props__.__dict__["trusted_ips"] = trusted_ips __props__.__dict__["vercel_authentication"] = vercel_authentication - __props__.__dict__["protection_bypass_for_automation_secret"] = None + secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["protectionBypassForAutomationSecret"]) + opts = pulumi.ResourceOptions.merge(opts, secret_opts) super(Project, __self__).__init__( 'vercel:index/project:Project', resource_name, @@ -1405,11 +1424,10 @@ def get(resource_name: str, :param pulumi.Input[bool] preview_comments: Whether to enable comments on your Preview Deployments. If omitted, comments are controlled at the team level (default behaviour). :param pulumi.Input[bool] prioritise_production_builds: If enabled, builds for the Production environment will be prioritized over Preview environments. - :param pulumi.Input[bool] protection_bypass_for_automation: 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. - :param pulumi.Input[str] protection_bypass_for_automation_secret: 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. + :param pulumi.Input[bool] protection_bypass_for_automation: 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. + :param pulumi.Input[str] protection_bypass_for_automation_secret: If `protection_bypass_for_automation` is enabled, optionally set this value to specify a 32 character secret, otherwise + a secret will be generated. :param pulumi.Input[bool] public_source: 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 `public_source` to `true` disables this behaviour, meaning the Source, Logs and Deployment Status can be publicly @@ -1657,9 +1675,8 @@ def prioritise_production_builds(self) -> pulumi.Output[bool]: @pulumi.getter(name="protectionBypassForAutomation") def protection_bypass_for_automation(self) -> pulumi.Output[Optional[bool]]: """ - 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. """ return pulumi.get(self, "protection_bypass_for_automation") @@ -1667,8 +1684,8 @@ def protection_bypass_for_automation(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="protectionBypassForAutomationSecret") def protection_bypass_for_automation_secret(self) -> pulumi.Output[str]: """ - 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. """ return pulumi.get(self, "protection_bypass_for_automation_secret") diff --git a/sdk/python/pulumiverse_vercel/project_domain.py b/sdk/python/pulumiverse_vercel/project_domain.py index bbb4250..469b728 100644 --- a/sdk/python/pulumiverse_vercel/project_domain.py +++ b/sdk/python/pulumiverse_vercel/project_domain.py @@ -21,6 +21,7 @@ class ProjectDomainArgs: def __init__(__self__, *, domain: pulumi.Input[str], project_id: pulumi.Input[str], + custom_environment_id: Optional[pulumi.Input[str]] = None, git_branch: Optional[pulumi.Input[str]] = None, redirect: Optional[pulumi.Input[str]] = None, redirect_status_code: Optional[pulumi.Input[int]] = None, @@ -29,6 +30,8 @@ def __init__(__self__, *, The set of arguments for constructing a ProjectDomain resource. :param pulumi.Input[str] domain: The domain name to associate with the project. :param pulumi.Input[str] project_id: The project ID to add the deployment to. + :param pulumi.Input[str] custom_environment_id: The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + assigned the domain name. :param pulumi.Input[str] git_branch: Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name. :param pulumi.Input[str] redirect: The domain name that serves as a target destination for redirects. :param pulumi.Input[int] redirect_status_code: The HTTP status code to use when serving as a redirect. @@ -37,6 +40,8 @@ def __init__(__self__, *, """ pulumi.set(__self__, "domain", domain) pulumi.set(__self__, "project_id", project_id) + if custom_environment_id is not None: + pulumi.set(__self__, "custom_environment_id", custom_environment_id) if git_branch is not None: pulumi.set(__self__, "git_branch", git_branch) if redirect is not None: @@ -70,6 +75,19 @@ def project_id(self) -> pulumi.Input[str]: def project_id(self, value: pulumi.Input[str]): pulumi.set(self, "project_id", value) + @property + @pulumi.getter(name="customEnvironmentId") + def custom_environment_id(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + assigned the domain name. + """ + return pulumi.get(self, "custom_environment_id") + + @custom_environment_id.setter + def custom_environment_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_environment_id", value) + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> Optional[pulumi.Input[str]]: @@ -123,6 +141,7 @@ def team_id(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class _ProjectDomainState: def __init__(__self__, *, + custom_environment_id: Optional[pulumi.Input[str]] = None, domain: Optional[pulumi.Input[str]] = None, git_branch: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -131,6 +150,8 @@ def __init__(__self__, *, team_id: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering ProjectDomain resources. + :param pulumi.Input[str] custom_environment_id: The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + assigned the domain name. :param pulumi.Input[str] domain: The domain name to associate with the project. :param pulumi.Input[str] git_branch: Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name. :param pulumi.Input[str] project_id: The project ID to add the deployment to. @@ -139,6 +160,8 @@ def __init__(__self__, *, :param pulumi.Input[str] team_id: The ID of the team the project exists under. Required when configuring a team resource if a default team has not been set in the provider. """ + if custom_environment_id is not None: + pulumi.set(__self__, "custom_environment_id", custom_environment_id) if domain is not None: pulumi.set(__self__, "domain", domain) if git_branch is not None: @@ -152,6 +175,19 @@ def __init__(__self__, *, if team_id is not None: pulumi.set(__self__, "team_id", team_id) + @property + @pulumi.getter(name="customEnvironmentId") + def custom_environment_id(self) -> Optional[pulumi.Input[str]]: + """ + The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + assigned the domain name. + """ + return pulumi.get(self, "custom_environment_id") + + @custom_environment_id.setter + def custom_environment_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_environment_id", value) + @property @pulumi.getter def domain(self) -> Optional[pulumi.Input[str]]: @@ -231,6 +267,7 @@ class ProjectDomain(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + custom_environment_id: Optional[pulumi.Input[str]] = None, domain: Optional[pulumi.Input[str]] = None, git_branch: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -242,6 +279,8 @@ def __init__(__self__, Create a ProjectDomain resource with the given unique name, props, and options. :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] custom_environment_id: The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + assigned the domain name. :param pulumi.Input[str] domain: The domain name to associate with the project. :param pulumi.Input[str] git_branch: Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name. :param pulumi.Input[str] project_id: The project ID to add the deployment to. @@ -273,6 +312,7 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + custom_environment_id: Optional[pulumi.Input[str]] = None, domain: Optional[pulumi.Input[str]] = None, git_branch: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -288,6 +328,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ProjectDomainArgs.__new__(ProjectDomainArgs) + __props__.__dict__["custom_environment_id"] = custom_environment_id if domain is None and not opts.urn: raise TypeError("Missing required property 'domain'") __props__.__dict__["domain"] = domain @@ -308,6 +349,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + custom_environment_id: Optional[pulumi.Input[str]] = None, domain: Optional[pulumi.Input[str]] = None, git_branch: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -321,6 +363,8 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] custom_environment_id: The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + assigned the domain name. :param pulumi.Input[str] domain: The domain name to associate with the project. :param pulumi.Input[str] git_branch: Git branch to link to the project domain. Deployments from this git branch will be assigned the domain name. :param pulumi.Input[str] project_id: The project ID to add the deployment to. @@ -333,6 +377,7 @@ def get(resource_name: str, __props__ = _ProjectDomainState.__new__(_ProjectDomainState) + __props__.__dict__["custom_environment_id"] = custom_environment_id __props__.__dict__["domain"] = domain __props__.__dict__["git_branch"] = git_branch __props__.__dict__["project_id"] = project_id @@ -341,6 +386,15 @@ def get(resource_name: str, __props__.__dict__["team_id"] = team_id return ProjectDomain(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="customEnvironmentId") + def custom_environment_id(self) -> pulumi.Output[Optional[str]]: + """ + The name of the Custom Environment to link to the Project Domain. Deployments from this custom environment will be + assigned the domain name. + """ + return pulumi.get(self, "custom_environment_id") + @property @pulumi.getter def domain(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumiverse_vercel/project_environment_variable.py b/sdk/python/pulumiverse_vercel/project_environment_variable.py index 6e39f1d..8abfc4a 100644 --- a/sdk/python/pulumiverse_vercel/project_environment_variable.py +++ b/sdk/python/pulumiverse_vercel/project_environment_variable.py @@ -21,35 +21,41 @@ class ProjectEnvironmentVariableArgs: def __init__(__self__, *, key: pulumi.Input[str], project_id: pulumi.Input[str], - targets: pulumi.Input[Sequence[pulumi.Input[str]]], value: pulumi.Input[str], comment: Optional[pulumi.Input[str]] = None, + custom_environment_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, git_branch: Optional[pulumi.Input[str]] = None, sensitive: Optional[pulumi.Input[bool]] = None, + targets: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, team_id: Optional[pulumi.Input[str]] = None): """ The set of arguments for constructing a ProjectEnvironmentVariable resource. :param pulumi.Input[str] key: The name of the Environment Variable. :param pulumi.Input[str] project_id: The ID of the Vercel project. - :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, - or `development`. :param pulumi.Input[str] value: The value of the Environment Variable. :param pulumi.Input[str] comment: A comment explaining what the environment variable is for. + :param pulumi.Input[Sequence[pulumi.Input[str]]] custom_environment_ids: 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. :param pulumi.Input[str] git_branch: The git branch of the Environment Variable. :param pulumi.Input[bool] sensitive: 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)) + :param pulumi.Input[Sequence[pulumi.Input[str]]] targets: 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. :param pulumi.Input[str] team_id: The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider. """ pulumi.set(__self__, "key", key) pulumi.set(__self__, "project_id", project_id) - pulumi.set(__self__, "targets", targets) pulumi.set(__self__, "value", value) if comment is not None: pulumi.set(__self__, "comment", comment) + if custom_environment_ids is not None: + pulumi.set(__self__, "custom_environment_ids", custom_environment_ids) if git_branch is not None: pulumi.set(__self__, "git_branch", git_branch) if sensitive is not None: pulumi.set(__self__, "sensitive", sensitive) + if targets is not None: + pulumi.set(__self__, "targets", targets) if team_id is not None: pulumi.set(__self__, "team_id", team_id) @@ -77,19 +83,6 @@ def project_id(self) -> pulumi.Input[str]: def project_id(self, value: pulumi.Input[str]): pulumi.set(self, "project_id", value) - @property - @pulumi.getter - def targets(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: - """ - The environments that the Environment Variable should be present on. Valid targets are either `production`, `preview`, - or `development`. - """ - return pulumi.get(self, "targets") - - @targets.setter - def targets(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): - pulumi.set(self, "targets", value) - @property @pulumi.getter def value(self) -> pulumi.Input[str]: @@ -114,6 +107,19 @@ def comment(self) -> Optional[pulumi.Input[str]]: def comment(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "comment", value) + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "custom_environment_ids") + + @custom_environment_ids.setter + def custom_environment_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "custom_environment_ids", value) + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> Optional[pulumi.Input[str]]: @@ -139,6 +145,19 @@ def sensitive(self) -> Optional[pulumi.Input[bool]]: def sensitive(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "sensitive", value) + @property + @pulumi.getter + def targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "targets") + + @targets.setter + def targets(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "targets", value) + @property @pulumi.getter(name="teamId") def team_id(self) -> Optional[pulumi.Input[str]]: @@ -156,6 +175,7 @@ def team_id(self, value: Optional[pulumi.Input[str]]): class _ProjectEnvironmentVariableState: def __init__(__self__, *, comment: Optional[pulumi.Input[str]] = None, + custom_environment_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, git_branch: Optional[pulumi.Input[str]] = None, key: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -166,18 +186,22 @@ def __init__(__self__, *, """ Input properties used for looking up and filtering ProjectEnvironmentVariable resources. :param pulumi.Input[str] comment: A comment explaining what the environment variable is for. + :param pulumi.Input[Sequence[pulumi.Input[str]]] custom_environment_ids: 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. :param pulumi.Input[str] git_branch: The git branch of the Environment Variable. :param pulumi.Input[str] key: The name of the Environment Variable. :param pulumi.Input[str] project_id: The ID of the Vercel project. :param pulumi.Input[bool] sensitive: 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)) :param pulumi.Input[Sequence[pulumi.Input[str]]] 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. :param pulumi.Input[str] team_id: The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider. :param pulumi.Input[str] value: The value of the Environment Variable. """ if comment is not None: pulumi.set(__self__, "comment", comment) + if custom_environment_ids is not None: + pulumi.set(__self__, "custom_environment_ids", custom_environment_ids) if git_branch is not None: pulumi.set(__self__, "git_branch", git_branch) if key is not None: @@ -205,6 +229,19 @@ def comment(self) -> Optional[pulumi.Input[str]]: def comment(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "comment", value) + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "custom_environment_ids") + + @custom_environment_ids.setter + def custom_environment_ids(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "custom_environment_ids", value) + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> Optional[pulumi.Input[str]]: @@ -259,7 +296,7 @@ def sensitive(self, value: Optional[pulumi.Input[bool]]): def targets(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: """ 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. """ return pulumi.get(self, "targets") @@ -298,6 +335,7 @@ def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, comment: Optional[pulumi.Input[str]] = None, + custom_environment_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, git_branch: Optional[pulumi.Input[str]] = None, key: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -311,13 +349,15 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] comment: A comment explaining what the environment variable is for. + :param pulumi.Input[Sequence[pulumi.Input[str]]] custom_environment_ids: 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. :param pulumi.Input[str] git_branch: The git branch of the Environment Variable. :param pulumi.Input[str] key: The name of the Environment Variable. :param pulumi.Input[str] project_id: The ID of the Vercel project. :param pulumi.Input[bool] sensitive: 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)) :param pulumi.Input[Sequence[pulumi.Input[str]]] 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. :param pulumi.Input[str] team_id: The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider. :param pulumi.Input[str] value: The value of the Environment Variable. """ @@ -345,6 +385,7 @@ def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, comment: Optional[pulumi.Input[str]] = None, + custom_environment_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, git_branch: Optional[pulumi.Input[str]] = None, key: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -362,6 +403,7 @@ def _internal_init(__self__, __props__ = ProjectEnvironmentVariableArgs.__new__(ProjectEnvironmentVariableArgs) __props__.__dict__["comment"] = comment + __props__.__dict__["custom_environment_ids"] = custom_environment_ids __props__.__dict__["git_branch"] = git_branch if key is None and not opts.urn: raise TypeError("Missing required property 'key'") @@ -370,8 +412,6 @@ def _internal_init(__self__, raise TypeError("Missing required property 'project_id'") __props__.__dict__["project_id"] = project_id __props__.__dict__["sensitive"] = sensitive - if targets is None and not opts.urn: - raise TypeError("Missing required property 'targets'") __props__.__dict__["targets"] = targets __props__.__dict__["team_id"] = team_id if value is None and not opts.urn: @@ -390,6 +430,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, comment: Optional[pulumi.Input[str]] = None, + custom_environment_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, git_branch: Optional[pulumi.Input[str]] = None, key: Optional[pulumi.Input[str]] = None, project_id: Optional[pulumi.Input[str]] = None, @@ -405,13 +446,15 @@ def get(resource_name: str, :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] comment: A comment explaining what the environment variable is for. + :param pulumi.Input[Sequence[pulumi.Input[str]]] custom_environment_ids: 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. :param pulumi.Input[str] git_branch: The git branch of the Environment Variable. :param pulumi.Input[str] key: The name of the Environment Variable. :param pulumi.Input[str] project_id: The ID of the Vercel project. :param pulumi.Input[bool] sensitive: 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)) :param pulumi.Input[Sequence[pulumi.Input[str]]] 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. :param pulumi.Input[str] team_id: The ID of the Vercel team.Required when configuring a team resource if a default team has not been set in the provider. :param pulumi.Input[str] value: The value of the Environment Variable. """ @@ -420,6 +463,7 @@ def get(resource_name: str, __props__ = _ProjectEnvironmentVariableState.__new__(_ProjectEnvironmentVariableState) __props__.__dict__["comment"] = comment + __props__.__dict__["custom_environment_ids"] = custom_environment_ids __props__.__dict__["git_branch"] = git_branch __props__.__dict__["key"] = key __props__.__dict__["project_id"] = project_id @@ -437,6 +481,15 @@ def comment(self) -> pulumi.Output[str]: """ return pulumi.get(self, "comment") + @property + @pulumi.getter(name="customEnvironmentIds") + def custom_environment_ids(self) -> pulumi.Output[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "custom_environment_ids") + @property @pulumi.getter(name="gitBranch") def git_branch(self) -> pulumi.Output[Optional[str]]: @@ -475,7 +528,7 @@ def sensitive(self) -> pulumi.Output[bool]: def targets(self) -> pulumi.Output[Sequence[str]]: """ 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. """ return pulumi.get(self, "targets") diff --git a/sdk/python/pulumiverse_vercel/project_members.py b/sdk/python/pulumiverse_vercel/project_members.py new file mode 100644 index 0000000..5d792cb --- /dev/null +++ b/sdk/python/pulumiverse_vercel/project_members.py @@ -0,0 +1,253 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['ProjectMembersArgs', 'ProjectMembers'] + +@pulumi.input_type +class ProjectMembersArgs: + def __init__(__self__, *, + members: pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]], + project_id: pulumi.Input[str], + team_id: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a ProjectMembers resource. + :param pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]] members: The set of members to manage for this project. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input[str] team_id: 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. + """ + pulumi.set(__self__, "members", members) + pulumi.set(__self__, "project_id", project_id) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter + def members(self) -> pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]]: + """ + The set of members to manage for this project. + """ + return pulumi.get(self, "members") + + @members.setter + def members(self, value: pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]]): + pulumi.set(self, "members", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Input[str]: + """ + The ID of the existing Vercel Project. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: pulumi.Input[str]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +@pulumi.input_type +class _ProjectMembersState: + def __init__(__self__, *, + members: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering ProjectMembers resources. + :param pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]] members: The set of members to manage for this project. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input[str] team_id: 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. + """ + if members is not None: + pulumi.set(__self__, "members", members) + if project_id is not None: + pulumi.set(__self__, "project_id", project_id) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + + @property + @pulumi.getter + def members(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]]]: + """ + The set of members to manage for this project. + """ + return pulumi.get(self, "members") + + @members.setter + def members(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ProjectMembersMemberArgs']]]]): + pulumi.set(self, "members", value) + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the existing Vercel Project. + """ + return pulumi.get(self, "project_id") + + @project_id.setter + def project_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "project_id", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + +class ProjectMembers(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectMembersMemberArgs', 'ProjectMembersMemberArgsDict']]]]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a ProjectMembers resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['ProjectMembersMemberArgs', 'ProjectMembersMemberArgsDict']]]] members: The set of members to manage for this project. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input[str] team_id: 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. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: ProjectMembersArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a ProjectMembers resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param ProjectMembersArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(ProjectMembersArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectMembersMemberArgs', 'ProjectMembersMemberArgsDict']]]]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = ProjectMembersArgs.__new__(ProjectMembersArgs) + + if members is None and not opts.urn: + raise TypeError("Missing required property 'members'") + __props__.__dict__["members"] = members + if project_id is None and not opts.urn: + raise TypeError("Missing required property 'project_id'") + __props__.__dict__["project_id"] = project_id + __props__.__dict__["team_id"] = team_id + super(ProjectMembers, __self__).__init__( + 'vercel:index/projectMembers:ProjectMembers', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + members: Optional[pulumi.Input[Sequence[pulumi.Input[Union['ProjectMembersMemberArgs', 'ProjectMembersMemberArgsDict']]]]] = None, + project_id: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None) -> 'ProjectMembers': + """ + Get an existing ProjectMembers resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[Union['ProjectMembersMemberArgs', 'ProjectMembersMemberArgsDict']]]] members: The set of members to manage for this project. + :param pulumi.Input[str] project_id: The ID of the existing Vercel Project. + :param pulumi.Input[str] team_id: 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. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _ProjectMembersState.__new__(_ProjectMembersState) + + __props__.__dict__["members"] = members + __props__.__dict__["project_id"] = project_id + __props__.__dict__["team_id"] = team_id + return ProjectMembers(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def members(self) -> pulumi.Output[Sequence['outputs.ProjectMembersMember']]: + """ + The set of members to manage for this project. + """ + return pulumi.get(self, "members") + + @property + @pulumi.getter(name="projectId") + def project_id(self) -> pulumi.Output[str]: + """ + The ID of the existing Vercel Project. + """ + return pulumi.get(self, "project_id") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "team_id") + diff --git a/sdk/python/pulumiverse_vercel/team_config.py b/sdk/python/pulumiverse_vercel/team_config.py index 91e222f..4d5d331 100644 --- a/sdk/python/pulumiverse_vercel/team_config.py +++ b/sdk/python/pulumiverse_vercel/team_config.py @@ -39,12 +39,16 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] avatar: The `avatar` should be a the 'file' attribute from a get_file data source. :param pulumi.Input[str] description: A description of the team. :param pulumi.Input[str] email_domain: Hostname that'll be matched with emails on sign-up to automatically join the Team. + :param pulumi.Input[str] enable_preview_feedback: Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + :param pulumi.Input[str] enable_production_feedback: Enables the Vercel Toolbar on your production deployments: one of on, off or default. :param pulumi.Input[bool] hide_ip_addresses: Indicates if ip addresses should be accessible in o11y tooling. :param pulumi.Input[bool] hide_ip_addresses_in_log_drains: Indicates if ip addresses should be accessible in log drains. :param pulumi.Input[str] name: The name of the team. :param pulumi.Input[str] preview_deployment_suffix: The hostname that is used as the preview deployment suffix. :param pulumi.Input['TeamConfigRemoteCachingArgs'] remote_caching: Configuration for Remote Caching. :param pulumi.Input['TeamConfigSamlArgs'] saml: Configuration for SAML authentication. + :param pulumi.Input[str] sensitive_environment_variable_policy: 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. :param pulumi.Input[str] slug: The slug of the team. Will be used in the URL of the team's dashboard. """ if avatar is not None: @@ -113,6 +117,9 @@ def email_domain(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="enablePreviewFeedback") def enable_preview_feedback(self) -> Optional[pulumi.Input[str]]: + """ + Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + """ return pulumi.get(self, "enable_preview_feedback") @enable_preview_feedback.setter @@ -122,6 +129,9 @@ def enable_preview_feedback(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="enableProductionFeedback") def enable_production_feedback(self) -> Optional[pulumi.Input[str]]: + """ + Enables the Vercel Toolbar on your production deployments: one of on, off or default. + """ return pulumi.get(self, "enable_production_feedback") @enable_production_feedback.setter @@ -203,6 +213,10 @@ def saml(self, value: Optional[pulumi.Input['TeamConfigSamlArgs']]): @property @pulumi.getter(name="sensitiveEnvironmentVariablePolicy") def sensitive_environment_variable_policy(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ return pulumi.get(self, "sensitive_environment_variable_policy") @sensitive_environment_variable_policy.setter @@ -244,6 +258,8 @@ def __init__(__self__, *, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] avatar: The `avatar` should be a the 'file' attribute from a get_file data source. :param pulumi.Input[str] description: A description of the team. :param pulumi.Input[str] email_domain: Hostname that'll be matched with emails on sign-up to automatically join the Team. + :param pulumi.Input[str] enable_preview_feedback: Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + :param pulumi.Input[str] enable_production_feedback: Enables the Vercel Toolbar on your production deployments: one of on, off or default. :param pulumi.Input[bool] hide_ip_addresses: Indicates if ip addresses should be accessible in o11y tooling. :param pulumi.Input[bool] hide_ip_addresses_in_log_drains: Indicates if ip addresses should be accessible in log drains. :param pulumi.Input[str] invite_code: A code that can be used to join this team. Only visible to Team owners. @@ -251,6 +267,8 @@ def __init__(__self__, *, :param pulumi.Input[str] preview_deployment_suffix: The hostname that is used as the preview deployment suffix. :param pulumi.Input['TeamConfigRemoteCachingArgs'] remote_caching: Configuration for Remote Caching. :param pulumi.Input['TeamConfigSamlArgs'] saml: Configuration for SAML authentication. + :param pulumi.Input[str] sensitive_environment_variable_policy: 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. :param pulumi.Input[str] slug: The slug of the team. Will be used in the URL of the team's dashboard. """ if avatar is not None: @@ -321,6 +339,9 @@ def email_domain(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="enablePreviewFeedback") def enable_preview_feedback(self) -> Optional[pulumi.Input[str]]: + """ + Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + """ return pulumi.get(self, "enable_preview_feedback") @enable_preview_feedback.setter @@ -330,6 +351,9 @@ def enable_preview_feedback(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter(name="enableProductionFeedback") def enable_production_feedback(self) -> Optional[pulumi.Input[str]]: + """ + Enables the Vercel Toolbar on your production deployments: one of on, off or default. + """ return pulumi.get(self, "enable_production_feedback") @enable_production_feedback.setter @@ -423,6 +447,10 @@ def saml(self, value: Optional[pulumi.Input['TeamConfigSamlArgs']]): @property @pulumi.getter(name="sensitiveEnvironmentVariablePolicy") def sensitive_environment_variable_policy(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ return pulumi.get(self, "sensitive_environment_variable_policy") @sensitive_environment_variable_policy.setter @@ -468,12 +496,16 @@ def __init__(__self__, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] avatar: The `avatar` should be a the 'file' attribute from a get_file data source. :param pulumi.Input[str] description: A description of the team. :param pulumi.Input[str] email_domain: Hostname that'll be matched with emails on sign-up to automatically join the Team. + :param pulumi.Input[str] enable_preview_feedback: Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + :param pulumi.Input[str] enable_production_feedback: Enables the Vercel Toolbar on your production deployments: one of on, off or default. :param pulumi.Input[bool] hide_ip_addresses: Indicates if ip addresses should be accessible in o11y tooling. :param pulumi.Input[bool] hide_ip_addresses_in_log_drains: Indicates if ip addresses should be accessible in log drains. :param pulumi.Input[str] name: The name of the team. :param pulumi.Input[str] preview_deployment_suffix: The hostname that is used as the preview deployment suffix. :param pulumi.Input[Union['TeamConfigRemoteCachingArgs', 'TeamConfigRemoteCachingArgsDict']] remote_caching: Configuration for Remote Caching. :param pulumi.Input[Union['TeamConfigSamlArgs', 'TeamConfigSamlArgsDict']] saml: Configuration for SAML authentication. + :param pulumi.Input[str] sensitive_environment_variable_policy: 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. :param pulumi.Input[str] slug: The slug of the team. Will be used in the URL of the team's dashboard. """ ... @@ -569,6 +601,8 @@ def get(resource_name: str, :param pulumi.Input[Mapping[str, pulumi.Input[str]]] avatar: The `avatar` should be a the 'file' attribute from a get_file data source. :param pulumi.Input[str] description: A description of the team. :param pulumi.Input[str] email_domain: Hostname that'll be matched with emails on sign-up to automatically join the Team. + :param pulumi.Input[str] enable_preview_feedback: Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + :param pulumi.Input[str] enable_production_feedback: Enables the Vercel Toolbar on your production deployments: one of on, off or default. :param pulumi.Input[bool] hide_ip_addresses: Indicates if ip addresses should be accessible in o11y tooling. :param pulumi.Input[bool] hide_ip_addresses_in_log_drains: Indicates if ip addresses should be accessible in log drains. :param pulumi.Input[str] invite_code: A code that can be used to join this team. Only visible to Team owners. @@ -576,6 +610,8 @@ def get(resource_name: str, :param pulumi.Input[str] preview_deployment_suffix: The hostname that is used as the preview deployment suffix. :param pulumi.Input[Union['TeamConfigRemoteCachingArgs', 'TeamConfigRemoteCachingArgsDict']] remote_caching: Configuration for Remote Caching. :param pulumi.Input[Union['TeamConfigSamlArgs', 'TeamConfigSamlArgsDict']] saml: Configuration for SAML authentication. + :param pulumi.Input[str] sensitive_environment_variable_policy: 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. :param pulumi.Input[str] slug: The slug of the team. Will be used in the URL of the team's dashboard. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -625,11 +661,17 @@ def email_domain(self) -> pulumi.Output[str]: @property @pulumi.getter(name="enablePreviewFeedback") def enable_preview_feedback(self) -> pulumi.Output[str]: + """ + Enables the Vercel Toolbar on your preview deployments: one of on, off or default. + """ return pulumi.get(self, "enable_preview_feedback") @property @pulumi.getter(name="enableProductionFeedback") def enable_production_feedback(self) -> pulumi.Output[str]: + """ + Enables the Vercel Toolbar on your production deployments: one of on, off or default. + """ return pulumi.get(self, "enable_production_feedback") @property @@ -691,6 +733,10 @@ def saml(self) -> pulumi.Output['outputs.TeamConfigSaml']: @property @pulumi.getter(name="sensitiveEnvironmentVariablePolicy") def sensitive_environment_variable_policy(self) -> pulumi.Output[str]: + """ + 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. + """ return pulumi.get(self, "sensitive_environment_variable_policy") @property diff --git a/sdk/python/pulumiverse_vercel/team_member.py b/sdk/python/pulumiverse_vercel/team_member.py new file mode 100644 index 0000000..72de815 --- /dev/null +++ b/sdk/python/pulumiverse_vercel/team_member.py @@ -0,0 +1,362 @@ +# coding=utf-8 +# *** 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 copy +import warnings +import sys +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +if sys.version_info >= (3, 11): + from typing import NotRequired, TypedDict, TypeAlias +else: + from typing_extensions import NotRequired, TypedDict, TypeAlias +from . import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['TeamMemberArgs', 'TeamMember'] + +@pulumi.input_type +class TeamMemberArgs: + def __init__(__self__, *, + role: pulumi.Input[str], + team_id: pulumi.Input[str], + user_id: pulumi.Input[str], + access_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + projects: Optional[pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]]] = None): + """ + The set of arguments for constructing a TeamMember resource. + :param pulumi.Input[str] role: 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. + :param pulumi.Input[str] team_id: The ID of the existing Vercel Team. + :param pulumi.Input[str] user_id: The ID of the user to add to the team. + :param pulumi.Input[Sequence[pulumi.Input[str]]] access_groups: 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. + :param pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]] 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. + """ + pulumi.set(__self__, "role", role) + pulumi.set(__self__, "team_id", team_id) + pulumi.set(__self__, "user_id", user_id) + if access_groups is not None: + pulumi.set(__self__, "access_groups", access_groups) + if projects is not None: + pulumi.set(__self__, "projects", projects) + + @property + @pulumi.getter + def role(self) -> pulumi.Input[str]: + """ + 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. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: pulumi.Input[str]): + pulumi.set(self, "role", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> pulumi.Input[str]: + """ + The ID of the existing Vercel Team. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: pulumi.Input[str]): + pulumi.set(self, "team_id", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> pulumi.Input[str]: + """ + The ID of the user to add to the team. + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: pulumi.Input[str]): + pulumi.set(self, "user_id", value) + + @property + @pulumi.getter(name="accessGroups") + def access_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "access_groups") + + @access_groups.setter + def access_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "access_groups", value) + + @property + @pulumi.getter + def projects(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]]]: + """ + 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. + """ + return pulumi.get(self, "projects") + + @projects.setter + def projects(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]]]): + pulumi.set(self, "projects", value) + + +@pulumi.input_type +class _TeamMemberState: + def __init__(__self__, *, + access_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + projects: Optional[pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering TeamMember resources. + :param pulumi.Input[Sequence[pulumi.Input[str]]] access_groups: 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. + :param pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]] 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. + :param pulumi.Input[str] role: 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. + :param pulumi.Input[str] team_id: The ID of the existing Vercel Team. + :param pulumi.Input[str] user_id: The ID of the user to add to the team. + """ + if access_groups is not None: + pulumi.set(__self__, "access_groups", access_groups) + if projects is not None: + pulumi.set(__self__, "projects", projects) + if role is not None: + pulumi.set(__self__, "role", role) + if team_id is not None: + pulumi.set(__self__, "team_id", team_id) + if user_id is not None: + pulumi.set(__self__, "user_id", user_id) + + @property + @pulumi.getter(name="accessGroups") + def access_groups(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + 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. + """ + return pulumi.get(self, "access_groups") + + @access_groups.setter + def access_groups(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "access_groups", value) + + @property + @pulumi.getter + def projects(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]]]: + """ + 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. + """ + return pulumi.get(self, "projects") + + @projects.setter + def projects(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['TeamMemberProjectArgs']]]]): + pulumi.set(self, "projects", value) + + @property + @pulumi.getter + def role(self) -> Optional[pulumi.Input[str]]: + """ + 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. + """ + return pulumi.get(self, "role") + + @role.setter + def role(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "role", value) + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the existing Vercel Team. + """ + return pulumi.get(self, "team_id") + + @team_id.setter + def team_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "team_id", value) + + @property + @pulumi.getter(name="userId") + def user_id(self) -> Optional[pulumi.Input[str]]: + """ + The ID of the user to add to the team. + """ + return pulumi.get(self, "user_id") + + @user_id.setter + def user_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "user_id", value) + + +class TeamMember(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + projects: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TeamMemberProjectArgs', 'TeamMemberProjectArgsDict']]]]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Create a TeamMember resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] access_groups: 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. + :param pulumi.Input[Sequence[pulumi.Input[Union['TeamMemberProjectArgs', 'TeamMemberProjectArgsDict']]]] 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. + :param pulumi.Input[str] role: 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. + :param pulumi.Input[str] team_id: The ID of the existing Vercel Team. + :param pulumi.Input[str] user_id: The ID of the user to add to the team. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: TeamMemberArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Create a TeamMember resource with the given unique name, props, and options. + :param str resource_name: The name of the resource. + :param TeamMemberArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(TeamMemberArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + access_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + projects: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TeamMemberProjectArgs', 'TeamMemberProjectArgsDict']]]]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = TeamMemberArgs.__new__(TeamMemberArgs) + + __props__.__dict__["access_groups"] = access_groups + __props__.__dict__["projects"] = projects + if role is None and not opts.urn: + raise TypeError("Missing required property 'role'") + __props__.__dict__["role"] = role + if team_id is None and not opts.urn: + raise TypeError("Missing required property 'team_id'") + __props__.__dict__["team_id"] = team_id + if user_id is None and not opts.urn: + raise TypeError("Missing required property 'user_id'") + __props__.__dict__["user_id"] = user_id + super(TeamMember, __self__).__init__( + 'vercel:index/teamMember:TeamMember', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + access_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + projects: Optional[pulumi.Input[Sequence[pulumi.Input[Union['TeamMemberProjectArgs', 'TeamMemberProjectArgsDict']]]]] = None, + role: Optional[pulumi.Input[str]] = None, + team_id: Optional[pulumi.Input[str]] = None, + user_id: Optional[pulumi.Input[str]] = None) -> 'TeamMember': + """ + Get an existing TeamMember resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[str]]] access_groups: 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. + :param pulumi.Input[Sequence[pulumi.Input[Union['TeamMemberProjectArgs', 'TeamMemberProjectArgsDict']]]] 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. + :param pulumi.Input[str] role: 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. + :param pulumi.Input[str] team_id: The ID of the existing Vercel Team. + :param pulumi.Input[str] user_id: The ID of the user to add to the team. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _TeamMemberState.__new__(_TeamMemberState) + + __props__.__dict__["access_groups"] = access_groups + __props__.__dict__["projects"] = projects + __props__.__dict__["role"] = role + __props__.__dict__["team_id"] = team_id + __props__.__dict__["user_id"] = user_id + return TeamMember(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="accessGroups") + def access_groups(self) -> pulumi.Output[Sequence[str]]: + """ + 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. + """ + return pulumi.get(self, "access_groups") + + @property + @pulumi.getter + def projects(self) -> pulumi.Output[Sequence['outputs.TeamMemberProject']]: + """ + 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. + """ + return pulumi.get(self, "projects") + + @property + @pulumi.getter + def role(self) -> pulumi.Output[str]: + """ + 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. + """ + return pulumi.get(self, "role") + + @property + @pulumi.getter(name="teamId") + def team_id(self) -> pulumi.Output[str]: + """ + The ID of the existing Vercel Team. + """ + return pulumi.get(self, "team_id") + + @property + @pulumi.getter(name="userId") + def user_id(self) -> pulumi.Output[str]: + """ + The ID of the user to add to the team. + """ + return pulumi.get(self, "user_id") +