import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import Long from "long"; import type { CallContext, CallOptions } from "nice-grpc-common"; import { PaginationRequest, PaginationResponse } from "../../filter/v2/filter.js"; import { PrivateLabelingSetting, Project, ProjectFieldName, ProjectGrant, ProjectGrantFieldName, ProjectGrantSearchFilter, ProjectRole, ProjectRoleFieldName, ProjectRoleSearchFilter, ProjectSearchFilter } from "./query.js"; export declare const protobufPackage = "zitadel.project.v2"; export interface CreateProjectRequest { /** OrganizationID is the unique identifier of the organization the project belongs to. */ organizationId: string; /** * ProjectID is the unique identifier of the new project. This field is optional. * If omitted, the system will generate a unique ID for you. This is the * recommended way. The generated ID will be returned in the response. */ projectId?: string | undefined; /** Name of the project. This might be presented to users, e.g. in sign-in flows. */ name: string; /** * ProjectRoleAssertion is a setting that can be enabled to have role information * included in the user info endpoint. * It is also dependent on your application settings to include it in tokens and other types. */ projectRoleAssertion: boolean; /** * AuthorizationRequired is a boolean flag that can be enabled to check if a user has * an authorization to use this project assigned when login into an application of this project. */ authorizationRequired: boolean; /** * ProjectAccessRequired is a boolean flag that can be enabled to check if the organization * of the user, that is trying to log in, * has access to this project (either owns the project or is granted). */ projectAccessRequired: boolean; /** * PrivateLabelingSetting is a setting that defines which private labeling/branding should * trigger when getting to a login of this project. */ privateLabelingSetting: PrivateLabelingSetting; } export interface CreateProjectResponse { /** ProjectID is the unique identifier of the newly created project. */ projectId: string; /** CreationDate is the timestamp of the project creation. */ creationDate: Date | undefined; } export interface UpdateProjectRequest { /** ProjectID is the unique identifier of the project to be updated. */ projectId: string; /** * Name is used to update the name of the project. This field is optional. * If omitted, the name will remain unchanged. */ name?: string | undefined; /** * ProjectRoleAssertion is a setting that can be enabled to have role information * included in the user info endpoint. * It is also dependent on your application settings to include it in tokens and other types. * If omitted, the setting will remain unchanged. */ projectRoleAssertion?: boolean | undefined; /** * AuthorizationRequired is a boolean flag that can be enabled to check if a user has * a role of this project assigned when logging into an application of this project. * If omitted, the setting will remain unchanged. */ authorizationRequired?: boolean | undefined; /** * ProjectAccessRequired is a boolean flag that can be enabled to check if the organization * of the user has a grant to this project. * If omitted, the setting will remain unchanged. */ projectAccessRequired?: boolean | undefined; /** * PrivateLabelingSetting is a setting that defines which private labeling/branding should * trigger when getting to a login of this project. * If omitted, the setting will remain unchanged. */ privateLabelingSetting?: PrivateLabelingSetting | undefined; } export interface UpdateProjectResponse { /** ChangeDate is the timestamp of the change of the project. */ changeDate: Date | undefined; } export interface DeleteProjectRequest { /** ProjectID is the unique identifier of the project to be deleted. */ projectId: string; } export interface DeleteProjectResponse { /** * DeletionDate is the timestamp of the deletion of the project. * Note that the deletion date is only guaranteed to be set if the deletion was successful during the request. * In case the deletion occurred in a previous request, the deletion date might be empty. */ deletionDate: Date | undefined; } export interface GetProjectRequest { /** ProjectID is the unique identifier of the project to be retrieved. */ projectId: string; } export interface GetProjectResponse { /** Project is the project that matches the project ID used in the request. */ project: Project | undefined; } export interface ListProjectsRequest { /** Pagination can be used to list limitations and ordering. */ pagination?: PaginationRequest | undefined; /** * SortingColumn is the field the result is sorted by. The default is the creation date. * Beware that if you change this, your result pagination might be inconsistent. */ sortingColumn?: ProjectFieldName | undefined; /** Filters define the criteria to query for. */ filters: ProjectSearchFilter[]; } export interface ListProjectsResponse { /** Pagination contains the total number of projects matching the query and the applied limit. */ pagination: PaginationResponse | undefined; /** Projects is a list of projects matching the query. */ projects: Project[]; } export interface DeactivateProjectRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; } export interface DeactivateProjectResponse { /** ChangeDate is the timestamp of the change of the project. */ changeDate: Date | undefined; } export interface ActivateProjectRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; } export interface ActivateProjectResponse { /** ChangeDate is the timestamp of the change of the project. */ changeDate: Date | undefined; } export interface AddProjectRoleRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** * RoleKey identifies the role. It's the only relevant attribute for ZITADEL and * will be used for authorization checks and as claim in tokens and user info responses. */ roleKey: string; /** DisplayName is a human readable name for the role, which might be displayed to users. */ displayName: string; /** * Group allows grouping roles for display purposes. Zitadel will not handle it in any way. * It can be used to group roles in a UI to allow easier management for administrators. * This attribute is not to be confused with groups as a collection of users. */ group?: string | undefined; } export interface AddProjectRoleResponse { /** CreationDate is the timestamp of the project role creation. */ creationDate: Date | undefined; } export interface UpdateProjectRoleRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** * RoleKey identifies the role. It's the only relevant attribute for ZITADEL and * will be used for authorization checks and as claim in tokens and user info responses. * It cannot be changed. If you need a different key, remove the role and create a new one. */ roleKey: string; /** * DisplayName is the human readable name for the role, which might be displayed to users. * If omitted, the name will remain unchanged. */ displayName?: string | undefined; /** * Group allows grouping roles for display purposes. Zitadel will not handle it in any way. * It can be used to group roles in a UI to allow easier management for administrators. * If omitted, the group will remain unchanged. * This attribute is not to be confused with groups as a collection of users. */ group?: string | undefined; } export interface UpdateProjectRoleResponse { /** ChangeDate is the timestamp of the change of the project role. */ changeDate: Date | undefined; } export interface RemoveProjectRoleRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** * RoleKey is the key of the role to be removed. * All dependencies of this role will be removed as well, including project grants and user grants. * If the role is not found, the request will return a successful response as the desired state is already achieved. */ roleKey: string; } export interface RemoveProjectRoleResponse { /** * RemovalDate is the timestamp of the removal of the project role. * Note that the removal date is only guaranteed to be set if the removal was successful during the request. * In case the removal occurred in a previous request, the removal date might be empty. */ removalDate: Date | undefined; } export interface ListProjectRolesRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** Pagination can be used to list limitations and ordering. */ pagination?: PaginationRequest | undefined; /** * SortingColumn is the field the result is sorted by. The default is the creation date. * Beware that if you change this, your result pagination might be inconsistent. */ sortingColumn?: ProjectRoleFieldName | undefined; /** Filters define the criteria to query for. */ filters: ProjectRoleSearchFilter[]; } export interface ListProjectRolesResponse { /** Pagination contains the total number of project roles matching the query and the applied limit. */ pagination: PaginationResponse | undefined; /** ProjectRoles is a list of roles matching the query. */ projectRoles: ProjectRole[]; } export interface CreateProjectGrantRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** GrantedOrganizationID is the unique identifier of the organization the project will be granted to. */ grantedOrganizationId: string; /** * RoleKeys is a list of roles to be granted to the organization for self management. * The roles are identified by their keys. */ roleKeys: string[]; } export interface CreateProjectGrantResponse { /** CreationDate is the timestamp of the project grant creation. */ creationDate: Date | undefined; } export interface UpdateProjectGrantRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** GrantedOrganizationID is the unique identifier of the organization the project was granted to. */ grantedOrganizationId: string; /** * RoleKeys is a list of roles to be granted to the organization for self management. * The roles are identified by their keys. * Any roles not included in this list will be removed from the project grant. * If you want to add a role, make sure to include all other existing roles as well. * If any previous role is removed, all user grants for this project grant with this role will be removed as well. */ roleKeys: string[]; } export interface UpdateProjectGrantResponse { /** ChangeDate is the timestamp of the change of the project grant. */ changeDate: Date | undefined; } export interface DeleteProjectGrantRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** GrantedOrganizationID is the unique identifier of the organization the project was granted to. */ grantedOrganizationId: string; } export interface DeleteProjectGrantResponse { /** * DeletionDate is the timestamp of the deletion of the project grant. * Note that the deletion date is only guaranteed to be set if the deletion was successful during the request. * In case the deletion occurred in a previous request, the deletion date might be empty. */ deletionDate: Date | undefined; } export interface DeactivateProjectGrantRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** GrantedOrganizationID is the unique identifier of the organization the project was granted to. */ grantedOrganizationId: string; } export interface DeactivateProjectGrantResponse { /** ChangeDate is the timestamp of the change of the project grant. */ changeDate: Date | undefined; } export interface ActivateProjectGrantRequest { /** ProjectID is the unique identifier of the project. */ projectId: string; /** GrantedOrganizationID is the unique identifier of the organization the project was granted to. */ grantedOrganizationId: string; } export interface ActivateProjectGrantResponse { /** ChangeDate is the timestamp of the change of the project grant. */ changeDate: Date | undefined; } export interface ListProjectGrantsRequest { /** Pagination can be used to list limitations and ordering. */ pagination?: PaginationRequest | undefined; /** * SortingColumn is the field the result is sorted by. The default is the creation date. * Beware that if you change this, your result pagination might be inconsistent. */ sortingColumn?: ProjectGrantFieldName | undefined; /** Filters define the criteria to query for. */ filters: ProjectGrantSearchFilter[]; } export interface ListProjectGrantsResponse { /** Pagination contains the total number of project grants matching the query and the applied limit. */ pagination: PaginationResponse | undefined; /** ProjectGrants is a list of project grants matching the query. */ projectGrants: ProjectGrant[]; } export declare const CreateProjectRequest: MessageFns; export declare const CreateProjectResponse: MessageFns; export declare const UpdateProjectRequest: MessageFns; export declare const UpdateProjectResponse: MessageFns; export declare const DeleteProjectRequest: MessageFns; export declare const DeleteProjectResponse: MessageFns; export declare const GetProjectRequest: MessageFns; export declare const GetProjectResponse: MessageFns; export declare const ListProjectsRequest: MessageFns; export declare const ListProjectsResponse: MessageFns; export declare const DeactivateProjectRequest: MessageFns; export declare const DeactivateProjectResponse: MessageFns; export declare const ActivateProjectRequest: MessageFns; export declare const ActivateProjectResponse: MessageFns; export declare const AddProjectRoleRequest: MessageFns; export declare const AddProjectRoleResponse: MessageFns; export declare const UpdateProjectRoleRequest: MessageFns; export declare const UpdateProjectRoleResponse: MessageFns; export declare const RemoveProjectRoleRequest: MessageFns; export declare const RemoveProjectRoleResponse: MessageFns; export declare const ListProjectRolesRequest: MessageFns; export declare const ListProjectRolesResponse: MessageFns; export declare const CreateProjectGrantRequest: MessageFns; export declare const CreateProjectGrantResponse: MessageFns; export declare const UpdateProjectGrantRequest: MessageFns; export declare const UpdateProjectGrantResponse: MessageFns; export declare const DeleteProjectGrantRequest: MessageFns; export declare const DeleteProjectGrantResponse: MessageFns; export declare const DeactivateProjectGrantRequest: MessageFns; export declare const DeactivateProjectGrantResponse: MessageFns; export declare const ActivateProjectGrantRequest: MessageFns; export declare const ActivateProjectGrantResponse: MessageFns; export declare const ListProjectGrantsRequest: MessageFns; export declare const ListProjectGrantsResponse: MessageFns; /** Service to manage projects. */ export type ProjectServiceDefinition = typeof ProjectServiceDefinition; export declare const ProjectServiceDefinition: { readonly name: "ProjectService"; readonly fullName: "zitadel.project.v2.ProjectService"; readonly methods: { /** * Create Project * * Create a new project. A project is a vessel to group applications, roles and * authorizations. Every project belongs to exactly one organization, but * can be granted to other organizations for self-management of their authorizations. * * Required permission: * - `project.create` */ readonly createProject: { readonly name: "CreateProject"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Update Project * * Update an existing project. * * Required permission: * - `project.write` */ readonly updateProject: { readonly name: "UpdateProject"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Delete Project * * Delete an existing project. * In case the project is not found, the request will return a successful response as * the desired state is already achieved. * * Required permission: * - `project.delete` */ readonly deleteProject: { readonly name: "DeleteProject"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Get Project * * Returns the project identified by the requested ID. * * Required permission: * - `project.read` */ readonly getProject: { readonly name: "GetProject"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * List Projects * * List all matching projects. By default all projects of the instance that the caller * has permission to read are returned. * Make sure to include a limit and sorting for pagination. * * Required permission: * - `project.read` */ readonly listProjects: { readonly name: "ListProjects"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Deactivate Project * * Set the state of a project to deactivated. Request returns no error if the project is already deactivated. * Applications under deactivated projects are not able to login anymore. * * Required permission: * - `project.write` */ readonly deactivateProject: { readonly name: "DeactivateProject"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Activate Project * * Set the state of a project to active. Request returns no error if the project is already activated. * * Required permission: * - `project.write` */ readonly activateProject: { readonly name: "ActivateProject"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Add Project Role * * Add a new project role to a project. The key must be unique within the project. * * Required permission: * - `project.role.write` */ readonly addProjectRole: { readonly name: "AddProjectRole"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Update Project Role * * Change a project role. The key is not editable. If a key should change, remove the role and create a new one. * * Required permission: * - `project.role.write` */ readonly updateProjectRole: { readonly name: "UpdateProjectRole"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Remove Project Role * * Removes the role from the project and on every resource it has a dependency. * This includes project grants and user grants. * * Required permission: * - `project.role.write` */ readonly removeProjectRole: { readonly name: "RemoveProjectRole"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * List Project Roles * * Returns all roles of a project matching the search query. * * Required permission: * - `project.role.read` */ readonly listProjectRoles: { readonly name: "ListProjectRoles"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Create Project Grant * * Grant a project to another organization. * The project grant will allow the granted organization to access the project and manage * the authorizations for its users. * * Required permission: * - `project.grant.create` */ readonly createProjectGrant: { readonly name: "CreateProjectGrant"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Update Project Grant * * Change the roles of the project that is granted to another organization. * The project grant will allow the granted organization to access the project and manage * the authorizations for its users. * * Required permission: * - `project.grant.write` */ readonly updateProjectGrant: { readonly name: "UpdateProjectGrant"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Delete Project Grant * * Delete a project grant. All user grants for this project grant will also be removed. * A user will not have access to the project afterward (if permissions are checked). * In case the project grant is not found, the request will return a successful response as * the desired state is already achieved. * * Required permission: * - `project.grant.delete` */ readonly deleteProjectGrant: { readonly name: "DeleteProjectGrant"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Deactivate Project Grant * * Set the state of the project grant to deactivated. * Applications under deactivated projects grants are not able to login anymore. * * Required permission: * - `project.grant.write` */ readonly deactivateProjectGrant: { readonly name: "DeactivateProjectGrant"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Activate Project Grant * * Set the state of the project grant to activated. * * Required permission: * - `project.grant.write` */ readonly activateProjectGrant: { readonly name: "ActivateProjectGrant"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * List Project Grants * * Returns a list of project grants. A project grant is when the organization grants its project * to another organization. * * Required permission: * - `project.grant.read` */ readonly listProjectGrants: { readonly name: "ListProjectGrants"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; }; }; export interface ProjectServiceImplementation { /** * Create Project * * Create a new project. A project is a vessel to group applications, roles and * authorizations. Every project belongs to exactly one organization, but * can be granted to other organizations for self-management of their authorizations. * * Required permission: * - `project.create` */ createProject(request: CreateProjectRequest, context: CallContext & CallContextExt): Promise>; /** * Update Project * * Update an existing project. * * Required permission: * - `project.write` */ updateProject(request: UpdateProjectRequest, context: CallContext & CallContextExt): Promise>; /** * Delete Project * * Delete an existing project. * In case the project is not found, the request will return a successful response as * the desired state is already achieved. * * Required permission: * - `project.delete` */ deleteProject(request: DeleteProjectRequest, context: CallContext & CallContextExt): Promise>; /** * Get Project * * Returns the project identified by the requested ID. * * Required permission: * - `project.read` */ getProject(request: GetProjectRequest, context: CallContext & CallContextExt): Promise>; /** * List Projects * * List all matching projects. By default all projects of the instance that the caller * has permission to read are returned. * Make sure to include a limit and sorting for pagination. * * Required permission: * - `project.read` */ listProjects(request: ListProjectsRequest, context: CallContext & CallContextExt): Promise>; /** * Deactivate Project * * Set the state of a project to deactivated. Request returns no error if the project is already deactivated. * Applications under deactivated projects are not able to login anymore. * * Required permission: * - `project.write` */ deactivateProject(request: DeactivateProjectRequest, context: CallContext & CallContextExt): Promise>; /** * Activate Project * * Set the state of a project to active. Request returns no error if the project is already activated. * * Required permission: * - `project.write` */ activateProject(request: ActivateProjectRequest, context: CallContext & CallContextExt): Promise>; /** * Add Project Role * * Add a new project role to a project. The key must be unique within the project. * * Required permission: * - `project.role.write` */ addProjectRole(request: AddProjectRoleRequest, context: CallContext & CallContextExt): Promise>; /** * Update Project Role * * Change a project role. The key is not editable. If a key should change, remove the role and create a new one. * * Required permission: * - `project.role.write` */ updateProjectRole(request: UpdateProjectRoleRequest, context: CallContext & CallContextExt): Promise>; /** * Remove Project Role * * Removes the role from the project and on every resource it has a dependency. * This includes project grants and user grants. * * Required permission: * - `project.role.write` */ removeProjectRole(request: RemoveProjectRoleRequest, context: CallContext & CallContextExt): Promise>; /** * List Project Roles * * Returns all roles of a project matching the search query. * * Required permission: * - `project.role.read` */ listProjectRoles(request: ListProjectRolesRequest, context: CallContext & CallContextExt): Promise>; /** * Create Project Grant * * Grant a project to another organization. * The project grant will allow the granted organization to access the project and manage * the authorizations for its users. * * Required permission: * - `project.grant.create` */ createProjectGrant(request: CreateProjectGrantRequest, context: CallContext & CallContextExt): Promise>; /** * Update Project Grant * * Change the roles of the project that is granted to another organization. * The project grant will allow the granted organization to access the project and manage * the authorizations for its users. * * Required permission: * - `project.grant.write` */ updateProjectGrant(request: UpdateProjectGrantRequest, context: CallContext & CallContextExt): Promise>; /** * Delete Project Grant * * Delete a project grant. All user grants for this project grant will also be removed. * A user will not have access to the project afterward (if permissions are checked). * In case the project grant is not found, the request will return a successful response as * the desired state is already achieved. * * Required permission: * - `project.grant.delete` */ deleteProjectGrant(request: DeleteProjectGrantRequest, context: CallContext & CallContextExt): Promise>; /** * Deactivate Project Grant * * Set the state of the project grant to deactivated. * Applications under deactivated projects grants are not able to login anymore. * * Required permission: * - `project.grant.write` */ deactivateProjectGrant(request: DeactivateProjectGrantRequest, context: CallContext & CallContextExt): Promise>; /** * Activate Project Grant * * Set the state of the project grant to activated. * * Required permission: * - `project.grant.write` */ activateProjectGrant(request: ActivateProjectGrantRequest, context: CallContext & CallContextExt): Promise>; /** * List Project Grants * * Returns a list of project grants. A project grant is when the organization grants its project * to another organization. * * Required permission: * - `project.grant.read` */ listProjectGrants(request: ListProjectGrantsRequest, context: CallContext & CallContextExt): Promise>; } export interface ProjectServiceClient { /** * Create Project * * Create a new project. A project is a vessel to group applications, roles and * authorizations. Every project belongs to exactly one organization, but * can be granted to other organizations for self-management of their authorizations. * * Required permission: * - `project.create` */ createProject(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Update Project * * Update an existing project. * * Required permission: * - `project.write` */ updateProject(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Delete Project * * Delete an existing project. * In case the project is not found, the request will return a successful response as * the desired state is already achieved. * * Required permission: * - `project.delete` */ deleteProject(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Get Project * * Returns the project identified by the requested ID. * * Required permission: * - `project.read` */ getProject(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * List Projects * * List all matching projects. By default all projects of the instance that the caller * has permission to read are returned. * Make sure to include a limit and sorting for pagination. * * Required permission: * - `project.read` */ listProjects(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Deactivate Project * * Set the state of a project to deactivated. Request returns no error if the project is already deactivated. * Applications under deactivated projects are not able to login anymore. * * Required permission: * - `project.write` */ deactivateProject(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Activate Project * * Set the state of a project to active. Request returns no error if the project is already activated. * * Required permission: * - `project.write` */ activateProject(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Add Project Role * * Add a new project role to a project. The key must be unique within the project. * * Required permission: * - `project.role.write` */ addProjectRole(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Update Project Role * * Change a project role. The key is not editable. If a key should change, remove the role and create a new one. * * Required permission: * - `project.role.write` */ updateProjectRole(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Remove Project Role * * Removes the role from the project and on every resource it has a dependency. * This includes project grants and user grants. * * Required permission: * - `project.role.write` */ removeProjectRole(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * List Project Roles * * Returns all roles of a project matching the search query. * * Required permission: * - `project.role.read` */ listProjectRoles(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Create Project Grant * * Grant a project to another organization. * The project grant will allow the granted organization to access the project and manage * the authorizations for its users. * * Required permission: * - `project.grant.create` */ createProjectGrant(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Update Project Grant * * Change the roles of the project that is granted to another organization. * The project grant will allow the granted organization to access the project and manage * the authorizations for its users. * * Required permission: * - `project.grant.write` */ updateProjectGrant(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Delete Project Grant * * Delete a project grant. All user grants for this project grant will also be removed. * A user will not have access to the project afterward (if permissions are checked). * In case the project grant is not found, the request will return a successful response as * the desired state is already achieved. * * Required permission: * - `project.grant.delete` */ deleteProjectGrant(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Deactivate Project Grant * * Set the state of the project grant to deactivated. * Applications under deactivated projects grants are not able to login anymore. * * Required permission: * - `project.grant.write` */ deactivateProjectGrant(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Activate Project Grant * * Set the state of the project grant to activated. * * Required permission: * - `project.grant.write` */ activateProjectGrant(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * List Project Grants * * Returns a list of project grants. A project grant is when the organization grants its project * to another organization. * * Required permission: * - `project.grant.read` */ listProjectGrants(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; } type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial = T extends Builtin ? T : T extends Long ? string | number | Long : T extends globalThis.Array ? globalThis.Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? { [K in keyof T]?: DeepPartial; } : Partial; export interface MessageFns { encode(message: T, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): T; fromJSON(object: any): T; toJSON(message: T): unknown; create(base?: DeepPartial): T; fromPartial(object: DeepPartial): T; } export {};