{
  "schemaVersion": 1,
  "operation": {
    "operationId": "listProjectRoleBindings",
    "method": "GET",
    "path": "/api/v1/projects/{project}/role-bindings",
    "summary": "List target-owned project role bindings",
    "description": "",
    "tags": [
      "Access"
    ],
    "effect": "read",
    "confirmation": "never",
    "authorization": {
      "action": "project.access.read",
      "mode": "privilege",
      "privilege": "PROJECT_ADMIN",
      "resolver": "project"
    },
    "parameters": [
      {
        "name": "project",
        "in": "path",
        "required": true,
        "description": "",
        "schema": {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        }
      },
      {
        "name": "limit",
        "in": "query",
        "required": false,
        "description": "",
        "schema": {
          "format": "int32",
          "maximum": 200,
          "minimum": 1,
          "type": "integer"
        }
      },
      {
        "name": "pageToken",
        "in": "query",
        "required": false,
        "description": "",
        "schema": {
          "maxLength": 2048,
          "minLength": 1,
          "type": "string"
        }
      }
    ],
    "responses": [
      {
        "status": "200",
        "description": "The request has succeeded.",
        "content": [
          {
            "contentType": "application/json",
            "schema": {
              "$ref": "#/components/schemas/RoleBindingListResponse"
            }
          }
        ]
      },
      {
        "status": "400",
        "description": "The server could not understand the request due to invalid syntax.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "401",
        "description": "Access is unauthorized.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "403",
        "description": "Access is forbidden.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "404",
        "description": "The server cannot find the requested resource.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "409",
        "description": "The request conflicts with the current state of the server.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "412",
        "description": "Precondition failed.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "413",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "415",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "422",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "429",
        "description": "Client error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "500",
        "description": "Server error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "502",
        "description": "Server error",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      },
      {
        "status": "503",
        "description": "Service unavailable.",
        "content": [
          {
            "contentType": "application/problem+json",
            "schema": {
              "$ref": "#/components/schemas/ProblemDetails"
            }
          }
        ]
      }
    ]
  },
  "schemas": {
    "Capability": {
      "enum": [
        "PLATFORM_ADMIN",
        "PROJECT_ADMIN",
        "RESOURCE_USE",
        "RESOURCE_READ",
        "RESOURCE_EDIT",
        "RESOURCE_MANAGE",
        "RESOURCE_SHARE",
        "RESOURCE_PUBLISH"
      ],
      "example": "PLATFORM_ADMIN",
      "type": "string"
    },
    "PageInfo": {
      "example": {
        "nextCursor": "example"
      },
      "properties": {
        "nextCursor": {
          "example": "example",
          "type": "string"
        }
      },
      "type": "object"
    },
    "PermissionAction": {
      "enum": [
        "dashboard.read",
        "dashboard.create",
        "dashboard.update",
        "dashboard.delete",
        "dashboard.publish",
        "semantic.read",
        "semantic.query",
        "semantic.consume",
        "semantic.create",
        "semantic.update",
        "semantic.delete",
        "source.read",
        "source.create",
        "source.update",
        "source.delete",
        "model.read",
        "model.create",
        "model.update",
        "model.delete",
        "pipeline.read",
        "pipeline.create",
        "pipeline.run",
        "pipeline.update",
        "pipeline.delete",
        "connection.read",
        "connection.create",
        "connection.use",
        "connection.manage",
        "connection.upload",
        "resource.share",
        "delivery.read",
        "delivery.plan",
        "delivery.build",
        "delivery.publish",
        "delivery.approve",
        "delivery.activate",
        "delivery.rollback",
        "project.settings.read",
        "project.settings.update",
        "project.access.read",
        "project.access.manage",
        "project.access.delegate",
        "audit.read",
        "workload.delegate",
        "platform.settings.read",
        "platform.settings.update",
        "platform.access.read",
        "platform.access.manage",
        "platform.audit.read",
        "instance.project.claim"
      ],
      "example": "dashboard.read",
      "type": "string"
    },
    "PermissionCatalogProfile": {
      "enum": [
        "leapview.permissions/v1"
      ],
      "example": "leapview.permissions/v1",
      "type": "string"
    },
    "PermissionPair": {
      "example": {
        "action": "dashboard.read",
        "profile": "leapview.permissions/v1",
        "target": {
          "projectId": "project:analytics",
          "resourceId": "dashboard:sales",
          "resourceKind": "dashboard",
          "scope": "resource"
        }
      },
      "properties": {
        "action": {
          "$ref": "#/components/schemas/PermissionAction"
        },
        "profile": {
          "$ref": "#/components/schemas/PermissionCatalogProfile"
        },
        "target": {
          "$ref": "#/components/schemas/PermissionTarget"
        }
      },
      "required": [
        "action",
        "target",
        "profile"
      ],
      "type": "object"
    },
    "PermissionScope": {
      "enum": [
        "instance",
        "project",
        "resource"
      ],
      "example": "instance",
      "type": "string"
    },
    "PermissionTarget": {
      "example": {
        "projectId": "project:analytics",
        "resourceId": "dashboard:sales",
        "resourceKind": "dashboard",
        "scope": "resource"
      },
      "properties": {
        "includeFuture": {
          "example": true,
          "type": "boolean"
        },
        "instanceId": {
          "example": "example",
          "type": "string"
        },
        "projectId": {
          "example": "example",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "resourceId": {
          "example": "example",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "resourceKind": {
          "$ref": "#/components/schemas/ResourceKind"
        },
        "scope": {
          "$ref": "#/components/schemas/PermissionScope"
        }
      },
      "required": [
        "scope"
      ],
      "type": "object"
    },
    "ProblemDetails": {
      "example": {
        "code": "example",
        "detail": "example",
        "errors": [
          {
            "code": "example",
            "detail": "example",
            "field": "example"
          }
        ],
        "instance": "example",
        "requestId": "example",
        "status": 1,
        "title": "example",
        "type": "example"
      },
      "properties": {
        "code": {
          "example": "example",
          "type": "string"
        },
        "detail": {
          "example": "example",
          "type": "string"
        },
        "errors": {
          "example": [
            {
              "code": "example",
              "detail": "example",
              "field": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/ProblemFieldError"
          },
          "type": "array"
        },
        "instance": {
          "example": "example",
          "type": "string"
        },
        "requestId": {
          "example": "example",
          "type": "string"
        },
        "status": {
          "example": 1,
          "format": "int32",
          "type": "integer"
        },
        "title": {
          "example": "example",
          "type": "string"
        },
        "type": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "type",
        "title",
        "status",
        "detail",
        "instance",
        "code",
        "requestId",
        "errors"
      ],
      "type": "object"
    },
    "ProblemFieldError": {
      "example": {
        "code": "example",
        "detail": "example",
        "field": "example"
      },
      "properties": {
        "code": {
          "example": "example",
          "type": "string"
        },
        "detail": {
          "example": "example",
          "type": "string"
        },
        "field": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "field",
        "code",
        "detail"
      ],
      "type": "object"
    },
    "ResourceKind": {
      "enum": [
        "project",
        "connection",
        "source",
        "model",
        "semantic_model",
        "pipeline",
        "dashboard"
      ],
      "example": "project",
      "type": "string"
    },
    "RoleBindingListResponse": {
      "example": {
        "environment": "example",
        "items": [
          {
            "adminApproved": true,
            "capabilities": [
              "PLATFORM_ADMIN"
            ],
            "id": "example",
            "name": "example",
            "permissionProfile": "leapview.permissions/v1",
            "permissions": [
              {
                "action": "dashboard.read",
                "profile": "leapview.permissions/v1",
                "target": {
                  "projectId": "project:analytics",
                  "resourceId": "dashboard:sales",
                  "resourceKind": "dashboard",
                  "scope": "resource"
                }
              }
            ],
            "policyDigest": "example",
            "policyRevision": 1,
            "role": "example",
            "subjectId": "example",
            "subjectType": "example"
          }
        ],
        "page": {
          "nextCursor": "example"
        },
        "policyDigest": "example",
        "policyRevision": 1,
        "projectId": "example",
        "targetId": "example"
      },
      "properties": {
        "environment": {
          "example": "example",
          "type": "string"
        },
        "items": {
          "example": [
            {
              "adminApproved": true,
              "capabilities": [
                "PLATFORM_ADMIN"
              ],
              "id": "example",
              "name": "example",
              "permissionProfile": "leapview.permissions/v1",
              "permissions": [
                {
                  "action": "dashboard.read",
                  "profile": "leapview.permissions/v1",
                  "target": {
                    "projectId": "project:analytics",
                    "resourceId": "dashboard:sales",
                    "resourceKind": "dashboard",
                    "scope": "resource"
                  }
                }
              ],
              "policyDigest": "example",
              "policyRevision": 1,
              "role": "example",
              "subjectId": "example",
              "subjectType": "example"
            }
          ],
          "items": {
            "$ref": "#/components/schemas/RoleBindingResponse"
          },
          "type": "array"
        },
        "page": {
          "$ref": "#/components/schemas/PageInfo"
        },
        "policyDigest": {
          "example": "example",
          "type": "string"
        },
        "policyRevision": {
          "example": 1,
          "format": "int64",
          "type": "integer"
        },
        "projectId": {
          "example": "example",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
          "type": "string"
        },
        "targetId": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "items",
        "page",
        "targetId",
        "projectId",
        "environment",
        "policyRevision",
        "policyDigest"
      ],
      "type": "object"
    },
    "RoleBindingResponse": {
      "example": {
        "adminApproved": true,
        "capabilities": [
          "PLATFORM_ADMIN"
        ],
        "id": "example",
        "name": "example",
        "permissionProfile": "leapview.permissions/v1",
        "permissions": [
          {
            "action": "dashboard.read",
            "profile": "leapview.permissions/v1",
            "target": {
              "projectId": "project:analytics",
              "resourceId": "dashboard:sales",
              "resourceKind": "dashboard",
              "scope": "resource"
            }
          }
        ],
        "policyDigest": "example",
        "policyRevision": 1,
        "role": "example",
        "subjectId": "example",
        "subjectType": "example"
      },
      "properties": {
        "adminApproved": {
          "description": "Server-owned approval for immediate activation. Omitted on older servers means false; this field is never accepted in role creation requests.",
          "example": true,
          "type": "boolean"
        },
        "capabilities": {
          "description": "Legacy read-only capability evidence. New role bindings never populate this field.",
          "example": [
            "PLATFORM_ADMIN"
          ],
          "items": {
            "$ref": "#/components/schemas/Capability"
          },
          "type": "array"
        },
        "id": {
          "example": "example",
          "type": "string"
        },
        "name": {
          "example": "example",
          "type": "string"
        },
        "permissionProfile": {
          "$ref": "#/components/schemas/PermissionCatalogProfile",
          "description": "The versioned typed permission profile captured with this assignment."
        },
        "permissions": {
          "description": "The exact immutable action-target expansion captured at assignment time.",
          "example": [
            {
              "action": "dashboard.read",
              "profile": "leapview.permissions/v1",
              "target": {
                "projectId": "project:analytics",
                "resourceId": "dashboard:sales",
                "resourceKind": "dashboard",
                "scope": "resource"
              }
            }
          ],
          "items": {
            "$ref": "#/components/schemas/PermissionPair"
          },
          "type": "array"
        },
        "policyDigest": {
          "example": "example",
          "type": "string"
        },
        "policyRevision": {
          "example": 1,
          "format": "int64",
          "type": "integer"
        },
        "role": {
          "example": "example",
          "type": "string"
        },
        "subjectId": {
          "example": "example",
          "type": "string"
        },
        "subjectType": {
          "example": "example",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "subjectType",
        "subjectId",
        "role",
        "policyRevision",
        "policyDigest"
      ],
      "type": "object"
    }
  }
}
