published on Thursday, Oct 15, 2026 by Pulumiverse
published on Thursday, Oct 15, 2026 by Pulumiverse
Provides an OIDC Federation Policy resource.
OIDC federation policies allow trusted external workloads to exchange an OIDC token for a short-lived Vercel access token. The client selects the Vercel CLI receiving access, while claims constrain the external workload identity.
This API currently supports first-party CLI clients enabled for the team, including the Vercel CLI and Turborepo CLI. The API token used by the provider must have permission to manage OIDC federation policies for the team.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as vercel from "@pulumiverse/vercel";
const turborepoGithubActions = new vercel.OidcFederationPolicy("turborepo_github_actions", {
name: "Turborepo for acme/widgets GitHub Workflows",
client: "turborepo",
issuerUrl: "https://token.actions.githubusercontent.com",
claims: [
{
name: "aud",
values: [{
value: "https://vercel.com/api/login/oauth/token",
}],
},
{
name: "repository",
values: [{
value: "acme/widgets",
}],
},
],
permissions: ["read-write:remote-cache"],
resources: {
projectIds: ["*"],
},
});
import pulumi
import pulumiverse_vercel as vercel
turborepo_github_actions = vercel.OidcFederationPolicy("turborepo_github_actions",
name="Turborepo for acme/widgets GitHub Workflows",
client="turborepo",
issuer_url="https://token.actions.githubusercontent.com",
claims=[
{
"name": "aud",
"values": [{
"value": "https://vercel.com/api/login/oauth/token",
}],
},
{
"name": "repository",
"values": [{
"value": "acme/widgets",
}],
},
],
permissions=["read-write:remote-cache"],
resources={
"project_ids": ["*"],
})
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 {
_, err := vercel.NewOidcFederationPolicy(ctx, "turborepo_github_actions", &vercel.OidcFederationPolicyArgs{
Name: pulumi.String("Turborepo for acme/widgets GitHub Workflows"),
Client: pulumi.String("turborepo"),
IssuerUrl: pulumi.String("https://token.actions.githubusercontent.com"),
Claims: vercel.OidcFederationPolicyClaimArray{
&vercel.OidcFederationPolicyClaimArgs{
Name: pulumi.String("aud"),
Values: vercel.OidcFederationPolicyClaimValueArray{
&vercel.OidcFederationPolicyClaimValueArgs{
Value: pulumi.String("https://vercel.com/api/login/oauth/token"),
},
},
},
&vercel.OidcFederationPolicyClaimArgs{
Name: pulumi.String("repository"),
Values: vercel.OidcFederationPolicyClaimValueArray{
&vercel.OidcFederationPolicyClaimValueArgs{
Value: pulumi.String("acme/widgets"),
},
},
},
},
Permissions: pulumi.StringArray{
pulumi.String("read-write:remote-cache"),
},
Resources: &vercel.OidcFederationPolicyResourcesArgs{
ProjectIds: pulumi.StringArray{
pulumi.String("*"),
},
},
})
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 turborepoGithubActions = new Vercel.OidcFederationPolicy("turborepo_github_actions", new()
{
Name = "Turborepo for acme/widgets GitHub Workflows",
Client = "turborepo",
IssuerUrl = "https://token.actions.githubusercontent.com",
Claims = new[]
{
new Vercel.Inputs.OidcFederationPolicyClaimArgs
{
Name = "aud",
Values = new[]
{
new Vercel.Inputs.OidcFederationPolicyClaimValueArgs
{
Value = "https://vercel.com/api/login/oauth/token",
},
},
},
new Vercel.Inputs.OidcFederationPolicyClaimArgs
{
Name = "repository",
Values = new[]
{
new Vercel.Inputs.OidcFederationPolicyClaimValueArgs
{
Value = "acme/widgets",
},
},
},
},
Permissions = new[]
{
"read-write:remote-cache",
},
Resources = new Vercel.Inputs.OidcFederationPolicyResourcesArgs
{
ProjectIds = new[]
{
"*",
},
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumiverse.vercel.OidcFederationPolicy;
import com.pulumiverse.vercel.OidcFederationPolicyArgs;
import com.pulumi.vercel.inputs.OidcFederationPolicyClaimArgs;
import com.pulumi.vercel.inputs.OidcFederationPolicyResourcesArgs;
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 turborepoGithubActions = new OidcFederationPolicy("turborepoGithubActions", OidcFederationPolicyArgs.builder()
.name("Turborepo for acme/widgets GitHub Workflows")
.client("turborepo")
.issuerUrl("https://token.actions.githubusercontent.com")
.claims(
OidcFederationPolicyClaimArgs.builder()
.name("aud")
.values(OidcFederationPolicyClaimValueArgs.builder()
.value("https://vercel.com/api/login/oauth/token")
.build())
.build(),
OidcFederationPolicyClaimArgs.builder()
.name("repository")
.values(OidcFederationPolicyClaimValueArgs.builder()
.value("acme/widgets")
.build())
.build())
.permissions("read-write:remote-cache")
.resources(OidcFederationPolicyResourcesArgs.builder()
.projectIds("*")
.build())
.build());
}
}
resources:
turborepoGithubActions:
type: vercel:OidcFederationPolicy
name: turborepo_github_actions
properties:
name: Turborepo for acme/widgets GitHub Workflows
client: turborepo
issuerUrl: https://token.actions.githubusercontent.com
claims:
- name: aud
values:
- value: https://vercel.com/api/login/oauth/token
- name: repository
values:
- value: acme/widgets
permissions:
- read-write:remote-cache
resources:
projectIds:
- '*'
Example coming soon!
Create OidcFederationPolicy Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new OidcFederationPolicy(name: string, args: OidcFederationPolicyArgs, opts?: CustomResourceOptions);@overload
def OidcFederationPolicy(resource_name: str,
args: OidcFederationPolicyArgs,
opts: Optional[ResourceOptions] = None)
@overload
def OidcFederationPolicy(resource_name: str,
opts: Optional[ResourceOptions] = None,
claims: Optional[Sequence[OidcFederationPolicyClaimArgs]] = None,
client: Optional[str] = None,
issuer_url: Optional[str] = None,
commands: Optional[Sequence[str]] = None,
name: Optional[str] = None,
permissions: Optional[Sequence[str]] = None,
resources: Optional[OidcFederationPolicyResourcesArgs] = None,
team_id: Optional[str] = None)func NewOidcFederationPolicy(ctx *Context, name string, args OidcFederationPolicyArgs, opts ...ResourceOption) (*OidcFederationPolicy, error)public OidcFederationPolicy(string name, OidcFederationPolicyArgs args, CustomResourceOptions? opts = null)
public OidcFederationPolicy(String name, OidcFederationPolicyArgs args)
public OidcFederationPolicy(String name, OidcFederationPolicyArgs args, CustomResourceOptions options)
type: vercel:OidcFederationPolicy
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
resource "vercel_oidc_federation_policy" "name" {
# resource properties
}Parameters
- name string
- The unique name of the resource.
- args OidcFederationPolicyArgs
- 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 OidcFederationPolicyArgs
- 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 OidcFederationPolicyArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args OidcFederationPolicyArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args OidcFederationPolicyArgs
- 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 oidcFederationPolicyResource = new Vercel.OidcFederationPolicy("oidcFederationPolicyResource", new()
{
Claims = new[]
{
new Vercel.Inputs.OidcFederationPolicyClaimArgs
{
Name = "string",
Values = new[]
{
new Vercel.Inputs.OidcFederationPolicyClaimValueArgs
{
Value = "string",
Wildcards = false,
},
},
},
},
Client = "string",
IssuerUrl = "string",
Commands = new[]
{
"string",
},
Name = "string",
Permissions = new[]
{
"string",
},
Resources = new Vercel.Inputs.OidcFederationPolicyResourcesArgs
{
ProjectIds = new[]
{
"string",
},
},
TeamId = "string",
});
example, err := vercel.NewOidcFederationPolicy(ctx, "oidcFederationPolicyResource", &vercel.OidcFederationPolicyArgs{
Claims: vercel.OidcFederationPolicyClaimArray{
&vercel.OidcFederationPolicyClaimArgs{
Name: pulumi.String("string"),
Values: vercel.OidcFederationPolicyClaimValueArray{
&vercel.OidcFederationPolicyClaimValueArgs{
Value: pulumi.String("string"),
Wildcards: pulumi.Bool(false),
},
},
},
},
Client: pulumi.String("string"),
IssuerUrl: pulumi.String("string"),
Commands: pulumi.StringArray{
pulumi.String("string"),
},
Name: pulumi.String("string"),
Permissions: pulumi.StringArray{
pulumi.String("string"),
},
Resources: &vercel.OidcFederationPolicyResourcesArgs{
ProjectIds: pulumi.StringArray{
pulumi.String("string"),
},
},
TeamId: pulumi.String("string"),
})
resource "vercel_oidc_federation_policy" "oidcFederationPolicyResource" {
lifecycle {
create_before_destroy = true
}
claims {
name = "string"
values {
value = "string"
wildcards = false
}
}
client = "string"
issuer_url = "string"
commands = ["string"]
name = "string"
permissions = ["string"]
resources = {
project_ids = ["string"]
}
team_id = "string"
}
var oidcFederationPolicyResource = new OidcFederationPolicy("oidcFederationPolicyResource", OidcFederationPolicyArgs.builder()
.claims(OidcFederationPolicyClaimArgs.builder()
.name("string")
.values(OidcFederationPolicyClaimValueArgs.builder()
.value("string")
.wildcards(false)
.build())
.build())
.client("string")
.issuerUrl("string")
.commands("string")
.name("string")
.permissions("string")
.resources(OidcFederationPolicyResourcesArgs.builder()
.projectIds("string")
.build())
.teamId("string")
.build());
oidc_federation_policy_resource = vercel.OidcFederationPolicy("oidcFederationPolicyResource",
claims=[{
"name": "string",
"values": [{
"value": "string",
"wildcards": False,
}],
}],
client="string",
issuer_url="string",
commands=["string"],
name="string",
permissions=["string"],
resources={
"project_ids": ["string"],
},
team_id="string")
const oidcFederationPolicyResource = new vercel.OidcFederationPolicy("oidcFederationPolicyResource", {
claims: [{
name: "string",
values: [{
value: "string",
wildcards: false,
}],
}],
client: "string",
issuerUrl: "string",
commands: ["string"],
name: "string",
permissions: ["string"],
resources: {
projectIds: ["string"],
},
teamId: "string",
});
type: vercel:OidcFederationPolicy
properties:
claims:
- name: string
values:
- value: string
wildcards: false
client: string
commands:
- string
issuerUrl: string
name: string
permissions:
- string
resources:
projectIds:
- string
teamId: string
OidcFederationPolicy 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 OidcFederationPolicy resource accepts the following input properties:
- Claims
List<Pulumiverse.
Vercel. Inputs. Oidc Federation Policy Claim> - OIDC claims that must all match for a token to be exchanged.
- Client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - Issuer
Url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- Commands List<string>
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - Name string
- A human-readable name describing the policy.
- Permissions List<string>
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - Resources
Pulumiverse.
Vercel. Inputs. Oidc Federation Policy Resources - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- Team
Id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- Claims
[]Oidc
Federation Policy Claim Args - OIDC claims that must all match for a token to be exchanged.
- Client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - Issuer
Url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- Commands []string
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - Name string
- A human-readable name describing the policy.
- Permissions []string
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - Resources
Oidc
Federation Policy Resources Args - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- Team
Id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims list(object)
- OIDC claims that must all match for a token to be exchanged.
- client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - issuer_
url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- commands list(string)
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - name string
- A human-readable name describing the policy.
- permissions list(string)
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources object
- Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team_
id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims
List<Oidc
Federation Policy Claim> - OIDC claims that must all match for a token to be exchanged.
- client String
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - issuer
Url String - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- commands List<String>
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - name String
- A human-readable name describing the policy.
- permissions List<String>
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources
Oidc
Federation Policy Resources - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team
Id String - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims
Oidc
Federation Policy Claim[] - OIDC claims that must all match for a token to be exchanged.
- client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - issuer
Url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- commands string[]
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - name string
- A human-readable name describing the policy.
- permissions string[]
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources
Oidc
Federation Policy Resources - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team
Id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims
Sequence[Oidc
Federation Policy Claim Args] - OIDC claims that must all match for a token to be exchanged.
- client str
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - issuer_
url str - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- commands Sequence[str]
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - name str
- A human-readable name describing the policy.
- permissions Sequence[str]
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources
Oidc
Federation Policy Resources Args - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team_
id str - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims List<Property Map>
- OIDC claims that must all match for a token to be exchanged.
- client String
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - issuer
Url String - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- commands List<String>
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - name String
- A human-readable name describing the policy.
- permissions List<String>
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources Property Map
- Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team
Id String - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
Outputs
All input properties are implicitly available as output properties. Additionally, the OidcFederationPolicy resource produces the following output properties:
- Id string
- The provider-assigned unique ID for this managed resource.
- Id string
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
- id string
- The provider-assigned unique ID for this managed resource.
- id str
- The provider-assigned unique ID for this managed resource.
- id String
- The provider-assigned unique ID for this managed resource.
Look up Existing OidcFederationPolicy Resource
Get an existing OidcFederationPolicy 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?: OidcFederationPolicyState, opts?: CustomResourceOptions): OidcFederationPolicy@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
claims: Optional[Sequence[OidcFederationPolicyClaimArgs]] = None,
client: Optional[str] = None,
commands: Optional[Sequence[str]] = None,
issuer_url: Optional[str] = None,
name: Optional[str] = None,
permissions: Optional[Sequence[str]] = None,
resources: Optional[OidcFederationPolicyResourcesArgs] = None,
team_id: Optional[str] = None) -> OidcFederationPolicyfunc GetOidcFederationPolicy(ctx *Context, name string, id IDInput, state *OidcFederationPolicyState, opts ...ResourceOption) (*OidcFederationPolicy, error)public static OidcFederationPolicy Get(string name, Input<string> id, OidcFederationPolicyState? state, CustomResourceOptions? opts = null)public static OidcFederationPolicy get(String name, Output<String> id, OidcFederationPolicyState state, CustomResourceOptions options)resources: _: type: vercel:OidcFederationPolicy get: id: ${id}import {
to = vercel_oidc_federation_policy.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.
- Claims
List<Pulumiverse.
Vercel. Inputs. Oidc Federation Policy Claim> - OIDC claims that must all match for a token to be exchanged.
- Client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - Commands List<string>
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - Issuer
Url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- Name string
- A human-readable name describing the policy.
- Permissions List<string>
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - Resources
Pulumiverse.
Vercel. Inputs. Oidc Federation Policy Resources - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- Team
Id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- Claims
[]Oidc
Federation Policy Claim Args - OIDC claims that must all match for a token to be exchanged.
- Client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - Commands []string
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - Issuer
Url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- Name string
- A human-readable name describing the policy.
- Permissions []string
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - Resources
Oidc
Federation Policy Resources Args - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- Team
Id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims list(object)
- OIDC claims that must all match for a token to be exchanged.
- client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - commands list(string)
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - issuer_
url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- name string
- A human-readable name describing the policy.
- permissions list(string)
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources object
- Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team_
id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims
List<Oidc
Federation Policy Claim> - OIDC claims that must all match for a token to be exchanged.
- client String
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - commands List<String>
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - issuer
Url String - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- name String
- A human-readable name describing the policy.
- permissions List<String>
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources
Oidc
Federation Policy Resources - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team
Id String - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims
Oidc
Federation Policy Claim[] - OIDC claims that must all match for a token to be exchanged.
- client string
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - commands string[]
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - issuer
Url string - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- name string
- A human-readable name describing the policy.
- permissions string[]
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources
Oidc
Federation Policy Resources - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team
Id string - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims
Sequence[Oidc
Federation Policy Claim Args] - OIDC claims that must all match for a token to be exchanged.
- client str
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - commands Sequence[str]
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - issuer_
url str - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- name str
- A human-readable name describing the policy.
- permissions Sequence[str]
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources
Oidc
Federation Policy Resources Args - Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team_
id str - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
- claims List<Property Map>
- OIDC claims that must all match for a token to be exchanged.
- client String
- The CLI whose access tokens this policy permits the workload to obtain. Valid values are
turborepoandvercel. - commands List<String>
- Vercel CLI command IDs allowed for exchanged tokens. Only supported for the Vercel CLI client. Exactly one of
commandsorpermissionsmust be configured. - issuer
Url String - The HTTPS issuer URL in OIDC tokens recognized by this policy.
- name String
- A human-readable name describing the policy.
- permissions List<String>
- Permissions granted to exchanged tokens. For Turborepo remote caching, use
read:remote-cachefor read-only access orread-write:remote-cachefor read and write access. Use["*"]only when the policy should inherit every permission authorized for the selected client. Exactly one ofpermissionsorcommandsmust be configured. - resources Property Map
- Optional project boundary for exchanged tokens. Omitting this block leaves access unbounded within the permissions authorized for the client.
- team
Id String - The ID of the team the policy should exist under. Required when a default team has not been set in the provider.
Supporting Types
OidcFederationPolicyClaim, OidcFederationPolicyClaimArgs
- Name string
- The OIDC claim name.
- Values
List<Pulumiverse.
Vercel. Inputs. Oidc Federation Policy Claim Value> - Values accepted for this claim. A claim matches when any configured value matches.
- Name string
- The OIDC claim name.
- Values
[]Oidc
Federation Policy Claim Value - Values accepted for this claim. A claim matches when any configured value matches.
- name string
- The OIDC claim name.
- values list(object)
- Values accepted for this claim. A claim matches when any configured value matches.
- name String
- The OIDC claim name.
- values
List<Oidc
Federation Policy Claim Value> - Values accepted for this claim. A claim matches when any configured value matches.
- name string
- The OIDC claim name.
- values
Oidc
Federation Policy Claim Value[] - Values accepted for this claim. A claim matches when any configured value matches.
- name str
- The OIDC claim name.
- values
Sequence[Oidc
Federation Policy Claim Value] - Values accepted for this claim. A claim matches when any configured value matches.
- name String
- The OIDC claim name.
- values List<Property Map>
- Values accepted for this claim. A claim matches when any configured value matches.
OidcFederationPolicyClaimValue, OidcFederationPolicyClaimValueArgs
OidcFederationPolicyResources, OidcFederationPolicyResourcesArgs
- Project
Ids List<string> - Project IDs in the resource boundary. Use
["*"]for all current and future team projects, or an empty set for no projects.
- Project
Ids []string - Project IDs in the resource boundary. Use
["*"]for all current and future team projects, or an empty set for no projects.
- project_
ids list(string) - Project IDs in the resource boundary. Use
["*"]for all current and future team projects, or an empty set for no projects.
- project
Ids List<String> - Project IDs in the resource boundary. Use
["*"]for all current and future team projects, or an empty set for no projects.
- project
Ids string[] - Project IDs in the resource boundary. Use
["*"]for all current and future team projects, or an empty set for no projects.
- project_
ids Sequence[str] - Project IDs in the resource boundary. Use
["*"]for all current and future team projects, or an empty set for no projects.
- project
Ids List<String> - Project IDs in the resource boundary. Use
["*"]for all current and future team projects, or an empty set for no projects.
Import
The pulumi import command can be used, for example:
If importing with a team configured on the provider, use the policy ID.
$ pulumi import vercel:index/oidcFederationPolicy:OidcFederationPolicy example pol_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Otherwise, use the team ID and policy ID.
$ pulumi import vercel:index/oidcFederationPolicy:OidcFederationPolicy example team_xxxxxxxxxxxxxxxxxxxxxxxx/pol_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
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