import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import Long from "long"; import type { CallContext, CallOptions } from "nice-grpc-common"; import { Duration } from "../../../google/protobuf/duration.js"; import { PaginationRequest, PaginationResponse } from "../../filter/v2/filter.js"; import { APIAuthMethodType } from "./api.js"; import { Application, ApplicationKey, ApplicationKeySearchFilter, ApplicationKeysSorting, ApplicationSearchFilter, ApplicationSorting } from "./application.js"; import { LoginVersion } from "./login.js"; import { OIDCApplicationType, OIDCAuthMethodType, OIDCGrantType, OIDCLocalizedMessage, OIDCResponseType, OIDCTokenType, OIDCVersion } from "./oidc.js"; export declare const protobufPackage = "zitadel.application.v2"; export interface CreateApplicationRequest { /** The ID of the project the application will be created in. */ projectId: string; /** * Optionally, provide the unique ID of the new application. If omitted, the system will generate one for you, * which is the recommended way. The generated ID will be returned in the response. */ applicationId: string; /** Publicly visible name of the application. This might be presented to users if they sign in. */ name: string; oidcConfiguration?: CreateOIDCApplicationRequest | undefined; samlConfiguration?: CreateSAMLApplicationRequest | undefined; apiConfiguration?: CreateAPIApplicationRequest | undefined; } export interface CreateApplicationResponse { /** The unique ID of the newly created application. */ applicationId: string; /** The timestamp of the application creation. */ creationDate: Date | undefined; oidcConfiguration?: CreateOIDCApplicationResponse | undefined; samlConfiguration?: CreateSAMLApplicationResponse | undefined; apiConfiguration?: CreateAPIApplicationResponse | undefined; } export interface CreateOIDCApplicationRequest { /** * RedirectURIs are the allowed callback URIs for the OAuth2 / OIDC flows, * where the authorization code or tokens will be sent to. * The redirect_uri parameter in the authorization request must exactly match one of these URIs. */ redirectUris: string[]; /** * ResponseTypes define whether a code, id_token token or just id_token will be returned. * The response_type parameter in the authorization request must exactly match one of these values. */ responseTypes: OIDCResponseType[]; /** * GrantTypes define the flow type the application is allowed to use. * The grant_type parameter in the token request must exactly match one of these values. * Minimum one grant type must be provided, but multiple grant types can be provided to allow * different flows, e.g. authorization code flow and refresh token flow. */ grantTypes: OIDCGrantType[]; /** * ApplicationType defines the OAuth2/OIDC client type and their ability to maintain * confidentiality of their credentials. * This influences the allowed grant types and the required authentication method. */ applicationType: OIDCApplicationType; /** The authentication method type used by the application to authenticate at the token endpoint. */ authMethodType: OIDCAuthMethodType; /** * PostLogoutRedirectURIs are the allowed URIs to redirect to after a logout. * The post_logout_redirect_uri parameter in the logout request must exactly match one of these URIs. */ postLogoutRedirectUris: string[]; /** * Version defines the OIDC version used by the application. * Currently, only version 1.0 is supported. * Future versions might introduce breaking changes. */ version: OIDCVersion; /** * DevelopmentMode can be enabled for development purposes. This allows the use of * OIDC non-compliant and potentially insecure settings, such as the use of * HTTP redirect URIs or wildcard redirect URIs. */ developmentMode: boolean; /** * The AccessTokenType defines the type of the access token returned from ZITADEL. * Bearer tokens are opaque to clients. JWT tokens are self-contained and can be validated by the client. * Bearer tokens must be introspected at the ZITADEL token endpoint. */ accessTokenType: OIDCTokenType; /** * If AccessTokenRoleAssertion is enabled, the roles of the user are added to the access token. * Ensure that the access token is a JWT token and not a bearer token. And either request the roles * by scope or enable the user role assertion on the project. */ accessTokenRoleAssertion: boolean; /** * If IDTokenRoleAssertion is enabled, the roles of the user are added to the id token. * Ensure that either the roles are requested by scope or enable the user role assertion on the * project. */ idTokenRoleAssertion: boolean; /** * If IDTokenUserinfoAssertion is enabled, the claims of profile, email, address and phone scopes * are added to the id token even if an access token is issued. This can be required by some applications * that do not call the userinfo endpoint after authentication or directly use the id_token for retrieving * user information. * Attention: this violates the OIDC specification, which states that these claims must only be * requested from the userinfo endpoint if an access token is issued. This is to prevent * leaking of personal information in the id token, which is often stored in the browser and * therefore more vulnerable. */ idTokenUserinfoAssertion: boolean; /** * ClockSkew is used to compensate time differences between the servers of ZITADEL and the application. * It is added to the "exp" claim and subtracted from "iat", "auth_time" and "nbf" claims. * The default is 0s, the maximum is 5s. */ clockSkew: Duration | undefined; /** * AdditionalOrigins are HTTP origins (scheme + host + port) from where the API can be used * additional to the redirect_uris. * This is useful if the application is used from an origin different to the redirect_uris, * e.g. if the application is a SPA served in a native app, where the redirect_uri is a custom scheme, * but the application is served from a https origin. */ additionalOrigins: string[]; /** * For native apps a successful login usually shows a success page with a link to open the application again. * SkipNativeAppSuccessPage can be used to skip this page and open the application directly. */ skipNativeAppSuccessPage: boolean; /** * BackChannelLogoutURI is used to notify the application about terminated sessions according * to the OIDC Back-Channel Logout (https://openid.net/specs/openid-connect-backchannel-1_0.html). */ backChannelLogoutUri: string; /** * LoginVersion specifies the login UI, where the user is redirected to for authentication. * It can be used to select a specific login UI, e.g. for embedded UIs or for custom login pages * hosted on any other domain. * If unset, the login UI is chosen by the instance default. */ loginVersion: LoginVersion | undefined; } export interface CreateOIDCApplicationResponse { /** * The unique OAuth2/OIDC client_id used for authentication of the application, * e.g. at the token endpoint. */ clientId: string; /** * In case of using the OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_CLIENT_SECRET_BASIC * or OIDCAuthMethodType.OIDC_AUTH_METHOD_TYPE_CLIENT_SECRET_POST the client_secret is generated and returned. * It must be stored safely, as it will not be possible to retrieve it again. * A new client_secret can be generated using the GenerateClientSecret endpoint. */ clientSecret: string; /** * NonCompliant specifies whether the config is OIDC compliant. A production configuration SHOULD be compliant. * Non-compliant configurations can run into interoperability issues with OIDC libraries and tools. * Compliance problems are listed in the compliance_problems field. */ nonCompliant: boolean; /** * ComplianceProblems lists the problems for non-compliant configurations. * In case of a compliant configuration, this list is empty. */ complianceProblems: OIDCLocalizedMessage[]; } export interface CreateSAMLApplicationRequest { metadataXml?: Buffer | undefined; metadataUrl?: string | undefined; /** * LoginVersion specifies the login UI, where the user is redirected to for authentication. * It can be used to select a specific login UI, e.g. for embedded UIs or for custom login pages * hosted on any other domain. * If unset, the login UI is chosen by the instance default. */ loginVersion: LoginVersion | undefined; } export interface CreateSAMLApplicationResponse { } export interface CreateAPIApplicationRequest { /** The authentication method type used by the API to authenticate at the introspection endpoint. */ authMethodType: APIAuthMethodType; } export interface CreateAPIApplicationResponse { /** The unique OAuth2 client_id used for authentication of the API, e.g. at the introspection endpoint. */ clientId: string; /** * In case of using the APIAuthMethodType.API_AUTH_METHOD_TYPE_BASIC the client_secret is generated and returned. * It must be stored safely, as it will not be possible to retrieve it again. * A new client_secret can be generated using the GenerateClientSecret endpoint. */ clientSecret: string; } export interface UpdateApplicationRequest { /** The unique ID of the application to be updated. */ applicationId: string; /** The ID of the project the application belongs to. */ projectId: string; /** * Publicly visible name of the application. This might be presented to users if they sign in. * If not set, the name will not be changed. */ name: string; samlConfiguration?: UpdateSAMLApplicationConfigurationRequest | undefined; oidcConfiguration?: UpdateOIDCApplicationConfigurationRequest | undefined; apiConfiguration?: UpdateAPIApplicationConfigurationRequest | undefined; } export interface UpdateApplicationResponse { /** * The timestamp of the application update. If no changes were made, the previous change date is returned. * This can be used to check if the application was actually updated. */ changeDate: Date | undefined; } export interface UpdateSAMLApplicationConfigurationRequest { metadataXml?: Buffer | undefined; metadataUrl?: string | undefined; /** * LoginVersion specifies the login UI, where the user is redirected to for authentication. * It can be used to select a specific login UI, e.g. for embedded UIs or for custom login pages * hosted on any other domain. * If unset, the login UI is chosen by the instance default. */ loginVersion?: LoginVersion | undefined; } export interface UpdateOIDCApplicationConfigurationRequest { /** * RedirectURIs are the allowed callback URIs for the OAuth2 / OIDC flows, * where the authorization code or tokens will be sent to. * The redirect_uri parameter in the authorization request must exactly match one of these URIs. * Any existing redirect URIs not included in this list will be removed. * If not set, the redirect URIs will not be changed. */ redirectUris: string[]; /** * ResponseTypes define whether a code, id_token token or just id_token will be returned. * The response_type parameter in the authorization request must exactly match one of these values. * Any existing response types not included in this list will be removed. * If not set, the response types will not be changed. */ responseTypes: OIDCResponseType[]; /** * GrantTypes define the flow type the application is allowed to use. * The grant_type parameter in the token request must exactly match one of these values. * Minimum one grant type must be provided, but multiple grant types can be provided to allow * different flows, e.g. authorization code flow and refresh token flow. * Any existing grant types not included in this list will be removed. * If not set, the grant types will not be changed. */ grantTypes: OIDCGrantType[]; /** * ApplicationType defines the OAuth2/OIDC client type and their ability to maintain * confidentiality of their credentials. * This influences the allowed grant types and the required authentication method. * If not set, the application type will not be changed. */ applicationType?: OIDCApplicationType | undefined; /** * The authentication method type used by the application to authenticate at the token endpoint. * If not set, the authentication method type will not be changed. */ authMethodType?: OIDCAuthMethodType | undefined; /** * PostLogoutRedirectURIs are the allowed URIs to redirect to after a logout. * The post_logout_redirect_uri parameter in the logout request must exactly match one of these URIs. * Any existing post logout redirect URIs not included in this list will be removed. * If not set, the post logout redirect URIs will not be changed. */ postLogoutRedirectUris: string[]; /** * Version defines the OIDC version used by the application. * Currently, only version 1.0 is supported. * Future versions might introduce breaking changes. * If not set, the version will not be changed. */ version?: OIDCVersion | undefined; /** * DevelopmentMode can be enabled for development purposes. This allows the use of * OIDC non-compliant and potentially insecure settings, such as the use of * HTTP redirect URIs or wildcard redirect URIs. * If not set, the dev mode will not be changed. */ developmentMode?: boolean | undefined; /** * The AccessTokenType defines the type of the access token returned from ZITADEL. * Bearer tokens are opaque to clients. JWT tokens are self-contained and can be validated by the client. * Bearer tokens must be introspected at the ZITADEL token endpoint. * If not set, the access token type will not be changed. */ accessTokenType?: OIDCTokenType | undefined; /** * If AccessTokenRoleAssertion is enabled, the roles of the user are added to the access token. * Ensure that the access token is a JWT token and not a bearer token. And either request the roles * by scope or enable the user role assertion on the project. * If not set, the access token role assertion will not be changed. */ accessTokenRoleAssertion?: boolean | undefined; /** * If IDTokenRoleAssertion is enabled, the roles of the user are added to the id token. * Ensure that either the roles are requested by scope or enable the user role assertion on the * project. * If not set, the id token role assertion will not be changed. */ idTokenRoleAssertion?: boolean | undefined; /** * If IDTokenUserinfoAssertion is enabled, the claims of profile, email, address and phone scopes * are added to the id token even if an access token is issued. This can be required by some applications * that do not call the userinfo endpoint after authentication or directly use the id_token for retrieving * user information. * Attention: this violates the OIDC specification, which states that these claims must only be * requested from the userinfo endpoint if an access token is issued. This is to prevent * leaking of personal information in the id token, which is often stored in the browser and * therefore more vulnerable. * If not set, the id token userinfo assertion will not be changed. */ idTokenUserinfoAssertion?: boolean | undefined; /** * ClockSkew is used to compensate time differences between the servers of ZITADEL and the application. * It is added to the "exp" claim and subtracted from "iat", "auth_time" and "nbf" claims. * The default is 0s, the maximum is 5s. * If not set, the clock skew will not be changed. */ clockSkew?: Duration | undefined; /** * AdditionalOrigins are HTTP origins (scheme + host + port) from where the API can be used * additional to the redirect_uris. * This is useful if the application is used from an origin different to the redirect_uris, * e.g. if the application is a SPA served in a native app, where the redirect_uri is a custom scheme, * but the application is served from a https origin. * Any existing additional origins not included in this list will be removed. * If not set, the additional origins will not be changed. */ additionalOrigins: string[]; /** * For native apps a successful login usually shows a success page with a link to open the application again. * SkipNativeAppSuccessPage can be used to skip this page and open the application directly. * If not set, the skip native app success page will not be changed. */ skipNativeAppSuccessPage?: boolean | undefined; /** * BackChannelLogoutURI is used to notify the application about terminated sessions according * to the OIDC Back-Channel Logout (https://openid.net/specs/openid-connect-backchannel-1_0.html). * If not set, the back channel logout URI will not be changed. */ backChannelLogoutUri?: string | undefined; /** * LoginVersion specifies the login UI, where the user is redirected to for authentication. * It can be used to select a specific login UI, e.g. for embedded UIs or for custom login pages * hosted on any other domain. * If unset, the login UI is chosen by the instance default. */ loginVersion?: LoginVersion | undefined; } export interface UpdateAPIApplicationConfigurationRequest { /** The authentication method type used by the API to authenticate at the introspection endpoint. */ authMethodType: APIAuthMethodType; } export interface GetApplicationRequest { /** The unique ID of the application to be retrieved. */ applicationId: string; } export interface GetApplicationResponse { application: Application | undefined; } export interface DeleteApplicationRequest { /** The unique ID of the application to be deleted. */ applicationId: string; /** The ID of the project the application belongs to. */ projectId: string; } export interface DeleteApplicationResponse { /** * The timestamp of the application deletion. In case the application was already deleted, * the previous deletion date is returned. This can be used to check if the application was * actually deleted. */ deletionDate: Date | undefined; } export interface DeactivateApplicationRequest { /** The unique ID of the application to be deactivated. */ applicationId: string; /** The ID of the project the application belongs to. */ projectId: string; } export interface DeactivateApplicationResponse { /** The timestamp of the application deactivation. */ deactivationDate: Date | undefined; } export interface ReactivateApplicationRequest { /** The unique ID of the application to be reactivated. */ applicationId: string; /** The ID of the project the application belongs to. */ projectId: string; } export interface ReactivateApplicationResponse { /** The timestamp of the application reactivation. */ reactivationDate: Date | undefined; } export interface GenerateClientSecretRequest { /** The unique ID of the application to generate a new client secret for. */ applicationId: string; /** The ID of the project the application belongs to. */ projectId: string; } export interface GenerateClientSecretResponse { /** * The newly generated client secret. It must be stored safely, as it will not be possible to retrieve it again. * A new client secret can be generated using this endpoint. */ clientSecret: string; /** The timestamp of the creation of the new client secret. */ creationDate: Date | undefined; } export interface ListApplicationsRequest { /** Pagination and sorting. */ pagination: PaginationRequest | undefined; sortingColumn: ApplicationSorting; /** * Criteria to filter the applications. * All provided filters are combined with a logical AND. */ filters: ApplicationSearchFilter[]; } export interface ListApplicationsResponse { /** * The list of applications matching the query. Depending on the applied limit, * there might be more applications available than included in this list. * Use the returned pagination information to request further applications. */ applications: Application[]; /** Contains the total number of apps matching the query and the applied limit. */ pagination: PaginationResponse | undefined; } export interface CreateApplicationKeyRequest { /** The ID of the application the key will be created for. */ applicationId: string; /** The ID of the project the application belongs to. */ projectId: string; /** The timestamp the key will expire. */ expirationDate: Date | undefined; } export interface CreateApplicationKeyResponse { /** The unique ID of the newly created application key. */ keyId: string; /** The timestamp of the application key creation. */ creationDate: Date | undefined; /** * KeyDetails contains the serialized private key and additional information depending on the key type. * It must be stored safely, as it will not be possible to retrieve it again. * A new key can be generated using the CreateApplicationKey endpoint. */ keyDetails: Buffer; } export interface DeleteApplicationKeyRequest { /** The unique ID of the application key to be deleted. */ keyId: string; /** The ID of the application the key belongs to. */ applicationId: string; /** The ID of the project the application belongs to. */ projectId: string; } export interface DeleteApplicationKeyResponse { /** * The timestamp of the application key deletion. In case the key was already deleted, * the previous deletion date is returned. This can be used to check if the key was * actually deleted. */ deletionDate: Date | undefined; } export interface GetApplicationKeyRequest { /** The unique ID of the application key to be retrieved. */ keyId: string; } export interface GetApplicationKeyResponse { /** Unique ID of the application key. */ keyId: string; /** The timestamp of the key creation. */ creationDate: Date | undefined; /** The timestamp when the key will expire. */ expirationDate: Date | undefined; } export interface ListApplicationKeysRequest { /** Pagination and sorting. */ pagination: PaginationRequest | undefined; /** The column to sort by. If not provided, the default is 'KEY_ID'. */ sortingColumn: ApplicationKeysSorting; /** * Criteria to filter the application keys. * All provided filters are combined with a logical AND. */ filters: ApplicationKeySearchFilter[]; } export interface ListApplicationKeysResponse { /** * The list of application keys matching the query. Depending on the applied limit, * there might be more keys available than returned in this list. * Use the returned pagination information to request further keys. */ keys: ApplicationKey[]; /** Contains the total number of application keys matching the query and the applied limit. */ pagination: PaginationResponse | undefined; } export declare const CreateApplicationRequest: MessageFns; export declare const CreateApplicationResponse: MessageFns; export declare const CreateOIDCApplicationRequest: MessageFns; export declare const CreateOIDCApplicationResponse: MessageFns; export declare const CreateSAMLApplicationRequest: MessageFns; export declare const CreateSAMLApplicationResponse: MessageFns; export declare const CreateAPIApplicationRequest: MessageFns; export declare const CreateAPIApplicationResponse: MessageFns; export declare const UpdateApplicationRequest: MessageFns; export declare const UpdateApplicationResponse: MessageFns; export declare const UpdateSAMLApplicationConfigurationRequest: MessageFns; export declare const UpdateOIDCApplicationConfigurationRequest: MessageFns; export declare const UpdateAPIApplicationConfigurationRequest: MessageFns; export declare const GetApplicationRequest: MessageFns; export declare const GetApplicationResponse: MessageFns; export declare const DeleteApplicationRequest: MessageFns; export declare const DeleteApplicationResponse: MessageFns; export declare const DeactivateApplicationRequest: MessageFns; export declare const DeactivateApplicationResponse: MessageFns; export declare const ReactivateApplicationRequest: MessageFns; export declare const ReactivateApplicationResponse: MessageFns; export declare const GenerateClientSecretRequest: MessageFns; export declare const GenerateClientSecretResponse: MessageFns; export declare const ListApplicationsRequest: MessageFns; export declare const ListApplicationsResponse: MessageFns; export declare const CreateApplicationKeyRequest: MessageFns; export declare const CreateApplicationKeyResponse: MessageFns; export declare const DeleteApplicationKeyRequest: MessageFns; export declare const DeleteApplicationKeyResponse: MessageFns; export declare const GetApplicationKeyRequest: MessageFns; export declare const GetApplicationKeyResponse: MessageFns; export declare const ListApplicationKeysRequest: MessageFns; export declare const ListApplicationKeysResponse: MessageFns; /** * Service to manage applications. * This service provides methods to create, update, delete and list application and application keys. */ export type ApplicationServiceDefinition = typeof ApplicationServiceDefinition; export declare const ApplicationServiceDefinition: { readonly name: "ApplicationService"; readonly fullName: "zitadel.application.v2.ApplicationService"; readonly methods: { /** * Create Application * * Create an application. The application can be OIDC, API or SAML type, based on the input. * * Required permissions: * - project.app.write */ readonly createApplication: { readonly name: "CreateApplication"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Update Application * * Changes the configuration of an OIDC, API or SAML type application, as well as * the application name, based on the input provided. * * Required permissions: * - project.app.write */ readonly updateApplication: { readonly name: "UpdateApplication"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Get Application * * Retrieves the application matching the provided ID. * * Required permissions: * - project.app.read */ readonly getApplication: { readonly name: "GetApplication"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Delete Application * * Deletes the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.delete */ readonly deleteApplication: { readonly name: "DeleteApplication"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Deactivate Application * * Deactivates the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.write */ readonly deactivateApplication: { readonly name: "DeactivateApplication"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Reactivate Application * * Reactivates the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.write */ readonly reactivateApplication: { readonly name: "ReactivateApplication"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Generate Client Secret * * Generates the client secret of an API or OIDC application that belongs to the input project. * * Required permissions: * - project.app.write */ readonly generateClientSecret: { readonly name: "GenerateClientSecret"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * List Applications * * Returns a list of applications matching the input parameters. The results can be filtered * by project, state, type and name. It can be sorted by id, name, creation date, change date or state. * * Required permissions: * - project.app.read */ readonly listApplications: { readonly name: "ListApplications"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Create Application Key * * Create a new application key, which is used to authorize an API application. * * Key details are returned in the response. They must be stored safely, as it will not * be possible to retrieve them again. * * Required permissions: * - `project.app.write` */ readonly createApplicationKey: { readonly name: "CreateApplicationKey"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Delete Application Key * * Deletes an application key matching the provided ID. * * Organization ID is not mandatory, but helps with filtering/performance. * * The deletion time is returned in response message. * * Required permissions: * - `project.app.write` */ readonly deleteApplicationKey: { readonly name: "DeleteApplicationKey"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * Get Application Key * * Retrieves the application key matching the provided ID. * * Specifying a project, organization and application ID is optional but help with filtering/performance. * * Required permissions: * - project.app.read */ readonly getApplicationKey: { readonly name: "GetApplicationKey"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; /** * List Application Keys * * Returns a list of application keys matching the input parameters. * * The result can be sorted by id, aggregate, creation date, expiration date, resource owner or type. * It can also be filtered by application, project or organization ID. * * Required permissions: * - project.app.read */ readonly listApplicationKeys: { readonly name: "ListApplicationKeys"; readonly requestType: MessageFns; readonly requestStream: false; readonly responseType: MessageFns; readonly responseStream: false; readonly options: { readonly _unknownFields: { readonly 400010: readonly [Buffer]; }; }; }; }; }; export interface ApplicationServiceImplementation { /** * Create Application * * Create an application. The application can be OIDC, API or SAML type, based on the input. * * Required permissions: * - project.app.write */ createApplication(request: CreateApplicationRequest, context: CallContext & CallContextExt): Promise>; /** * Update Application * * Changes the configuration of an OIDC, API or SAML type application, as well as * the application name, based on the input provided. * * Required permissions: * - project.app.write */ updateApplication(request: UpdateApplicationRequest, context: CallContext & CallContextExt): Promise>; /** * Get Application * * Retrieves the application matching the provided ID. * * Required permissions: * - project.app.read */ getApplication(request: GetApplicationRequest, context: CallContext & CallContextExt): Promise>; /** * Delete Application * * Deletes the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.delete */ deleteApplication(request: DeleteApplicationRequest, context: CallContext & CallContextExt): Promise>; /** * Deactivate Application * * Deactivates the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.write */ deactivateApplication(request: DeactivateApplicationRequest, context: CallContext & CallContextExt): Promise>; /** * Reactivate Application * * Reactivates the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.write */ reactivateApplication(request: ReactivateApplicationRequest, context: CallContext & CallContextExt): Promise>; /** * Generate Client Secret * * Generates the client secret of an API or OIDC application that belongs to the input project. * * Required permissions: * - project.app.write */ generateClientSecret(request: GenerateClientSecretRequest, context: CallContext & CallContextExt): Promise>; /** * List Applications * * Returns a list of applications matching the input parameters. The results can be filtered * by project, state, type and name. It can be sorted by id, name, creation date, change date or state. * * Required permissions: * - project.app.read */ listApplications(request: ListApplicationsRequest, context: CallContext & CallContextExt): Promise>; /** * Create Application Key * * Create a new application key, which is used to authorize an API application. * * Key details are returned in the response. They must be stored safely, as it will not * be possible to retrieve them again. * * Required permissions: * - `project.app.write` */ createApplicationKey(request: CreateApplicationKeyRequest, context: CallContext & CallContextExt): Promise>; /** * Delete Application Key * * Deletes an application key matching the provided ID. * * Organization ID is not mandatory, but helps with filtering/performance. * * The deletion time is returned in response message. * * Required permissions: * - `project.app.write` */ deleteApplicationKey(request: DeleteApplicationKeyRequest, context: CallContext & CallContextExt): Promise>; /** * Get Application Key * * Retrieves the application key matching the provided ID. * * Specifying a project, organization and application ID is optional but help with filtering/performance. * * Required permissions: * - project.app.read */ getApplicationKey(request: GetApplicationKeyRequest, context: CallContext & CallContextExt): Promise>; /** * List Application Keys * * Returns a list of application keys matching the input parameters. * * The result can be sorted by id, aggregate, creation date, expiration date, resource owner or type. * It can also be filtered by application, project or organization ID. * * Required permissions: * - project.app.read */ listApplicationKeys(request: ListApplicationKeysRequest, context: CallContext & CallContextExt): Promise>; } export interface ApplicationServiceClient { /** * Create Application * * Create an application. The application can be OIDC, API or SAML type, based on the input. * * Required permissions: * - project.app.write */ createApplication(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Update Application * * Changes the configuration of an OIDC, API or SAML type application, as well as * the application name, based on the input provided. * * Required permissions: * - project.app.write */ updateApplication(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Get Application * * Retrieves the application matching the provided ID. * * Required permissions: * - project.app.read */ getApplication(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Delete Application * * Deletes the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.delete */ deleteApplication(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Deactivate Application * * Deactivates the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.write */ deactivateApplication(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Reactivate Application * * Reactivates the application belonging to the input project and matching the provided * application ID. * * Required permissions: * - project.app.write */ reactivateApplication(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Generate Client Secret * * Generates the client secret of an API or OIDC application that belongs to the input project. * * Required permissions: * - project.app.write */ generateClientSecret(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * List Applications * * Returns a list of applications matching the input parameters. The results can be filtered * by project, state, type and name. It can be sorted by id, name, creation date, change date or state. * * Required permissions: * - project.app.read */ listApplications(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Create Application Key * * Create a new application key, which is used to authorize an API application. * * Key details are returned in the response. They must be stored safely, as it will not * be possible to retrieve them again. * * Required permissions: * - `project.app.write` */ createApplicationKey(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Delete Application Key * * Deletes an application key matching the provided ID. * * Organization ID is not mandatory, but helps with filtering/performance. * * The deletion time is returned in response message. * * Required permissions: * - `project.app.write` */ deleteApplicationKey(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * Get Application Key * * Retrieves the application key matching the provided ID. * * Specifying a project, organization and application ID is optional but help with filtering/performance. * * Required permissions: * - project.app.read */ getApplicationKey(request: DeepPartial, options?: CallOptions & CallOptionsExt): Promise; /** * List Application Keys * * Returns a list of application keys matching the input parameters. * * The result can be sorted by id, aggregate, creation date, expiration date, resource owner or type. * It can also be filtered by application, project or organization ID. * * Required permissions: * - project.app.read */ listApplicationKeys(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 {};