published on Thursday, Oct 15, 2026 by Pulumiverse
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:
- 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 stringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- Granted
Team stringSlug - 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.
- 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 stringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- Granted
Team stringSlug - 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.
- 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_ stringid - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted_
team_ stringslug - 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.
- 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 StringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted
Team StringSlug - 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.
- 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 stringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted
Team stringSlug - 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.
- 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_ strid - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted_
team_ strslug - 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.
- 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 StringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted
Team StringSlug - 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.
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.
- 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.
- 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.
- 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.
- 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.
- repository
Id 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.
- repository
Id 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) -> VcrRepositoryPermissionfunc 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.
- Granted
Team stringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- Granted
Team stringSlug - 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.
- Granted
Team stringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- Granted
Team stringSlug - 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.
- granted_
team_ stringid - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted_
team_ stringslug - 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.
- granted
Team StringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted
Team StringSlug - 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.
- granted
Team stringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted
Team stringSlug - 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.
- granted_
team_ strid - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted_
team_ strslug - 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.
- granted
Team StringId - The ID of the team to grant pull access to. Must specify one of grantedteamid or grantedteamslug.
- granted
Team StringSlug - 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.
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
settingstab 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
settingstab in the Vercel UI. - project_id can be found in the project
settingstab 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
vercelTerraform Provider.
published on Thursday, Oct 15, 2026 by Pulumiverse