import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import Long from "long"; import { IDFilter, InIDsFilter, TextFilterMethod } from "../../filter/v2/filter.js"; export declare const protobufPackage = "zitadel.project.v2"; export declare enum ProjectGrantState { PROJECT_GRANT_STATE_UNSPECIFIED = 0, PROJECT_GRANT_STATE_ACTIVE = 1, PROJECT_GRANT_STATE_INACTIVE = 2, UNRECOGNIZED = -1 } export declare function projectGrantStateFromJSON(object: any): ProjectGrantState; export declare function projectGrantStateToJSON(object: ProjectGrantState): string; export declare enum ProjectState { PROJECT_STATE_UNSPECIFIED = 0, PROJECT_STATE_ACTIVE = 1, PROJECT_STATE_INACTIVE = 2, UNRECOGNIZED = -1 } export declare function projectStateFromJSON(object: any): ProjectState; export declare function projectStateToJSON(object: ProjectState): string; export declare enum GrantedProjectState { GRANTED_PROJECT_STATE_UNSPECIFIED = 0, GRANTED_PROJECT_STATE_ACTIVE = 1, GRANTED_PROJECT_STATE_INACTIVE = 2, UNRECOGNIZED = -1 } export declare function grantedProjectStateFromJSON(object: any): GrantedProjectState; export declare function grantedProjectStateToJSON(object: GrantedProjectState): string; export declare enum PrivateLabelingSetting { PRIVATE_LABELING_SETTING_UNSPECIFIED = 0, PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY = 1, PRIVATE_LABELING_SETTING_ALLOW_LOGIN_USER_RESOURCE_OWNER_POLICY = 2, UNRECOGNIZED = -1 } export declare function privateLabelingSettingFromJSON(object: any): PrivateLabelingSetting; export declare function privateLabelingSettingToJSON(object: PrivateLabelingSetting): string; export declare enum ProjectFieldName { PROJECT_FIELD_NAME_UNSPECIFIED = 0, PROJECT_FIELD_NAME_ID = 1, PROJECT_FIELD_NAME_CREATION_DATE = 2, PROJECT_FIELD_NAME_CHANGE_DATE = 3, PROJECT_FIELD_NAME_NAME = 4, UNRECOGNIZED = -1 } export declare function projectFieldNameFromJSON(object: any): ProjectFieldName; export declare function projectFieldNameToJSON(object: ProjectFieldName): string; export declare enum ProjectGrantFieldName { PROJECT_GRANT_FIELD_NAME_UNSPECIFIED = 0, PROJECT_GRANT_FIELD_NAME_PROJECT_ID = 1, PROJECT_GRANT_FIELD_NAME_CREATION_DATE = 2, PROJECT_GRANT_FIELD_NAME_CHANGE_DATE = 3, UNRECOGNIZED = -1 } export declare function projectGrantFieldNameFromJSON(object: any): ProjectGrantFieldName; export declare function projectGrantFieldNameToJSON(object: ProjectGrantFieldName): string; export declare enum ProjectRoleFieldName { PROJECT_ROLE_FIELD_NAME_UNSPECIFIED = 0, PROJECT_ROLE_FIELD_NAME_KEY = 1, PROJECT_ROLE_FIELD_NAME_CREATION_DATE = 2, PROJECT_ROLE_FIELD_NAME_CHANGE_DATE = 3, UNRECOGNIZED = -1 } export declare function projectRoleFieldNameFromJSON(object: any): ProjectRoleFieldName; export declare function projectRoleFieldNameToJSON(object: ProjectRoleFieldName): string; export interface ProjectGrant { /** The unique identifier of the organization which granted the project to the granted_organization_id. */ organizationId: string; /** The timestamp of the granted project creation. */ creationDate: Date | undefined; /** The timestamp of the last change to the granted project (e.g. creation, activation, deactivation). */ changeDate: Date | undefined; /** The ID of the organization the project is granted to. */ grantedOrganizationId: string; /** The name of the organization the project is granted to. */ grantedOrganizationName: string; /** The roles granted to the organization for self-management of the project. */ grantedRoleKeys: string[]; /** The ID of the granted project. */ projectId: string; /** The name of the granted project. */ projectName: string; /** Describes the current state of the granted project. */ state: ProjectGrantState; } export interface Project { /** ProjectID is the unique identifier of the project. */ projectId: string; /** OrganizationID is the unique identifier of the organization the project belongs to. */ organizationId: string; /** CreationDate is the timestamp of the project creation. */ creationDate: Date | undefined; /** ChangeDate is the timestamp of the last change to the project (e.g. creation, activation, deactivation). */ changeDate: Date | undefined; /** Name is the name of the project. This might be presented to users, e.g. in sign-in flows. */ name: string; /** State describes the current state of the project. */ state: ProjectState; /** ProjectRoleAssertion is a boolean flag that describes if the roles of the user should be added to the token. */ 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 defines from where the private labeling should be triggered. */ privateLabelingSetting: PrivateLabelingSetting; /** * GrantedOrganizationID is the ID of the organization the project is granted to. * In case the project is not granted, this field is unset. */ grantedOrganizationId?: string | undefined; /** * GrantedOrganizationName is the name of the organization the project is granted to. * In case the project is not granted, this field is unset. */ grantedOrganizationName?: string | undefined; /** * GrantedProjectState describes the current state of the granted project. * In case the project is not granted, this field is set to GrantedProjectState.GRANTED_PROJECT_STATE_UNSPECIFIED. */ grantedState: GrantedProjectState; } export interface ProjectSearchFilter { /** Filter for projects with a specific name. */ projectNameFilter?: ProjectNameFilter | undefined; /** Filter for projects with a specific ID. */ inProjectIdsFilter?: InIDsFilter | undefined; /** * Filter for projects that are owned by or granted to a specific organization. * You can specify whether to search for owned, granted or both types of projects. */ organizationIdFilter?: ProjectOrganizationIDFilter | undefined; } export interface ProjectNameFilter { /** Defines the name of the project to query for. */ projectName: string; /** Defines which text comparison method used for the name query. */ method: TextFilterMethod; } export interface ProjectOrganizationIDFilter { /** OrganizationID Is the ID of the organization to query for. */ organizationId: string; /** * Defines whether to filter for owned, granted or both types of projects. * If not specified, defaults to OWNED_OR_GRANTED and will return both owned and granted projects. */ type: ProjectOrganizationIDFilter_Type; } export declare enum ProjectOrganizationIDFilter_Type { TYPE_UNSPECIFIED = 0, /** OWNED - Filter for projects that are owned by the organization. */ OWNED = 1, /** GRANTED - Filter for projects that are granted to the organization. */ GRANTED = 2, /** OWNED_OR_GRANTED - Filter for projects that are either owned by or granted to the organization. */ OWNED_OR_GRANTED = 3, UNRECOGNIZED = -1 } export declare function projectOrganizationIDFilter_TypeFromJSON(object: any): ProjectOrganizationIDFilter_Type; export declare function projectOrganizationIDFilter_TypeToJSON(object: ProjectOrganizationIDFilter_Type): string; export interface ProjectGrantSearchFilter { /** Filter for project grants with a specific project name. */ projectNameFilter?: ProjectNameFilter | undefined; /** Filter for project grants where a specific role is granted. */ roleKeyFilter?: ProjectRoleKeyFilter | undefined; /** Filter for project grants of a specific project ID. */ inProjectIdsFilter?: InIDsFilter | undefined; /** Filter for project grants that were granted from a specific organization. */ organizationIdFilter?: IDFilter | undefined; /** Filter for project grants that were granted to a specific organization. */ grantedOrganizationIdFilter?: IDFilter | undefined; } export interface ProjectRole { /** ProjectID is the ID of the project the role belongs to. */ projectId: string; /** * Key of the project role. The key 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. */ key: string; /** CreationDate is the timestamp of the project role creation. */ creationDate: Date | undefined; /** ChangeDate is the timestamp of the last change to the project role. */ changeDate: Date | undefined; /** 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; } export interface ProjectRoleSearchFilter { /** Filter for project roles with a specific key. */ roleKeyFilter?: ProjectRoleKeyFilter | undefined; /** Filter for project roles with a specific display name. */ displayNameFilter?: ProjectRoleDisplayNameFilter | undefined; } export interface ProjectRoleKeyFilter { /** The key of the project role to query for. */ key: string; /** Defines which text comparison method used for the key query. */ method: TextFilterMethod; } export interface ProjectRoleDisplayNameFilter { /** The display name of the project role to query for. */ displayName: string; /** Defines which text comparison method used for the name query. */ method: TextFilterMethod; } export declare const ProjectGrant: MessageFns; export declare const Project: MessageFns; export declare const ProjectSearchFilter: MessageFns; export declare const ProjectNameFilter: MessageFns; export declare const ProjectOrganizationIDFilter: MessageFns; export declare const ProjectGrantSearchFilter: MessageFns; export declare const ProjectRole: MessageFns; export declare const ProjectRoleSearchFilter: MessageFns; export declare const ProjectRoleKeyFilter: MessageFns; export declare const ProjectRoleDisplayNameFilter: MessageFns; 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 {};