@zitadel/node
Version:
Library for API access to ZITADEL. Provides compiled gRPC service clients and helpers for applications and service accounts.
988 lines (987 loc) • 41.6 kB
TypeScript
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
import Long from "long";
import type { CallContext, CallOptions } from "nice-grpc-common";
import { PaginationRequest, PaginationResponse } from "../../filter/v2beta/filter.js";
import { PrivateLabelingSetting, Project, ProjectFieldName, ProjectGrant, ProjectGrantFieldName, ProjectGrantSearchFilter, ProjectRole, ProjectRoleFieldName, ProjectRoleSearchFilter, ProjectSearchFilter } from "./query.js";
export declare const protobufPackage = "zitadel.project.v2beta";
export interface CreateProjectRequest {
/** The unique identifier of the organization the project belongs to. */
organizationId: string;
/** The unique identifier of the project. */
id?: string | undefined;
/** Name of the project. */
name: string;
/** Enable this setting 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;
/** When enabled ZITADEL will check if a user has an authorization to use this project assigned when login into an application of this project. */
authorizationRequired: boolean;
/** When enabled ZITADEL will 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;
/** Define which private labeling/branding should trigger when getting to a login of this project. */
privateLabelingSetting: PrivateLabelingSetting;
}
export interface CreateProjectResponse {
/** The unique identifier of the newly created project. */
id: string;
/** The timestamp of the project creation. */
creationDate: Date | undefined;
}
export interface UpdateProjectRequest {
id: string;
/** Name of the project. */
name?: string | undefined;
/** Enable this setting 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 | undefined;
/** When enabled ZITADEL will check if a user has a role of this project assigned when login into an application of this project. */
projectRoleCheck?: boolean | undefined;
/** When enabled ZITADEL will check if the organization of the user, that is trying to log in, has a grant to this project. */
hasProjectCheck?: boolean | undefined;
/** Define which private labeling/branding should trigger when getting to a login of this project. */
privateLabelingSetting?: PrivateLabelingSetting | undefined;
}
export interface UpdateProjectResponse {
/** The timestamp of the change of the project. */
changeDate: Date | undefined;
}
export interface DeleteProjectRequest {
/** The unique identifier of the project. */
id: string;
}
export interface DeleteProjectResponse {
/**
* 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 {
/** The unique identifier of the project. */
id: string;
}
export interface GetProjectResponse {
project: Project | undefined;
}
export interface ListProjectsRequest {
/** List limitations and ordering. */
pagination?: PaginationRequest | undefined;
/** 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;
/** Define the criteria to query for. */
filters: ProjectSearchFilter[];
}
export interface ListProjectsResponse {
pagination: PaginationResponse | undefined;
projects: Project[];
}
export interface DeactivateProjectRequest {
/** The unique identifier of the project. */
id: string;
}
export interface DeactivateProjectResponse {
/** The timestamp of the change of the project. */
changeDate: Date | undefined;
}
export interface ActivateProjectRequest {
/** The unique identifier of the project. */
id: string;
}
export interface ActivateProjectResponse {
/** The timestamp of the change of the project. */
changeDate: Date | undefined;
}
export interface AddProjectRoleRequest {
/** ID of the project. */
projectId: string;
/** The key is the only relevant attribute for ZITADEL regarding the authorization checks. */
roleKey: string;
/** Name displayed for the role. */
displayName: string;
/** The group is only used for display purposes. That you have better handling, like giving all the roles from a group to a user. */
group?: string | undefined;
}
export interface AddProjectRoleResponse {
/** The timestamp of the project role creation. */
creationDate: Date | undefined;
}
export interface UpdateProjectRoleRequest {
/** ID of the project. */
projectId: string;
/** The key is the only relevant attribute for ZITADEL regarding the authorization checks. */
roleKey: string;
/** Name displayed for the role. */
displayName?: string | undefined;
/** The group is only used for display purposes. That you have better handling, like giving all the roles from a group to a user. */
group?: string | undefined;
}
export interface UpdateProjectRoleResponse {
/** The timestamp of the change of the project role. */
changeDate: Date | undefined;
}
export interface RemoveProjectRoleRequest {
/** ID of the project. */
projectId: string;
/** The key is the only relevant attribute for ZITADEL regarding the authorization checks. */
roleKey: string;
}
export interface RemoveProjectRoleResponse {
/**
* 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 {
/** ID of the project. */
projectId: string;
/** List limitations and ordering. */
pagination?: PaginationRequest | undefined;
/** 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;
/** Define the criteria to query for. */
filters: ProjectRoleSearchFilter[];
}
export interface ListProjectRolesResponse {
pagination: PaginationResponse | undefined;
projectRoles: ProjectRole[];
}
export interface CreateProjectGrantRequest {
/** ID of the project. */
projectId: string;
/** Organization the project is granted to. */
grantedOrganizationId: string;
/** Keys of the role available for the project grant. */
roleKeys: string[];
}
export interface CreateProjectGrantResponse {
/** The timestamp of the project grant creation. */
creationDate: Date | undefined;
}
export interface UpdateProjectGrantRequest {
/** ID of the project. */
projectId: string;
/** Organization the project is granted to. */
grantedOrganizationId: string;
/** Keys of the role available for the project grant. */
roleKeys: string[];
}
export interface UpdateProjectGrantResponse {
/** The timestamp of the change of the project grant. */
changeDate: Date | undefined;
}
export interface DeleteProjectGrantRequest {
/** ID of the project. */
projectId: string;
/** Organization the project is granted to. */
grantedOrganizationId: string;
}
export interface DeleteProjectGrantResponse {
/**
* 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 {
/** ID of the project. */
projectId: string;
/** Organization the project is granted to. */
grantedOrganizationId: string;
}
export interface DeactivateProjectGrantResponse {
/** The timestamp of the change of the project grant. */
changeDate: Date | undefined;
}
export interface ActivateProjectGrantRequest {
/** ID of the project. */
projectId: string;
/** Organization the project is granted to. */
grantedOrganizationId: string;
}
export interface ActivateProjectGrantResponse {
/** The timestamp of the change of the project grant. */
changeDate: Date | undefined;
}
export interface ListProjectGrantsRequest {
/** List limitations and ordering. */
pagination?: PaginationRequest | undefined;
/** 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;
/** Define the criteria to query for. */
filters: ProjectGrantSearchFilter[];
}
export interface ListProjectGrantsResponse {
pagination: PaginationResponse | undefined;
projectGrants: ProjectGrant[];
}
export declare const CreateProjectRequest: MessageFns<CreateProjectRequest>;
export declare const CreateProjectResponse: MessageFns<CreateProjectResponse>;
export declare const UpdateProjectRequest: MessageFns<UpdateProjectRequest>;
export declare const UpdateProjectResponse: MessageFns<UpdateProjectResponse>;
export declare const DeleteProjectRequest: MessageFns<DeleteProjectRequest>;
export declare const DeleteProjectResponse: MessageFns<DeleteProjectResponse>;
export declare const GetProjectRequest: MessageFns<GetProjectRequest>;
export declare const GetProjectResponse: MessageFns<GetProjectResponse>;
export declare const ListProjectsRequest: MessageFns<ListProjectsRequest>;
export declare const ListProjectsResponse: MessageFns<ListProjectsResponse>;
export declare const DeactivateProjectRequest: MessageFns<DeactivateProjectRequest>;
export declare const DeactivateProjectResponse: MessageFns<DeactivateProjectResponse>;
export declare const ActivateProjectRequest: MessageFns<ActivateProjectRequest>;
export declare const ActivateProjectResponse: MessageFns<ActivateProjectResponse>;
export declare const AddProjectRoleRequest: MessageFns<AddProjectRoleRequest>;
export declare const AddProjectRoleResponse: MessageFns<AddProjectRoleResponse>;
export declare const UpdateProjectRoleRequest: MessageFns<UpdateProjectRoleRequest>;
export declare const UpdateProjectRoleResponse: MessageFns<UpdateProjectRoleResponse>;
export declare const RemoveProjectRoleRequest: MessageFns<RemoveProjectRoleRequest>;
export declare const RemoveProjectRoleResponse: MessageFns<RemoveProjectRoleResponse>;
export declare const ListProjectRolesRequest: MessageFns<ListProjectRolesRequest>;
export declare const ListProjectRolesResponse: MessageFns<ListProjectRolesResponse>;
export declare const CreateProjectGrantRequest: MessageFns<CreateProjectGrantRequest>;
export declare const CreateProjectGrantResponse: MessageFns<CreateProjectGrantResponse>;
export declare const UpdateProjectGrantRequest: MessageFns<UpdateProjectGrantRequest>;
export declare const UpdateProjectGrantResponse: MessageFns<UpdateProjectGrantResponse>;
export declare const DeleteProjectGrantRequest: MessageFns<DeleteProjectGrantRequest>;
export declare const DeleteProjectGrantResponse: MessageFns<DeleteProjectGrantResponse>;
export declare const DeactivateProjectGrantRequest: MessageFns<DeactivateProjectGrantRequest>;
export declare const DeactivateProjectGrantResponse: MessageFns<DeactivateProjectGrantResponse>;
export declare const ActivateProjectGrantRequest: MessageFns<ActivateProjectGrantRequest>;
export declare const ActivateProjectGrantResponse: MessageFns<ActivateProjectGrantResponse>;
export declare const ListProjectGrantsRequest: MessageFns<ListProjectGrantsRequest>;
export declare const ListProjectGrantsResponse: MessageFns<ListProjectGrantsResponse>;
/** Service to manage projects. */
export type ProjectServiceDefinition = typeof ProjectServiceDefinition;
export declare const ProjectServiceDefinition: {
readonly name: "ProjectService";
readonly fullName: "zitadel.project.v2beta.ProjectService";
readonly methods: {
/**
* Create Project
*
* Create a new Project.
*
* Required permission:
* - `project.create`
*/
readonly createProject: {
readonly name: "CreateProject";
readonly requestType: MessageFns<CreateProjectRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<CreateProjectResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: readonly [Buffer];
};
};
};
/**
* Update Project
*
* Update an existing project.
*
* Required permission:
* - `project.write`
*/
readonly updateProject: {
readonly name: "UpdateProject";
readonly requestType: MessageFns<UpdateProjectRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<UpdateProjectResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<DeleteProjectRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<DeleteProjectResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: readonly [Buffer];
};
};
};
/**
* Get Project
*
* Returns the project identified by the requested ID.
*
* Required permission:
* - `project.read`
*/
readonly getProject: {
readonly name: "GetProject";
readonly requestType: MessageFns<GetProjectRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<GetProjectResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<ListProjectsRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<ListProjectsResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<DeactivateProjectRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<DeactivateProjectResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<ActivateProjectRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<ActivateProjectResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<AddProjectRoleRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<AddProjectRoleResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<UpdateProjectRoleRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<UpdateProjectRoleResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<RemoveProjectRoleRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<RemoveProjectRoleResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<ListProjectRolesRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<ListProjectRolesResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<CreateProjectGrantRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<CreateProjectGrantResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<UpdateProjectGrantRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<UpdateProjectGrantResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<DeleteProjectGrantRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<DeleteProjectGrantResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<DeactivateProjectGrantRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<DeactivateProjectGrantResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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<ActivateProjectGrantRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<ActivateProjectGrantResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: 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.write`
*/
readonly listProjectGrants: {
readonly name: "ListProjectGrants";
readonly requestType: MessageFns<ListProjectGrantsRequest>;
readonly requestStream: false;
readonly responseType: MessageFns<ListProjectGrantsResponse>;
readonly responseStream: false;
readonly options: {
readonly _unknownFields: {
readonly 8338: readonly [Buffer];
readonly 400010: readonly [Buffer];
readonly 578365826: readonly [Buffer];
};
};
};
};
};
export interface ProjectServiceImplementation<CallContextExt = {}> {
/**
* Create Project
*
* Create a new Project.
*
* Required permission:
* - `project.create`
*/
createProject(request: CreateProjectRequest, context: CallContext & CallContextExt): Promise<DeepPartial<CreateProjectResponse>>;
/**
* Update Project
*
* Update an existing project.
*
* Required permission:
* - `project.write`
*/
updateProject(request: UpdateProjectRequest, context: CallContext & CallContextExt): Promise<DeepPartial<UpdateProjectResponse>>;
/**
* 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<DeepPartial<DeleteProjectResponse>>;
/**
* Get Project
*
* Returns the project identified by the requested ID.
*
* Required permission:
* - `project.read`
*/
getProject(request: GetProjectRequest, context: CallContext & CallContextExt): Promise<DeepPartial<GetProjectResponse>>;
/**
* 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<DeepPartial<ListProjectsResponse>>;
/**
* 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<DeepPartial<DeactivateProjectResponse>>;
/**
* 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<DeepPartial<ActivateProjectResponse>>;
/**
* 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<DeepPartial<AddProjectRoleResponse>>;
/**
* 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<DeepPartial<UpdateProjectRoleResponse>>;
/**
* 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<DeepPartial<RemoveProjectRoleResponse>>;
/**
* 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<DeepPartial<ListProjectRolesResponse>>;
/**
* 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<DeepPartial<CreateProjectGrantResponse>>;
/**
* 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<DeepPartial<UpdateProjectGrantResponse>>;
/**
* 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<DeepPartial<DeleteProjectGrantResponse>>;
/**
* 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<DeepPartial<DeactivateProjectGrantResponse>>;
/**
* Activate Project Grant
*
* Set the state of the project grant to activated.
*
* Required permission:
* - `project.grant.write`
*/
activateProjectGrant(request: ActivateProjectGrantRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ActivateProjectGrantResponse>>;
/**
* 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.write`
*/
listProjectGrants(request: ListProjectGrantsRequest, context: CallContext & CallContextExt): Promise<DeepPartial<ListProjectGrantsResponse>>;
}
export interface ProjectServiceClient<CallOptionsExt = {}> {
/**
* Create Project
*
* Create a new Project.
*
* Required permission:
* - `project.create`
*/
createProject(request: DeepPartial<CreateProjectRequest>, options?: CallOptions & CallOptionsExt): Promise<CreateProjectResponse>;
/**
* Update Project
*
* Update an existing project.
*
* Required permission:
* - `project.write`
*/
updateProject(request: DeepPartial<UpdateProjectRequest>, options?: CallOptions & CallOptionsExt): Promise<UpdateProjectResponse>;
/**
* 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<DeleteProjectRequest>, options?: CallOptions & CallOptionsExt): Promise<DeleteProjectResponse>;
/**
* Get Project
*
* Returns the project identified by the requested ID.
*
* Required permission:
* - `project.read`
*/
getProject(request: DeepPartial<GetProjectRequest>, options?: CallOptions & CallOptionsExt): Promise<GetProjectResponse>;
/**
* 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<ListProjectsRequest>, options?: CallOptions & CallOptionsExt): Promise<ListProjectsResponse>;
/**
* 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<DeactivateProjectRequest>, options?: CallOptions & CallOptionsExt): Promise<DeactivateProjectResponse>;
/**
* 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<ActivateProjectRequest>, options?: CallOptions & CallOptionsExt): Promise<ActivateProjectResponse>;
/**
* 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<AddProjectRoleRequest>, options?: CallOptions & CallOptionsExt): Promise<AddProjectRoleResponse>;
/**
* 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<UpdateProjectRoleRequest>, options?: CallOptions & CallOptionsExt): Promise<UpdateProjectRoleResponse>;
/**
* 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<RemoveProjectRoleRequest>, options?: CallOptions & CallOptionsExt): Promise<RemoveProjectRoleResponse>;
/**
* List Project Roles
*
* Returns all roles of a project matching the search query.
*
* Required permission:
* - `project.role.read`
*/
listProjectRoles(request: DeepPartial<ListProjectRolesRequest>, options?: CallOptions & CallOptionsExt): Promise<ListProjectRolesResponse>;
/**
* 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<CreateProjectGrantRequest>, options?: CallOptions & CallOptionsExt): Promise<CreateProjectGrantResponse>;
/**
* 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<UpdateProjectGrantRequest>, options?: CallOptions & CallOptionsExt): Promise<UpdateProjectGrantResponse>;
/**
* 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<DeleteProjectGrantRequest>, options?: CallOptions & CallOptionsExt): Promise<DeleteProjectGrantResponse>;
/**
* 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<DeactivateProjectGrantRequest>, options?: CallOptions & CallOptionsExt): Promise<DeactivateProjectGrantResponse>;
/**
* Activate Project Grant
*
* Set the state of the project grant to activated.
*
* Required permission:
* - `project.grant.write`
*/
activateProjectGrant(request: DeepPartial<ActivateProjectGrantRequest>, options?: CallOptions & CallOptionsExt): Promise<ActivateProjectGrantResponse>;
/**
* 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.write`
*/
listProjectGrants(request: DeepPartial<ListProjectGrantsRequest>, options?: CallOptions & CallOptionsExt): Promise<ListProjectGrantsResponse>;
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Long ? string | number | Long : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
[K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export interface MessageFns<T> {
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>): T;
fromPartial(object: DeepPartial<T>): T;
}
export {};