{
  "name": "access-groups",
  "tools": [
    {
      "name": "Read access group",
      "description": "Allows to read an access group",
      "method": "GET",
      "endpoint": "https://api.vercel.com/v1/access-groups/{idOrName}",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "idOrName": {
            "type": "string"
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "idOrName"
        ]
      },
      "body": {},
      "response": {
        "type": "object",
        "properties": {
          "entitlements": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "v0"
              ]
            }
          },
          "isDsyncManaged": {
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "The name of this access group.",
            "example": "my-access-group"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp in milliseconds when the access group was created.",
            "example": "1588720733602"
          },
          "teamId": {
            "type": "string",
            "description": "ID of the team that this access group belongs to.",
            "example": "team_123a6c5209bc3778245d011443644c8d27dc2c50"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp in milliseconds when the access group was last updated.",
            "example": "1588720733602"
          },
          "accessGroupId": {
            "type": "string",
            "description": "ID of the access group.",
            "example": "ag_123a6c5209bc3778245d011443644c8d27dc2c50"
          },
          "membersCount": {
            "type": "number",
            "description": "Number of members in the access group.",
            "example": 5
          },
          "projectsCount": {
            "type": "number",
            "description": "Number of projects in the access group.",
            "example": 2
          },
          "teamRoles": {
            "type": "array",
            "description": "Roles that the team has in the access group.",
            "items": {
              "type": "string"
            },
            "example": [
              "DEVELOPER",
              "BILLING"
            ]
          },
          "teamPermissions": {
            "type": "array",
            "description": "Permissions that the team has in the access group.",
            "items": {
              "type": "string"
            },
            "example": [
              "CreateProject"
            ]
          }
        },
        "required": [
          "accessGroupId",
          "createdAt",
          "isDsyncManaged",
          "membersCount",
          "name",
          "projectsCount",
          "teamId",
          "updatedAt"
        ]
      }
    },
    {
      "name": "Update access group",
      "description": "Allows to update an access group metadata",
      "method": "POST",
      "endpoint": "https://api.vercel.com/v1/access-groups/{idOrName}",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "idOrName": {
            "type": "string"
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "idOrName"
        ]
      },
      "body": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the access group",
            "maxLength": 50,
            "pattern": "^[A-z0-9_ -]+$",
            "example": "My access group"
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "type": "string",
                  "description": "The ID of the project.",
                  "maxLength": 256,
                  "example": "prj_ndlgr43fadlPyCtREAqxxdyFK"
                },
                "role": {
                  "type": "string",
                  "description": "The project role that will be added to this Access Group. \\\"null\\\" will remove this project level role.",
                  "enum": [
                    "ADMIN",
                    "PROJECT_VIEWER",
                    "PROJECT_DEVELOPER",
                    null
                  ],
                  "example": "ADMIN"
                }
              },
              "required": [
                "projectId",
                "role"
              ],
              "additionalProperties": false
            }
          },
          "membersToAdd": {
            "type": "array",
            "description": "List of members to add to the access group.",
            "items": {
              "type": "string"
            }
          },
          "membersToRemove": {
            "type": "array",
            "description": "List of members to remove from the access group.",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "response": {
        "type": "object",
        "properties": {
          "entitlements": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "v0"
              ]
            }
          },
          "name": {
            "type": "string",
            "description": "The name of this access group.",
            "example": "my-access-group"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp in milliseconds when the access group was created.",
            "example": "1588720733602"
          },
          "teamId": {
            "type": "string",
            "description": "ID of the team that this access group belongs to.",
            "example": "team_123a6c5209bc3778245d011443644c8d27dc2c50"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp in milliseconds when the access group was last updated.",
            "example": "1588720733602"
          },
          "accessGroupId": {
            "type": "string",
            "description": "ID of the access group.",
            "example": "ag_123a6c5209bc3778245d011443644c8d27dc2c50"
          },
          "membersCount": {
            "type": "number",
            "description": "Number of members in the access group.",
            "example": 5
          },
          "projectsCount": {
            "type": "number",
            "description": "Number of projects in the access group.",
            "example": 2
          },
          "teamRoles": {
            "type": "array",
            "description": "Roles that the team has in the access group.",
            "items": {
              "type": "string"
            },
            "example": [
              "DEVELOPER",
              "BILLING"
            ]
          },
          "teamPermissions": {
            "type": "array",
            "description": "Permissions that the team has in the access group.",
            "items": {
              "type": "string"
            },
            "example": [
              "CreateProject"
            ]
          }
        },
        "required": [
          "accessGroupId",
          "createdAt",
          "membersCount",
          "name",
          "projectsCount",
          "teamId",
          "updatedAt"
        ]
      }
    },
    {
      "name": "Delete access group",
      "description": "Allows to delete an access group",
      "method": "DELETE",
      "endpoint": "https://api.vercel.com/v1/access-groups/{idOrName}",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "idOrName": {
            "type": "string"
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "idOrName"
        ]
      },
      "body": {},
      "response": {}
    },
    {
      "name": "List access group members",
      "description": "List members of an access group",
      "method": "GET",
      "endpoint": "https://api.vercel.com/v1/access-groups/{idOrName}/members",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "idOrName": {
            "type": "string",
            "description": "The ID or name of the Access Group.",
            "example": "ag_pavWOn1iLObbXLRiwVvzmPrTWyTf"
          },
          "limit": {
            "type": "integer",
            "description": "Limit how many access group members should be returned.",
            "minimum": 1,
            "maximum": 100,
            "example": 20
          },
          "next": {
            "type": "string",
            "description": "Continuation cursor to retrieve the next page of results."
          },
          "search": {
            "type": "string",
            "description": "Search project members by their name, username, and email."
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "idOrName"
        ]
      },
      "body": {},
      "response": {
        "type": "object",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "avatar": {
                  "type": "string"
                },
                "email": {
                  "type": "string"
                },
                "uid": {
                  "type": "string"
                },
                "username": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "createdAt": {
                  "type": "string"
                },
                "teamRole": {
                  "type": "string",
                  "enum": [
                    "OWNER",
                    "MEMBER",
                    "DEVELOPER",
                    "SECURITY",
                    "BILLING",
                    "VIEWER",
                    "CONTRIBUTOR"
                  ]
                }
              },
              "required": [
                "email",
                "teamRole",
                "uid",
                "username"
              ]
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "count": {
                "type": "number"
              },
              "next": {
                "type": "string"
              }
            },
            "required": [
              "count",
              "next"
            ]
          }
        },
        "required": [
          "members",
          "pagination"
        ]
      }
    },
    {
      "name": "List access groups",
      "description": "List access groups",
      "method": "GET",
      "endpoint": "https://api.vercel.com/v1/access-groups",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "Filter access groups by project.",
            "example": "prj_pavWOn1iLObbx3RowVvzmPrTWyTf"
          },
          "search": {
            "type": "string",
            "description": "Search for access groups by name.",
            "example": "example"
          },
          "membersLimit": {
            "type": "integer",
            "description": "Number of members to include in the response.",
            "minimum": 1,
            "maximum": 100,
            "example": 20
          },
          "projectsLimit": {
            "type": "integer",
            "description": "Number of projects to include in the response.",
            "minimum": 1,
            "maximum": 100,
            "example": 20
          },
          "limit": {
            "type": "integer",
            "description": "Limit how many access group should be returned.",
            "minimum": 1,
            "maximum": 100,
            "example": 20
          },
          "next": {
            "type": "string",
            "description": "Continuation cursor to retrieve the next page of results."
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": []
      },
      "body": {},
      "response": {
        "type": "string"
      }
    },
    {
      "name": "Create access group",
      "description": "Allows to create an access group",
      "method": "POST",
      "endpoint": "https://api.vercel.com/v1/access-groups",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": []
      },
      "body": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the access group",
            "maxLength": 50,
            "pattern": "^[A-z0-9_ -]+$",
            "example": "My access group"
          },
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "type": "string",
                  "description": "The ID of the project.",
                  "maxLength": 256,
                  "example": "prj_ndlgr43fadlPyCtREAqxxdyFK"
                },
                "role": {
                  "type": "string",
                  "description": "The project role that will be added to this Access Group. \\\"null\\\" will remove this project level role.",
                  "enum": [
                    "ADMIN",
                    "PROJECT_VIEWER",
                    "PROJECT_DEVELOPER"
                  ],
                  "example": "ADMIN"
                }
              },
              "required": [
                "projectId",
                "role"
              ],
              "additionalProperties": false
            }
          },
          "membersToAdd": {
            "type": "array",
            "description": "List of members to add to the access group.",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "response": {
        "type": "object",
        "properties": {
          "membersCount": {
            "type": "number"
          },
          "projectsCount": {
            "type": "number"
          },
          "name": {
            "type": "string",
            "description": "The name of this access group.",
            "example": "my-access-group"
          },
          "createdAt": {
            "type": "string",
            "description": "Timestamp in milliseconds when the access group was created.",
            "example": "1588720733602"
          },
          "teamId": {
            "type": "string",
            "description": "ID of the team that this access group belongs to.",
            "example": "team_123a6c5209bc3778245d011443644c8d27dc2c50"
          },
          "updatedAt": {
            "type": "string",
            "description": "Timestamp in milliseconds when the access group was last updated.",
            "example": "1588720733602"
          },
          "accessGroupId": {
            "type": "string",
            "description": "ID of the access group.",
            "example": "ag_123a6c5209bc3778245d011443644c8d27dc2c50"
          },
          "teamRoles": {
            "type": "array",
            "description": "Roles that the team has in the access group.",
            "items": {
              "type": "string"
            },
            "example": [
              "DEVELOPER",
              "BILLING"
            ]
          },
          "teamPermissions": {
            "type": "array",
            "description": "Permissions that the team has in the access group.",
            "items": {
              "type": "string"
            },
            "example": [
              "CreateProject"
            ]
          }
        },
        "required": [
          "accessGroupId",
          "createdAt",
          "membersCount",
          "name",
          "projectsCount",
          "teamId",
          "updatedAt"
        ]
      }
    },
    {
      "name": "List access group projects",
      "description": "List projects of an access group",
      "method": "GET",
      "endpoint": "https://api.vercel.com/v1/access-groups/{idOrName}/projects",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "idOrName": {
            "type": "string",
            "description": "The ID or name of the Access Group.",
            "example": "ag_pavWOn1iLObbXLRiwVvzmPrTWyTf"
          },
          "limit": {
            "type": "integer",
            "description": "Limit how many access group projects should be returned.",
            "minimum": 1,
            "maximum": 100,
            "example": 20
          },
          "next": {
            "type": "string",
            "description": "Continuation cursor to retrieve the next page of results."
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "idOrName"
        ]
      },
      "body": {},
      "response": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "projectId": {
                  "type": "string"
                },
                "role": {
                  "type": "string",
                  "enum": [
                    "ADMIN",
                    "PROJECT_DEVELOPER",
                    "PROJECT_VIEWER"
                  ]
                },
                "createdAt": {
                  "type": "string"
                },
                "updatedAt": {
                  "type": "string"
                },
                "project": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "framework": {
                      "type": "string"
                    },
                    "latestDeploymentId": {
                      "type": "string"
                    }
                  }
                }
              },
              "required": [
                "createdAt",
                "project",
                "projectId",
                "role",
                "updatedAt"
              ]
            }
          },
          "pagination": {
            "type": "object",
            "properties": {
              "count": {
                "type": "number"
              },
              "next": {
                "type": "string"
              }
            },
            "required": [
              "count",
              "next"
            ]
          }
        },
        "required": [
          "pagination",
          "projects"
        ]
      }
    },
    {
      "name": "Create access group project",
      "description": "Allows creation of an access group project",
      "method": "POST",
      "endpoint": "https://api.vercel.com/v1/access-groups/{accessGroupIdOrName}/projects",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "accessGroupIdOrName": {
            "type": "string"
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "accessGroupIdOrName"
        ]
      },
      "body": {
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "The ID of the project.",
            "maxLength": 256,
            "example": "prj_ndlgr43fadlPyCtREAqxxdyFK"
          },
          "role": {
            "type": "string",
            "description": "The project role that will be added to this Access Group.",
            "enum": [
              "ADMIN",
              "PROJECT_VIEWER",
              "PROJECT_DEVELOPER"
            ],
            "example": "ADMIN"
          }
        },
        "required": [
          "projectId",
          "role"
        ],
        "additionalProperties": false
      },
      "response": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string"
          },
          "accessGroupId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "ADMIN",
              "PROJECT_DEVELOPER",
              "PROJECT_VIEWER"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "accessGroupId",
          "createdAt",
          "projectId",
          "role",
          "teamId",
          "updatedAt"
        ]
      }
    },
    {
      "name": "Read access group project",
      "description": "Allows reading an access group project",
      "method": "GET",
      "endpoint": "https://api.vercel.com/v1/access-groups/{accessGroupIdOrName}/projects/{projectId}",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "accessGroupIdOrName": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "accessGroupIdOrName",
          "projectId"
        ]
      },
      "body": {},
      "response": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string"
          },
          "accessGroupId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "ADMIN",
              "PROJECT_DEVELOPER",
              "PROJECT_VIEWER"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "accessGroupId",
          "createdAt",
          "projectId",
          "role",
          "teamId",
          "updatedAt"
        ]
      }
    },
    {
      "name": "Delete access group project",
      "description": "Allows deletion of an access group project",
      "method": "DELETE",
      "endpoint": "https://api.vercel.com/v1/access-groups/{accessGroupIdOrName}/projects/{projectId}",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "accessGroupIdOrName": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "accessGroupIdOrName",
          "projectId"
        ]
      },
      "body": {},
      "response": {}
    },
    {
      "name": "Update access group project",
      "description": "Allows update of an access group project",
      "method": "PATCH",
      "endpoint": "https://api.vercel.com/v1/access-groups/{accessGroupIdOrName}/projects/{projectId}",
      "headers": [
        {
          "name": "Authorization",
          "required": true
        }
      ],
      "parameters": {
        "type": "object",
        "properties": {
          "accessGroupIdOrName": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "teamId": {
            "type": "string",
            "description": "The Team identifier to perform the request on behalf of."
          },
          "slug": {
            "type": "string",
            "description": "The Team slug to perform the request on behalf of."
          }
        },
        "required": [
          "accessGroupIdOrName",
          "projectId"
        ]
      },
      "body": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "description": "The project role that will be added to this Access Group.",
            "enum": [
              "ADMIN",
              "PROJECT_VIEWER",
              "PROJECT_DEVELOPER"
            ],
            "example": "ADMIN"
          }
        },
        "required": [
          "role"
        ],
        "additionalProperties": false
      },
      "response": {
        "type": "object",
        "properties": {
          "teamId": {
            "type": "string"
          },
          "accessGroupId": {
            "type": "string"
          },
          "projectId": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "ADMIN",
              "PROJECT_DEVELOPER",
              "PROJECT_VIEWER"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "accessGroupId",
          "createdAt",
          "projectId",
          "role",
          "teamId",
          "updatedAt"
        ]
      }
    }
  ]
}