UNPKG

@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
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 {};