1. Registry
  2. Packages
  3. Vercel Provider
  4. API Docs
  5. VcrRepositoryPermission
Viewing docs for Vercel v5.21.1
published on Thursday, Oct 15, 2026 by Pulumiverse
vercel logo vercel logo
Viewing docs for Vercel v5.21.1
published on Thursday, Oct 15, 2026 by Pulumiverse

    Provides a Vercel Container Registry (VCR) Repository Permission resource.

    A VCR Repository Permission shares a VCR Repository with another Vercel Team, granting it read (pull) access to the repository’s images. One resource manages a single grant, identified by the repository and the team the permission is granted to.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as vercel from "@pulumiverse/vercel";
    
    const example = new vercel.Project("example", {name: "example-project-with-vcr-repository"});
    const exampleVcrRepository = new vercel.VcrRepository("example", {
        projectId: example.id,
        name: "my-repository",
    });
    // Share the repository with another team, granting it
    // read (pull) access to the repository's images.
    const exampleVcrRepositoryPermission = new vercel.VcrRepositoryPermission("example", {
        projectId: example.id,
        repository: exampleVcrRepository.name,
        grantedTeamId: "team_xxxxxxxxxxxxxxxxxxxxxxxx",
    });
    // The granted team can alternatively be referenced by its slug.
    const exampleBySlug = new vercel.VcrRepositoryPermission("example_by_slug", {
        projectId: example.id,
        repository: exampleVcrRepository.name,
        grantedTeamSlug: "my-other-team",
    });
    
    import pulumi
    import pulumiverse_vercel as vercel
    
    example = vercel.Project("example", name="example-project-with-vcr-repository")
    example_vcr_repository = vercel.VcrRepository("example",
        project_id=example.id,
        name="my-repository")
    # Share the repository with another team, granting it
    # read (pull) access to the repository's images.
    example_vcr_repository_permission = vercel.VcrRepositoryPermission("example",
        project_id=example.id,
        repository=example_vcr_repository.name,
        granted_team_id="team_xxxxxxxxxxxxxxxxxxxxxxxx")
    # The granted team can alternatively be referenced by its slug.
    example_by_slug = vercel.VcrRepositoryPermission("example_by_slug",
        project_id=example.id,
        repository=example_vcr_repository.name,
        granted_team_slug="my-other-team")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    	"github.com/pulumiverse/pulumi-vercel/sdk/v5/go/vercel"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		example, err := vercel.NewProject(ctx, "example", &vercel.ProjectArgs{
    			Name: pulumi.String("example-project-with-vcr-repository"),
    		})
    		if err != nil {
    			return err
    		}
    		exampleVcrRepository, err := vercel.NewVcrRepository(ctx, "example", &vercel.VcrRepositoryArgs{
    			ProjectId: example.ID(),
    			Name:      pulumi.String("my-repository"),
    		})
    		if err != nil {
    			return err
    		}
    		// Share the repository with another team, granting it
    		// read (pull) access to the repository's images.
    		_, err = vercel.NewVcrRepositoryPermission(ctx, "example", &vercel.VcrRepositoryPermissionArgs{
    			ProjectId:     example.ID(),
    			Repository:    exampleVcrRepository.Name,
    			GrantedTeamId: pulumi.String("team_xxxxxxxxxxxxxxxxxxxxxxxx"),
    		})
    		if err != nil {
    			return err
    		}
    		// The granted team can alternatively be referenced by its slug.
    		_, err = vercel.NewVcrRepositoryPermission(ctx, "example_by_slug", &vercel.VcrRepositoryPermissionArgs{
    			ProjectId:       example.ID(),
    			Repository:      exampleVcrRepository.Name,
    			GrantedTeamSlug: pulumi.String("my-other-team"),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Vercel = Pulumiverse.Vercel;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Vercel.Project("example", new()
        {
            Name = "example-project-with-vcr-repository",
        });
    
        var exampleVcrRepository = new Vercel.VcrRepository("example", new()
        {
            ProjectId = example.Id,
            Name = "my-repository",
        });
    
        // Share the repository with another team, granting it
        // read (pull) access to the repository's images.
        var exampleVcrRepositoryPermission = new Vercel.VcrRepositoryPermission("example", new()
        {
            ProjectId = example.Id,
            Repository = exampleVcrRepository.Name,
            GrantedTeamId = "team_xxxxxxxxxxxxxxxxxxxxxxxx",
        });
    
        // The granted team can alternatively be referenced by its slug.
        var exampleBySlug = new Vercel.VcrRepositoryPermission("example_by_slug", new()
        {
            ProjectId = example.Id,
            Repository = exampleVcrRepository.Name,
            GrantedTeamSlug = "my-other-team",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumiverse.vercel.Project;
    import com.pulumiverse.vercel.ProjectArgs;
    import com.pulumiverse.vercel.VcrRepository;
    import com.pulumiverse.vercel.VcrRepositoryArgs;
    import com.pulumiverse.vercel.VcrRepositoryPermission;
    import com.pulumiverse.vercel.VcrRepositoryPermissionArgs;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Project("example", ProjectArgs.builder()
                .name("example-project-with-vcr-repository")
                .build());
    
            var exampleVcrRepository = new VcrRepository("exampleVcrRepository", VcrRepositoryArgs.builder()
                .projectId(example.id())
                .name("my-repository")
                .build());
    
            // Share the repository with another team, granting it
            // read (pull) access to the repository's images.
            var exampleVcrRepositoryPermission = new VcrRepositoryPermission("exampleVcrRepositoryPermission", VcrRepositoryPermissionArgs.builder()
                .projectId(example.id())
                .repository(exampleVcrRepository.name())
                .grantedTeamId("team_xxxxxxxxxxxxxxxxxxxxxxxx")
                .build());
    
            // The granted team can alternatively be referenced by its slug.
            var exampleBySlug = new VcrRepositoryPermission("exampleBySlug", VcrRepositoryPermissionArgs.builder()
                .projectId(example.id())
                .repository(exampleVcrRepository.name())
                .grantedTeamSlug("my-other-team")
                .build());
    
        }
    }
    
    resources:
      example:
        type: vercel:Project
        properties:
          name: example-project-with-vcr-repository
      exampleVcrRepository:
        type: vercel:VcrRepository
        name: example
        properties:
          projectId: ${example.id}
          name: my-repository
      # Share the repository with another team, granting it
      # read (pull) access to the repository's images.
      exampleVcrRepositoryPermission:
        type: vercel:VcrRepositoryPermission
        name: example
        properties:
          projectId: ${example.id}
          repository: ${exampleVcrRepository.name}
          grantedTeamId: team_xxxxxxxxxxxxxxxxxxxxxxxx
      # The granted team can alternatively be referenced by its slug.
      exampleBySlug:
        type: vercel:VcrRepositoryPermission
        name: example_by_slug
        properties:
          projectId: ${example.id}
          repository: ${exampleVcrRepository.name}
          grantedTeamSlug: my-other-team
    
    Example coming soon!
    

    Create VcrRepositoryPermission Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new VcrRepositoryPermission(name: string, args: VcrRepositoryPermissionArgs, opts?: CustomResourceOptions);
    @overload
    def VcrRepositoryPermission(resource_name: str,
                                args: VcrRepositoryPermissionArgs,
                                opts: Optional[ResourceOptions] = None)
    
    @overload
    def VcrRepositoryPermission(resource_name: str,
                                opts: Optional[ResourceOptions] = None,
                                project_id: Optional[str] = None,
                                repository: Optional[str] = None,
                                granted_team_id: Optional[str] = None,
                                granted_team_slug: Optional[str] = None,
                                team_id: Optional[str] = None)
    func NewVcrRepositoryPermission(ctx *Context, name string, args VcrRepositoryPermissionArgs, opts ...ResourceOption) (*VcrRepositoryPermission, error)
    public VcrRepositoryPermission(string name, VcrRepositoryPermissionArgs args, CustomResourceOptions? opts = null)
    public VcrRepositoryPermission(String name, VcrRepositoryPermissionArgs args)
    public VcrRepositoryPermission(String name, VcrRepositoryPermissionArgs args, CustomResourceOptions options)
    
    type: vercel:VcrRepositoryPermission
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "vercel_vcr_repository_permission" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args VcrRepositoryPermissionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args VcrRepositoryPermissionArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args VcrRepositoryPermissionArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args VcrRepositoryPermissionArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args VcrRepositoryPermissionArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var vcrRepositoryPermissionResource = new Vercel.VcrRepositoryPermission("vcrRepositoryPermissionResource", new()
    {
        ProjectId = "string",
        Repository = "string",
        GrantedTeamId = "string",
        GrantedTeamSlug = "string",
        TeamId = "string",
    });
    
    example, err := vercel.NewVcrRepositoryPermission(ctx, "vcrRepositoryPermissionResource", &vercel.VcrRepositoryPermissionArgs{
    	ProjectId:       pulumi.String("string"),
    	Repository:      pulumi.String("string"),
    	GrantedTeamId:   pulumi.String("string"),
    	GrantedTeamSlug: pulumi.String("string"),
    	TeamId:          pulumi.String("string"),
    })
    
    resource "vercel_vcr_repository_permission" "vcrRepositoryPermissionResource" {
      lifecycle {
        create_before_destroy = true
      }
      project_id        = "string"
      repository        = "string"
      granted_team_id   = "string"
      granted_team_slug = "string"
      team_id           = "string"
    }
    
    var vcrRepositoryPermissionResource = new VcrRepositoryPermission("vcrRepositoryPermissionResource", VcrRepositoryPermissionArgs.builder()
        .projectId("string")
        .repository("string")
        .grantedTeamId("string")
        .grantedTeamSlug("string")
        .teamId("string")
        .build());
    
    vcr_repository_permission_resource = vercel.VcrRepositoryPermission("vcrRepositoryPermissionResource",
        project_id="string",
        repository="string",
        granted_team_id="string",
        granted_team_slug="string",
        team_id="string")
    
    const vcrRepositoryPermissionResource = new vercel.VcrRepositoryPermission("vcrRepositoryPermissionResource", {
        projectId: "string",
        repository: "string",
        grantedTeamId: "string",
        grantedTeamSlug: "string",
        teamId: "string",
    });
    
    type: vercel:VcrRepositoryPermission
    properties:
        grantedTeamId: string
        grantedTeamSlug: string
        projectId: string
        repository: string
        teamId: string
    

    VcrRepositoryPermission Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The VcrRepositoryPermission resource accepts the following input properties:

    ProjectId string
    The ID of the Vercel Project the repository belongs to.
    Repository string
    The ID or name of the VCR Repository to share.
    GrantedTeamId string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    GrantedTeamSlug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    TeamId string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    ProjectId string
    The ID of the Vercel Project the repository belongs to.
    Repository string
    The ID or name of the VCR Repository to share.
    GrantedTeamId string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    GrantedTeamSlug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    TeamId string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    project_id string
    The ID of the Vercel Project the repository belongs to.
    repository string
    The ID or name of the VCR Repository to share.
    granted_team_id string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    granted_team_slug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    team_id string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    projectId String
    The ID of the Vercel Project the repository belongs to.
    repository String
    The ID or name of the VCR Repository to share.
    grantedTeamId String
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    grantedTeamSlug String
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    teamId String
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    projectId string
    The ID of the Vercel Project the repository belongs to.
    repository string
    The ID or name of the VCR Repository to share.
    grantedTeamId string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    grantedTeamSlug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    teamId string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    project_id str
    The ID of the Vercel Project the repository belongs to.
    repository str
    The ID or name of the VCR Repository to share.
    granted_team_id str
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    granted_team_slug str
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    team_id str
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    projectId String
    The ID of the Vercel Project the repository belongs to.
    repository String
    The ID or name of the VCR Repository to share.
    grantedTeamId String
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    grantedTeamSlug String
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    teamId String
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the VcrRepositoryPermission resource produces the following output properties:

    Id string
    The provider-assigned unique ID for this managed resource.
    RepositoryId string
    The ID of the VCR Repository the permission is granted on.
    Id string
    The provider-assigned unique ID for this managed resource.
    RepositoryId string
    The ID of the VCR Repository the permission is granted on.
    id string
    The provider-assigned unique ID for this managed resource.
    repository_id string
    The ID of the VCR Repository the permission is granted on.
    id String
    The provider-assigned unique ID for this managed resource.
    repositoryId String
    The ID of the VCR Repository the permission is granted on.
    id string
    The provider-assigned unique ID for this managed resource.
    repositoryId string
    The ID of the VCR Repository the permission is granted on.
    id str
    The provider-assigned unique ID for this managed resource.
    repository_id str
    The ID of the VCR Repository the permission is granted on.
    id String
    The provider-assigned unique ID for this managed resource.
    repositoryId String
    The ID of the VCR Repository the permission is granted on.

    Look up Existing VcrRepositoryPermission Resource

    Get an existing VcrRepositoryPermission resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: VcrRepositoryPermissionState, opts?: CustomResourceOptions): VcrRepositoryPermission
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            granted_team_id: Optional[str] = None,
            granted_team_slug: Optional[str] = None,
            project_id: Optional[str] = None,
            repository: Optional[str] = None,
            repository_id: Optional[str] = None,
            team_id: Optional[str] = None) -> VcrRepositoryPermission
    func GetVcrRepositoryPermission(ctx *Context, name string, id IDInput, state *VcrRepositoryPermissionState, opts ...ResourceOption) (*VcrRepositoryPermission, error)
    public static VcrRepositoryPermission Get(string name, Input<string> id, VcrRepositoryPermissionState? state, CustomResourceOptions? opts = null)
    public static VcrRepositoryPermission get(String name, Output<String> id, VcrRepositoryPermissionState state, CustomResourceOptions options)
    resources:  _:    type: vercel:VcrRepositoryPermission    get:      id: ${id}
    import {
      to = vercel_vcr_repository_permission.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    GrantedTeamId string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    GrantedTeamSlug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    ProjectId string
    The ID of the Vercel Project the repository belongs to.
    Repository string
    The ID or name of the VCR Repository to share.
    RepositoryId string
    The ID of the VCR Repository the permission is granted on.
    TeamId string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    GrantedTeamId string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    GrantedTeamSlug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    ProjectId string
    The ID of the Vercel Project the repository belongs to.
    Repository string
    The ID or name of the VCR Repository to share.
    RepositoryId string
    The ID of the VCR Repository the permission is granted on.
    TeamId string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    granted_team_id string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    granted_team_slug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    project_id string
    The ID of the Vercel Project the repository belongs to.
    repository string
    The ID or name of the VCR Repository to share.
    repository_id string
    The ID of the VCR Repository the permission is granted on.
    team_id string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    grantedTeamId String
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    grantedTeamSlug String
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    projectId String
    The ID of the Vercel Project the repository belongs to.
    repository String
    The ID or name of the VCR Repository to share.
    repositoryId String
    The ID of the VCR Repository the permission is granted on.
    teamId String
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    grantedTeamId string
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    grantedTeamSlug string
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    projectId string
    The ID of the Vercel Project the repository belongs to.
    repository string
    The ID or name of the VCR Repository to share.
    repositoryId string
    The ID of the VCR Repository the permission is granted on.
    teamId string
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    granted_team_id str
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    granted_team_slug str
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    project_id str
    The ID of the Vercel Project the repository belongs to.
    repository str
    The ID or name of the VCR Repository to share.
    repository_id str
    The ID of the VCR Repository the permission is granted on.
    team_id str
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.
    grantedTeamId String
    The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    grantedTeamSlug String
    The slug of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
    projectId String
    The ID of the Vercel Project the repository belongs to.
    repository String
    The ID or name of the VCR Repository to share.
    repositoryId String
    The ID of the VCR Repository the permission is granted on.
    teamId String
    The ID of the team that owns the repository. Required when configuring a team resource if a default team has not been set in the provider.

    Import

    The pulumi import command can be used, for example:

    If importing into a personal account, or with a team configured on the provider, use the project_id, repository name and granted team ID.

    • project_id can be found in the project settings tab in the Vercel UI.
    • granted_team_id is the ID of the team the repository is shared with.
    $ pulumi import vercel:index/vcrRepositoryPermission:VcrRepositoryPermission example prj_xxxxxxxxxxxxxxxxxxxxxxxxxxxx/my-repository/team_xxxxxxxxxxxxxxxxxxxxxxxx
    

    Alternatively, you can import via the owning team_id, project_id, repository name and granted team ID.

    • team_id can be found in the team settings tab in the Vercel UI.
    • project_id can be found in the project settings tab in the Vercel UI.
    • granted_team_id is the ID of the team the repository is shared with.
    $ pulumi import vercel:index/vcrRepositoryPermission:VcrRepositoryPermission example team_xxxxxxxxxxxxxxxxxxxxxxxx/prj_xxxxxxxxxxxxxxxxxxxxxxxx/my-repository/team_yyyyyyyyyyyyyyyyyyyyyyyy
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    vercel pulumiverse/pulumi-vercel
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the vercel Terraform Provider.
    vercel logo vercel logo
    Viewing docs for Vercel v5.21.1
    published on Thursday, Oct 15, 2026 by Pulumiverse

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial