@package-broker/dist-cloudflare 2.0.0-rc.2 → 2.0.0-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cloudflare/assets/access.6859f43998ca.js +1 -0
- package/cloudflare/assets/app.e8434f3343de.js +9 -0
- package/cloudflare/assets/app.f15f8f21f88b.css +2 -0
- package/cloudflare/assets/audit.576009342714.js +1 -0
- package/cloudflare/assets/chunk.297a2d571f9c.js +4 -0
- package/cloudflare/assets/chunk.3704953b4a66.js +1 -0
- package/cloudflare/assets/chunk.6e23a75a1324.js +1 -0
- package/cloudflare/assets/chunk.7cb6f6b4daaa.js +1 -0
- package/cloudflare/assets/chunk.855a50f45830.js +1 -0
- package/cloudflare/assets/chunk.862544cf5835.js +2 -0
- package/cloudflare/assets/chunk.976a2ff4338e.js +1 -0
- package/cloudflare/assets/chunk.bb25fc845269.js +1 -0
- package/cloudflare/assets/chunk.bf48b04e6a00.js +1 -0
- package/cloudflare/assets/chunk.ce96495b8b55.js +1 -0
- package/cloudflare/assets/chunk.f922af39a279.js +1 -0
- package/cloudflare/assets/import.e2a1e35fcb8d.js +1 -0
- package/cloudflare/assets/index.html +6 -2
- package/cloudflare/assets/manifest.json +80 -8
- package/cloudflare/assets/packages.a8726e5144de.js +1 -0
- package/cloudflare/assets/projects.711deb86b7c9.js +1 -0
- package/cloudflare/assets/setup.dfed30ecfbad.js +1 -0
- package/cloudflare/assets/setup.html +3 -3
- package/cloudflare/assets/sources.d0ba0048bd96.js +1 -0
- package/cloudflare/assets/tokens.f48d235e8d25.js +4 -0
- package/cloudflare/assets.json +2 -2
- package/cloudflare/build-info.json +4 -4
- package/cloudflare/generated/manifest.json +2 -2
- package/cloudflare/worker.js +137 -88
- package/package.json +1 -1
- package/prebuilt.json +33 -15
- package/cloudflare/assets/app.b2abf3c46f6e.js +0 -15
- package/cloudflare/assets/app.e8cea8b32d3a.css +0 -2
- package/cloudflare/assets/setup.98343039898f.js +0 -1
package/cloudflare/worker.js
CHANGED
|
@@ -6436,12 +6436,12 @@ function identityGroups(json3, subject4, email2) {
|
|
|
6436
6436
|
}
|
|
6437
6437
|
const groups = [];
|
|
6438
6438
|
for (const entry of json3.groups) {
|
|
6439
|
-
let
|
|
6439
|
+
let group2 = entry;
|
|
6440
6440
|
if (isRecord4(entry)) {
|
|
6441
|
-
|
|
6441
|
+
group2 = typeof entry.id === "string" && entry.id !== "" ? entry.id : entry.name;
|
|
6442
6442
|
}
|
|
6443
|
-
if (typeof
|
|
6444
|
-
groups.push(
|
|
6443
|
+
if (typeof group2 === "string" && group2 !== "") {
|
|
6444
|
+
groups.push(group2);
|
|
6445
6445
|
}
|
|
6446
6446
|
}
|
|
6447
6447
|
return groups;
|
|
@@ -29969,8 +29969,8 @@ function urlFieldForm(trimmed) {
|
|
|
29969
29969
|
if (SCRIPT_SCHEME.test(trimmed))
|
|
29970
29970
|
return { ok: false, reason: "bad_value" };
|
|
29971
29971
|
if (URL_START.test(trimmed)) {
|
|
29972
|
-
const
|
|
29973
|
-
return
|
|
29972
|
+
const redacted3 = redactUrl(trimmed);
|
|
29973
|
+
return redacted3 === null ? { ok: false, reason: "bad_value" } : { ok: true, value: redacted3 };
|
|
29974
29974
|
}
|
|
29975
29975
|
const scp = SCP_ADDRESS.exec(trimmed);
|
|
29976
29976
|
if (scp === null)
|
|
@@ -29990,8 +29990,8 @@ function storedForm(value, kind) {
|
|
|
29990
29990
|
return urlFieldForm(trimmed);
|
|
29991
29991
|
if (!URL_START.test(trimmed))
|
|
29992
29992
|
return { ok: true, value };
|
|
29993
|
-
const
|
|
29994
|
-
return
|
|
29993
|
+
const redacted3 = redactUrl(trimmed);
|
|
29994
|
+
return redacted3 === null ? { ok: false, reason: "bad_value" } : { ok: true, value: redacted3 };
|
|
29995
29995
|
}
|
|
29996
29996
|
function redactValue(value, limit4, field2) {
|
|
29997
29997
|
if (value.length > limit4)
|
|
@@ -31678,8 +31678,18 @@ function createSourcePackageStore(executor, providerAnchors) {
|
|
|
31678
31678
|
}
|
|
31679
31679
|
|
|
31680
31680
|
// packages/db-sqlite/dist/repositories/project-grant-read.js
|
|
31681
|
-
function displayName2(value, fallback,
|
|
31682
|
-
return value === null || value.trim() === "" || !
|
|
31681
|
+
function displayName2(value, fallback, reveal) {
|
|
31682
|
+
return value === null || value.trim() === "" || !reveal && value.includes("@") ? fallback : value;
|
|
31683
|
+
}
|
|
31684
|
+
function subjectFields(row, reveal) {
|
|
31685
|
+
if (row.subject_type === "group") {
|
|
31686
|
+
return reveal ? {
|
|
31687
|
+
provider: row.subject_provider,
|
|
31688
|
+
groupValue: row.subject_value,
|
|
31689
|
+
visibility: "visible"
|
|
31690
|
+
} : { provider: row.subject_provider, visibility: "redacted" };
|
|
31691
|
+
}
|
|
31692
|
+
return reveal ? { email: row.subject_value, visibility: "visible" } : { visibility: "redacted" };
|
|
31683
31693
|
}
|
|
31684
31694
|
function createProjectGrantReader(executor) {
|
|
31685
31695
|
return {
|
|
@@ -31705,18 +31715,18 @@ function createProjectGrantReader(executor) {
|
|
|
31705
31715
|
if (input.after !== void 0)
|
|
31706
31716
|
query = query.where("g.id", ">", input.after);
|
|
31707
31717
|
const rows = await executor.all(compile(query));
|
|
31708
|
-
const
|
|
31718
|
+
const reveal = input.revealSubjects === true;
|
|
31709
31719
|
const items = rows.slice(0, input.limit).map((row) => {
|
|
31710
|
-
const
|
|
31720
|
+
const group2 = row.subject_type === "group";
|
|
31711
31721
|
return {
|
|
31712
31722
|
id: row.id,
|
|
31713
31723
|
revision: row.revision,
|
|
31714
31724
|
createdAt: row.created_at,
|
|
31715
31725
|
principal: {
|
|
31716
|
-
kind:
|
|
31726
|
+
kind: group2 ? "group" : row.user_id === null ? "email" : "user",
|
|
31717
31727
|
id: row.user_id ?? row.id,
|
|
31718
|
-
displayName: displayName2(
|
|
31719
|
-
...
|
|
31728
|
+
displayName: displayName2(group2 ? reveal ? row.subject_value : null : row.display_name, group2 ? "Group" : row.user_id === null ? "Pending user" : "User", reveal),
|
|
31729
|
+
...subjectFields(row, reveal)
|
|
31720
31730
|
},
|
|
31721
31731
|
role: {
|
|
31722
31732
|
id: row.role_id,
|
|
@@ -38626,6 +38636,16 @@ function hasOrganizationAdminAuthority(ctx) {
|
|
|
38626
38636
|
const token2 = access.token;
|
|
38627
38637
|
return access.principal?.kind === "user" && token2?.kind === "pat" && token2.scope === "full" && !token2.readOnly && token2.projectMode === "all" && token2.organizationAdmin === true;
|
|
38628
38638
|
}
|
|
38639
|
+
function revealsOrganizationGrantSubjects(ctx) {
|
|
38640
|
+
if (authenticatedActorOf(ctx) === null)
|
|
38641
|
+
return false;
|
|
38642
|
+
return organizationActorOf(ctx)?.permissions.has("org:grants:read") === true;
|
|
38643
|
+
}
|
|
38644
|
+
function revealsProjectGrantSubjects(ctx) {
|
|
38645
|
+
if (authenticatedActorOf(ctx) === null)
|
|
38646
|
+
return false;
|
|
38647
|
+
return projectActorOf(ctx)?.permissions.has("project:grants:read") === true;
|
|
38648
|
+
}
|
|
38629
38649
|
function auditCall(ctx, deps) {
|
|
38630
38650
|
const access = accessContextOf(ctx);
|
|
38631
38651
|
if (access === null)
|
|
@@ -39680,14 +39700,24 @@ var subject = union([
|
|
|
39680
39700
|
value: string2().min(1).max(512)
|
|
39681
39701
|
})
|
|
39682
39702
|
]);
|
|
39703
|
+
var visible = literal("visible");
|
|
39704
|
+
var redacted = literal("redacted");
|
|
39683
39705
|
var listedSubject = union([
|
|
39684
|
-
strictObject({ type: literal("email"), value: string2()
|
|
39706
|
+
strictObject({ type: literal("email"), value: string2(), visibility: visible }),
|
|
39707
|
+
strictObject({ type: literal("email"), visibility: redacted }),
|
|
39685
39708
|
strictObject({
|
|
39686
39709
|
type: literal("group"),
|
|
39687
39710
|
provider: string2(),
|
|
39688
|
-
value: string2()
|
|
39689
|
-
|
|
39711
|
+
value: string2(),
|
|
39712
|
+
visibility: visible
|
|
39713
|
+
}),
|
|
39714
|
+
strictObject({ type: literal("group"), provider: string2(), visibility: redacted })
|
|
39690
39715
|
]);
|
|
39716
|
+
var roleSummary = strictObject({
|
|
39717
|
+
id: string2(),
|
|
39718
|
+
name: string2(),
|
|
39719
|
+
permissions: array(string2())
|
|
39720
|
+
});
|
|
39691
39721
|
var roleParams = strictObject({ role: ulid3 });
|
|
39692
39722
|
var grantParams = strictObject({ grant: ulid3 });
|
|
39693
39723
|
var created2 = strictObject({ id: ulid3 });
|
|
@@ -39705,6 +39735,7 @@ var grantItem = strictObject({
|
|
|
39705
39735
|
id: string2(),
|
|
39706
39736
|
subject: listedSubject,
|
|
39707
39737
|
roleId: string2(),
|
|
39738
|
+
role: roleSummary.nullable(),
|
|
39708
39739
|
createdAt: string2(),
|
|
39709
39740
|
revision: number2().int()
|
|
39710
39741
|
});
|
|
@@ -39855,10 +39886,19 @@ function paged(all, query) {
|
|
|
39855
39886
|
const items = ordered2.slice(0, limit4);
|
|
39856
39887
|
return { items, next: ordered2.length > limit4 ? items[limit4 - 1].id : null };
|
|
39857
39888
|
}
|
|
39858
|
-
function listedSubject2(subject4,
|
|
39859
|
-
if (subject4.type === "email")
|
|
39860
|
-
return
|
|
39861
|
-
|
|
39889
|
+
function listedSubject2(subject4, reveal) {
|
|
39890
|
+
if (subject4.type === "email") {
|
|
39891
|
+
return reveal ? { type: "email", value: subject4.value, visibility: "visible" } : { type: "email", visibility: "redacted" };
|
|
39892
|
+
}
|
|
39893
|
+
return reveal ? {
|
|
39894
|
+
type: "group",
|
|
39895
|
+
provider: subject4.provider,
|
|
39896
|
+
value: subject4.value,
|
|
39897
|
+
visibility: "visible"
|
|
39898
|
+
} : { type: "group", provider: subject4.provider, visibility: "redacted" };
|
|
39899
|
+
}
|
|
39900
|
+
function roleSummary2(role2) {
|
|
39901
|
+
return role2 === void 0 ? null : { id: role2.id, name: role2.name, permissions: [...role2.permissions] };
|
|
39862
39902
|
}
|
|
39863
39903
|
function outcomeOf(result) {
|
|
39864
39904
|
return result.ok ? { status: 204 } : { serviceError: result.error };
|
|
@@ -39891,14 +39931,16 @@ function accessRoutes(deps) {
|
|
|
39891
39931
|
return { error: "unavailable" };
|
|
39892
39932
|
const grants2 = await deps.grants.listOrganization(ctx.org);
|
|
39893
39933
|
const { items, next: next2 } = paged(grants2, query);
|
|
39894
|
-
const
|
|
39934
|
+
const reveal = revealsOrganizationGrantSubjects(ctx);
|
|
39935
|
+
const roles = new Map((await administration.listRoles(ctx.org)).filter((role2) => role2.scope === "organization").map((role2) => [role2.id, role2]));
|
|
39895
39936
|
return {
|
|
39896
39937
|
status: 200,
|
|
39897
39938
|
body: {
|
|
39898
39939
|
items: items.map(({ id: id4, subject: subject4, roleId, createdAt, revision }) => ({
|
|
39899
39940
|
id: id4,
|
|
39900
|
-
subject: listedSubject2(subject4,
|
|
39941
|
+
subject: listedSubject2(subject4, reveal),
|
|
39901
39942
|
roleId,
|
|
39943
|
+
role: roleSummary2(roles.get(roleId)),
|
|
39902
39944
|
createdAt,
|
|
39903
39945
|
revision
|
|
39904
39946
|
})),
|
|
@@ -43506,6 +43548,19 @@ var PROJECT_ACCESS_API_SPECS = [
|
|
|
43506
43548
|
}
|
|
43507
43549
|
}
|
|
43508
43550
|
];
|
|
43551
|
+
var person = { kind: _enum(["user", "email"]), id: string2(), displayName: string2() };
|
|
43552
|
+
var group = {
|
|
43553
|
+
kind: literal("group"),
|
|
43554
|
+
id: string2(),
|
|
43555
|
+
displayName: string2(),
|
|
43556
|
+
provider: string2()
|
|
43557
|
+
};
|
|
43558
|
+
var listedPrincipal = union([
|
|
43559
|
+
strictObject({ ...person, email: string2(), visibility: literal("visible") }),
|
|
43560
|
+
strictObject({ ...person, visibility: literal("redacted") }),
|
|
43561
|
+
strictObject({ ...group, groupValue: string2(), visibility: literal("visible") }),
|
|
43562
|
+
strictObject({ ...group, visibility: literal("redacted") })
|
|
43563
|
+
]);
|
|
43509
43564
|
var PROJECT_GRANTS_LIST_API_SPEC = {
|
|
43510
43565
|
method: "GET",
|
|
43511
43566
|
path: "/_pb/projects/:project/grants",
|
|
@@ -43526,13 +43581,7 @@ var PROJECT_GRANTS_LIST_API_SPEC = {
|
|
|
43526
43581
|
id: ulid6,
|
|
43527
43582
|
revision: number2().int().positive(),
|
|
43528
43583
|
createdAt: string2(),
|
|
43529
|
-
principal:
|
|
43530
|
-
kind: _enum(["user", "email", "group"]),
|
|
43531
|
-
id: string2(),
|
|
43532
|
-
displayName: string2(),
|
|
43533
|
-
provider: string2().optional(),
|
|
43534
|
-
email: string2().optional()
|
|
43535
|
-
}),
|
|
43584
|
+
principal: listedPrincipal,
|
|
43536
43585
|
role: strictObject({ id: ulid6, name: string2(), permissions: array(string2()) })
|
|
43537
43586
|
})),
|
|
43538
43587
|
next: ulid6.nullable()
|
|
@@ -43561,7 +43610,7 @@ function projectAccessRoutes(deps) {
|
|
|
43561
43610
|
projectId: ctx.projectId,
|
|
43562
43611
|
limit: query.limit === void 0 ? 50 : Number(query.limit),
|
|
43563
43612
|
...query.after === void 0 ? {} : { after: query.after },
|
|
43564
|
-
|
|
43613
|
+
revealSubjects: revealsProjectGrantSubjects(ctx)
|
|
43565
43614
|
});
|
|
43566
43615
|
const digest4 = await sha256Hex(JSON.stringify([ctx.org.orgId, ctx.projectId, body]));
|
|
43567
43616
|
return { status: 200, body, etag: Number.parseInt(digest4.slice(0, 12), 16) + 1 };
|
|
@@ -44876,12 +44925,12 @@ function sourceNameRoutes(deps) {
|
|
|
44876
44925
|
}
|
|
44877
44926
|
};
|
|
44878
44927
|
if (actor.kind === "project") {
|
|
44879
|
-
const
|
|
44928
|
+
const visible2 = await deps.service.getVisible(c.org, actor, {
|
|
44880
44929
|
projectId: actor.actor.projectId,
|
|
44881
44930
|
sourceId
|
|
44882
44931
|
});
|
|
44883
|
-
if (!
|
|
44884
|
-
return
|
|
44932
|
+
if (!visible2.ok)
|
|
44933
|
+
return visible2;
|
|
44885
44934
|
}
|
|
44886
44935
|
return { ok: true, value: actor };
|
|
44887
44936
|
};
|
|
@@ -47169,12 +47218,12 @@ function safeSourceUrl(value) {
|
|
|
47169
47218
|
try {
|
|
47170
47219
|
const parsed = new URL(value);
|
|
47171
47220
|
if (parsed.protocol === "https:" || parsed.protocol === "http:") {
|
|
47172
|
-
const
|
|
47173
|
-
if (
|
|
47174
|
-
const decoded = decodeURIComponent(
|
|
47221
|
+
const redacted3 = redactValue(value, 2048, "url");
|
|
47222
|
+
if (redacted3.ok) {
|
|
47223
|
+
const decoded = decodeURIComponent(redacted3.value);
|
|
47175
47224
|
const checked = redactValue(decoded, 2048, "url");
|
|
47176
47225
|
if (checked.ok && checked.value === new URL(decoded).href)
|
|
47177
|
-
url =
|
|
47226
|
+
url = redacted3.value;
|
|
47178
47227
|
}
|
|
47179
47228
|
}
|
|
47180
47229
|
} catch {
|
|
@@ -48515,7 +48564,7 @@ function createRegisteredNameRepository(executor) {
|
|
|
48515
48564
|
where owner.id = ${input.sourceId} and owner.org_id = ${ctx.orgId}
|
|
48516
48565
|
and owner.ecosystem = ${source2.ecosystem}
|
|
48517
48566
|
and owner.type not in (${sql.join(PROXY_TYPES4)}))`;
|
|
48518
|
-
const
|
|
48567
|
+
const visible2 = sourceVisible(ctx, input.sourceId);
|
|
48519
48568
|
const insert = compile(db.insertInto("registered_name").values({
|
|
48520
48569
|
id: input.id,
|
|
48521
48570
|
org_id: ctx.orgId,
|
|
@@ -48524,7 +48573,7 @@ function createRegisteredNameRepository(executor) {
|
|
|
48524
48573
|
pattern: input.pattern
|
|
48525
48574
|
}));
|
|
48526
48575
|
const outcome3 = await runOrgFenced(executor, ctx, fence2, assertGuard(allOf([held, sourceUnchanged]), ctx), [
|
|
48527
|
-
...assertCheck(
|
|
48576
|
+
...assertCheck(visible2),
|
|
48528
48577
|
insert,
|
|
48529
48578
|
auditPendingStatement(ctx, input.audit),
|
|
48530
48579
|
...input.idempotency === void 0 ? [] : [idempotencyInsertStatement(ctx, input.idempotency)]
|
|
@@ -48537,7 +48586,7 @@ function createRegisteredNameRepository(executor) {
|
|
|
48537
48586
|
return "added";
|
|
48538
48587
|
if (outcome3.reason === "indeterminate")
|
|
48539
48588
|
return "indeterminate";
|
|
48540
|
-
if (!await holds2(
|
|
48589
|
+
if (!await holds2(visible2))
|
|
48541
48590
|
return "not_found";
|
|
48542
48591
|
if (outcome3.reason === "authority")
|
|
48543
48592
|
return "forbidden";
|
|
@@ -48563,10 +48612,10 @@ function createRegisteredNameRepository(executor) {
|
|
|
48563
48612
|
const owned = sql`exists (select 1 from registered_name as target
|
|
48564
48613
|
where target.id = ${input.id} and target.org_id = ${ctx.orgId}
|
|
48565
48614
|
and target.source_id = ${sourceId})`;
|
|
48566
|
-
const
|
|
48615
|
+
const visible2 = sourceVisible(ctx, sourceId);
|
|
48567
48616
|
const pause3 = compile(db.updateTable("source").set({ status: "paused", updated_at: sql`strftime('%Y-%m-%dT%H:%M:%fZ','now')` }).where("id", "=", sourceId).where("org_id", "=", ctx.orgId).where("status", "<>", "paused").where(sql`not ${sourceActivatable(ctx, sourceId)}`));
|
|
48568
48617
|
const outcome3 = await runOrgFenced(executor, ctx, fence2, assertGuard(allOf([held, owned]), ctx), [
|
|
48569
|
-
...assertCheck(
|
|
48618
|
+
...assertCheck(visible2),
|
|
48570
48619
|
compile(db.deleteFrom("registered_name").where("id", "=", input.id).where("org_id", "=", ctx.orgId)),
|
|
48571
48620
|
pause3,
|
|
48572
48621
|
auditPendingStatement(ctx, input.pauseAudit, { sql: "changes() = 1", params: [] }),
|
|
@@ -48581,7 +48630,7 @@ function createRegisteredNameRepository(executor) {
|
|
|
48581
48630
|
}
|
|
48582
48631
|
if (outcome3.reason === "indeterminate")
|
|
48583
48632
|
return "indeterminate";
|
|
48584
|
-
if (!await holds2(
|
|
48633
|
+
if (!await holds2(visible2))
|
|
48585
48634
|
return "not_found";
|
|
48586
48635
|
if (outcome3.reason === "authority")
|
|
48587
48636
|
return "forbidden";
|
|
@@ -49462,13 +49511,13 @@ function createImportCredentialRepository(executor, options) {
|
|
|
49462
49511
|
},
|
|
49463
49512
|
async setCredential(ctx, fence2, input) {
|
|
49464
49513
|
const allowed = importWriteAuthority(ctx, fence2, anchors);
|
|
49465
|
-
const
|
|
49514
|
+
const visible2 = sql`exists ${target(ctx, input.runId)}`;
|
|
49466
49515
|
const expected = sql`exists ${target(ctx, input.runId).where("icr.approved_at", "=", input.expected.approvedAt).where("icr.credential_window_until", "=", input.expected.credentialWindowUntil)}`;
|
|
49467
49516
|
const window = sql`exists ${target(ctx, input.runId).where(sql`unixepoch(icr.credential_window_until, 'subsec') > ${CLOCK2}`)}`;
|
|
49468
49517
|
const bound3 = sql`exists ${source2(ctx, input.runId, input.externalRef).select("ics.id").where("ics.id", "=", input.sourceId)}`;
|
|
49469
49518
|
const unset = sql`exists ${db.selectFrom("source as ics").select("ics.id").where("ics.org_id", "=", ctx.orgId).where("ics.id", "=", input.sourceId).where("ics.credential_id", "is", null)}`;
|
|
49470
49519
|
const outcome3 = await runOrgFenced(executor, ctx, fence2, assertGuard(allowed, ctx), [
|
|
49471
|
-
...assertCheck(
|
|
49520
|
+
...assertCheck(visible2),
|
|
49472
49521
|
...assertCheck(expected),
|
|
49473
49522
|
...assertCheck(window),
|
|
49474
49523
|
...assertCheck(bound3),
|
|
@@ -49488,7 +49537,7 @@ function createImportCredentialRepository(executor, options) {
|
|
|
49488
49537
|
if (outcome3.ok || outcome3.reason === "indeterminate")
|
|
49489
49538
|
return outcome3;
|
|
49490
49539
|
const [current] = await executor.all(compile(db.selectNoFrom([
|
|
49491
|
-
sql`case when ${
|
|
49540
|
+
sql`case when ${visible2} then 1 else 0 end`.as("present"),
|
|
49492
49541
|
sql`case when ${bound3} then 1 else 0 end`.as("bound")
|
|
49493
49542
|
])));
|
|
49494
49543
|
if (current?.present !== 1 || current.bound !== 1)
|
|
@@ -49573,10 +49622,10 @@ function createImportRunStore(options) {
|
|
|
49573
49622
|
if (operation !== "requestVerify")
|
|
49574
49623
|
session2(fence2);
|
|
49575
49624
|
const allowed = authority3(ctx, fence2, operation);
|
|
49576
|
-
const
|
|
49625
|
+
const visible2 = sql`exists ${target(ctx, input.runId)}`;
|
|
49577
49626
|
const reauth = operation === "requestVerify" ? sql`1` : fresh(ctx, fence2);
|
|
49578
49627
|
const inspect2 = async () => executor.all(compile(db.selectNoFrom([
|
|
49579
|
-
sql`case when ${
|
|
49628
|
+
sql`case when ${visible2} then 1 else 0 end`.as("present"),
|
|
49580
49629
|
sql`case when ${allowed} then 1 else 0 end`.as("allowed"),
|
|
49581
49630
|
sql`case when ${reauth} then 1 else 0 end`.as("fresh")
|
|
49582
49631
|
])));
|
|
@@ -49622,7 +49671,7 @@ function createImportRunStore(options) {
|
|
|
49622
49671
|
and (${e.beforeImageExpiresAt} is null or unixepoch(${e.beforeImageExpiresAt}, 'subsec') > ${CLOCK3})`;
|
|
49623
49672
|
break;
|
|
49624
49673
|
}
|
|
49625
|
-
mutations.push(...assertCheck(
|
|
49674
|
+
mutations.push(...assertCheck(visible2), ...assertCheck(reauth), ...assertCheck(expected(ctx, input)), ...assertCheck(sql`(${valid2})`));
|
|
49626
49675
|
if (operation === "requestApply" || operation === "requestRollback" || operation === "requestVerify") {
|
|
49627
49676
|
const type2 = operation === "requestVerify" ? IMPORT_VERIFICATION_JOB.type : operation === "requestApply" ? IMPORT_RUN_JOB.apply : IMPORT_RUN_JOB.rollback;
|
|
49628
49677
|
const resource = operation === "requestVerify" ? IMPORT_VERIFICATION_JOB.resourceKey(input.runId) : IMPORT_RUN_JOB.resourceKey(input.runId);
|
|
@@ -50285,7 +50334,7 @@ function createSourceRepository(executor) {
|
|
|
50285
50334
|
});
|
|
50286
50335
|
const admin = sql`EXISTS (SELECT 1 FROM (${permissions}) AS removal_admin
|
|
50287
50336
|
WHERE removal_admin.scope = 'organization' AND removal_admin.protects = 1)`;
|
|
50288
|
-
const
|
|
50337
|
+
const visible2 = sql`EXISTS (SELECT 1 FROM source
|
|
50289
50338
|
WHERE org_id = ${ctx.orgId} AND id = ${input.id}
|
|
50290
50339
|
AND (project_id IS NULL OR EXISTS (SELECT 1 FROM project
|
|
50291
50340
|
WHERE project.org_id = ${ctx.orgId} AND project.id = source.project_id AND project.status = 'active')))`;
|
|
@@ -50293,13 +50342,13 @@ function createSourceRepository(executor) {
|
|
|
50293
50342
|
const [administrator] = await executor.all(probe3(admin, false));
|
|
50294
50343
|
if (permission2?.held !== 1 || administrator?.held !== 1)
|
|
50295
50344
|
return "forbidden";
|
|
50296
|
-
const [source2] = await executor.all(probe3(
|
|
50345
|
+
const [source2] = await executor.all(probe3(visible2, false));
|
|
50297
50346
|
if (source2?.held !== 1)
|
|
50298
50347
|
return "not_found";
|
|
50299
50348
|
const accept = acceptRemovalStatement(ctx, { sourceId: input.id, refusal: input.refusal });
|
|
50300
50349
|
const outcome3 = await runOrgFenced(executor, ctx, fence2, assertGuard(held, ctx), [
|
|
50301
50350
|
...assertCheck(admin),
|
|
50302
|
-
...assertCheck(
|
|
50351
|
+
...assertCheck(visible2),
|
|
50303
50352
|
accept,
|
|
50304
50353
|
...assertCheck(sql`changes() = 1`),
|
|
50305
50354
|
auditPendingStatement(ctx, input.audit)
|
|
@@ -50310,7 +50359,7 @@ function createSourceRepository(executor) {
|
|
|
50310
50359
|
return "forbidden";
|
|
50311
50360
|
if (outcome3.reason === "indeterminate")
|
|
50312
50361
|
return "indeterminate";
|
|
50313
|
-
const [remaining] = await executor.all(probe3(
|
|
50362
|
+
const [remaining] = await executor.all(probe3(visible2, false));
|
|
50314
50363
|
return remaining?.held === 1 ? "conflict" : "not_found";
|
|
50315
50364
|
},
|
|
50316
50365
|
async getVisible(ctx, input) {
|
|
@@ -51317,7 +51366,7 @@ function distTagStatementGroups(ctx, guard, request) {
|
|
|
51317
51366
|
[removeHistory, remove2],
|
|
51318
51367
|
[advance]
|
|
51319
51368
|
];
|
|
51320
|
-
const statementCount = groups.reduce((sum,
|
|
51369
|
+
const statementCount = groups.reduce((sum, group2) => sum + group2.length, 0);
|
|
51321
51370
|
const setOffset = head.length + probes2.length;
|
|
51322
51371
|
return {
|
|
51323
51372
|
groups,
|
|
@@ -52465,7 +52514,7 @@ function createCatalogueWriter(executor, options = {}) {
|
|
|
52465
52514
|
versions: [input.version]
|
|
52466
52515
|
};
|
|
52467
52516
|
const bound3 = (statements) => parameterBytes(statements.map((s) => bindPackage(s, placeholder, lookup)));
|
|
52468
|
-
const
|
|
52517
|
+
const group2 = (build) => {
|
|
52469
52518
|
try {
|
|
52470
52519
|
return bound3(build().statements);
|
|
52471
52520
|
} catch (error2) {
|
|
@@ -52475,7 +52524,7 @@ function createCatalogueWriter(executor, options = {}) {
|
|
|
52475
52524
|
throw error2;
|
|
52476
52525
|
}
|
|
52477
52526
|
};
|
|
52478
|
-
return Math.max(
|
|
52527
|
+
return Math.max(group2(() => versionUpdateStatements(ctx, guard, request)), group2(() => versionInsertStatements(ctx, guard, request)));
|
|
52479
52528
|
},
|
|
52480
52529
|
syncPackageCost({ versions, tags, guardStatements: guard }) {
|
|
52481
52530
|
if (!Number.isSafeInteger(versions) || versions < 0 || versions > CATALOGUE_SYNC_VERSIONS_PER_CALL || !Number.isSafeInteger(tags) || tags < 0 || tags > MAX_TAGS_PER_CALL || !Number.isSafeInteger(guard) || guard < 1)
|
|
@@ -52548,7 +52597,7 @@ function createCatalogueWriter(executor, options = {}) {
|
|
|
52548
52597
|
insert?.statements ?? [],
|
|
52549
52598
|
...tags?.groups ?? [],
|
|
52550
52599
|
[lookup]
|
|
52551
|
-
].map((
|
|
52600
|
+
].map((group2) => group2.map((statement14) => {
|
|
52552
52601
|
const bound3 = statement14 === tagAdvance ? advance : bindPackage(statement14, placeholder, lookup);
|
|
52553
52602
|
return /^(insert into "version" |update "version" )/i.test(bound3.sql) ? { ...bound3, sql: `${bound3.sql} returning id, version` } : bound3;
|
|
52554
52603
|
}));
|
|
@@ -52561,17 +52610,17 @@ function createCatalogueWriter(executor, options = {}) {
|
|
|
52561
52610
|
};
|
|
52562
52611
|
const planned = [];
|
|
52563
52612
|
let current = [];
|
|
52564
|
-
for (const
|
|
52565
|
-
if (
|
|
52613
|
+
for (const group2 of groups) {
|
|
52614
|
+
if (group2.length === 0)
|
|
52566
52615
|
continue;
|
|
52567
|
-
checkBatch(
|
|
52616
|
+
checkBatch(group2);
|
|
52568
52617
|
try {
|
|
52569
|
-
checkBatch(sealBatch([...current, ...
|
|
52618
|
+
checkBatch(sealBatch([...current, ...group2]).statements);
|
|
52570
52619
|
} catch {
|
|
52571
52620
|
planned.push(sealBatch(current));
|
|
52572
52621
|
current = [...guard];
|
|
52573
52622
|
}
|
|
52574
|
-
current.push(...
|
|
52623
|
+
current.push(...group2);
|
|
52575
52624
|
}
|
|
52576
52625
|
if (current.length > 0)
|
|
52577
52626
|
planned.push(sealBatch(current));
|
|
@@ -52597,7 +52646,7 @@ function createCatalogueWriter(executor, options = {}) {
|
|
|
52597
52646
|
offset += update?.statements.length ?? 0;
|
|
52598
52647
|
const inserted = insert?.result(results.slice(offset, offset + insert.statements.length));
|
|
52599
52648
|
offset += insert?.statements.length ?? 0;
|
|
52600
|
-
const tagStatementCount = tags?.groups.reduce((sum,
|
|
52649
|
+
const tagStatementCount = tags?.groups.reduce((sum, group2) => sum + group2.length, 0) ?? 0;
|
|
52601
52650
|
const tagResult = tags?.result(results.slice(offset, offset + tagStatementCount));
|
|
52602
52651
|
const packageId = results.at(-1)?.rows[0]?.["id"];
|
|
52603
52652
|
if (typeof packageId !== "string")
|
|
@@ -53328,7 +53377,7 @@ function openApiRoute(document3) {
|
|
|
53328
53377
|
}
|
|
53329
53378
|
|
|
53330
53379
|
// packages/core/dist/api/openapi-document.js
|
|
53331
|
-
var openApiDocument = JSON.parse('{"components":{"schemas":{"ErrorEnvelope":{"additionalProperties":false,"properties":{"error":{"additionalProperties":false,"dependentSchemas":{"problems":{"properties":{"code":{"const":"weak_password"}}}},"properties":{"code":{"type":"string"},"details":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","unrecognized_keys","invalid_union","invalid","invalid_encoding","too_deep","invalid_json"],"type":"string"},"location":{"enum":["params","query","body"],"type":"string"},"path":{"type":"string"}},"required":["path","code"],"type":"object"},"maxItems":20,"type":"array"},"message":{"type":"string"},"problems":{"items":{"enum":["too_short","too_long","equals_email","not_well_formed"],"type":"string"},"minItems":1,"type":"array"},"requestId":{"type":"string"}},"required":["code","message","requestId"],"type":"object"}},"required":["error"],"type":"object"}},"securitySchemes":{"bearer":{"scheme":"bearer","type":"http"},"session":{"description":"Session authentication. Send the X-CSRF-Token header on state-changing requests.","in":"cookie","name":"__Host-pb_session","type":"apiKey"}}},"info":{"title":"Package Broker","version":"2"},"jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","openapi":"3.1.0","paths":{"/_pb/audit":{"get":{"operationId":"listAudit","parameters":[{"in":"query","name":"action","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"actor","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maxLength":16,"pattern":"^[0-9]+$","type":"string"}},{"in":"query","name":"project","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"actor":{"additionalProperties":false,"properties":{"id":{"type":["string","null"]},"type":{"type":"string"}},"required":["type","id"],"type":"object"},"createdAt":{"type":"string"},"id":{"type":"string"},"payload":{"additionalProperties":false,"properties":{"changes":{"additionalProperties":{"additionalProperties":false,"properties":{"new":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]},"old":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]}},"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"op_id":{"type":"string"},"request_id":{"type":"string"}},"type":"object"},"projectId":{"type":["string","null"]},"seq":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"targetId":{"type":["string","null"]},"targetType":{"type":"string"}},"required":["id","seq","action","actor","targetType","targetId","projectId","createdAt","payload"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List audit events","tags":["audit"],"x-pb-boundary":"organization","x-pb-permission":"org:audit:read","x-pb-session-only":false}},"/_pb/audit/head":{"get":{"operationId":"auditHead","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"hash":{"type":"string"},"lastVerifiedAt":{"type":["string","null"]},"pendingCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"seq":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["seq","hash","pendingCount","lastVerifiedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Read audit chain head","tags":["audit"],"x-pb-boundary":"organization","x-pb-permission":"org:audit:read","x-pb-session-only":false}},"/_pb/auth/local/login":{"post":{"operationId":"localLogin","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"maxLength":1024,"type":"string"},"email":{"maxLength":1024,"type":"string"},"password":{"maxLength":1024,"type":"string"}},"required":["email","password","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Sign in with the local login","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/local/reauth":{"post":{"operationId":"localReauth","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"maxLength":1024,"type":"string"},"password":{"maxLength":1024,"type":"string"}},"required":["password","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Re-authenticate with the local login","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/local/setup/finish":{"post":{"operationId":"finishLocalSetup","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"maxLength":1024,"type":"string"},"password":{"maxLength":1024,"type":"string"},"token":{"maxLength":1024,"type":"string"}},"required":["token","password","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Finish the local login setup and sign in","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/local/setup/start":{"post":{"operationId":"startLocalSetup","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"token":{"maxLength":1024,"type":"string"}},"required":["token"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"provisioningUri":{"type":"string"},"secret":{"type":"string"}},"required":["provisioningUri","secret"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Start the local login setup","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/logout":{"post":{"operationId":"logout","responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"}},"security":[],"summary":"End the current session","tags":["session"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/providers":{"get":{"operationId":"listAuthProviders","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"local":{"type":"boolean"},"providers":{"items":{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["cloudflare-access","oidc"],"type":"string"},"supportsReauth":{"type":"boolean"}},"required":["id","kind","displayName","supportsReauth"],"type":"object"},"type":"array"}},"required":["providers","local"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"}},"security":[],"summary":"List the sign-in methods","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/sso/{provider}/callback":{"get":{"operationId":"finishSsoLogin","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}}],"responses":{"303":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[],"summary":"Finish a single sign-on login or re-authentication","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/sso/{provider}/start":{"post":{"operationId":"startSsoLogin","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"purpose":{"enum":["login","reauth"],"type":"string"},"returnTo":{"type":"string"}},"required":["purpose"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"location":{"type":"string"}},"required":["location"],"type":"object"}}},"description":"Response"},"303":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Upstream request refused; Bad gateway"}},"security":[],"summary":"Start a single sign-on login or re-authentication","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/grants":{"get":{"operationId":"listGrants","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"roleId":{"type":"string"},"subject":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"email","type":"string"},"value":{"type":"string"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"provider":{"type":"string"},"type":{"const":"group","type":"string"},"value":{"type":"string"}},"required":["type","provider"],"type":"object"}]}},"required":["id","subject","roleId","createdAt","revision"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List organization grants","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:read","x-pb-session-only":false},"post":{"operationId":"createGrant","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"subject":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"email","type":"string"},"value":{"maxLength":320,"minLength":1,"type":"string"}},"required":["type","value"],"type":"object"},{"additionalProperties":false,"properties":{"provider":{"maxLength":64,"minLength":1,"type":"string"},"type":{"const":"group","type":"string"},"value":{"maxLength":512,"minLength":1,"type":"string"}},"required":["type","provider","value"],"type":"object"}]}},"required":["subject","roleId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add an organization grant","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:write","x-pb-session-only":true}},"/_pb/grants/{grant}":{"delete":{"operationId":"revokeGrant","parameters":[{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a grant","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:write","x-pb-session-only":true},"patch":{"operationId":"changeGrant","parameters":[{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["roleId"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change the role of a grant","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:write","x-pb-session-only":true}},"/_pb/import-runs":{"get":{"operationId":"listImportRuns","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"maxLength":4096,"minLength":1,"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"acceptedAt":{"type":["string","null"]},"approvedAt":{"type":["string","null"]},"approvedByUserId":{"type":["string","null"]},"beforeImageExpiresAt":{"type":["string","null"]},"credentialWindowUntil":{"type":["string","null"]},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"planHash":{"type":["string","null"]},"state":{"enum":["planned","applying","failed","applied","verifying","verified","rolled_back","cancelled"],"type":"string"}},"required":["id","state","planHash","approvedAt","approvedByUserId","acceptedAt","beforeImageExpiresAt"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List import runs","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false},"post":{"operationId":"createImportRun","requestBody":{"content":{"application/json":{"schema":{}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"planHash":{"type":"string"},"state":{"const":"planned","type":"string"}},"required":["id","planHash","state"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Plan an import","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/import-runs/{id}":{"get":{"operationId":"getImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"acceptedAt":{"type":["string","null"]},"approvedAt":{"type":["string","null"]},"approvedByUserId":{"type":["string","null"]},"beforeImageExpiresAt":{"type":["string","null"]},"credentialWindowUntil":{"type":["string","null"]},"credentials":{"items":{"additionalProperties":false,"properties":{"bound":{"type":"boolean"},"sourceRef":{"type":"string"}},"required":["sourceRef","bound"],"type":"object"},"type":"array"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"planHash":{"type":["string","null"]},"state":{"enum":["planned","applying","failed","applied","verifying","verified","rolled_back","cancelled"],"type":"string"}},"required":["id","state","planHash","approvedAt","approvedByUserId","acceptedAt","beforeImageExpiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Read an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/import-runs/{id}/accept":{"post":{"operationId":"acceptImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"accept an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/apply":{"post":{"operationId":"applyImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"apply an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/approve":{"post":{"operationId":"approveImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"planHash":{"maxLength":64,"type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"approve an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/cancel":{"post":{"operationId":"cancelImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"cancel an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/credentials/{externalRef}":{"put":{"operationId":"acceptImportCredential","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"externalRef","required":true,"schema":{"pattern":"^[A-Za-z0-9._:/-]{1,200}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"kind":{"enum":["http_basic","bearer","header","query","github_app","npm_token","ssh_key"],"type":"string"},"material":{"maxLength":16384,"type":"string"}},"required":["kind","material"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Bind an imported source credential","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/import-runs/{id}/rollback":{"post":{"operationId":"rollbackImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"rollback an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/verify":{"post":{"operationId":"verifyImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"verify an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/me":{"get":{"operationId":"getMe","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"organization":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"principal":{"additionalProperties":false,"properties":{"id":{"type":"string"},"kind":{"enum":["user","service","customer"],"type":"string"}},"required":["kind","id"],"type":"object"},"user":{"anyOf":[{"additionalProperties":false,"properties":{"displayName":{"type":["string","null"]},"email":{"type":["string","null"]},"id":{"type":"string"}},"required":["id","email","displayName"],"type":"object"},{"type":"null"}]}},"required":["principal","user","organization"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"}},"security":[],"summary":"Get the caller identity","tags":["me"],"x-pb-boundary":"authenticated","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/me/permissions":{"get":{"operationId":"getMyPermissions","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"organization":{"items":{"type":"string"},"type":"array"}},"required":["organization"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"}},"security":[],"summary":"Get caller organization permissions","tags":["permissions"],"x-pb-boundary":"authenticated","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/me/tokens":{"get":{"operationId":"listMyTokens","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","expired","revoked"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"},"type":"array"},"lifetime":{"additionalProperties":false,"properties":{"personal":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"},"service":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"}},"required":["personal","service"],"type":"object"},"next":{"type":["string","null"]}},"required":["items","next","lifetime"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"}},"security":[{"session":[]}],"summary":"List the caller personal access tokens","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true},"post":{"operationId":"createPersonalToken","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"projectIds":{"items":{"type":"string"},"maxItems":200,"type":"array"},"projectMode":{"enum":["all","selected"],"type":"string"},"readOnly":{"type":"boolean"},"scope":{"enum":["read","write","full"],"type":"string"}},"required":["name","scope","projectMode","projectIds"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"token":{"type":"string"}},"required":["id","token"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Issue a personal access token","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true}},"/_pb/me/tokens/{token}":{"delete":{"operationId":"revokeMyToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a personal access token","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true},"get":{"operationId":"getMyToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"Get a personal access token","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true}},"/_pb/organization":{"get":{"operationId":"getOrganization","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"settings":{"additionalProperties":false,"properties":{"retentionRemovedUpstreamDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokenDefaultExpiryDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokenMaxLifetimeDays":{"additionalProperties":false,"properties":{"personal":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"service":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["personal","service"],"type":"object"}},"required":["retentionRemovedUpstreamDays","tokenDefaultExpiryDays","tokenMaxLifetimeDays"],"type":"object"},"slug":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","name","settings","createdAt","updatedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Get the organization","tags":["organization"],"x-pb-boundary":"organization","x-pb-permission":"org:read","x-pb-session-only":false}},"/_pb/packages":{"get":{"operationId":"listPackages","parameters":[{"in":"query","name":"after","required":false,"schema":{"maxLength":464,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+:[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"ecosystem","required":false,"schema":{"enum":["composer","npm"],"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"project","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"q","required":false,"schema":{"maxLength":100,"minLength":1,"type":"string"}},{"in":"query","name":"source","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"ecosystem":{"enum":["composer","npm"],"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastSyncedAt":{"type":["string","null"]},"latestVersion":{"type":["string","null"]},"name":{"type":"string"},"source":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"}},"required":["id","name","type","projectId"],"type":"object"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"},"versionCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["id","ecosystem","name","latestVersion","status","source","versionCount","lastSyncedAt"],"type":"object"},"type":"array"},"next":{"anyOf":[{"maxLength":464,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+:[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List packages","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false}},"/_pb/packages/{package}/versions":{"get":{"operationId":"listPackageVersions","parameters":[{"in":"path","name":"package","required":true,"schema":{"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"publishedAt":{"type":"string"},"removedUpstreamAt":{"type":["string","null"]},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"stability":{"enum":["dev","alpha","beta","RC","stable"],"type":"string"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream","yanked"],"type":"string"},"tombstonedAt":{"type":["string","null"]},"version":{"type":"string"},"vulnerability":{"additionalProperties":false,"properties":{"advisories":{"items":{"additionalProperties":false,"properties":{"detailsFetchedAt":{"type":["string","null"]},"id":{"type":"string"},"severity":{"additionalProperties":false,"properties":{"entries":{"items":{"additionalProperties":false,"properties":{"score":{"type":"string"},"type":{"type":"string"}},"required":["type","score"],"type":"object"},"type":"array"},"level":{"enum":["critical","high","medium","low","unknown"],"type":"string"}},"required":["level","entries"],"type":"object"},"url":{"type":"null"}},"required":["id","url","severity","detailsFetchedAt"],"type":"object"},"maxItems":20,"type":"array"},"advisoriesTruncated":{"type":"boolean"},"advisoryCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"detailsComplete":{"type":"boolean"},"fetchedAt":{"type":["string","null"]},"lastKnownStatus":{"anyOf":[{"enum":["affected","not_affected"],"type":"string"},{"type":"null"}]},"reason":{"anyOf":[{"enum":["not_checked","disabled","unsupported_version","pending","upstream_unavailable","incomplete","expired"],"type":"string"},{"type":"null"}]},"source":{"anyOf":[{"const":"osv","type":"string"},{"type":"null"}]},"status":{"enum":["affected","not_affected","unknown","stale"],"type":"string"}},"required":["status","reason","source","fetchedAt","lastKnownStatus","advisoryCount","advisories","detailsComplete","advisoriesTruncated"],"type":"object"}},"required":["vulnerability","id","version","stability","status","publishedAt","removedUpstreamAt","tombstonedAt","revision"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List package versions","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false}},"/_pb/packages/{package}/versions/{version}/quarantine":{"post":{"operationId":"quarantinePackageVersion","parameters":[{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"quarantine a package version","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:packages:manage","x-pb-session-only":true}},"/_pb/packages/{package}/versions/{version}/release":{"post":{"operationId":"releasePackageVersion","parameters":[{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"release a package version","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:packages:manage","x-pb-session-only":true}},"/_pb/packages/{package}/versions/{version}/tombstone":{"post":{"operationId":"tombstonePackageVersion","parameters":[{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"tombstone a package version","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:packages:manage","x-pb-session-only":true}},"/_pb/projects":{"get":{"operationId":"listProjects","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"q","required":false,"schema":{"description":"Case-sensitive slug or name prefix; LIKE wildcards % and _ are refused.","maxLength":200,"minLength":1,"pattern":"^[^%_\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u2028\\\\u2029]+$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","archived"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"etag":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"status":{"enum":["active","archived"],"type":"string"}},"required":["id","slug","name","status","etag"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[],"summary":"List readable projects","tags":["projects"],"x-pb-boundary":"authenticated","x-pb-permission":null,"x-pb-session-only":false},"post":{"operationId":"createProject","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"initialRoleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"maxLength":1000,"minLength":1,"type":"string"},"requirePublishApproval":{"type":"boolean"},"slug":{"maxLength":200,"minLength":1,"type":"string"},"tokenMaxScope":{"enum":["read","write","full"],"type":"string"}},"required":["slug","name"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a project","tags":["projects"],"x-pb-boundary":"organization","x-pb-permission":"org:projects:create","x-pb-session-only":true}},"/_pb/projects/{project}":{"get":{"operationId":"getProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"requirePublishApproval":{"type":"boolean"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"slug":{"type":"string"},"status":{"enum":["active","archived"],"type":"string"},"tokenMaxScope":{"enum":["read","write","full"],"type":"string"}},"required":["id","slug","name","status","tokenMaxScope","requirePublishApproval","revision"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Read a project","tags":["projects"],"x-pb-boundary":"project","x-pb-permission":"project:read","x-pb-session-only":false},"patch":{"operationId":"updateProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"maxLength":1000,"minLength":1,"type":"string"},"requirePublishApproval":{"type":"boolean"},"tokenMaxScope":{"enum":["read","write","full"],"type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change project settings","tags":["projects"],"x-pb-boundary":"project","x-pb-permission":"project:settings:write","x-pb-session-only":true}},"/_pb/projects/{project}/archive":{"post":{"operationId":"archiveProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Archive a project","tags":["projects"],"x-pb-boundary":"organization","x-pb-permission":"org:projects:archive","x-pb-session-only":true}},"/_pb/projects/{project}/audit":{"get":{"operationId":"listProjectAudit","parameters":[{"in":"path","name":"project","required":true,"schema":{"maxLength":64,"minLength":1,"type":"string"}},{"in":"query","name":"action","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"actor","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maxLength":16,"pattern":"^[0-9]+$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"actor":{"additionalProperties":false,"properties":{"id":{"type":["string","null"]},"type":{"type":"string"}},"required":["type","id"],"type":"object"},"createdAt":{"type":"string"},"id":{"type":"string"},"payload":{"additionalProperties":false,"properties":{"changes":{"additionalProperties":{"additionalProperties":false,"properties":{"new":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]},"old":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]}},"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"op_id":{"type":"string"},"request_id":{"type":"string"}},"type":"object"},"projectId":{"type":["string","null"]},"seq":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"targetId":{"type":["string","null"]},"targetType":{"type":"string"}},"required":["id","seq","action","actor","targetType","targetId","projectId","createdAt","payload"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List project audit events","tags":["audit"],"x-pb-boundary":"project","x-pb-permission":"project:audit:read","x-pb-session-only":false}},"/_pb/projects/{project}/grants":{"get":{"operationId":"listProjectGrants","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"principal":{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["user","email","group"],"type":"string"},"provider":{"type":"string"}},"required":["kind","id","displayName"],"type":"object"},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"role":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"}},"required":["id","name","permissions"],"type":"object"}},"required":["id","revision","createdAt","principal","role"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List project grants and their principals","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:read","x-pb-session-only":false},"post":{"operationId":"createProjectGrant","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"subject":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"email","type":"string"},"value":{"maxLength":320,"minLength":1,"type":"string"}},"required":["type","value"],"type":"object"},{"additionalProperties":false,"properties":{"provider":{"maxLength":64,"minLength":1,"type":"string"},"type":{"const":"group","type":"string"},"value":{"maxLength":256,"minLength":1,"type":"string"}},"required":["type","provider","value"],"type":"object"}]}},"required":["subject","roleId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Grant project access","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:write","x-pb-session-only":true}},"/_pb/projects/{project}/grants/{grant}":{"delete":{"operationId":"revokeProjectGrant","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a project grant","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:write","x-pb-session-only":true},"patch":{"operationId":"changeProjectGrant","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["roleId"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change the role of a project grant","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:write","x-pb-session-only":true}},"/_pb/projects/{project}/packages":{"get":{"operationId":"listProjectPackages","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"maxLength":437,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+$","type":"string"}},{"in":"query","name":"ecosystem","required":false,"schema":{"enum":["composer","npm"],"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"q","required":false,"schema":{"maxLength":100,"minLength":1,"type":"string"}},{"in":"query","name":"source","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"ecosystem":{"enum":["composer","npm"],"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastSyncedAt":{"type":["string","null"]},"latestVersion":{"type":["string","null"]},"name":{"type":"string"},"source":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"}},"required":["id","name","type","projectId"],"type":"object"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"},"versionCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["id","ecosystem","name","latestVersion","status","source","versionCount","lastSyncedAt"],"type":"object"},"type":"array"},"next":{"anyOf":[{"maxLength":437,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List packages","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:read","x-pb-session-only":false}},"/_pb/projects/{project}/packages/{package}/versions":{"get":{"operationId":"listProjectPackageVersions","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"publishedAt":{"type":"string"},"removedUpstreamAt":{"type":["string","null"]},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"stability":{"enum":["dev","alpha","beta","RC","stable"],"type":"string"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream","yanked"],"type":"string"},"tombstonedAt":{"type":["string","null"]},"version":{"type":"string"},"vulnerability":{"additionalProperties":false,"properties":{"advisories":{"items":{"additionalProperties":false,"properties":{"detailsFetchedAt":{"type":["string","null"]},"id":{"type":"string"},"severity":{"additionalProperties":false,"properties":{"entries":{"items":{"additionalProperties":false,"properties":{"score":{"type":"string"},"type":{"type":"string"}},"required":["type","score"],"type":"object"},"type":"array"},"level":{"enum":["critical","high","medium","low","unknown"],"type":"string"}},"required":["level","entries"],"type":"object"},"url":{"type":"null"}},"required":["id","url","severity","detailsFetchedAt"],"type":"object"},"maxItems":20,"type":"array"},"advisoriesTruncated":{"type":"boolean"},"advisoryCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"detailsComplete":{"type":"boolean"},"fetchedAt":{"type":["string","null"]},"lastKnownStatus":{"anyOf":[{"enum":["affected","not_affected"],"type":"string"},{"type":"null"}]},"reason":{"anyOf":[{"enum":["not_checked","disabled","unsupported_version","pending","upstream_unavailable","incomplete","expired"],"type":"string"},{"type":"null"}]},"source":{"anyOf":[{"const":"osv","type":"string"},{"type":"null"}]},"status":{"enum":["affected","not_affected","unknown","stale"],"type":"string"}},"required":["status","reason","source","fetchedAt","lastKnownStatus","advisoryCount","advisories","detailsComplete","advisoriesTruncated"],"type":"object"}},"required":["vulnerability","id","version","stability","status","publishedAt","removedUpstreamAt","tombstonedAt","revision"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List package versions","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:read","x-pb-session-only":false}},"/_pb/projects/{project}/packages/{package}/versions/{version}/quarantine":{"post":{"operationId":"quarantineProjectPackageVersion","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"quarantine a package version","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:manage","x-pb-session-only":true}},"/_pb/projects/{project}/packages/{package}/versions/{version}/release":{"post":{"operationId":"releaseProjectPackageVersion","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"release a package version","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:manage","x-pb-session-only":true}},"/_pb/projects/{project}/packages/{package}/versions/{version}/tombstone":{"post":{"operationId":"tombstoneProjectPackageVersion","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"tombstone a package version","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:manage","x-pb-session-only":true}},"/_pb/projects/{project}/permissions":{"get":{"operationId":"getMyProjectPermissions","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"project":{"items":{"type":"string"},"type":"array"}},"required":["project"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Get caller project permissions","tags":["permissions"],"x-pb-boundary":"project","x-pb-permission":"project:read","x-pb-session-only":false}},"/_pb/projects/{project}/resolve":{"get":{"operationId":"resolveName","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"name","required":true,"schema":{"maxLength":428,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"candidates":{"items":{"additionalProperties":false,"properties":{"eligible":{"type":"boolean"},"projectLevel":{"type":"boolean"},"sourceId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"sourceName":{"type":"string"}},"required":["sourceId","sourceName","projectLevel","eligible"],"type":"object"},"type":"array"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"name":{"type":"string"},"winner":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["name","ecosystem","candidates","winner"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Preview source resolution for a package name","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:read","x-pb-session-only":false}},"/_pb/projects/{project}/restore":{"post":{"operationId":"restoreProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Restore a project","tags":["projects"],"x-pb-boundary":"organization","x-pb-permission":"org:projects:archive","x-pb-session-only":true}},"/_pb/projects/{project}/service-principals/{principal}/permissions":{"put":{"operationId":"setProjectServicePrincipalPermissions","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"permissions":{"items":{"enum":["org:read","org:settings:write","org:users:read","org:users:write","org:roles:read","org:roles:write","org:grants:read","org:grants:write","org:projects:create","org:projects:archive","org:sources:read","org:sources:write","org:tokens:read","org:tokens:revoke","org:service-principals:write","org:packages:manage","org:import:write","org:import:approve","org:audit:read","project:read","project:settings:write","project:grants:read","project:grants:write","project:packages:read","project:packages:write","project:packages:manage","project:sources:read","project:sources:write","project:service-principals:write","project:tokens:create","project:tokens:read","project:tokens:revoke","project:audit:read"],"type":"string"},"type":"array"}},"required":["permissions"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Set service principal permissions","tags":["service-principals"],"x-pb-boundary":"project","x-pb-permission":"project:service-principals:write","x-pb-session-only":true}},"/_pb/projects/{project}/service-principals/{principal}/restore":{"post":{"operationId":"restoreProjectServicePrincipal","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Restore service principal","tags":["service-principals"],"x-pb-boundary":"project","x-pb-permission":"project:service-principals:write","x-pb-session-only":true}},"/_pb/projects/{project}/service-principals/{principal}/suspend":{"post":{"operationId":"suspendProjectServicePrincipal","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Suspend service principal","tags":["service-principals"],"x-pb-boundary":"project","x-pb-permission":"project:service-principals:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources":{"get":{"operationId":"listProjectSources","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"anyOf":[{"additionalProperties":false,"properties":{"attached":{"const":true,"type":"boolean"},"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"configComplete":{"type":"boolean"},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"githubAuthentication":{"enum":["app","token"],"type":"string"},"hasCredential":{"type":"boolean"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastError":{"type":["string","null"]},"lastPolledAt":{"type":["string","null"]},"lastRemovalRefusal":{"anyOf":[{"additionalProperties":false,"properties":{"absent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"at":{"type":"string"},"listed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"successful":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["at","absent","listed","successful"],"type":"object"},{"type":"null"}]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"nextPollAt":{"type":["string","null"]},"pollIntervalSeconds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"precedence":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"removalAcceptanceArmed":{"type":"boolean"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["active","degraded","failing","paused"],"type":"string"},"sync":{"additionalProperties":false,"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["network","timeout","http_error","unauthorized","rate_limited","not_found","invalid_response","tag_limit_exceeded","mass_absence","too_large","policy_denied","credential_unavailable","internal"],"type":"string"},"count":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["code","count"],"type":"object"},"type":"array"},"failed":{"description":"Terminal package failures.","maximum":9007199254740991,"minimum":0,"type":"integer"},"generation":{"type":"string"},"listing":{"type":"boolean"},"queued":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"retrying":{"description":"Failed packages queued for another attempt; disjoint from queued, running, failed and completed.","maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["listing","generation","queued","running","retrying","failed","completed","errors"],"type":"object"},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","projectId","name","ecosystem","type","url","status","removalPolicy","pollIntervalSeconds","lastSuccessAt","lastError","lastPolledAt","nextPollAt","hasCredential","lastRemovalRefusal","removalAcceptanceArmed","attached","precedence"],"type":"object"},{"additionalProperties":false,"properties":{"attached":{"const":false,"type":"boolean"},"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"configComplete":{"type":"boolean"},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"githubAuthentication":{"enum":["app","token"],"type":"string"},"hasCredential":{"type":"boolean"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastError":{"type":["string","null"]},"lastPolledAt":{"type":["string","null"]},"lastRemovalRefusal":{"anyOf":[{"additionalProperties":false,"properties":{"absent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"at":{"type":"string"},"listed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"successful":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["at","absent","listed","successful"],"type":"object"},{"type":"null"}]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"nextPollAt":{"type":["string","null"]},"pollIntervalSeconds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"removalAcceptanceArmed":{"type":"boolean"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["active","degraded","failing","paused"],"type":"string"},"sync":{"additionalProperties":false,"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["network","timeout","http_error","unauthorized","rate_limited","not_found","invalid_response","tag_limit_exceeded","mass_absence","too_large","policy_denied","credential_unavailable","internal"],"type":"string"},"count":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["code","count"],"type":"object"},"type":"array"},"failed":{"description":"Terminal package failures.","maximum":9007199254740991,"minimum":0,"type":"integer"},"generation":{"type":"string"},"listing":{"type":"boolean"},"queued":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"retrying":{"description":"Failed packages queued for another attempt; disjoint from queued, running, failed and completed.","maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["listing","generation","queued","running","retrying","failed","completed","errors"],"type":"object"},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","projectId","name","ecosystem","type","url","status","removalPolicy","pollIntervalSeconds","lastSuccessAt","lastError","lastPolledAt","nextPollAt","hasCredential","lastRemovalRefusal","removalAcceptanceArmed","attached"],"type":"object"}]},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"vcsProviders":{"items":{"enum":["github","git","ssh"],"type":"string"},"type":"array"}},"required":["items","next","vcsProviders"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List sources","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:read","x-pb-session-only":false},"post":{"operationId":"createProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"name":{"minLength":1,"type":"string"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"required":["name","ecosystem","type"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a source","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/order":{"put":{"operationId":"setSourceOrder","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"sourceIds":{"items":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"minItems":1,"type":"array"}},"required":["sourceIds"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Order all attached sources","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}":{"patch":{"operationId":"updateProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change source settings","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/attachment":{"delete":{"operationId":"detachSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Detach a source from a project","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true},"put":{"operationId":"attachSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"precedence":{"maximum":10000,"minimum":0,"type":"integer"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Attach a source to a project","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/credential":{"put":{"operationId":"writeProjectSourceCredential","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"kind":{"enum":["http_basic","bearer","header","query","github_app","npm_token","ssh_key"],"type":"string"},"material":{"maxLength":16384,"type":"string"}},"required":["kind","material"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Replace a source credential after reauthentication","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/packages":{"post":{"operationId":"addProjectSourcePackage","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"maxLength":428,"minLength":1,"type":"string"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string"},"state":{"const":"present","type":"string"}},"required":["name","state"],"type":"object"}}},"description":"Response"},"202":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"jobId":{"type":"string"},"name":{"type":"string"},"state":{"const":"queued","type":"string"}},"required":["name","state","jobId"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Upstream request refused; Bad gateway"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Request a package with project:sources:write from a project or organization proxy attached to the project","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/pause":{"post":{"operationId":"pauseProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Pause a source","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/resume":{"post":{"operationId":"resumeProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Resume a proxy source","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/sync":{"post":{"operationId":"syncProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"202":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Request a source sync","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/tokens":{"get":{"operationId":"listProjectTokens","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","expired","revoked"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"},"type":"array"},"lifetime":{"additionalProperties":false,"properties":{"personal":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"},"service":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"}},"required":["personal","service"],"type":"object"},"next":{"type":["string","null"]}},"required":["items","next","lifetime"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"List project tokens","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:read","x-pb-session-only":true},"post":{"operationId":"createProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"readOnly":{"type":"boolean"},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["servicePrincipalId","name","scope"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"token":{"type":"string"}},"required":["id","token"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Issue a project service token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:create","x-pb-session-only":true}},"/_pb/projects/{project}/tokens/{token}":{"delete":{"operationId":"revokeProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a project token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:revoke","x-pb-session-only":true},"get":{"operationId":"getProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"Get a project token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:read","x-pb-session-only":true}},"/_pb/projects/{project}/tokens/{token}/rotate":{"post":{"operationId":"rotateProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"overlapDays":{"anyOf":[{"const":0,"type":"number"},{"const":1,"type":"number"},{"const":7,"type":"number"}]}},"required":["overlapDays"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"replacedExpiresAt":{"type":"string"},"replacedTokenId":{"type":"string"},"token":{"type":"string"}},"required":["id","token","replacedTokenId","replacedExpiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Rotate a project service token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:create","x-pb-session-only":true}},"/_pb/roles":{"get":{"operationId":"listRoles","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"isSystem":{"type":"boolean"},"key":{"type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"protectsLastHolder":{"type":"boolean"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"scope":{"enum":["organization","project"],"type":"string"}},"required":["id","key","name","scope","isSystem","protectsLastHolder","revision","permissions"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List roles","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:read","x-pb-session-only":false},"post":{"operationId":"createRole","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"key":{"pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"permissions":{"items":{"maxLength":100,"type":"string"},"maxItems":200,"type":"array"},"scope":{"enum":["organization","project"],"type":"string"}},"required":["key","name","scope","permissions"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a role","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:write","x-pb-session-only":true}},"/_pb/roles/{role}":{"delete":{"operationId":"deleteRole","parameters":[{"in":"path","name":"role","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Remove a role","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:write","x-pb-session-only":true},"patch":{"operationId":"updateRole","parameters":[{"in":"path","name":"role","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"additionalProperties":false,"properties":{"name":{"maxLength":200,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},{"additionalProperties":false,"properties":{"permissions":{"items":{"maxLength":100,"type":"string"},"maxItems":200,"type":"array"}},"required":["permissions"],"type":"object"}]}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Rename a role or replace its permissions","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:write","x-pb-session-only":true}},"/_pb/service-principals":{"get":{"operationId":"listServicePrincipals","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"project","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdByUserId":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"revision":{"maximum":9007199254740991,"minimum":1,"type":"integer"},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","name","projectId","createdByUserId","status","revision","permissions"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Package not found; Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"List service principals","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true},"post":{"operationId":"createServicePrincipal","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"pattern":"^(?![\\\\s\\\\S]*(?:[\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0605\\\\u061c\\\\u06dd\\\\u070f\\\\u0890-\\\\u0891\\\\u08e2\\\\u180e\\\\u200b-\\\\u200f\\\\u2028-\\\\u202e\\\\u2060-\\\\u2064\\\\u2066-\\\\u206f\\\\ufeff\\\\ufff9-\\\\ufffb]|\\\\ud804[\\\\udcbd\\\\udccd]|\\\\ud80d[\\\\udc30-\\\\udc3f]|\\\\ud82f[\\\\udca0-\\\\udca3]|\\\\ud834[\\\\udd73-\\\\udd7a]|\\\\udb40[\\\\udc01\\\\udc20-\\\\udc7f]))(?:[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[^\\\\ud800-\\\\udfff]){1,100}(?![\\\\s\\\\S])","type":"string"},"permissions":{"items":{"enum":["org:read","org:settings:write","org:users:read","org:users:write","org:roles:read","org:roles:write","org:grants:read","org:grants:write","org:projects:create","org:projects:archive","org:sources:read","org:sources:write","org:tokens:read","org:tokens:revoke","org:service-principals:write","org:packages:manage","org:import:write","org:import:approve","org:audit:read","project:read","project:settings:write","project:grants:read","project:grants:write","project:packages:read","project:packages:write","project:packages:manage","project:sources:read","project:sources:write","project:service-principals:write","project:tokens:create","project:tokens:read","project:tokens:revoke","project:audit:read"],"type":"string"},"type":"array"},"project":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["name","permissions"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdByUserId":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"revision":{"maximum":9007199254740991,"minimum":1,"type":"integer"},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","name","projectId","createdByUserId","status","revision","permissions"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Package not found; Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a service principal; requires Idempotency-Key and returns ETag","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}":{"get":{"operationId":"getServicePrincipal","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdByUserId":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"revision":{"maximum":9007199254740991,"minimum":1,"type":"integer"},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","name","projectId","createdByUserId","status","revision","permissions"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Read a service principal","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}/permissions":{"put":{"operationId":"setServicePrincipalPermissions","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"permissions":{"items":{"enum":["org:read","org:settings:write","org:users:read","org:users:write","org:roles:read","org:roles:write","org:grants:read","org:grants:write","org:projects:create","org:projects:archive","org:sources:read","org:sources:write","org:tokens:read","org:tokens:revoke","org:service-principals:write","org:packages:manage","org:import:write","org:import:approve","org:audit:read","project:read","project:settings:write","project:grants:read","project:grants:write","project:packages:read","project:packages:write","project:packages:manage","project:sources:read","project:sources:write","project:service-principals:write","project:tokens:create","project:tokens:read","project:tokens:revoke","project:audit:read"],"type":"string"},"type":"array"}},"required":["permissions"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Set service principal permissions","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}/restore":{"post":{"operationId":"restoreServicePrincipal","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Restore service principal","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}/suspend":{"post":{"operationId":"suspendServicePrincipal","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Suspend service principal","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/session":{"get":{"operationId":"getSession","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"reauthFresh":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"displayName":{"type":["string","null"]},"email":{"type":"string"},"id":{"type":"string"}},"required":["id","email","displayName"],"type":"object"}},"required":["user","reauthFresh","expiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"}},"security":[],"summary":"Get the current session","tags":["session"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/sources":{"get":{"operationId":"listOrganizationSources","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"ownership","required":false,"schema":{"enum":["organization","project","all"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"attachedProjectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"configComplete":{"type":"boolean"},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"githubAuthentication":{"enum":["app","token"],"type":"string"},"hasCredential":{"type":"boolean"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastError":{"type":["string","null"]},"lastPolledAt":{"type":["string","null"]},"lastRemovalRefusal":{"anyOf":[{"additionalProperties":false,"properties":{"absent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"at":{"type":"string"},"listed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"successful":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["at","absent","listed","successful"],"type":"object"},{"type":"null"}]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"nextPollAt":{"type":["string","null"]},"pollIntervalSeconds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"projectName":{"type":["string","null"]},"removalAcceptanceArmed":{"type":"boolean"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["active","degraded","failing","paused"],"type":"string"},"sync":{"additionalProperties":false,"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["network","timeout","http_error","unauthorized","rate_limited","not_found","invalid_response","tag_limit_exceeded","mass_absence","too_large","policy_denied","credential_unavailable","internal"],"type":"string"},"count":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["code","count"],"type":"object"},"type":"array"},"failed":{"description":"Terminal package failures.","maximum":9007199254740991,"minimum":0,"type":"integer"},"generation":{"type":"string"},"listing":{"type":"boolean"},"queued":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"retrying":{"description":"Failed packages queued for another attempt; disjoint from queued, running, failed and completed.","maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["listing","generation","queued","running","retrying","failed","completed","errors"],"type":"object"},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","projectId","name","ecosystem","type","url","status","removalPolicy","pollIntervalSeconds","lastSuccessAt","lastError","lastPolledAt","nextPollAt","hasCredential","lastRemovalRefusal","removalAcceptanceArmed","projectName","attachedProjectCount"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"vcsProviders":{"items":{"enum":["github","git","ssh"],"type":"string"},"type":"array"}},"required":["items","next","vcsProviders"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List sources","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false},"post":{"operationId":"createOrganizationSource","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"name":{"minLength":1,"type":"string"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"required":["name","ecosystem","type"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a source","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}":{"patch":{"operationId":"updateOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change source settings","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/accept-removal":{"post":{"operationId":"acceptSourceRemoval","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Arm a one-shot acceptance of the last refused source removal","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/credential":{"put":{"operationId":"writeOrganizationSourceCredential","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"kind":{"enum":["http_basic","bearer","header","query","github_app","npm_token","ssh_key"],"type":"string"},"material":{"maxLength":16384,"type":"string"}},"required":["kind","material"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Replace a source credential after reauthentication","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/enable":{"post":{"operationId":"enableSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Enable a source with registered names","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/names":{"get":{"operationId":"listRegisteredNames","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"ecosystem":{"enum":["composer","npm"],"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"pattern":{"type":"string"},"sourceId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id","sourceId","ecosystem","pattern"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List registered names","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false},"post":{"operationId":"addRegisteredName","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"pattern":{"maxLength":50,"pattern":"^[a-z0-9._~@!/*-]+$","type":"string"}},"required":["pattern"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Register a name pattern","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/names/{name}":{"delete":{"operationId":"removeRegisteredName","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"name","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"paused":{"const":true,"type":"boolean"}},"required":["paused"],"type":"object"}}},"description":"Response"},"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Remove a registered name","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/pause":{"post":{"operationId":"pauseOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Pause a source","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/resume":{"post":{"operationId":"resumeOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Resume a proxy source","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/sync":{"post":{"operationId":"syncOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"202":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Request a source sync","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/tokens":{"get":{"operationId":"listTokens","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"enum":["pat","svc"],"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","expired","revoked"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"},"type":"array"},"lifetime":{"additionalProperties":false,"properties":{"personal":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"},"service":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"}},"required":["personal","service"],"type":"object"},"next":{"type":["string","null"]}},"required":["items","next","lifetime"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]}],"summary":"List organization tokens","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:tokens:read","x-pb-session-only":true},"post":{"operationId":"createOrganizationToken","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"readOnly":{"type":"boolean"},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["servicePrincipalId","name","scope"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"token":{"type":"string"}},"required":["id","token"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Issue an organization service token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/tokens/{token}":{"delete":{"operationId":"revokeToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke an organization token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:tokens:revoke","x-pb-session-only":true},"get":{"operationId":"getToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"Get an organization token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:tokens:read","x-pb-session-only":true}},"/_pb/tokens/{token}/rotate":{"post":{"operationId":"rotateToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"overlapDays":{"anyOf":[{"const":0,"type":"number"},{"const":1,"type":"number"},{"const":7,"type":"number"}]}},"required":["overlapDays"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"replacedExpiresAt":{"type":"string"},"replacedTokenId":{"type":"string"},"token":{"type":"string"}},"required":["id","token","replacedTokenId","replacedExpiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Rotate an organization service token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/users":{"get":{"operationId":"listUsers","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"displayName":{"type":["string","null"]},"email":{"type":"string"},"id":{"type":"string"},"lastLoginAt":{"type":["string","null"]},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","displayName","status","lastLoginAt","createdAt"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List organization users","tags":["users"],"x-pb-boundary":"organization","x-pb-permission":"org:users:read","x-pb-session-only":false}},"/_pb/users/{user}":{"patch":{"operationId":"updateUser","parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"status":{"enum":["active","suspended"],"type":"string"}},"required":["status"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Suspend or reactivate a user","tags":["users"],"x-pb-boundary":"organization","x-pb-permission":"org:users:write","x-pb-session-only":true}}}}');
|
|
53380
|
+
var openApiDocument = JSON.parse('{"components":{"schemas":{"ErrorEnvelope":{"additionalProperties":false,"properties":{"error":{"additionalProperties":false,"dependentSchemas":{"problems":{"properties":{"code":{"const":"weak_password"}}}},"properties":{"code":{"type":"string"},"details":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["invalid_type","too_small","too_big","invalid_format","invalid_value","unrecognized_keys","invalid_union","invalid","invalid_encoding","too_deep","invalid_json"],"type":"string"},"location":{"enum":["params","query","body"],"type":"string"},"path":{"type":"string"}},"required":["path","code"],"type":"object"},"maxItems":20,"type":"array"},"message":{"type":"string"},"problems":{"items":{"enum":["too_short","too_long","equals_email","not_well_formed"],"type":"string"},"minItems":1,"type":"array"},"requestId":{"type":"string"}},"required":["code","message","requestId"],"type":"object"}},"required":["error"],"type":"object"}},"securitySchemes":{"bearer":{"scheme":"bearer","type":"http"},"session":{"description":"Session authentication. Send the X-CSRF-Token header on state-changing requests.","in":"cookie","name":"__Host-pb_session","type":"apiKey"}}},"info":{"title":"Package Broker","version":"2"},"jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","openapi":"3.1.0","paths":{"/_pb/audit":{"get":{"operationId":"listAudit","parameters":[{"in":"query","name":"action","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"actor","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maxLength":16,"pattern":"^[0-9]+$","type":"string"}},{"in":"query","name":"project","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"actor":{"additionalProperties":false,"properties":{"id":{"type":["string","null"]},"type":{"type":"string"}},"required":["type","id"],"type":"object"},"createdAt":{"type":"string"},"id":{"type":"string"},"payload":{"additionalProperties":false,"properties":{"changes":{"additionalProperties":{"additionalProperties":false,"properties":{"new":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]},"old":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]}},"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"op_id":{"type":"string"},"request_id":{"type":"string"}},"type":"object"},"projectId":{"type":["string","null"]},"seq":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"targetId":{"type":["string","null"]},"targetType":{"type":"string"}},"required":["id","seq","action","actor","targetType","targetId","projectId","createdAt","payload"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List audit events","tags":["audit"],"x-pb-boundary":"organization","x-pb-permission":"org:audit:read","x-pb-session-only":false}},"/_pb/audit/head":{"get":{"operationId":"auditHead","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"hash":{"type":"string"},"lastVerifiedAt":{"type":["string","null"]},"pendingCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"seq":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["seq","hash","pendingCount","lastVerifiedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Read audit chain head","tags":["audit"],"x-pb-boundary":"organization","x-pb-permission":"org:audit:read","x-pb-session-only":false}},"/_pb/auth/local/login":{"post":{"operationId":"localLogin","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"maxLength":1024,"type":"string"},"email":{"maxLength":1024,"type":"string"},"password":{"maxLength":1024,"type":"string"}},"required":["email","password","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Sign in with the local login","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/local/reauth":{"post":{"operationId":"localReauth","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"maxLength":1024,"type":"string"},"password":{"maxLength":1024,"type":"string"}},"required":["password","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Re-authenticate with the local login","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/local/setup/finish":{"post":{"operationId":"finishLocalSetup","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"maxLength":1024,"type":"string"},"password":{"maxLength":1024,"type":"string"},"token":{"maxLength":1024,"type":"string"}},"required":["token","password","code"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Finish the local login setup and sign in","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/local/setup/start":{"post":{"operationId":"startLocalSetup","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"token":{"maxLength":1024,"type":"string"}},"required":["token"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"provisioningUri":{"type":"string"},"secret":{"type":"string"}},"required":["provisioningUri","secret"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[],"summary":"Start the local login setup","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/logout":{"post":{"operationId":"logout","responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"}},"security":[],"summary":"End the current session","tags":["session"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/providers":{"get":{"operationId":"listAuthProviders","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"local":{"type":"boolean"},"providers":{"items":{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["cloudflare-access","oidc"],"type":"string"},"supportsReauth":{"type":"boolean"}},"required":["id","kind","displayName","supportsReauth"],"type":"object"},"type":"array"}},"required":["providers","local"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"}},"security":[],"summary":"List the sign-in methods","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/sso/{provider}/callback":{"get":{"operationId":"finishSsoLogin","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}}],"responses":{"303":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[],"summary":"Finish a single sign-on login or re-authentication","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/auth/sso/{provider}/start":{"post":{"operationId":"startSsoLogin","parameters":[{"in":"path","name":"provider","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"purpose":{"enum":["login","reauth"],"type":"string"},"returnTo":{"type":"string"}},"required":["purpose"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"location":{"type":"string"}},"required":["location"],"type":"object"}}},"description":"Response"},"303":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Upstream request refused; Bad gateway"}},"security":[],"summary":"Start a single sign-on login or re-authentication","tags":["auth"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/grants":{"get":{"operationId":"listGrants","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"role":{"anyOf":[{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"}},"required":["id","name","permissions"],"type":"object"},{"type":"null"}]},"roleId":{"type":"string"},"subject":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"email","type":"string"},"value":{"type":"string"},"visibility":{"const":"visible","type":"string"}},"required":["type","value","visibility"],"type":"object"},{"additionalProperties":false,"properties":{"type":{"const":"email","type":"string"},"visibility":{"const":"redacted","type":"string"}},"required":["type","visibility"],"type":"object"},{"additionalProperties":false,"properties":{"provider":{"type":"string"},"type":{"const":"group","type":"string"},"value":{"type":"string"},"visibility":{"const":"visible","type":"string"}},"required":["type","provider","value","visibility"],"type":"object"},{"additionalProperties":false,"properties":{"provider":{"type":"string"},"type":{"const":"group","type":"string"},"visibility":{"const":"redacted","type":"string"}},"required":["type","provider","visibility"],"type":"object"}]}},"required":["id","subject","roleId","role","createdAt","revision"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List organization grants","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:read","x-pb-session-only":false},"post":{"operationId":"createGrant","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"subject":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"email","type":"string"},"value":{"maxLength":320,"minLength":1,"type":"string"}},"required":["type","value"],"type":"object"},{"additionalProperties":false,"properties":{"provider":{"maxLength":64,"minLength":1,"type":"string"},"type":{"const":"group","type":"string"},"value":{"maxLength":512,"minLength":1,"type":"string"}},"required":["type","provider","value"],"type":"object"}]}},"required":["subject","roleId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add an organization grant","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:write","x-pb-session-only":true}},"/_pb/grants/{grant}":{"delete":{"operationId":"revokeGrant","parameters":[{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a grant","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:write","x-pb-session-only":true},"patch":{"operationId":"changeGrant","parameters":[{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["roleId"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change the role of a grant","tags":["grants"],"x-pb-boundary":"organization","x-pb-permission":"org:grants:write","x-pb-session-only":true}},"/_pb/import-runs":{"get":{"operationId":"listImportRuns","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"maxLength":4096,"minLength":1,"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"acceptedAt":{"type":["string","null"]},"approvedAt":{"type":["string","null"]},"approvedByUserId":{"type":["string","null"]},"beforeImageExpiresAt":{"type":["string","null"]},"credentialWindowUntil":{"type":["string","null"]},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"planHash":{"type":["string","null"]},"state":{"enum":["planned","applying","failed","applied","verifying","verified","rolled_back","cancelled"],"type":"string"}},"required":["id","state","planHash","approvedAt","approvedByUserId","acceptedAt","beforeImageExpiresAt"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List import runs","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false},"post":{"operationId":"createImportRun","requestBody":{"content":{"application/json":{"schema":{}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"planHash":{"type":"string"},"state":{"const":"planned","type":"string"}},"required":["id","planHash","state"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Plan an import","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/import-runs/{id}":{"get":{"operationId":"getImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"acceptedAt":{"type":["string","null"]},"approvedAt":{"type":["string","null"]},"approvedByUserId":{"type":["string","null"]},"beforeImageExpiresAt":{"type":["string","null"]},"credentialWindowUntil":{"type":["string","null"]},"credentials":{"items":{"additionalProperties":false,"properties":{"bound":{"type":"boolean"},"sourceRef":{"type":"string"}},"required":["sourceRef","bound"],"type":"object"},"type":"array"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"planHash":{"type":["string","null"]},"state":{"enum":["planned","applying","failed","applied","verifying","verified","rolled_back","cancelled"],"type":"string"}},"required":["id","state","planHash","approvedAt","approvedByUserId","acceptedAt","beforeImageExpiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Read an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/import-runs/{id}/accept":{"post":{"operationId":"acceptImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"accept an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/apply":{"post":{"operationId":"applyImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"apply an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/approve":{"post":{"operationId":"approveImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"planHash":{"maxLength":64,"type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"approve an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/cancel":{"post":{"operationId":"cancelImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"cancel an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/credentials/{externalRef}":{"put":{"operationId":"acceptImportCredential","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"externalRef","required":true,"schema":{"pattern":"^[A-Za-z0-9._:/-]{1,200}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"kind":{"enum":["http_basic","bearer","header","query","github_app","npm_token","ssh_key"],"type":"string"},"material":{"maxLength":16384,"type":"string"}},"required":["kind","material"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Bind an imported source credential","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/import-runs/{id}/rollback":{"post":{"operationId":"rollbackImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"rollback an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:approve","x-pb-session-only":true}},"/_pb/import-runs/{id}/verify":{"post":{"operationId":"verifyImportRun","parameters":[{"in":"path","name":"id","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"verify an import run","tags":["imports"],"x-pb-boundary":"organization","x-pb-permission":"org:import:write","x-pb-session-only":false}},"/_pb/me":{"get":{"operationId":"getMe","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"organization":{"additionalProperties":false,"properties":{"name":{"type":"string"},"slug":{"type":"string"}},"required":["slug","name"],"type":"object"},"principal":{"additionalProperties":false,"properties":{"id":{"type":"string"},"kind":{"enum":["user","service","customer"],"type":"string"}},"required":["kind","id"],"type":"object"},"user":{"anyOf":[{"additionalProperties":false,"properties":{"displayName":{"type":["string","null"]},"email":{"type":["string","null"]},"id":{"type":"string"}},"required":["id","email","displayName"],"type":"object"},{"type":"null"}]}},"required":["principal","user","organization"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"}},"security":[],"summary":"Get the caller identity","tags":["me"],"x-pb-boundary":"authenticated","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/me/permissions":{"get":{"operationId":"getMyPermissions","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"organization":{"items":{"type":"string"},"type":"array"}},"required":["organization"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"}},"security":[],"summary":"Get caller organization permissions","tags":["permissions"],"x-pb-boundary":"authenticated","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/me/tokens":{"get":{"operationId":"listMyTokens","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","expired","revoked"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"},"type":"array"},"lifetime":{"additionalProperties":false,"properties":{"personal":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"},"service":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"}},"required":["personal","service"],"type":"object"},"next":{"type":["string","null"]}},"required":["items","next","lifetime"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"}},"security":[{"session":[]}],"summary":"List the caller personal access tokens","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true},"post":{"operationId":"createPersonalToken","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"projectIds":{"items":{"type":"string"},"maxItems":200,"type":"array"},"projectMode":{"enum":["all","selected"],"type":"string"},"readOnly":{"type":"boolean"},"scope":{"enum":["read","write","full"],"type":"string"}},"required":["name","scope","projectMode","projectIds"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"token":{"type":"string"}},"required":["id","token"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Issue a personal access token","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true}},"/_pb/me/tokens/{token}":{"delete":{"operationId":"revokeMyToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a personal access token","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true},"get":{"operationId":"getMyToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"Get a personal access token","tags":["tokens"],"x-pb-boundary":"self","x-pb-permission":null,"x-pb-session-only":true}},"/_pb/organization":{"get":{"operationId":"getOrganization","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"settings":{"additionalProperties":false,"properties":{"retentionRemovedUpstreamDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokenDefaultExpiryDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"tokenMaxLifetimeDays":{"additionalProperties":false,"properties":{"personal":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"service":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["personal","service"],"type":"object"}},"required":["retentionRemovedUpstreamDays","tokenDefaultExpiryDays","tokenMaxLifetimeDays"],"type":"object"},"slug":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","slug","name","settings","createdAt","updatedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Get the organization","tags":["organization"],"x-pb-boundary":"organization","x-pb-permission":"org:read","x-pb-session-only":false}},"/_pb/packages":{"get":{"operationId":"listPackages","parameters":[{"in":"query","name":"after","required":false,"schema":{"maxLength":464,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+:[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"ecosystem","required":false,"schema":{"enum":["composer","npm"],"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"project","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"q","required":false,"schema":{"maxLength":100,"minLength":1,"type":"string"}},{"in":"query","name":"source","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"ecosystem":{"enum":["composer","npm"],"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastSyncedAt":{"type":["string","null"]},"latestVersion":{"type":["string","null"]},"name":{"type":"string"},"source":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"}},"required":["id","name","type","projectId"],"type":"object"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"},"versionCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["id","ecosystem","name","latestVersion","status","source","versionCount","lastSyncedAt"],"type":"object"},"type":"array"},"next":{"anyOf":[{"maxLength":464,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+:[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List packages","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false}},"/_pb/packages/{package}/versions":{"get":{"operationId":"listPackageVersions","parameters":[{"in":"path","name":"package","required":true,"schema":{"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"publishedAt":{"type":"string"},"removedUpstreamAt":{"type":["string","null"]},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"stability":{"enum":["dev","alpha","beta","RC","stable"],"type":"string"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream","yanked"],"type":"string"},"tombstonedAt":{"type":["string","null"]},"version":{"type":"string"},"vulnerability":{"additionalProperties":false,"properties":{"advisories":{"items":{"additionalProperties":false,"properties":{"detailsFetchedAt":{"type":["string","null"]},"id":{"type":"string"},"severity":{"additionalProperties":false,"properties":{"entries":{"items":{"additionalProperties":false,"properties":{"score":{"type":"string"},"type":{"type":"string"}},"required":["type","score"],"type":"object"},"type":"array"},"level":{"enum":["critical","high","medium","low","unknown"],"type":"string"}},"required":["level","entries"],"type":"object"},"url":{"type":"null"}},"required":["id","url","severity","detailsFetchedAt"],"type":"object"},"maxItems":20,"type":"array"},"advisoriesTruncated":{"type":"boolean"},"advisoryCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"detailsComplete":{"type":"boolean"},"fetchedAt":{"type":["string","null"]},"lastKnownStatus":{"anyOf":[{"enum":["affected","not_affected"],"type":"string"},{"type":"null"}]},"reason":{"anyOf":[{"enum":["not_checked","disabled","unsupported_version","pending","upstream_unavailable","incomplete","expired"],"type":"string"},{"type":"null"}]},"source":{"anyOf":[{"const":"osv","type":"string"},{"type":"null"}]},"status":{"enum":["affected","not_affected","unknown","stale"],"type":"string"}},"required":["status","reason","source","fetchedAt","lastKnownStatus","advisoryCount","advisories","detailsComplete","advisoriesTruncated"],"type":"object"}},"required":["vulnerability","id","version","stability","status","publishedAt","removedUpstreamAt","tombstonedAt","revision"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List package versions","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false}},"/_pb/packages/{package}/versions/{version}/quarantine":{"post":{"operationId":"quarantinePackageVersion","parameters":[{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"quarantine a package version","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:packages:manage","x-pb-session-only":true}},"/_pb/packages/{package}/versions/{version}/release":{"post":{"operationId":"releasePackageVersion","parameters":[{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"release a package version","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:packages:manage","x-pb-session-only":true}},"/_pb/packages/{package}/versions/{version}/tombstone":{"post":{"operationId":"tombstonePackageVersion","parameters":[{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"tombstone a package version","tags":["packages"],"x-pb-boundary":"organization","x-pb-permission":"org:packages:manage","x-pb-session-only":true}},"/_pb/projects":{"get":{"operationId":"listProjects","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"q","required":false,"schema":{"description":"Case-sensitive slug or name prefix; LIKE wildcards % and _ are refused.","maxLength":200,"minLength":1,"pattern":"^[^%_\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u2028\\\\u2029]+$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","archived"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"etag":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"status":{"enum":["active","archived"],"type":"string"}},"required":["id","slug","name","status","etag"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[],"summary":"List readable projects","tags":["projects"],"x-pb-boundary":"authenticated","x-pb-permission":null,"x-pb-session-only":false},"post":{"operationId":"createProject","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"initialRoleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"maxLength":1000,"minLength":1,"type":"string"},"requirePublishApproval":{"type":"boolean"},"slug":{"maxLength":200,"minLength":1,"type":"string"},"tokenMaxScope":{"enum":["read","write","full"],"type":"string"}},"required":["slug","name"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"slug":{"type":"string"}},"required":["id","slug"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a project","tags":["projects"],"x-pb-boundary":"organization","x-pb-permission":"org:projects:create","x-pb-session-only":true}},"/_pb/projects/{project}":{"get":{"operationId":"getProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"name":{"type":"string"},"requirePublishApproval":{"type":"boolean"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"slug":{"type":"string"},"status":{"enum":["active","archived"],"type":"string"},"tokenMaxScope":{"enum":["read","write","full"],"type":"string"}},"required":["id","slug","name","status","tokenMaxScope","requirePublishApproval","revision"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Read a project","tags":["projects"],"x-pb-boundary":"project","x-pb-permission":"project:read","x-pb-session-only":false},"patch":{"operationId":"updateProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"maxLength":1000,"minLength":1,"type":"string"},"requirePublishApproval":{"type":"boolean"},"tokenMaxScope":{"enum":["read","write","full"],"type":"string"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change project settings","tags":["projects"],"x-pb-boundary":"project","x-pb-permission":"project:settings:write","x-pb-session-only":true}},"/_pb/projects/{project}/archive":{"post":{"operationId":"archiveProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Archive a project","tags":["projects"],"x-pb-boundary":"organization","x-pb-permission":"org:projects:archive","x-pb-session-only":true}},"/_pb/projects/{project}/audit":{"get":{"operationId":"listProjectAudit","parameters":[{"in":"path","name":"project","required":true,"schema":{"maxLength":64,"minLength":1,"type":"string"}},{"in":"query","name":"action","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"actor","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"maxLength":200,"minLength":1,"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maxLength":16,"pattern":"^[0-9]+$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"action":{"type":"string"},"actor":{"additionalProperties":false,"properties":{"id":{"type":["string","null"]},"type":{"type":"string"}},"required":["type","id"],"type":"object"},"createdAt":{"type":"string"},"id":{"type":"string"},"payload":{"additionalProperties":false,"properties":{"changes":{"additionalProperties":{"additionalProperties":false,"properties":{"new":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]},"old":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"items":{"type":"string"},"type":"array"}]}},"type":"object"},"propertyNames":{"type":"string"},"type":"object"},"op_id":{"type":"string"},"request_id":{"type":"string"}},"type":"object"},"projectId":{"type":["string","null"]},"seq":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"targetId":{"type":["string","null"]},"targetType":{"type":"string"}},"required":["id","seq","action","actor","targetType","targetId","projectId","createdAt","payload"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List project audit events","tags":["audit"],"x-pb-boundary":"project","x-pb-permission":"project:audit:read","x-pb-session-only":false}},"/_pb/projects/{project}/grants":{"get":{"operationId":"listProjectGrants","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"principal":{"anyOf":[{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"email":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["user","email"],"type":"string"},"visibility":{"const":"visible","type":"string"}},"required":["kind","id","displayName","email","visibility"],"type":"object"},{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"id":{"type":"string"},"kind":{"enum":["user","email"],"type":"string"},"visibility":{"const":"redacted","type":"string"}},"required":["kind","id","displayName","visibility"],"type":"object"},{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"groupValue":{"type":"string"},"id":{"type":"string"},"kind":{"const":"group","type":"string"},"provider":{"type":"string"},"visibility":{"const":"visible","type":"string"}},"required":["kind","id","displayName","provider","groupValue","visibility"],"type":"object"},{"additionalProperties":false,"properties":{"displayName":{"type":"string"},"id":{"type":"string"},"kind":{"const":"group","type":"string"},"provider":{"type":"string"},"visibility":{"const":"redacted","type":"string"}},"required":["kind","id","displayName","provider","visibility"],"type":"object"}]},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"role":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"}},"required":["id","name","permissions"],"type":"object"}},"required":["id","revision","createdAt","principal","role"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List project grants and their principals","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:read","x-pb-session-only":false},"post":{"operationId":"createProjectGrant","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"subject":{"anyOf":[{"additionalProperties":false,"properties":{"type":{"const":"email","type":"string"},"value":{"maxLength":320,"minLength":1,"type":"string"}},"required":["type","value"],"type":"object"},{"additionalProperties":false,"properties":{"provider":{"maxLength":64,"minLength":1,"type":"string"},"type":{"const":"group","type":"string"},"value":{"maxLength":256,"minLength":1,"type":"string"}},"required":["type","provider","value"],"type":"object"}]}},"required":["subject","roleId"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Grant project access","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:write","x-pb-session-only":true}},"/_pb/projects/{project}/grants/{grant}":{"delete":{"operationId":"revokeProjectGrant","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a project grant","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:write","x-pb-session-only":true},"patch":{"operationId":"changeProjectGrant","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"grant","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"roleId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["roleId"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change the role of a project grant","tags":["project-access"],"x-pb-boundary":"project","x-pb-permission":"project:grants:write","x-pb-session-only":true}},"/_pb/projects/{project}/packages":{"get":{"operationId":"listProjectPackages","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"maxLength":437,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+$","type":"string"}},{"in":"query","name":"ecosystem","required":false,"schema":{"enum":["composer","npm"],"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"q","required":false,"schema":{"maxLength":100,"minLength":1,"type":"string"}},{"in":"query","name":"source","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"ecosystem":{"enum":["composer","npm"],"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastSyncedAt":{"type":["string","null"]},"latestVersion":{"type":["string","null"]},"name":{"type":"string"},"source":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"}},"required":["id","name","type","projectId"],"type":"object"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream"],"type":"string"},"versionCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["id","ecosystem","name","latestVersion","status","source","versionCount","lastSyncedAt"],"type":"object"},"type":"array"},"next":{"anyOf":[{"maxLength":437,"pattern":"^(?:composer|npm):[\\\\s\\\\S]+$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List packages","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:read","x-pb-session-only":false}},"/_pb/projects/{project}/packages/{package}/versions":{"get":{"operationId":"listProjectPackageVersions","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"publishedAt":{"type":"string"},"removedUpstreamAt":{"type":["string","null"]},"revision":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"stability":{"enum":["dev","alpha","beta","RC","stable"],"type":"string"},"status":{"enum":["active","quarantined","tombstoned","removed_upstream","yanked"],"type":"string"},"tombstonedAt":{"type":["string","null"]},"version":{"type":"string"},"vulnerability":{"additionalProperties":false,"properties":{"advisories":{"items":{"additionalProperties":false,"properties":{"detailsFetchedAt":{"type":["string","null"]},"id":{"type":"string"},"severity":{"additionalProperties":false,"properties":{"entries":{"items":{"additionalProperties":false,"properties":{"score":{"type":"string"},"type":{"type":"string"}},"required":["type","score"],"type":"object"},"type":"array"},"level":{"enum":["critical","high","medium","low","unknown"],"type":"string"}},"required":["level","entries"],"type":"object"},"url":{"type":"null"}},"required":["id","url","severity","detailsFetchedAt"],"type":"object"},"maxItems":20,"type":"array"},"advisoriesTruncated":{"type":"boolean"},"advisoryCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"detailsComplete":{"type":"boolean"},"fetchedAt":{"type":["string","null"]},"lastKnownStatus":{"anyOf":[{"enum":["affected","not_affected"],"type":"string"},{"type":"null"}]},"reason":{"anyOf":[{"enum":["not_checked","disabled","unsupported_version","pending","upstream_unavailable","incomplete","expired"],"type":"string"},{"type":"null"}]},"source":{"anyOf":[{"const":"osv","type":"string"},{"type":"null"}]},"status":{"enum":["affected","not_affected","unknown","stale"],"type":"string"}},"required":["status","reason","source","fetchedAt","lastKnownStatus","advisoryCount","advisories","detailsComplete","advisoriesTruncated"],"type":"object"}},"required":["vulnerability","id","version","stability","status","publishedAt","removedUpstreamAt","tombstonedAt","revision"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List package versions","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:read","x-pb-session-only":false}},"/_pb/projects/{project}/packages/{package}/versions/{version}/quarantine":{"post":{"operationId":"quarantineProjectPackageVersion","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"quarantine a package version","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:manage","x-pb-session-only":true}},"/_pb/projects/{project}/packages/{package}/versions/{version}/release":{"post":{"operationId":"releaseProjectPackageVersion","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"release a package version","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:manage","x-pb-session-only":true}},"/_pb/projects/{project}/packages/{package}/versions/{version}/tombstone":{"post":{"operationId":"tombstoneProjectPackageVersion","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"package","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"version","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"status":{"enum":["active","removed_upstream","yanked","quarantined","tombstoned"],"type":"string"}},"required":["id","status"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"}},"security":[{"session":[]}],"summary":"tombstone a package version","tags":["packages"],"x-pb-boundary":"project","x-pb-permission":"project:packages:manage","x-pb-session-only":true}},"/_pb/projects/{project}/permissions":{"get":{"operationId":"getMyProjectPermissions","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"project":{"items":{"type":"string"},"type":"array"}},"required":["project"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Get caller project permissions","tags":["permissions"],"x-pb-boundary":"project","x-pb-permission":"project:read","x-pb-session-only":false}},"/_pb/projects/{project}/resolve":{"get":{"operationId":"resolveName","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"name","required":true,"schema":{"maxLength":428,"minLength":1,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"candidates":{"items":{"additionalProperties":false,"properties":{"eligible":{"type":"boolean"},"projectLevel":{"type":"boolean"},"sourceId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"sourceName":{"type":"string"}},"required":["sourceId","sourceName","projectLevel","eligible"],"type":"object"},"type":"array"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"name":{"type":"string"},"winner":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["name","ecosystem","candidates","winner"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"Preview source resolution for a package name","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:read","x-pb-session-only":false}},"/_pb/projects/{project}/restore":{"post":{"operationId":"restoreProject","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Restore a project","tags":["projects"],"x-pb-boundary":"organization","x-pb-permission":"org:projects:archive","x-pb-session-only":true}},"/_pb/projects/{project}/service-principals/{principal}/permissions":{"put":{"operationId":"setProjectServicePrincipalPermissions","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"permissions":{"items":{"enum":["org:read","org:settings:write","org:users:read","org:users:write","org:roles:read","org:roles:write","org:grants:read","org:grants:write","org:projects:create","org:projects:archive","org:sources:read","org:sources:write","org:tokens:read","org:tokens:revoke","org:service-principals:write","org:packages:manage","org:import:write","org:import:approve","org:audit:read","project:read","project:settings:write","project:grants:read","project:grants:write","project:packages:read","project:packages:write","project:packages:manage","project:sources:read","project:sources:write","project:service-principals:write","project:tokens:create","project:tokens:read","project:tokens:revoke","project:audit:read"],"type":"string"},"type":"array"}},"required":["permissions"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Set service principal permissions","tags":["service-principals"],"x-pb-boundary":"project","x-pb-permission":"project:service-principals:write","x-pb-session-only":true}},"/_pb/projects/{project}/service-principals/{principal}/restore":{"post":{"operationId":"restoreProjectServicePrincipal","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Restore service principal","tags":["service-principals"],"x-pb-boundary":"project","x-pb-permission":"project:service-principals:write","x-pb-session-only":true}},"/_pb/projects/{project}/service-principals/{principal}/suspend":{"post":{"operationId":"suspendProjectServicePrincipal","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Suspend service principal","tags":["service-principals"],"x-pb-boundary":"project","x-pb-permission":"project:service-principals:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources":{"get":{"operationId":"listProjectSources","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"anyOf":[{"additionalProperties":false,"properties":{"attached":{"const":true,"type":"boolean"},"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"configComplete":{"type":"boolean"},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"githubAuthentication":{"enum":["app","token"],"type":"string"},"hasCredential":{"type":"boolean"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastError":{"type":["string","null"]},"lastPolledAt":{"type":["string","null"]},"lastRemovalRefusal":{"anyOf":[{"additionalProperties":false,"properties":{"absent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"at":{"type":"string"},"listed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"successful":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["at","absent","listed","successful"],"type":"object"},{"type":"null"}]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"nextPollAt":{"type":["string","null"]},"pollIntervalSeconds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"precedence":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"removalAcceptanceArmed":{"type":"boolean"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["active","degraded","failing","paused"],"type":"string"},"sync":{"additionalProperties":false,"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["network","timeout","http_error","unauthorized","rate_limited","not_found","invalid_response","tag_limit_exceeded","mass_absence","too_large","policy_denied","credential_unavailable","internal"],"type":"string"},"count":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["code","count"],"type":"object"},"type":"array"},"failed":{"description":"Terminal package failures.","maximum":9007199254740991,"minimum":0,"type":"integer"},"generation":{"type":"string"},"listing":{"type":"boolean"},"queued":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"retrying":{"description":"Failed packages queued for another attempt; disjoint from queued, running, failed and completed.","maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["listing","generation","queued","running","retrying","failed","completed","errors"],"type":"object"},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","projectId","name","ecosystem","type","url","status","removalPolicy","pollIntervalSeconds","lastSuccessAt","lastError","lastPolledAt","nextPollAt","hasCredential","lastRemovalRefusal","removalAcceptanceArmed","attached","precedence"],"type":"object"},{"additionalProperties":false,"properties":{"attached":{"const":false,"type":"boolean"},"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"configComplete":{"type":"boolean"},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"githubAuthentication":{"enum":["app","token"],"type":"string"},"hasCredential":{"type":"boolean"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastError":{"type":["string","null"]},"lastPolledAt":{"type":["string","null"]},"lastRemovalRefusal":{"anyOf":[{"additionalProperties":false,"properties":{"absent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"at":{"type":"string"},"listed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"successful":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["at","absent","listed","successful"],"type":"object"},{"type":"null"}]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"nextPollAt":{"type":["string","null"]},"pollIntervalSeconds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"removalAcceptanceArmed":{"type":"boolean"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["active","degraded","failing","paused"],"type":"string"},"sync":{"additionalProperties":false,"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["network","timeout","http_error","unauthorized","rate_limited","not_found","invalid_response","tag_limit_exceeded","mass_absence","too_large","policy_denied","credential_unavailable","internal"],"type":"string"},"count":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["code","count"],"type":"object"},"type":"array"},"failed":{"description":"Terminal package failures.","maximum":9007199254740991,"minimum":0,"type":"integer"},"generation":{"type":"string"},"listing":{"type":"boolean"},"queued":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"retrying":{"description":"Failed packages queued for another attempt; disjoint from queued, running, failed and completed.","maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["listing","generation","queued","running","retrying","failed","completed","errors"],"type":"object"},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","projectId","name","ecosystem","type","url","status","removalPolicy","pollIntervalSeconds","lastSuccessAt","lastError","lastPolledAt","nextPollAt","hasCredential","lastRemovalRefusal","removalAcceptanceArmed","attached"],"type":"object"}]},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"vcsProviders":{"items":{"enum":["github","git","ssh"],"type":"string"},"type":"array"}},"required":["items","next","vcsProviders"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List sources","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:read","x-pb-session-only":false},"post":{"operationId":"createProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"name":{"minLength":1,"type":"string"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"required":["name","ecosystem","type"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a source","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/order":{"put":{"operationId":"setSourceOrder","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"sourceIds":{"items":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"minItems":1,"type":"array"}},"required":["sourceIds"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Order all attached sources","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}":{"patch":{"operationId":"updateProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change source settings","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/attachment":{"delete":{"operationId":"detachSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Detach a source from a project","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true},"put":{"operationId":"attachSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"precedence":{"maximum":10000,"minimum":0,"type":"integer"}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Attach a source to a project","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/credential":{"put":{"operationId":"writeProjectSourceCredential","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"kind":{"enum":["http_basic","bearer","header","query","github_app","npm_token","ssh_key"],"type":"string"},"material":{"maxLength":16384,"type":"string"}},"required":["kind","material"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Replace a source credential after reauthentication","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/packages":{"post":{"operationId":"addProjectSourcePackage","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"maxLength":428,"minLength":1,"type":"string"}},"required":["name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string"},"state":{"const":"present","type":"string"}},"required":["name","state"],"type":"object"}}},"description":"Response"},"202":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"jobId":{"type":"string"},"name":{"type":"string"},"state":{"const":"queued","type":"string"}},"required":["name","state","jobId"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Upstream request refused; Bad gateway"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Request a package with project:sources:write from a project or organization proxy attached to the project","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/pause":{"post":{"operationId":"pauseProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Pause a source","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/resume":{"post":{"operationId":"resumeProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Resume a proxy source","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/sources/{source}/sync":{"post":{"operationId":"syncProjectSource","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"202":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Request a source sync","tags":["sources"],"x-pb-boundary":"project","x-pb-permission":"project:sources:write","x-pb-session-only":true}},"/_pb/projects/{project}/tokens":{"get":{"operationId":"listProjectTokens","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","expired","revoked"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"},"type":"array"},"lifetime":{"additionalProperties":false,"properties":{"personal":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"},"service":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"}},"required":["personal","service"],"type":"object"},"next":{"type":["string","null"]}},"required":["items","next","lifetime"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"List project tokens","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:read","x-pb-session-only":true},"post":{"operationId":"createProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"readOnly":{"type":"boolean"},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["servicePrincipalId","name","scope"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"token":{"type":"string"}},"required":["id","token"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Issue a project service token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:create","x-pb-session-only":true}},"/_pb/projects/{project}/tokens/{token}":{"delete":{"operationId":"revokeProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke a project token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:revoke","x-pb-session-only":true},"get":{"operationId":"getProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"Get a project token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:read","x-pb-session-only":true}},"/_pb/projects/{project}/tokens/{token}/rotate":{"post":{"operationId":"rotateProjectToken","parameters":[{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-z0-9](?:[a-z0-9-]{0,62}[a-z0-9])?$","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"overlapDays":{"anyOf":[{"const":0,"type":"number"},{"const":1,"type":"number"},{"const":7,"type":"number"}]}},"required":["overlapDays"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"replacedExpiresAt":{"type":"string"},"replacedTokenId":{"type":"string"},"token":{"type":"string"}},"required":["id","token","replacedTokenId","replacedExpiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Rotate a project service token","tags":["tokens"],"x-pb-boundary":"project","x-pb-permission":"project:tokens:create","x-pb-session-only":true}},"/_pb/roles":{"get":{"operationId":"listRoles","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"id":{"type":"string"},"isSystem":{"type":"boolean"},"key":{"type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"protectsLastHolder":{"type":"boolean"},"revision":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"scope":{"enum":["organization","project"],"type":"string"}},"required":["id","key","name","scope","isSystem","protectsLastHolder","revision","permissions"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List roles","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:read","x-pb-session-only":false},"post":{"operationId":"createRole","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"key":{"pattern":"^[a-z][a-z0-9_]{0,63}$","type":"string"},"name":{"maxLength":200,"minLength":1,"type":"string"},"permissions":{"items":{"maxLength":100,"type":"string"},"maxItems":200,"type":"array"},"scope":{"enum":["organization","project"],"type":"string"}},"required":["key","name","scope","permissions"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a role","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:write","x-pb-session-only":true}},"/_pb/roles/{role}":{"delete":{"operationId":"deleteRole","parameters":[{"in":"path","name":"role","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Remove a role","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:write","x-pb-session-only":true},"patch":{"operationId":"updateRole","parameters":[{"in":"path","name":"role","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"additionalProperties":false,"properties":{"name":{"maxLength":200,"minLength":1,"type":"string"}},"required":["name"],"type":"object"},{"additionalProperties":false,"properties":{"permissions":{"items":{"maxLength":100,"type":"string"},"maxItems":200,"type":"array"}},"required":["permissions"],"type":"object"}]}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Rename a role or replace its permissions","tags":["roles"],"x-pb-boundary":"organization","x-pb-permission":"org:roles:write","x-pb-session-only":true}},"/_pb/service-principals":{"get":{"operationId":"listServicePrincipals","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^([1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"project","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdByUserId":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"revision":{"maximum":9007199254740991,"minimum":1,"type":"integer"},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","name","projectId","createdByUserId","status","revision","permissions"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Package not found; Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"List service principals","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true},"post":{"operationId":"createServicePrincipal","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"pattern":"^(?![\\\\s\\\\S]*(?:[\\\\u0000-\\\\u001f\\\\u007f-\\\\u009f\\\\u00ad\\\\u0600-\\\\u0605\\\\u061c\\\\u06dd\\\\u070f\\\\u0890-\\\\u0891\\\\u08e2\\\\u180e\\\\u200b-\\\\u200f\\\\u2028-\\\\u202e\\\\u2060-\\\\u2064\\\\u2066-\\\\u206f\\\\ufeff\\\\ufff9-\\\\ufffb]|\\\\ud804[\\\\udcbd\\\\udccd]|\\\\ud80d[\\\\udc30-\\\\udc3f]|\\\\ud82f[\\\\udca0-\\\\udca3]|\\\\ud834[\\\\udd73-\\\\udd7a]|\\\\udb40[\\\\udc01\\\\udc20-\\\\udc7f]))(?:[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]|[^\\\\ud800-\\\\udfff]){1,100}(?![\\\\s\\\\S])","type":"string"},"permissions":{"items":{"enum":["org:read","org:settings:write","org:users:read","org:users:write","org:roles:read","org:roles:write","org:grants:read","org:grants:write","org:projects:create","org:projects:archive","org:sources:read","org:sources:write","org:tokens:read","org:tokens:revoke","org:service-principals:write","org:packages:manage","org:import:write","org:import:approve","org:audit:read","project:read","project:settings:write","project:grants:read","project:grants:write","project:packages:read","project:packages:write","project:packages:manage","project:sources:read","project:sources:write","project:service-principals:write","project:tokens:create","project:tokens:read","project:tokens:revoke","project:audit:read"],"type":"string"},"type":"array"},"project":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["name","permissions"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdByUserId":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"revision":{"maximum":9007199254740991,"minimum":1,"type":"integer"},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","name","projectId","createdByUserId","status","revision","permissions"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Package not found; Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a service principal; requires Idempotency-Key and returns ETag","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}":{"get":{"operationId":"getServicePrincipal","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdByUserId":{"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"name":{"type":"string"},"permissions":{"items":{"type":"string"},"type":"array"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"revision":{"maximum":9007199254740991,"minimum":1,"type":"integer"},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","name","projectId","createdByUserId","status","revision","permissions"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Read a service principal","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}/permissions":{"put":{"operationId":"setServicePrincipalPermissions","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"permissions":{"items":{"enum":["org:read","org:settings:write","org:users:read","org:users:write","org:roles:read","org:roles:write","org:grants:read","org:grants:write","org:projects:create","org:projects:archive","org:sources:read","org:sources:write","org:tokens:read","org:tokens:revoke","org:service-principals:write","org:packages:manage","org:import:write","org:import:approve","org:audit:read","project:read","project:settings:write","project:grants:read","project:grants:write","project:packages:read","project:packages:write","project:packages:manage","project:sources:read","project:sources:write","project:service-principals:write","project:tokens:create","project:tokens:read","project:tokens:revoke","project:audit:read"],"type":"string"},"type":"array"}},"required":["permissions"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Set service principal permissions","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}/restore":{"post":{"operationId":"restoreServicePrincipal","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"header","name":"If-Match","required":true,"schema":{"pattern":"^\\"r([1-9][0-9]*)\\"$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"412":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition failed"},"428":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Precondition required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Restore service principal","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/service-principals/{principal}/suspend":{"post":{"operationId":"suspendServicePrincipal","parameters":[{"in":"path","name":"principal","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Suspend service principal","tags":["service-principals"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/session":{"get":{"operationId":"getSession","responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"reauthFresh":{"type":"boolean"},"user":{"additionalProperties":false,"properties":{"displayName":{"type":["string","null"]},"email":{"type":"string"},"id":{"type":"string"}},"required":["id","email","displayName"],"type":"object"}},"required":["user","reauthFresh","expiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"}},"security":[],"summary":"Get the current session","tags":["session"],"x-pb-boundary":"none","x-pb-permission":null,"x-pb-session-only":false}},"/_pb/sources":{"get":{"operationId":"listOrganizationSources","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"ownership","required":false,"schema":{"enum":["organization","project","all"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"attachedProjectCount":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"configComplete":{"type":"boolean"},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"githubAuthentication":{"enum":["app","token"],"type":"string"},"hasCredential":{"type":"boolean"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"lastError":{"type":["string","null"]},"lastPolledAt":{"type":["string","null"]},"lastRemovalRefusal":{"anyOf":[{"additionalProperties":false,"properties":{"absent":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"at":{"type":"string"},"listed":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"successful":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["at","absent","listed","successful"],"type":"object"},{"type":"null"}]},"lastSuccessAt":{"type":["string","null"]},"name":{"type":"string"},"nextPollAt":{"type":["string","null"]},"pollIntervalSeconds":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"projectName":{"type":["string","null"]},"removalAcceptanceArmed":{"type":"boolean"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"status":{"enum":["active","degraded","failing","paused"],"type":"string"},"sync":{"additionalProperties":false,"properties":{"completed":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"errors":{"items":{"additionalProperties":false,"properties":{"code":{"enum":["network","timeout","http_error","unauthorized","rate_limited","not_found","invalid_response","tag_limit_exceeded","mass_absence","too_large","policy_denied","credential_unavailable","internal"],"type":"string"},"count":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"}},"required":["code","count"],"type":"object"},"type":"array"},"failed":{"description":"Terminal package failures.","maximum":9007199254740991,"minimum":0,"type":"integer"},"generation":{"type":"string"},"listing":{"type":"boolean"},"queued":{"maximum":9007199254740991,"minimum":0,"type":"integer"},"retrying":{"description":"Failed packages queued for another attempt; disjoint from queued, running, failed and completed.","maximum":9007199254740991,"minimum":0,"type":"integer"},"running":{"maximum":9007199254740991,"minimum":0,"type":"integer"}},"required":["listing","generation","queued","running","retrying","failed","completed","errors"],"type":"object"},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"type":["string","null"]},"userAgent":{"type":["string","null"]}},"required":["id","projectId","name","ecosystem","type","url","status","removalPolicy","pollIntervalSeconds","lastSuccessAt","lastError","lastPolledAt","nextPollAt","hasCredential","lastRemovalRefusal","removalAcceptanceArmed","projectName","attachedProjectCount"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]},"vcsProviders":{"items":{"enum":["github","git","ssh"],"type":"string"},"type":"array"}},"required":["items","next","vcsProviders"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List sources","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false},"post":{"operationId":"createOrganizationSource","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"ecosystem":{"enum":["composer","npm"],"type":"string"},"name":{"minLength":1,"type":"string"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"type":{"enum":["vcs","composer_repository","npm_registry","packagist_proxy","npmjs_proxy","hosted"],"type":"string"},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"required":["name","ecosystem","type"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Add a source","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}":{"patch":{"operationId":"updateOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"anyOf":[{"additionalProperties":false,"properties":{"installationId":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"packageName":{"type":"string"},"provider":{"enum":["github","git","ssh"],"type":"string"},"refs":{"additionalProperties":false,"properties":{"branches":{"items":{"type":"string"},"type":"array"},"tags":{"type":"boolean"}},"type":"object"},"repository":{"type":"string"}},"required":["provider","repository"],"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"mirrorsFallback":{"type":"boolean"},"selection":{"additionalProperties":false,"properties":{"expandPatterns":{"type":"boolean"},"packages":{"items":{"type":"string"},"type":"array"},"patterns":{"items":{"type":"string"},"type":"array"}},"type":"object"}},"type":"object"},{"additionalProperties":false,"properties":{"distHosts":{"items":{"type":"string"},"type":"array"},"scopes":{"items":{"type":"string"},"type":"array"}},"type":"object"},{"additionalProperties":false,"properties":{"githubToken":{"type":"boolean"}},"type":"object"},{"additionalProperties":false,"properties":{},"type":"object"}]},"defaultVisibleToNewProjects":{"type":"boolean"},"pollIntervalSeconds":{"exclusiveMinimum":0,"maximum":9007199254740991,"type":"integer"},"removalPolicy":{"enum":["flag","exclude"],"type":"string"},"retentionDaysOverride":{"anyOf":[{"maximum":9007199254740991,"minimum":0,"type":"integer"},{"type":"null"}]},"url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}]},"userAgent":{"type":["string","null"]}},"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Change source settings","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/accept-removal":{"post":{"operationId":"acceptSourceRemoval","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Arm a one-shot acceptance of the last refused source removal","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/credential":{"put":{"operationId":"writeOrganizationSourceCredential","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"kind":{"enum":["http_basic","bearer","header","query","github_app","npm_token","ssh_key"],"type":"string"},"material":{"maxLength":16384,"type":"string"}},"required":["kind","material"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Replace a source credential after reauthentication","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/enable":{"post":{"operationId":"enableSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Enable a source with registered names","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/names":{"get":{"operationId":"listRegisteredNames","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"ecosystem":{"enum":["composer","npm"],"type":"string"},"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},"pattern":{"type":"string"},"sourceId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id","sourceId","ecosystem","pattern"],"type":"object"},"type":"array"},"next":{"anyOf":[{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"},{"type":"null"}]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List registered names","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:read","x-pb-session-only":false},"post":{"operationId":"addRegisteredName","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"pattern":{"maxLength":50,"pattern":"^[a-z0-9._~@!/*-]+$","type":"string"}},"required":["pattern"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["id"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Register a name pattern","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/names/{name}":{"delete":{"operationId":"removeRegisteredName","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"path","name":"name","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"paused":{"const":true,"type":"boolean"}},"required":["paused"],"type":"object"}}},"description":"Response"},"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Remove a registered name","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/pause":{"post":{"operationId":"pauseOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Pause a source","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/resume":{"post":{"operationId":"resumeOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Resume a proxy source","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/sources/{source}/sync":{"post":{"operationId":"syncOrganizationSource","parameters":[{"in":"path","name":"source","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"202":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Request a source sync","tags":["sources"],"x-pb-boundary":"organization","x-pb-permission":"org:sources:write","x-pb-session-only":true}},"/_pb/tokens":{"get":{"operationId":"listTokens","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"enum":["pat","svc"],"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}},{"in":"query","name":"status","required":false,"schema":{"enum":["active","expired","revoked"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"},"type":"array"},"lifetime":{"additionalProperties":false,"properties":{"personal":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"},"service":{"additionalProperties":false,"properties":{"defaultDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"maxDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"}},"required":["maxDays","defaultDays"],"type":"object"}},"required":["personal","service"],"type":"object"},"next":{"type":["string","null"]}},"required":["items","next","lifetime"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]}],"summary":"List organization tokens","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:tokens:read","x-pb-session-only":true},"post":{"operationId":"createOrganizationToken","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"readOnly":{"type":"boolean"},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},"required":["servicePrincipalId","name","scope"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"token":{"type":"string"}},"required":["id","token"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Issue an organization service token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/tokens/{token}":{"delete":{"operationId":"revokeToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Revoke an organization token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:tokens:revoke","x-pb-session-only":true},"get":{"operationId":"getToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"createdByUserId":{"type":["string","null"]},"expiresAt":{"type":["string","null"]},"id":{"type":"string"},"kind":{"enum":["pat","svc"],"type":"string"},"lastUsedAt":{"type":["string","null"]},"name":{"type":"string"},"projectCount":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"projectId":{"type":["string","null"]},"projectMode":{"anyOf":[{"enum":["all","selected"],"type":"string"},{"type":"null"}]},"readOnly":{"type":"boolean"},"revokedAt":{"type":["string","null"]},"scope":{"enum":["read","write","full"],"type":"string"},"servicePrincipalId":{"type":["string","null"]},"status":{"enum":["active","expired","revoked"],"type":"string"},"userId":{"type":["string","null"]}},"required":["id","kind","name","scope","readOnly","status","projectMode","projectCount","projectId","userId","createdByUserId","servicePrincipalId","createdAt","expiresAt","lastUsedAt","revokedAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"}},"security":[{"session":[]}],"summary":"Get an organization token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:tokens:read","x-pb-session-only":true}},"/_pb/tokens/{token}/rotate":{"post":{"operationId":"rotateToken","parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresAt":{"type":"string"},"lifetimeDays":{"maximum":9007199254740991,"minimum":-9007199254740991,"type":"integer"},"name":{"type":"string"},"overlapDays":{"anyOf":[{"const":0,"type":"number"},{"const":1,"type":"number"},{"const":7,"type":"number"}]}},"required":["overlapDays"],"type":"object"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"id":{"type":"string"},"replacedExpiresAt":{"type":"string"},"replacedTokenId":{"type":"string"},"token":{"type":"string"}},"required":["id","token","replacedTokenId","replacedExpiresAt"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied; Reauthentication required"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Conflict; Source is paused; Already exists; Last holder cannot be removed; Idempotency key does not match; Already issued; Approval required"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"422":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Error"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Rotate an organization service token","tags":["tokens"],"x-pb-boundary":"organization","x-pb-permission":"org:service-principals:write","x-pb-session-only":true}},"/_pb/users":{"get":{"operationId":"listUsers","parameters":[{"in":"query","name":"after","required":false,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"pattern":"^(?:[1-9][0-9]?|100)$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"items":{"items":{"additionalProperties":false,"properties":{"createdAt":{"type":"string"},"displayName":{"type":["string","null"]},"email":{"type":"string"},"id":{"type":"string"},"lastLoginAt":{"type":["string","null"]},"status":{"enum":["active","suspended"],"type":"string"}},"required":["id","displayName","status","lastLoginAt","createdAt"],"type":"object"},"type":"array"},"next":{"type":["string","null"]}},"required":["items","next"],"type":"object"}}},"description":"Response"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"}},"security":[{"session":[]},{"bearer":[]}],"summary":"List organization users","tags":["users"],"x-pb-boundary":"organization","x-pb-permission":"org:users:read","x-pb-session-only":false}},"/_pb/users/{user}":{"patch":{"operationId":"updateUser","parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[0-7][0-9A-HJKMNP-TV-Z]{25}$","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"status":{"enum":["active","suspended"],"type":"string"}},"required":["status"],"type":"object"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Invalid request"},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Authentication required"},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Access denied"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Not found"},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Payload too large"},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Unsupported media type"},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}},"description":"Service unavailable"}},"security":[{"session":[]}],"summary":"Suspend or reactivate a user","tags":["users"],"x-pb-boundary":"organization","x-pb-permission":"org:users:write","x-pb-session-only":true}}}}');
|
|
53332
53381
|
|
|
53333
53382
|
// packages/core/dist/mcp/limit.js
|
|
53334
53383
|
var McpRateLimitConfigError = class extends Error {
|
|
@@ -53405,7 +53454,7 @@ function decodeBasic(payload2) {
|
|
|
53405
53454
|
return void 0;
|
|
53406
53455
|
}
|
|
53407
53456
|
}
|
|
53408
|
-
function
|
|
53457
|
+
function redacted2(token2) {
|
|
53409
53458
|
const safe = { ok: true, kind: token2.kind, selector: token2.selector, reserved: token2.reserved };
|
|
53410
53459
|
return Object.defineProperties(safe, {
|
|
53411
53460
|
secret: { value: token2.secret, enumerable: false },
|
|
@@ -53413,7 +53462,7 @@ function redacted(token2) {
|
|
|
53413
53462
|
});
|
|
53414
53463
|
}
|
|
53415
53464
|
function fromToken(scheme, token2, reason) {
|
|
53416
|
-
return token2.ok ? { outcome: "token", scheme, token:
|
|
53465
|
+
return token2.ok ? { outcome: "token", scheme, token: redacted2(token2) } : refuse5(reason);
|
|
53417
53466
|
}
|
|
53418
53467
|
function parseBearer(value) {
|
|
53419
53468
|
return fromToken("bearer", parseToken(value), "malformed");
|
|
@@ -54119,7 +54168,7 @@ function createOsvClient(policyFetch) {
|
|
|
54119
54168
|
else
|
|
54120
54169
|
groups.set(key2, { versionIds: [tuple.versionId], query });
|
|
54121
54170
|
}
|
|
54122
|
-
const body = encoder15.encode(JSON.stringify({ queries: [...groups.values()].map((
|
|
54171
|
+
const body = encoder15.encode(JSON.stringify({ queries: [...groups.values()].map((group2) => group2.query) }));
|
|
54123
54172
|
if (body.length > 64 * 1024)
|
|
54124
54173
|
throw new OsvError("limit");
|
|
54125
54174
|
const response = record6(await request(grant, options, body));
|
|
@@ -54128,9 +54177,9 @@ function createOsvClient(policyFetch) {
|
|
|
54128
54177
|
const results = list2(response.results, 20);
|
|
54129
54178
|
if (results.length !== groups.size)
|
|
54130
54179
|
throw new OsvError("protocol");
|
|
54131
|
-
return [...groups.values()].flatMap((
|
|
54180
|
+
return [...groups.values()].flatMap((group2, index) => {
|
|
54132
54181
|
const page3 = parsePage(results[index]);
|
|
54133
|
-
return
|
|
54182
|
+
return group2.versionIds.map((versionId) => ({ versionId, ...page3 }));
|
|
54134
54183
|
});
|
|
54135
54184
|
},
|
|
54136
54185
|
async detail(grant, options) {
|
|
@@ -55334,7 +55383,7 @@ function narrow(result, current) {
|
|
|
55334
55383
|
return void 0;
|
|
55335
55384
|
kept.add(entry);
|
|
55336
55385
|
}
|
|
55337
|
-
return current.filter((
|
|
55386
|
+
return current.filter((group2) => kept.has(group2));
|
|
55338
55387
|
}
|
|
55339
55388
|
function dataValue3(target, key2) {
|
|
55340
55389
|
const descriptor = Object.getOwnPropertyDescriptor(target, key2);
|
|
@@ -55585,10 +55634,10 @@ function copyGroups(raw2) {
|
|
|
55585
55634
|
function groupsFit(groups) {
|
|
55586
55635
|
if (groups.length > MAX_GROUPS)
|
|
55587
55636
|
return "too_many_groups";
|
|
55588
|
-
for (const
|
|
55589
|
-
if (LONE_SURROGATE4.test(
|
|
55637
|
+
for (const group2 of groups) {
|
|
55638
|
+
if (LONE_SURROGATE4.test(group2))
|
|
55590
55639
|
return "invalid_identity";
|
|
55591
|
-
const length = Array.from(
|
|
55640
|
+
const length = Array.from(group2).length;
|
|
55592
55641
|
if (length < 1)
|
|
55593
55642
|
return "invalid_identity";
|
|
55594
55643
|
if (length > MAX_GROUP_NAME_LENGTH)
|
|
@@ -60890,8 +60939,8 @@ function requireLimit2(limit4) {
|
|
|
60890
60939
|
return limit4;
|
|
60891
60940
|
}
|
|
60892
60941
|
function groupsJson(groups) {
|
|
60893
|
-
for (const
|
|
60894
|
-
if (typeof
|
|
60942
|
+
for (const group2 of groups) {
|
|
60943
|
+
if (typeof group2 !== "string" || LONE_SURROGATE6.test(group2)) {
|
|
60895
60944
|
throw new TypeError("every group must be a well-formed string");
|
|
60896
60945
|
}
|
|
60897
60946
|
}
|
|
@@ -67448,14 +67497,14 @@ function createImportVerificationStore(options) {
|
|
|
67448
67497
|
const entity = ROLLBACK_ENTITIES[type2];
|
|
67449
67498
|
if (entity === void 0)
|
|
67450
67499
|
continue;
|
|
67451
|
-
const
|
|
67500
|
+
const visible2 = visibility(ctx, type2);
|
|
67452
67501
|
const extra = type2 === "source" ? ", EXISTS (SELECT 1 FROM credential ivcredential WHERE ivcredential.org_id = ? AND ivcredential.id = iventity.credential_id AND ivcredential.project_id IS iventity.project_id) AS iv_credential" : type2 === "role" ? ", (SELECT json_group_array(ivpermission.permission) FROM role_permission ivpermission WHERE ivpermission.org_id = ? AND ivpermission.role_id = iventity.id) AS iv_permissions" : "";
|
|
67453
67502
|
for (let offset = 0; offset < ids2.length; offset += 40) {
|
|
67454
67503
|
const keys = ids2.slice(offset, offset + 40).map((id4) => entity.key.length === 1 ? [id4] : id4.split(":")).filter((key2) => key2.length === entity.key.length);
|
|
67455
67504
|
if (keys.length === 0)
|
|
67456
67505
|
continue;
|
|
67457
67506
|
const match3 = entity.key.length === 1 ? `iventity.${entity.key[0]} IN (${keys.map(() => "?").join(", ")})` : `(${entity.key.map((key2) => `iventity.${key2}`).join(", ")}) IN (VALUES ${keys.map(() => `(${entity.key.map(() => "?").join(", ")})`).join(", ")})`;
|
|
67458
|
-
const rows = await executor.all(statement7(`SELECT iventity.*, (${
|
|
67507
|
+
const rows = await executor.all(statement7(`SELECT iventity.*, (${visible2.sql}) AS iv_visible${extra} FROM ${entity.table} iventity WHERE iventity.org_id = ? AND ${match3}`, ...visible2.params, ...extra === "" ? [] : [ctx.orgId], ctx.orgId, ...keys.flat()));
|
|
67459
67508
|
for (const row of rows)
|
|
67460
67509
|
found3.set(`${type2}:${entity.key.map((key2) => String(row[key2])).join(":")}`, row);
|
|
67461
67510
|
}
|
|
@@ -67761,8 +67810,8 @@ function dependencyNames(ecosystem6, fields2) {
|
|
|
67761
67810
|
return { keys: [...keys], unresolvable };
|
|
67762
67811
|
}
|
|
67763
67812
|
const peers = Object.fromEntries(Object.entries(fields2.peerDependencies ?? {}).filter(([name]) => fields2.peerDependenciesMeta?.[name]?.optional !== true));
|
|
67764
|
-
for (const
|
|
67765
|
-
for (const [name, spec] of Object.entries(
|
|
67813
|
+
for (const group2 of [fields2.dependencies, fields2.optionalDependencies, peers]) {
|
|
67814
|
+
for (const [name, spec] of Object.entries(group2 ?? {})) {
|
|
67766
67815
|
const trimmed = typeof spec === "string" ? spec.trim() : null;
|
|
67767
67816
|
if (trimmed === null) {
|
|
67768
67817
|
unresolvable += 1;
|
|
@@ -67867,7 +67916,7 @@ async function buildClosureReport(reader3, actor, organizationPermissions, ecosy
|
|
|
67867
67916
|
const canSeeOrganizationSources = organizationPermissions.has("org:sources:read");
|
|
67868
67917
|
const ctx = { orgId: actor.orgId };
|
|
67869
67918
|
const scope4 = { projectId: actor.projectId, ecosystem: ecosystem6 };
|
|
67870
|
-
const
|
|
67919
|
+
const visible2 = /* @__PURE__ */ new Set();
|
|
67871
67920
|
let after;
|
|
67872
67921
|
do {
|
|
67873
67922
|
const page3 = await reader3.listVisible(ctx, {
|
|
@@ -67876,7 +67925,7 @@ async function buildClosureReport(reader3, actor, organizationPermissions, ecosy
|
|
|
67876
67925
|
...after === void 0 ? {} : { after }
|
|
67877
67926
|
});
|
|
67878
67927
|
for (const item3 of page3.items)
|
|
67879
|
-
|
|
67928
|
+
visible2.add(item3.key);
|
|
67880
67929
|
after = page3.next ?? void 0;
|
|
67881
67930
|
} while (after !== void 0);
|
|
67882
67931
|
const edges = [];
|
|
@@ -67905,7 +67954,7 @@ async function buildClosureReport(reader3, actor, organizationPermissions, ecosy
|
|
|
67905
67954
|
} while (cursor4 !== void 0 && scannedVersions < MAX_SCANNED_VERSIONS);
|
|
67906
67955
|
const options = { ecosystem: ecosystem6, canSeeOrganizationSources };
|
|
67907
67956
|
const classes = /* @__PURE__ */ new Map();
|
|
67908
|
-
const report = computeClosure(
|
|
67957
|
+
const report = computeClosure(visible2, edges, () => "not_available", options);
|
|
67909
67958
|
if (canSeeOrganizationSources) {
|
|
67910
67959
|
const keys = report.missing.map(({ name }) => packageKey(name, { ecosystem: ecosystem6, legacyCase: ecosystem6 === "npm" }));
|
|
67911
67960
|
for (let offset = 0; offset < keys.length; offset += CATALOGUE_KEY_LIST_MAX) {
|
|
@@ -67926,7 +67975,7 @@ async function buildClosureReport(reader3, actor, organizationPermissions, ecosy
|
|
|
67926
67975
|
projectId: actor.projectId,
|
|
67927
67976
|
ecosystem: ecosystem6,
|
|
67928
67977
|
generatedAt: isoTimestamp(clock.now()),
|
|
67929
|
-
scannedPackages:
|
|
67978
|
+
scannedPackages: visible2.size,
|
|
67930
67979
|
scannedVersions,
|
|
67931
67980
|
unresolvableSpecs,
|
|
67932
67981
|
truncated: report.truncated || scannedVersions >= MAX_SCANNED_VERSIONS
|
|
@@ -70747,7 +70796,7 @@ function cleanText(text11) {
|
|
|
70747
70796
|
const kept = (text11.split("<")[0] ?? "").replace(EMAIL_TOKEN, "").trim();
|
|
70748
70797
|
return kept === "" ? void 0 : kept;
|
|
70749
70798
|
}
|
|
70750
|
-
function
|
|
70799
|
+
function person2(value, denied) {
|
|
70751
70800
|
if (typeof value === "string")
|
|
70752
70801
|
return cleanText(value);
|
|
70753
70802
|
if (!isRecord15(value))
|
|
@@ -70762,8 +70811,8 @@ function person(value, denied) {
|
|
|
70762
70811
|
}
|
|
70763
70812
|
function people(value, denied) {
|
|
70764
70813
|
if (!Array.isArray(value))
|
|
70765
|
-
return
|
|
70766
|
-
const list3 = value.map((entry) =>
|
|
70814
|
+
return person2(value, denied);
|
|
70815
|
+
const list3 = value.map((entry) => person2(entry, denied)).filter((entry) => entry !== void 0);
|
|
70767
70816
|
return list3.length === 0 ? void 0 : list3;
|
|
70768
70817
|
}
|
|
70769
70818
|
function bugs(value, denied) {
|