From 1b5f5e9e62b9c12191ff82f83c95a1cdab134199 Mon Sep 17 00:00:00 2001 From: Elio Bischof Date: Wed, 21 Jun 2023 11:40:16 +0200 Subject: [PATCH] stop tracking events --- docs/docs/apis/proto/action.md | 154 + docs/docs/apis/proto/admin.md | 5089 +++++++++ docs/docs/apis/proto/app.md | 201 + docs/docs/apis/proto/auth.md | 1691 +++ docs/docs/apis/proto/auth_n_key.md | 41 + docs/docs/apis/proto/change.md | 44 + docs/docs/apis/proto/event.md | 79 + docs/docs/apis/proto/idp.md | 197 + docs/docs/apis/proto/instance.md | 172 + docs/docs/apis/proto/management.md | 9168 +++++++++++++++++ docs/docs/apis/proto/member.md | 93 + docs/docs/apis/proto/message.md | 37 + docs/docs/apis/proto/metadata.md | 49 + docs/docs/apis/proto/object.md | 95 + docs/docs/apis/proto/options.md | 25 + docs/docs/apis/proto/org.md | 154 + docs/docs/apis/proto/policy.md | 208 + docs/docs/apis/proto/project.md | 247 + docs/docs/apis/proto/settings.md | 166 + docs/docs/apis/proto/system.md | 826 ++ docs/docs/apis/proto/text.md | 637 ++ docs/docs/apis/proto/user.md | 743 ++ docs/docs/apis/proto/v1.md | 335 + e2e/config/host.docker.internal/zitadel.yaml | 7 + e2e/config/localhost/zitadel.yaml | 7 + internal/command/command.go | 3 + internal/command/telemetry.go | 24 +- .../notification/handlers/telemetrypusher.go | 20 +- .../notification/handlers/usernotifier.go | 61 - internal/query/projection/milestones.go | 169 + internal/repository/milestone/events.go | 72 +- .../repository/milestone/milestone_string.go | 30 + internal/repository/milestone/milestones.go | 25 + .../milestone/serializable_event.go | 15 - 34 files changed, 20731 insertions(+), 153 deletions(-) create mode 100644 docs/docs/apis/proto/action.md create mode 100644 docs/docs/apis/proto/admin.md create mode 100644 docs/docs/apis/proto/app.md create mode 100644 docs/docs/apis/proto/auth.md create mode 100644 docs/docs/apis/proto/auth_n_key.md create mode 100644 docs/docs/apis/proto/change.md create mode 100644 docs/docs/apis/proto/event.md create mode 100644 docs/docs/apis/proto/idp.md create mode 100644 docs/docs/apis/proto/instance.md create mode 100644 docs/docs/apis/proto/management.md create mode 100644 docs/docs/apis/proto/member.md create mode 100644 docs/docs/apis/proto/message.md create mode 100644 docs/docs/apis/proto/metadata.md create mode 100644 docs/docs/apis/proto/object.md create mode 100644 docs/docs/apis/proto/options.md create mode 100644 docs/docs/apis/proto/org.md create mode 100644 docs/docs/apis/proto/policy.md create mode 100644 docs/docs/apis/proto/project.md create mode 100644 docs/docs/apis/proto/settings.md create mode 100644 docs/docs/apis/proto/system.md create mode 100644 docs/docs/apis/proto/text.md create mode 100644 docs/docs/apis/proto/user.md create mode 100644 docs/docs/apis/proto/v1.md create mode 100644 internal/query/projection/milestones.go create mode 100644 internal/repository/milestone/milestone_string.go create mode 100644 internal/repository/milestone/milestones.go delete mode 100644 internal/repository/milestone/serializable_event.go diff --git a/docs/docs/apis/proto/action.md b/docs/docs/apis/proto/action.md new file mode 100644 index 0000000000..1b2385a5a7 --- /dev/null +++ b/docs/docs/apis/proto/action.md @@ -0,0 +1,154 @@ +--- +title: zitadel/action.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### Action + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| state | ActionState | - | | +| name | string | - | | +| script | string | - | | +| timeout | google.protobuf.Duration | - | | +| allowed_to_fail | bool | - | | + + + + +### ActionIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.max_len: 200
| + + + + +### ActionNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### ActionStateQuery +ActionStateQuery is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| state | ActionState | - | enum.defined_only: true
| + + + + +### Flow + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | FlowType | id of the flow type | | +| details | zitadel.v1.ObjectDetails | - | | +| state | FlowState | - | | +| trigger_actions | repeated TriggerAction | - | | + + + + +### FlowType + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | identifier of the type | | +| name | zitadel.v1.LocalizedMessage | key and name of the type | | + + + + +### TriggerAction + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| trigger_type | TriggerType | id of the trigger type | | +| actions | repeated Action | - | | + + + + +### TriggerType + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | identifier of the type | | +| name | zitadel.v1.LocalizedMessage | key and name of the type | | + + + + + + +## Enums + + +### ActionFieldName {#actionfieldname} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| ACTION_FIELD_NAME_UNSPECIFIED | 0 | - | +| ACTION_FIELD_NAME_NAME | 1 | - | +| ACTION_FIELD_NAME_ID | 2 | - | +| ACTION_FIELD_NAME_STATE | 3 | - | + + + + +### ActionState {#actionstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| ACTION_STATE_UNSPECIFIED | 0 | - | +| ACTION_STATE_INACTIVE | 1 | - | +| ACTION_STATE_ACTIVE | 2 | - | + + + + +### FlowState {#flowstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| FLOW_STATE_UNSPECIFIED | 0 | - | +| FLOW_STATE_INACTIVE | 1 | - | +| FLOW_STATE_ACTIVE | 2 | - | + + + + diff --git a/docs/docs/apis/proto/admin.md b/docs/docs/apis/proto/admin.md new file mode 100644 index 0000000000..c1d626054d --- /dev/null +++ b/docs/docs/apis/proto/admin.md @@ -0,0 +1,5089 @@ +--- +title: zitadel/admin.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + +## AdminService {#zitadeladminv1adminservice} + + +### Healthz + +> **rpc** Healthz([HealthzRequest](#healthzrequest)) +[HealthzResponse](#healthzresponse) + +Indicates if ZITADEL is running. +It respondes as soon as ZITADEL started + + + + GET: /healthz + + +### GetSupportedLanguages + +> **rpc** GetSupportedLanguages([GetSupportedLanguagesRequest](#getsupportedlanguagesrequest)) +[GetSupportedLanguagesResponse](#getsupportedlanguagesresponse) + +Returns the default languages + + + + GET: /languages + + +### SetDefaultLanguage + +> **rpc** SetDefaultLanguage([SetDefaultLanguageRequest](#setdefaultlanguagerequest)) +[SetDefaultLanguageResponse](#setdefaultlanguageresponse) + +Set the default language + + + + PUT: /languages/default/{language} + + +### GetDefaultLanguage + +> **rpc** GetDefaultLanguage([GetDefaultLanguageRequest](#getdefaultlanguagerequest)) +[GetDefaultLanguageResponse](#getdefaultlanguageresponse) + +Set the default language + + + + GET: /languages/default + + +### GetMyInstance + +> **rpc** GetMyInstance([GetMyInstanceRequest](#getmyinstancerequest)) +[GetMyInstanceResponse](#getmyinstanceresponse) + +Returns the details of the instance + + + + GET: /instances/me + + +### ListInstanceDomains + +> **rpc** ListInstanceDomains([ListInstanceDomainsRequest](#listinstancedomainsrequest)) +[ListInstanceDomainsResponse](#listinstancedomainsresponse) + +Returns the domains of the instance + + + + POST: /domains/_search + + +### ListSecretGenerators + +> **rpc** ListSecretGenerators([ListSecretGeneratorsRequest](#listsecretgeneratorsrequest)) +[ListSecretGeneratorsResponse](#listsecretgeneratorsresponse) + +Set the default language + + + + POST: /secretgenerators/_search + + +### GetSecretGenerator + +> **rpc** GetSecretGenerator([GetSecretGeneratorRequest](#getsecretgeneratorrequest)) +[GetSecretGeneratorResponse](#getsecretgeneratorresponse) + +Get Secret Generator by type (e.g PasswordResetCode) + + + + GET: /secretgenerators/{generator_type} + + +### UpdateSecretGenerator + +> **rpc** UpdateSecretGenerator([UpdateSecretGeneratorRequest](#updatesecretgeneratorrequest)) +[UpdateSecretGeneratorResponse](#updatesecretgeneratorresponse) + +Update secret generator configuration + + + + PUT: /secretgenerators/{generator_type} + + +### GetSMTPConfig + +> **rpc** GetSMTPConfig([GetSMTPConfigRequest](#getsmtpconfigrequest)) +[GetSMTPConfigResponse](#getsmtpconfigresponse) + +Get system smtp configuration + + + + GET: /smtp + + +### AddSMTPConfig + +> **rpc** AddSMTPConfig([AddSMTPConfigRequest](#addsmtpconfigrequest)) +[AddSMTPConfigResponse](#addsmtpconfigresponse) + +Add system smtp configuration + + + + POST: /smtp + + +### UpdateSMTPConfig + +> **rpc** UpdateSMTPConfig([UpdateSMTPConfigRequest](#updatesmtpconfigrequest)) +[UpdateSMTPConfigResponse](#updatesmtpconfigresponse) + +Update system smtp configuration + + + + PUT: /smtp + + +### UpdateSMTPConfigPassword + +> **rpc** UpdateSMTPConfigPassword([UpdateSMTPConfigPasswordRequest](#updatesmtpconfigpasswordrequest)) +[UpdateSMTPConfigPasswordResponse](#updatesmtpconfigpasswordresponse) + +Update system smtp configuration password for host + + + + PUT: /smtp/password + + +### RemoveSMTPConfig + +> **rpc** RemoveSMTPConfig([RemoveSMTPConfigRequest](#removesmtpconfigrequest)) +[RemoveSMTPConfigResponse](#removesmtpconfigresponse) + +Remove system smtp configuration + + + + DELETE: /smtp + + +### ListSMSProviders + +> **rpc** ListSMSProviders([ListSMSProvidersRequest](#listsmsprovidersrequest)) +[ListSMSProvidersResponse](#listsmsprovidersresponse) + +list sms provider configurations + + + + POST: /sms/_search + + +### GetSMSProvider + +> **rpc** GetSMSProvider([GetSMSProviderRequest](#getsmsproviderrequest)) +[GetSMSProviderResponse](#getsmsproviderresponse) + +Get sms provider + + + + GET: /sms/{id} + + +### AddSMSProviderTwilio + +> **rpc** AddSMSProviderTwilio([AddSMSProviderTwilioRequest](#addsmsprovidertwiliorequest)) +[AddSMSProviderTwilioResponse](#addsmsprovidertwilioresponse) + +Add twilio sms provider + + + + POST: /sms/twilio + + +### UpdateSMSProviderTwilio + +> **rpc** UpdateSMSProviderTwilio([UpdateSMSProviderTwilioRequest](#updatesmsprovidertwiliorequest)) +[UpdateSMSProviderTwilioResponse](#updatesmsprovidertwilioresponse) + +Update twilio sms provider + + + + PUT: /sms/twilio/{id} + + +### UpdateSMSProviderTwilioToken + +> **rpc** UpdateSMSProviderTwilioToken([UpdateSMSProviderTwilioTokenRequest](#updatesmsprovidertwiliotokenrequest)) +[UpdateSMSProviderTwilioTokenResponse](#updatesmsprovidertwiliotokenresponse) + +Update twilio sms provider token + + + + PUT: /sms/twilio/{id}/token + + +### ActivateSMSProvider + +> **rpc** ActivateSMSProvider([ActivateSMSProviderRequest](#activatesmsproviderrequest)) +[ActivateSMSProviderResponse](#activatesmsproviderresponse) + +Activate sms provider + + + + POST: /sms/{id}/_activate + + +### DeactivateSMSProvider + +> **rpc** DeactivateSMSProvider([DeactivateSMSProviderRequest](#deactivatesmsproviderrequest)) +[DeactivateSMSProviderResponse](#deactivatesmsproviderresponse) + +Deactivate sms provider + + + + POST: /sms/{id}/_deactivate + + +### RemoveSMSProvider + +> **rpc** RemoveSMSProvider([RemoveSMSProviderRequest](#removesmsproviderrequest)) +[RemoveSMSProviderResponse](#removesmsproviderresponse) + +Remove sms provider token + + + + DELETE: /sms/{id} + + +### GetOIDCSettings + +> **rpc** GetOIDCSettings([GetOIDCSettingsRequest](#getoidcsettingsrequest)) +[GetOIDCSettingsResponse](#getoidcsettingsresponse) + +Get OIDC settings (e.g token lifetimes, etc.) + + + + GET: /settings/oidc + + +### AddOIDCSettings + +> **rpc** AddOIDCSettings([AddOIDCSettingsRequest](#addoidcsettingsrequest)) +[AddOIDCSettingsResponse](#addoidcsettingsresponse) + +Add oidc settings (e.g token lifetimes, etc) + + + + POST: /settings/oidc + + +### UpdateOIDCSettings + +> **rpc** UpdateOIDCSettings([UpdateOIDCSettingsRequest](#updateoidcsettingsrequest)) +[UpdateOIDCSettingsResponse](#updateoidcsettingsresponse) + +Update oidc settings (e.g token lifetimes, etc) + + + + PUT: /settings/oidc + + +### GetFileSystemNotificationProvider + +> **rpc** GetFileSystemNotificationProvider([GetFileSystemNotificationProviderRequest](#getfilesystemnotificationproviderrequest)) +[GetFileSystemNotificationProviderResponse](#getfilesystemnotificationproviderresponse) + +Get file system notification provider + + + + GET: /notification/provider/file + + +### GetLogNotificationProvider + +> **rpc** GetLogNotificationProvider([GetLogNotificationProviderRequest](#getlognotificationproviderrequest)) +[GetLogNotificationProviderResponse](#getlognotificationproviderresponse) + +Get log notification provider + + + + GET: /notification/provider/log + + +### GetSecurityPolicy + +> **rpc** GetSecurityPolicy([GetSecurityPolicyRequest](#getsecuritypolicyrequest)) +[GetSecurityPolicyResponse](#getsecuritypolicyresponse) + +Get the security policy + + + + GET: /policies/security + + +### SetSecurityPolicy + +> **rpc** SetSecurityPolicy([SetSecurityPolicyRequest](#setsecuritypolicyrequest)) +[SetSecurityPolicyResponse](#setsecuritypolicyresponse) + +set the security policy + + + + PUT: /policies/security + + +### GetOrgByID + +> **rpc** GetOrgByID([GetOrgByIDRequest](#getorgbyidrequest)) +[GetOrgByIDResponse](#getorgbyidresponse) + +Returns an organisation by id + + + + GET: /orgs/{id} + + +### IsOrgUnique + +> **rpc** IsOrgUnique([IsOrgUniqueRequest](#isorguniquerequest)) +[IsOrgUniqueResponse](#isorguniqueresponse) + +Checks whether an organisation exists by the given parameters + + + + GET: /orgs/_is_unique + + +### SetDefaultOrg + +> **rpc** SetDefaultOrg([SetDefaultOrgRequest](#setdefaultorgrequest)) +[SetDefaultOrgResponse](#setdefaultorgresponse) + +Set the default org + + + + PUT: /orgs/default/{org_id} + + +### GetDefaultOrg + +> **rpc** GetDefaultOrg([GetDefaultOrgRequest](#getdefaultorgrequest)) +[GetDefaultOrgResponse](#getdefaultorgresponse) + +Set the default org + + + + GET: /orgs/default + + +### ListOrgs + +> **rpc** ListOrgs([ListOrgsRequest](#listorgsrequest)) +[ListOrgsResponse](#listorgsresponse) + +Returns all organisations matching the request +all queries need to match (AND) + + + + POST: /orgs/_search + + +### SetUpOrg + +> **rpc** SetUpOrg([SetUpOrgRequest](#setuporgrequest)) +[SetUpOrgResponse](#setuporgresponse) + +Creates a new org and user +and adds the user to the orgs members as ORG_OWNER + + + + POST: /orgs/_setup + + +### RemoveOrg + +> **rpc** RemoveOrg([RemoveOrgRequest](#removeorgrequest)) +[RemoveOrgResponse](#removeorgresponse) + +Sets the state of the organisation and all its resource (Users, Projects, Grants to and from the org) to removed +Users of this organisation will not be able login + + + + DELETE: /orgs/{org_id} + + +### GetIDPByID + +> **rpc** GetIDPByID([GetIDPByIDRequest](#getidpbyidrequest)) +[GetIDPByIDResponse](#getidpbyidresponse) + +Returns a identity provider configuration of the IAM instance + + + + GET: /idps/{id} + + +### ListIDPs + +> **rpc** ListIDPs([ListIDPsRequest](#listidpsrequest)) +[ListIDPsResponse](#listidpsresponse) + +Returns all identity provider configurations of the IAM instance + + + + POST: /idps/_search + + +### AddOIDCIDP + +> **rpc** AddOIDCIDP([AddOIDCIDPRequest](#addoidcidprequest)) +[AddOIDCIDPResponse](#addoidcidpresponse) + +Adds a new oidc identity provider configuration the IAM instance + + + + POST: /idps/oidc + + +### AddJWTIDP + +> **rpc** AddJWTIDP([AddJWTIDPRequest](#addjwtidprequest)) +[AddJWTIDPResponse](#addjwtidpresponse) + +Adds a new jwt identity provider configuration the IAM instance + + + + POST: /idps/jwt + + +### UpdateIDP + +> **rpc** UpdateIDP([UpdateIDPRequest](#updateidprequest)) +[UpdateIDPResponse](#updateidpresponse) + +Updates the specified idp +all fields are updated. If no value is provided the field will be empty afterwards. + + + + PUT: /idps/{idp_id} + + +### DeactivateIDP + +> **rpc** DeactivateIDP([DeactivateIDPRequest](#deactivateidprequest)) +[DeactivateIDPResponse](#deactivateidpresponse) + +Sets the state of the idp to IDP_STATE_INACTIVE +the state MUST be IDP_STATE_ACTIVE for this call + + + + POST: /idps/{idp_id}/_deactivate + + +### ReactivateIDP + +> **rpc** ReactivateIDP([ReactivateIDPRequest](#reactivateidprequest)) +[ReactivateIDPResponse](#reactivateidpresponse) + +Sets the state of the idp to IDP_STATE_ACTIVE +the state MUST be IDP_STATE_INACTIVE for this call + + + + POST: /idps/{idp_id}/_reactivate + + +### RemoveIDP + +> **rpc** RemoveIDP([RemoveIDPRequest](#removeidprequest)) +[RemoveIDPResponse](#removeidpresponse) + +RemoveIDP deletes the IDP permanetly + + + + DELETE: /idps/{idp_id} + + +### UpdateIDPOIDCConfig + +> **rpc** UpdateIDPOIDCConfig([UpdateIDPOIDCConfigRequest](#updateidpoidcconfigrequest)) +[UpdateIDPOIDCConfigResponse](#updateidpoidcconfigresponse) + +Updates the oidc configuration of the specified idp +all fields are updated. If no value is provided the field will be empty afterwards. + + + + PUT: /idps/{idp_id}/oidc_config + + +### UpdateIDPJWTConfig + +> **rpc** UpdateIDPJWTConfig([UpdateIDPJWTConfigRequest](#updateidpjwtconfigrequest)) +[UpdateIDPJWTConfigResponse](#updateidpjwtconfigresponse) + +Updates the jwt configuration of the specified idp +all fields are updated. If no value is provided the field will be empty afterwards. + + + + PUT: /idps/{idp_id}/jwt_config + + +### GetOrgIAMPolicy + +> **rpc** GetOrgIAMPolicy([GetOrgIAMPolicyRequest](#getorgiampolicyrequest)) +[GetOrgIAMPolicyResponse](#getorgiampolicyresponse) + +deprecated: please use DomainPolicy instead +Returns the Org IAM policy defined by the administrators of ZITADEL + + + + GET: /policies/orgiam + + +### UpdateOrgIAMPolicy + +> **rpc** UpdateOrgIAMPolicy([UpdateOrgIAMPolicyRequest](#updateorgiampolicyrequest)) +[UpdateOrgIAMPolicyResponse](#updateorgiampolicyresponse) + +deprecated: please use DomainPolicy instead +Updates the default OrgIAM policy. +it impacts all organisations without a customised policy + + + + PUT: /policies/orgiam + + +### GetCustomOrgIAMPolicy + +> **rpc** GetCustomOrgIAMPolicy([GetCustomOrgIAMPolicyRequest](#getcustomorgiampolicyrequest)) +[GetCustomOrgIAMPolicyResponse](#getcustomorgiampolicyresponse) + +deprecated: please use DomainPolicy instead +Returns the customised policy or the default if not customised + + + + GET: /orgs/{org_id}/policies/orgiam + + +### AddCustomOrgIAMPolicy + +> **rpc** AddCustomOrgIAMPolicy([AddCustomOrgIAMPolicyRequest](#addcustomorgiampolicyrequest)) +[AddCustomOrgIAMPolicyResponse](#addcustomorgiampolicyresponse) + +deprecated: please use DomainPolicy instead +Defines a custom OrgIAM policy as specified + + + + POST: /orgs/{org_id}/policies/orgiam + + +### UpdateCustomOrgIAMPolicy + +> **rpc** UpdateCustomOrgIAMPolicy([UpdateCustomOrgIAMPolicyRequest](#updatecustomorgiampolicyrequest)) +[UpdateCustomOrgIAMPolicyResponse](#updatecustomorgiampolicyresponse) + +deprecated: please use DomainPolicy instead +Updates a custom OrgIAM policy as specified + + + + PUT: /orgs/{org_id}/policies/orgiam + + +### ResetCustomOrgIAMPolicyToDefault + +> **rpc** ResetCustomOrgIAMPolicyToDefault([ResetCustomOrgIAMPolicyToDefaultRequest](#resetcustomorgiampolicytodefaultrequest)) +[ResetCustomOrgIAMPolicyToDefaultResponse](#resetcustomorgiampolicytodefaultresponse) + +deprecated: please use DomainPolicy instead +Resets the org iam policy of the organisation to default +ZITADEL will fallback to the default policy defined by the ZITADEL administrators + + + + DELETE: /orgs/{org_id}/policies/orgiam + + +### GetDomainPolicy + +> **rpc** GetDomainPolicy([GetDomainPolicyRequest](#getdomainpolicyrequest)) +[GetDomainPolicyResponse](#getdomainpolicyresponse) + +Returns the Domain policy defined by the administrators of ZITADEL + + + + GET: /policies/domain + + +### UpdateDomainPolicy + +> **rpc** UpdateDomainPolicy([UpdateDomainPolicyRequest](#updatedomainpolicyrequest)) +[UpdateDomainPolicyResponse](#updatedomainpolicyresponse) + +Updates the default Domain policy. +it impacts all organisations without a customised policy + + + + PUT: /policies/domain + + +### GetCustomDomainPolicy + +> **rpc** GetCustomDomainPolicy([GetCustomDomainPolicyRequest](#getcustomdomainpolicyrequest)) +[GetCustomDomainPolicyResponse](#getcustomdomainpolicyresponse) + +Returns the customised policy or the default if not customised + + + + GET: /orgs/{org_id}/policies/domain + + +### AddCustomDomainPolicy + +> **rpc** AddCustomDomainPolicy([AddCustomDomainPolicyRequest](#addcustomdomainpolicyrequest)) +[AddCustomDomainPolicyResponse](#addcustomdomainpolicyresponse) + +Defines a custom Domain policy as specified + + + + POST: /orgs/{org_id}/policies/domain + + +### UpdateCustomDomainPolicy + +> **rpc** UpdateCustomDomainPolicy([UpdateCustomDomainPolicyRequest](#updatecustomdomainpolicyrequest)) +[UpdateCustomDomainPolicyResponse](#updatecustomdomainpolicyresponse) + +Updates a custom Domain policy as specified + + + + PUT: /orgs/{org_id}/policies/domain + + +### ResetCustomDomainPolicyToDefault + +> **rpc** ResetCustomDomainPolicyToDefault([ResetCustomDomainPolicyToDefaultRequest](#resetcustomdomainpolicytodefaultrequest)) +[ResetCustomDomainPolicyToDefaultResponse](#resetcustomdomainpolicytodefaultresponse) + +Resets the org iam policy of the organisation to default +ZITADEL will fallback to the default policy defined by the ZITADEL administrators + + + + DELETE: /orgs/{org_id}/policies/domain + + +### GetLabelPolicy + +> **rpc** GetLabelPolicy([GetLabelPolicyRequest](#getlabelpolicyrequest)) +[GetLabelPolicyResponse](#getlabelpolicyresponse) + +Returns the label policy defined by the administrators of ZITADEL + + + + GET: /policies/label + + +### GetPreviewLabelPolicy + +> **rpc** GetPreviewLabelPolicy([GetPreviewLabelPolicyRequest](#getpreviewlabelpolicyrequest)) +[GetPreviewLabelPolicyResponse](#getpreviewlabelpolicyresponse) + +Returns the preview label policy defined by the administrators of ZITADEL + + + + GET: /policies/label/_preview + + +### UpdateLabelPolicy + +> **rpc** UpdateLabelPolicy([UpdateLabelPolicyRequest](#updatelabelpolicyrequest)) +[UpdateLabelPolicyResponse](#updatelabelpolicyresponse) + +Updates the default label policy of ZITADEL +it impacts all organisations without a customised policy + + + + PUT: /policies/label + + +### ActivateLabelPolicy + +> **rpc** ActivateLabelPolicy([ActivateLabelPolicyRequest](#activatelabelpolicyrequest)) +[ActivateLabelPolicyResponse](#activatelabelpolicyresponse) + +Activates all changes of the label policy + + + + POST: /policies/label/_activate + + +### RemoveLabelPolicyLogo + +> **rpc** RemoveLabelPolicyLogo([RemoveLabelPolicyLogoRequest](#removelabelpolicylogorequest)) +[RemoveLabelPolicyLogoResponse](#removelabelpolicylogoresponse) + +Removes the logo of the label policy + + + + DELETE: /policies/label/logo + + +### RemoveLabelPolicyLogoDark + +> **rpc** RemoveLabelPolicyLogoDark([RemoveLabelPolicyLogoDarkRequest](#removelabelpolicylogodarkrequest)) +[RemoveLabelPolicyLogoDarkResponse](#removelabelpolicylogodarkresponse) + +Removes the logo dark of the label policy + + + + DELETE: /policies/label/logo_dark + + +### RemoveLabelPolicyIcon + +> **rpc** RemoveLabelPolicyIcon([RemoveLabelPolicyIconRequest](#removelabelpolicyiconrequest)) +[RemoveLabelPolicyIconResponse](#removelabelpolicyiconresponse) + +Removes the icon of the label policy + + + + DELETE: /policies/label/icon + + +### RemoveLabelPolicyIconDark + +> **rpc** RemoveLabelPolicyIconDark([RemoveLabelPolicyIconDarkRequest](#removelabelpolicyicondarkrequest)) +[RemoveLabelPolicyIconDarkResponse](#removelabelpolicyicondarkresponse) + +Removes the logo dark of the label policy + + + + DELETE: /policies/label/icon_dark + + +### RemoveLabelPolicyFont + +> **rpc** RemoveLabelPolicyFont([RemoveLabelPolicyFontRequest](#removelabelpolicyfontrequest)) +[RemoveLabelPolicyFontResponse](#removelabelpolicyfontresponse) + +Removes the font of the label policy + + + + DELETE: /policies/label/font + + +### GetLoginPolicy + +> **rpc** GetLoginPolicy([GetLoginPolicyRequest](#getloginpolicyrequest)) +[GetLoginPolicyResponse](#getloginpolicyresponse) + +Returns the login policy defined by the administrators of ZITADEL + + + + GET: /policies/login + + +### UpdateLoginPolicy + +> **rpc** UpdateLoginPolicy([UpdateLoginPolicyRequest](#updateloginpolicyrequest)) +[UpdateLoginPolicyResponse](#updateloginpolicyresponse) + +Updates the default login policy of ZITADEL +it impacts all organisations without a customised policy + + + + PUT: /policies/login + + +### ListLoginPolicyIDPs + +> **rpc** ListLoginPolicyIDPs([ListLoginPolicyIDPsRequest](#listloginpolicyidpsrequest)) +[ListLoginPolicyIDPsResponse](#listloginpolicyidpsresponse) + +Returns the idps linked to the default login policy, +defined by the administrators of ZITADEL + + + + POST: /policies/login/idps/_search + + +### AddIDPToLoginPolicy + +> **rpc** AddIDPToLoginPolicy([AddIDPToLoginPolicyRequest](#addidptologinpolicyrequest)) +[AddIDPToLoginPolicyResponse](#addidptologinpolicyresponse) + +Adds the povided idp to the default login policy. +It impacts all organisations without a customised policy + + + + POST: /policies/login/idps + + +### RemoveIDPFromLoginPolicy + +> **rpc** RemoveIDPFromLoginPolicy([RemoveIDPFromLoginPolicyRequest](#removeidpfromloginpolicyrequest)) +[RemoveIDPFromLoginPolicyResponse](#removeidpfromloginpolicyresponse) + +Removes the povided idp from the default login policy. +It impacts all organisations without a customised policy + + + + DELETE: /policies/login/idps/{idp_id} + + +### ListLoginPolicySecondFactors + +> **rpc** ListLoginPolicySecondFactors([ListLoginPolicySecondFactorsRequest](#listloginpolicysecondfactorsrequest)) +[ListLoginPolicySecondFactorsResponse](#listloginpolicysecondfactorsresponse) + +Returns the available second factors defined by the administrators of ZITADEL + + + + POST: /policies/login/second_factors/_search + + +### AddSecondFactorToLoginPolicy + +> **rpc** AddSecondFactorToLoginPolicy([AddSecondFactorToLoginPolicyRequest](#addsecondfactortologinpolicyrequest)) +[AddSecondFactorToLoginPolicyResponse](#addsecondfactortologinpolicyresponse) + +Adds a second factor to the default login policy. +It impacts all organisations without a customised policy + + + + POST: /policies/login/second_factors + + +### RemoveSecondFactorFromLoginPolicy + +> **rpc** RemoveSecondFactorFromLoginPolicy([RemoveSecondFactorFromLoginPolicyRequest](#removesecondfactorfromloginpolicyrequest)) +[RemoveSecondFactorFromLoginPolicyResponse](#removesecondfactorfromloginpolicyresponse) + +Removes a second factor from the default login policy. +It impacts all organisations without a customised policy + + + + DELETE: /policies/login/second_factors/{type} + + +### ListLoginPolicyMultiFactors + +> **rpc** ListLoginPolicyMultiFactors([ListLoginPolicyMultiFactorsRequest](#listloginpolicymultifactorsrequest)) +[ListLoginPolicyMultiFactorsResponse](#listloginpolicymultifactorsresponse) + +Returns the available multi factors defined by the administrators of ZITADEL + + + + POST: /policies/login/multi_factors/_search + + +### AddMultiFactorToLoginPolicy + +> **rpc** AddMultiFactorToLoginPolicy([AddMultiFactorToLoginPolicyRequest](#addmultifactortologinpolicyrequest)) +[AddMultiFactorToLoginPolicyResponse](#addmultifactortologinpolicyresponse) + +Adds a multi factor to the default login policy. +It impacts all organisations without a customised policy + + + + POST: /policies/login/multi_factors + + +### RemoveMultiFactorFromLoginPolicy + +> **rpc** RemoveMultiFactorFromLoginPolicy([RemoveMultiFactorFromLoginPolicyRequest](#removemultifactorfromloginpolicyrequest)) +[RemoveMultiFactorFromLoginPolicyResponse](#removemultifactorfromloginpolicyresponse) + +Removes a multi factor from the default login policy. +It impacts all organisations without a customised policy + + + + DELETE: /policies/login/multi_factors/{type} + + +### GetPasswordComplexityPolicy + +> **rpc** GetPasswordComplexityPolicy([GetPasswordComplexityPolicyRequest](#getpasswordcomplexitypolicyrequest)) +[GetPasswordComplexityPolicyResponse](#getpasswordcomplexitypolicyresponse) + +Returns the password complexity policy defined by the administrators of ZITADEL + + + + GET: /policies/password/complexity + + +### UpdatePasswordComplexityPolicy + +> **rpc** UpdatePasswordComplexityPolicy([UpdatePasswordComplexityPolicyRequest](#updatepasswordcomplexitypolicyrequest)) +[UpdatePasswordComplexityPolicyResponse](#updatepasswordcomplexitypolicyresponse) + +Updates the default password complexity policy of ZITADEL +it impacts all organisations without a customised policy + + + + PUT: /policies/password/complexity + + +### GetPasswordAgePolicy + +> **rpc** GetPasswordAgePolicy([GetPasswordAgePolicyRequest](#getpasswordagepolicyrequest)) +[GetPasswordAgePolicyResponse](#getpasswordagepolicyresponse) + +Returns the password age policy defined by the administrators of ZITADEL + + + + GET: /policies/password/age + + +### UpdatePasswordAgePolicy + +> **rpc** UpdatePasswordAgePolicy([UpdatePasswordAgePolicyRequest](#updatepasswordagepolicyrequest)) +[UpdatePasswordAgePolicyResponse](#updatepasswordagepolicyresponse) + +Updates the default password age policy of ZITADEL +it impacts all organisations without a customised policy + + + + PUT: /policies/password/age + + +### GetLockoutPolicy + +> **rpc** GetLockoutPolicy([GetLockoutPolicyRequest](#getlockoutpolicyrequest)) +[GetLockoutPolicyResponse](#getlockoutpolicyresponse) + +Returns the lockout policy defined by the administrators of ZITADEL + + + + GET: /policies/lockout + + +### UpdateLockoutPolicy + +> **rpc** UpdateLockoutPolicy([UpdateLockoutPolicyRequest](#updatelockoutpolicyrequest)) +[UpdateLockoutPolicyResponse](#updatelockoutpolicyresponse) + +Updates the default lockout policy of ZITADEL +it impacts all organisations without a customised policy + + + + PUT: /policies/password/lockout + + +### GetPrivacyPolicy + +> **rpc** GetPrivacyPolicy([GetPrivacyPolicyRequest](#getprivacypolicyrequest)) +[GetPrivacyPolicyResponse](#getprivacypolicyresponse) + +Returns the privacy policy defined by the administrators of ZITADEL + + + + GET: /policies/privacy + + +### UpdatePrivacyPolicy + +> **rpc** UpdatePrivacyPolicy([UpdatePrivacyPolicyRequest](#updateprivacypolicyrequest)) +[UpdatePrivacyPolicyResponse](#updateprivacypolicyresponse) + +Updates the default privacy policy of ZITADEL +it impacts all organisations without a customised policy +Variable {{.Lang}} can be set to have different links based on the language + + + + PUT: /policies/privacy + + +### AddNotificationPolicy + +> **rpc** AddNotificationPolicy([AddNotificationPolicyRequest](#addnotificationpolicyrequest)) +[AddNotificationPolicyResponse](#addnotificationpolicyresponse) + +Add a default notification policy for ZITADEL +it impacts all organisations without a customised policy + + + + POST: /policies/notification + + +### GetNotificationPolicy + +> **rpc** GetNotificationPolicy([GetNotificationPolicyRequest](#getnotificationpolicyrequest)) +[GetNotificationPolicyResponse](#getnotificationpolicyresponse) + +Returns the notification policy defined by the administrators of ZITADEL + + + + GET: /policies/notification + + +### UpdateNotificationPolicy + +> **rpc** UpdateNotificationPolicy([UpdateNotificationPolicyRequest](#updatenotificationpolicyrequest)) +[UpdateNotificationPolicyResponse](#updatenotificationpolicyresponse) + +Updates the default notification policy of ZITADEL +it impacts all organisations without a customised policy + + + + PUT: /policies/notification + + +### GetDefaultInitMessageText + +> **rpc** GetDefaultInitMessageText([GetDefaultInitMessageTextRequest](#getdefaultinitmessagetextrequest)) +[GetDefaultInitMessageTextResponse](#getdefaultinitmessagetextresponse) + +Returns the default text for initial message (translation file) + + + + GET: /text/default/message/init/{language} + + +### GetCustomInitMessageText + +> **rpc** GetCustomInitMessageText([GetCustomInitMessageTextRequest](#getcustominitmessagetextrequest)) +[GetCustomInitMessageTextResponse](#getcustominitmessagetextresponse) + +Returns the custom text for initial message (overwritten in eventstore) + + + + GET: /text/message/init/{language} + + +### SetDefaultInitMessageText + +> **rpc** SetDefaultInitMessageText([SetDefaultInitMessageTextRequest](#setdefaultinitmessagetextrequest)) +[SetDefaultInitMessageTextResponse](#setdefaultinitmessagetextresponse) + +Sets the default custom text for initial message +it impacts all organisations without customized initial message text +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/init/{language} + + +### ResetCustomInitMessageTextToDefault + +> **rpc** ResetCustomInitMessageTextToDefault([ResetCustomInitMessageTextToDefaultRequest](#resetcustominitmessagetexttodefaultrequest)) +[ResetCustomInitMessageTextToDefaultResponse](#resetcustominitmessagetexttodefaultresponse) + +Removes the custom init message text of the system +The default text from the translation file will trigger after + + + + DELETE: /text/message/init/{language} + + +### GetDefaultPasswordResetMessageText + +> **rpc** GetDefaultPasswordResetMessageText([GetDefaultPasswordResetMessageTextRequest](#getdefaultpasswordresetmessagetextrequest)) +[GetDefaultPasswordResetMessageTextResponse](#getdefaultpasswordresetmessagetextresponse) + +Returns the default text for password reset message (translation file) + + + + GET: /text/deafult/message/passwordreset/{language} + + +### GetCustomPasswordResetMessageText + +> **rpc** GetCustomPasswordResetMessageText([GetCustomPasswordResetMessageTextRequest](#getcustompasswordresetmessagetextrequest)) +[GetCustomPasswordResetMessageTextResponse](#getcustompasswordresetmessagetextresponse) + +Returns the custom text for password reset message (overwritten in eventstore) + + + + GET: /text/message/passwordreset/{language} + + +### SetDefaultPasswordResetMessageText + +> **rpc** SetDefaultPasswordResetMessageText([SetDefaultPasswordResetMessageTextRequest](#setdefaultpasswordresetmessagetextrequest)) +[SetDefaultPasswordResetMessageTextResponse](#setdefaultpasswordresetmessagetextresponse) + +Sets the default custom text for password reset message +it impacts all organisations without customized password reset message text +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/passwordreset/{language} + + +### ResetCustomPasswordResetMessageTextToDefault + +> **rpc** ResetCustomPasswordResetMessageTextToDefault([ResetCustomPasswordResetMessageTextToDefaultRequest](#resetcustompasswordresetmessagetexttodefaultrequest)) +[ResetCustomPasswordResetMessageTextToDefaultResponse](#resetcustompasswordresetmessagetexttodefaultresponse) + +Removes the custom password reset message text of the system +The default text from the translation file will trigger after + + + + DELETE: /text/message/verifyemail/{language} + + +### GetDefaultVerifyEmailMessageText + +> **rpc** GetDefaultVerifyEmailMessageText([GetDefaultVerifyEmailMessageTextRequest](#getdefaultverifyemailmessagetextrequest)) +[GetDefaultVerifyEmailMessageTextResponse](#getdefaultverifyemailmessagetextresponse) + +Returns the default text for verify email message (translation files) + + + + GET: /text/default/message/verifyemail/{language} + + +### GetCustomVerifyEmailMessageText + +> **rpc** GetCustomVerifyEmailMessageText([GetCustomVerifyEmailMessageTextRequest](#getcustomverifyemailmessagetextrequest)) +[GetCustomVerifyEmailMessageTextResponse](#getcustomverifyemailmessagetextresponse) + +Returns the custom text for verify email message (overwritten in eventstore) + + + + GET: /text/message/verifyemail/{language} + + +### SetDefaultVerifyEmailMessageText + +> **rpc** SetDefaultVerifyEmailMessageText([SetDefaultVerifyEmailMessageTextRequest](#setdefaultverifyemailmessagetextrequest)) +[SetDefaultVerifyEmailMessageTextResponse](#setdefaultverifyemailmessagetextresponse) + +Sets the default custom text for verify email message +it impacts all organisations without customized verify email message text +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/verifyemail/{language} + + +### ResetCustomVerifyEmailMessageTextToDefault + +> **rpc** ResetCustomVerifyEmailMessageTextToDefault([ResetCustomVerifyEmailMessageTextToDefaultRequest](#resetcustomverifyemailmessagetexttodefaultrequest)) +[ResetCustomVerifyEmailMessageTextToDefaultResponse](#resetcustomverifyemailmessagetexttodefaultresponse) + +Removes the custom verify email message text of the system +The default text from the translation file will trigger after + + + + DELETE: /text/message/verifyemail/{language} + + +### GetDefaultVerifyPhoneMessageText + +> **rpc** GetDefaultVerifyPhoneMessageText([GetDefaultVerifyPhoneMessageTextRequest](#getdefaultverifyphonemessagetextrequest)) +[GetDefaultVerifyPhoneMessageTextResponse](#getdefaultverifyphonemessagetextresponse) + +Returns the default text for verify phone message (translation file) + + + + GET: /text/default/message/verifyphone/{language} + + +### GetCustomVerifyPhoneMessageText + +> **rpc** GetCustomVerifyPhoneMessageText([GetCustomVerifyPhoneMessageTextRequest](#getcustomverifyphonemessagetextrequest)) +[GetCustomVerifyPhoneMessageTextResponse](#getcustomverifyphonemessagetextresponse) + +Returns the custom text for verify phone message + + + + GET: /text/message/verifyphone/{language} + + +### SetDefaultVerifyPhoneMessageText + +> **rpc** SetDefaultVerifyPhoneMessageText([SetDefaultVerifyPhoneMessageTextRequest](#setdefaultverifyphonemessagetextrequest)) +[SetDefaultVerifyPhoneMessageTextResponse](#setdefaultverifyphonemessagetextresponse) + +Sets the default custom text for verify phone message +it impacts all organisations without customized verify phone message text +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/verifyphone/{language} + + +### ResetCustomVerifyPhoneMessageTextToDefault + +> **rpc** ResetCustomVerifyPhoneMessageTextToDefault([ResetCustomVerifyPhoneMessageTextToDefaultRequest](#resetcustomverifyphonemessagetexttodefaultrequest)) +[ResetCustomVerifyPhoneMessageTextToDefaultResponse](#resetcustomverifyphonemessagetexttodefaultresponse) + +Removes the custom verify phone text of the system +The default text from the translation file will trigger after + + + + DELETE: /text/message/verifyphone/{language} + + +### GetDefaultDomainClaimedMessageText + +> **rpc** GetDefaultDomainClaimedMessageText([GetDefaultDomainClaimedMessageTextRequest](#getdefaultdomainclaimedmessagetextrequest)) +[GetDefaultDomainClaimedMessageTextResponse](#getdefaultdomainclaimedmessagetextresponse) + +Returns the default text for domain claimed message (translation file) + + + + GET: /text/default/message/domainclaimed/{language} + + +### GetCustomDomainClaimedMessageText + +> **rpc** GetCustomDomainClaimedMessageText([GetCustomDomainClaimedMessageTextRequest](#getcustomdomainclaimedmessagetextrequest)) +[GetCustomDomainClaimedMessageTextResponse](#getcustomdomainclaimedmessagetextresponse) + +Returns the custom text for domain claimed message (overwritten in eventstore) + + + + GET: /text/message/domainclaimed/{language} + + +### SetDefaultDomainClaimedMessageText + +> **rpc** SetDefaultDomainClaimedMessageText([SetDefaultDomainClaimedMessageTextRequest](#setdefaultdomainclaimedmessagetextrequest)) +[SetDefaultDomainClaimedMessageTextResponse](#setdefaultdomainclaimedmessagetextresponse) + +Sets the default custom text for domain claimed message +it impacts all organisations without customized domain claimed message text +The Following Variables can be used: +{{.Domain}} {{.TempUsername}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/domainclaimed/{language} + + +### ResetCustomDomainClaimedMessageTextToDefault + +> **rpc** ResetCustomDomainClaimedMessageTextToDefault([ResetCustomDomainClaimedMessageTextToDefaultRequest](#resetcustomdomainclaimedmessagetexttodefaultrequest)) +[ResetCustomDomainClaimedMessageTextToDefaultResponse](#resetcustomdomainclaimedmessagetexttodefaultresponse) + +Removes the custom domain claimed message text of the system +The default text from the translation file will trigger after + + + + DELETE: /text/message/domainclaimed/{language} + + +### GetDefaultPasswordlessRegistrationMessageText + +> **rpc** GetDefaultPasswordlessRegistrationMessageText([GetDefaultPasswordlessRegistrationMessageTextRequest](#getdefaultpasswordlessregistrationmessagetextrequest)) +[GetDefaultPasswordlessRegistrationMessageTextResponse](#getdefaultpasswordlessregistrationmessagetextresponse) + +Returns the default text for passwordless registration message (translation file) + + + + GET: /text/default/message/passwordless_registration/{language} + + +### GetCustomPasswordlessRegistrationMessageText + +> **rpc** GetCustomPasswordlessRegistrationMessageText([GetCustomPasswordlessRegistrationMessageTextRequest](#getcustompasswordlessregistrationmessagetextrequest)) +[GetCustomPasswordlessRegistrationMessageTextResponse](#getcustompasswordlessregistrationmessagetextresponse) + +Returns the custom text for passwordless registration message (overwritten in eventstore) + + + + GET: /text/message/passwordless_registration/{language} + + +### SetDefaultPasswordlessRegistrationMessageText + +> **rpc** SetDefaultPasswordlessRegistrationMessageText([SetDefaultPasswordlessRegistrationMessageTextRequest](#setdefaultpasswordlessregistrationmessagetextrequest)) +[SetDefaultPasswordlessRegistrationMessageTextResponse](#setdefaultpasswordlessregistrationmessagetextresponse) + +Sets the default custom text for passwordless registration message +it impacts all organisations without customized passwordless registration message text +The Following Variables can be used: +{{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/passwordless_registration/{language} + + +### ResetCustomPasswordlessRegistrationMessageTextToDefault + +> **rpc** ResetCustomPasswordlessRegistrationMessageTextToDefault([ResetCustomPasswordlessRegistrationMessageTextToDefaultRequest](#resetcustompasswordlessregistrationmessagetexttodefaultrequest)) +[ResetCustomPasswordlessRegistrationMessageTextToDefaultResponse](#resetcustompasswordlessregistrationmessagetexttodefaultresponse) + +Removes the custom passwordless link message text of the system +The default text from the translation file will trigger after + + + + DELETE: /text/message/passwordless_registration/{language} + + +### GetDefaultPasswordChangeMessageText + +> **rpc** GetDefaultPasswordChangeMessageText([GetDefaultPasswordChangeMessageTextRequest](#getdefaultpasswordchangemessagetextrequest)) +[GetDefaultPasswordChangeMessageTextResponse](#getdefaultpasswordchangemessagetextresponse) + +Returns the default text for password change message (translation file) + + + + GET: /text/default/message/password_change/{language} + + +### GetCustomPasswordChangeMessageText + +> **rpc** GetCustomPasswordChangeMessageText([GetCustomPasswordChangeMessageTextRequest](#getcustompasswordchangemessagetextrequest)) +[GetCustomPasswordChangeMessageTextResponse](#getcustompasswordchangemessagetextresponse) + +Returns the custom text for password change message (overwritten in eventstore) + + + + GET: /text/message/password_change/{language} + + +### SetDefaultPasswordChangeMessageText + +> **rpc** SetDefaultPasswordChangeMessageText([SetDefaultPasswordChangeMessageTextRequest](#setdefaultpasswordchangemessagetextrequest)) +[SetDefaultPasswordChangeMessageTextResponse](#setdefaultpasswordchangemessagetextresponse) + +Sets the default custom text for password change message +it impacts all organisations without customized password change message text +The Following Variables can be used: +{{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/password_change/{language} + + +### ResetCustomPasswordChangeMessageTextToDefault + +> **rpc** ResetCustomPasswordChangeMessageTextToDefault([ResetCustomPasswordChangeMessageTextToDefaultRequest](#resetcustompasswordchangemessagetexttodefaultrequest)) +[ResetCustomPasswordChangeMessageTextToDefaultResponse](#resetcustompasswordchangemessagetexttodefaultresponse) + +Removes the custom password change message text of the system +The default text from the translation file will trigger after + + + + DELETE: /text/message/password_change/{language} + + +### GetDefaultLoginTexts + +> **rpc** GetDefaultLoginTexts([GetDefaultLoginTextsRequest](#getdefaultlogintextsrequest)) +[GetDefaultLoginTextsResponse](#getdefaultlogintextsresponse) + +Returns the default custom texts for login ui (translation file) + + + + GET: /text/default/login/{language} + + +### GetCustomLoginTexts + +> **rpc** GetCustomLoginTexts([GetCustomLoginTextsRequest](#getcustomlogintextsrequest)) +[GetCustomLoginTextsResponse](#getcustomlogintextsresponse) + +Returns the custom texts for login ui + + + + GET: /text/login/{language} + + +### SetCustomLoginText + +> **rpc** SetCustomLoginText([SetCustomLoginTextsRequest](#setcustomlogintextsrequest)) +[SetCustomLoginTextsResponse](#setcustomlogintextsresponse) + +Sets the custom text for login ui +it impacts all organisations without customized login ui texts + + + + PUT: /text/login/{language} + + +### ResetCustomLoginTextToDefault + +> **rpc** ResetCustomLoginTextToDefault([ResetCustomLoginTextsToDefaultRequest](#resetcustomlogintextstodefaultrequest)) +[ResetCustomLoginTextsToDefaultResponse](#resetcustomlogintextstodefaultresponse) + +Removes the custom texts for login ui +it impacts all organisations without customized login ui texts +The default text form translation file will trigger after + + + + DELETE: /text/login/{language} + + +### ListIAMMemberRoles + +> **rpc** ListIAMMemberRoles([ListIAMMemberRolesRequest](#listiammemberrolesrequest)) +[ListIAMMemberRolesResponse](#listiammemberrolesresponse) + +Returns the IAM roles visible for the requested user + + + + POST: /members/roles/_search + + +### ListIAMMembers + +> **rpc** ListIAMMembers([ListIAMMembersRequest](#listiammembersrequest)) +[ListIAMMembersResponse](#listiammembersresponse) + +Returns all members matching the request +all queries need to match (ANDed) + + + + POST: /members/_search + + +### AddIAMMember + +> **rpc** AddIAMMember([AddIAMMemberRequest](#addiammemberrequest)) +[AddIAMMemberResponse](#addiammemberresponse) + +Adds a user to the membership list of ZITADEL with the given roles +undefined roles will be dropped + + + + POST: /members + + +### UpdateIAMMember + +> **rpc** UpdateIAMMember([UpdateIAMMemberRequest](#updateiammemberrequest)) +[UpdateIAMMemberResponse](#updateiammemberresponse) + +Sets the given roles on a member. +The member has only roles provided by this call + + + + PUT: /members/{user_id} + + +### RemoveIAMMember + +> **rpc** RemoveIAMMember([RemoveIAMMemberRequest](#removeiammemberrequest)) +[RemoveIAMMemberResponse](#removeiammemberresponse) + +Removes the user from the membership list of ZITADEL + + + + DELETE: /members/{user_id} + + +### ListViews + +> **rpc** ListViews([ListViewsRequest](#listviewsrequest)) +[ListViewsResponse](#listviewsresponse) + +Returns all stored read models of ZITADEL +views are used for search optimisation and optimise request latencies +they represent the delta of the event happend on the objects + + + + POST: /views/_search + + +### ListFailedEvents + +> **rpc** ListFailedEvents([ListFailedEventsRequest](#listfailedeventsrequest)) +[ListFailedEventsResponse](#listfailedeventsresponse) + +Returns event descriptions which cannot be processed. +It's possible that some events need some retries. +For example if the SMTP-API wasn't able to send an email at the first time + + + + POST: /failedevents/_search + + +### RemoveFailedEvent + +> **rpc** RemoveFailedEvent([RemoveFailedEventRequest](#removefailedeventrequest)) +[RemoveFailedEventResponse](#removefailedeventresponse) + +Deletes the event from failed events view. +the event is not removed from the change stream +This call is usefull if the system was able to process the event later. +e.g. if the second try of sending an email was successful. the first try produced a +failed event. You can find out if it worked on the `failure_count` + + + + DELETE: /failedevents/{database}/{view_name}/{failed_sequence} + + +### ImportData + +> **rpc** ImportData([ImportDataRequest](#importdatarequest)) +[ImportDataResponse](#importdataresponse) + +Imports data into instance and creates different objects + + + + POST: /import + + +### ExportData + +> **rpc** ExportData([ExportDataRequest](#exportdatarequest)) +[ExportDataResponse](#exportdataresponse) + +Exports data from instance + + + + POST: /export + + +### ListEventTypes + +> **rpc** ListEventTypes([ListEventTypesRequest](#listeventtypesrequest)) +[ListEventTypesResponse](#listeventtypesresponse) + + + + + + POST: /events/types/_search + + +### ListEvents + +> **rpc** ListEvents([ListEventsRequest](#listeventsrequest)) +[ListEventsResponse](#listeventsresponse) + + + + + + POST: /events/_search + + +### ListAggregateTypes + +> **rpc** ListAggregateTypes([ListAggregateTypesRequest](#listaggregatetypesrequest)) +[ListAggregateTypesResponse](#listaggregatetypesresponse) + + + + + + POST: /aggregates/types/_search + + + + + + + +## Messages + + +### ActivateLabelPolicyRequest +This is an empty request + + + + +### ActivateLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ActivateSMSProviderRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ActivateSMSProviderResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomDomainPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_login_must_be_domain | bool | the username has to end with the domain of it's organisation (uniqueness is organisation based) | | +| validate_org_domains | bool | - | | +| smtp_sender_address_matches_instance_domain | bool | - | | + + + + +### AddCustomDomainPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomOrgIAMPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_login_must_be_domain | bool | the username has to end with the domain of it's organisation (uniqueness is organisation based) | | + + + + +### AddCustomOrgIAMPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddIAMMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | if no roles provided the user won't have any rights | | + + + + +### AddIAMMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddIDPToLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | Id of the predefined idp configuration | string.min_len: 1
string.max_len: 200
| + + + + +### AddIDPToLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddJWTIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| +| styling_type | zitadel.idp.v1.IDPStylingType | - | enum.defined_only: true
| +| jwt_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| keys_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| header_name | string | - | string.min_len: 1
string.max_len: 200
| +| auto_register | bool | - | | + + + + +### AddJWTIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| idp_id | string | - | | + + + + +### AddMultiFactorToLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### AddMultiFactorToLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddNotificationPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| password_change | bool | - | | + + + + +### AddNotificationPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddOIDCIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| +| styling_type | zitadel.idp.v1.IDPStylingType | - | enum.defined_only: true
| +| client_id | string | - | string.min_len: 1
string.max_len: 200
| +| client_secret | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| scopes | repeated string | - | | +| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| +| username_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| +| auto_register | bool | - | | + + + + +### AddOIDCIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| idp_id | string | - | | + + + + +### AddOIDCSettingsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| access_token_lifetime | google.protobuf.Duration | - | | +| id_token_lifetime | google.protobuf.Duration | - | | +| refresh_token_idle_expiration | google.protobuf.Duration | - | | +| refresh_token_expiration | google.protobuf.Duration | - | | + + + + +### AddOIDCSettingsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddSMSProviderTwilioRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| sid | string | - | string.min_len: 1
string.max_len: 200
| +| token | string | - | string.min_len: 1
string.max_len: 200
| +| sender_number | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### AddSMSProviderTwilioResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| id | string | - | | + + + + +### AddSMTPConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| sender_address | string | - | string.min_len: 1
string.max_len: 200
| +| sender_name | string | - | string.min_len: 1
string.max_len: 200
| +| tls | bool | - | | +| host | string | - | string.min_len: 1
string.max_len: 500
| +| user | string | - | | +| password | string | - | | + + + + +### AddSMTPConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddSecondFactorToLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### AddSecondFactorToLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DataOrg + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | | +| org | zitadel.management.v1.AddOrgRequest | - | | +| domain_policy | AddCustomDomainPolicyRequest | - | | +| label_policy | zitadel.management.v1.AddCustomLabelPolicyRequest | - | | +| lockout_policy | zitadel.management.v1.AddCustomLockoutPolicyRequest | - | | +| login_policy | zitadel.management.v1.AddCustomLoginPolicyRequest | - | | +| password_complexity_policy | zitadel.management.v1.AddCustomPasswordComplexityPolicyRequest | - | | +| privacy_policy | zitadel.management.v1.AddCustomPrivacyPolicyRequest | - | | +| projects | repeated zitadel.v1.v1.DataProject | - | | +| project_roles | repeated zitadel.management.v1.AddProjectRoleRequest | - | | +| api_apps | repeated zitadel.v1.v1.DataAPIApplication | - | | +| oidc_apps | repeated zitadel.v1.v1.DataOIDCApplication | - | | +| human_users | repeated zitadel.v1.v1.DataHumanUser | - | | +| machine_users | repeated zitadel.v1.v1.DataMachineUser | - | | +| trigger_actions | repeated zitadel.management.v1.SetTriggerActionsRequest | - | | +| actions | repeated zitadel.v1.v1.DataAction | - | | +| project_grants | repeated zitadel.v1.v1.DataProjectGrant | - | | +| user_grants | repeated zitadel.management.v1.AddUserGrantRequest | - | | +| org_members | repeated zitadel.management.v1.AddOrgMemberRequest | - | | +| project_members | repeated zitadel.management.v1.AddProjectMemberRequest | - | | +| project_grant_members | repeated zitadel.management.v1.AddProjectGrantMemberRequest | - | | +| user_metadata | repeated zitadel.management.v1.SetUserMetadataRequest | - | | +| login_texts | repeated zitadel.management.v1.SetCustomLoginTextsRequest | - | | +| init_messages | repeated zitadel.management.v1.SetCustomInitMessageTextRequest | - | | +| password_reset_messages | repeated zitadel.management.v1.SetCustomPasswordResetMessageTextRequest | - | | +| verify_email_messages | repeated zitadel.management.v1.SetCustomVerifyEmailMessageTextRequest | - | | +| verify_phone_messages | repeated zitadel.management.v1.SetCustomVerifyPhoneMessageTextRequest | - | | +| domain_claimed_messages | repeated zitadel.management.v1.SetCustomDomainClaimedMessageTextRequest | - | | +| passwordless_registration_messages | repeated zitadel.management.v1.SetCustomPasswordlessRegistrationMessageTextRequest | - | | +| oidc_idps | repeated zitadel.v1.v1.DataOIDCIDP | - | | +| jwt_idps | repeated zitadel.v1.v1.DataJWTIDP | - | | +| user_links | repeated zitadel.idp.v1.IDPUserLink | - | | +| domains | repeated zitadel.org.v1.Domain | - | | +| app_keys | repeated zitadel.v1.v1.DataAppKey | - | | +| machine_keys | repeated zitadel.v1.v1.DataMachineKey | - | | + + + + +### DeactivateIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateSMSProviderRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateSMSProviderResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ExportDataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_ids | repeated string | - | | +| excluded_org_ids | repeated string | - | | +| with_passwords | bool | - | | +| with_otp | bool | - | | +| response_output | bool | - | | +| local_output | ExportDataRequest.LocalOutput | - | | +| s3_output | ExportDataRequest.S3Output | - | | +| gcs_output | ExportDataRequest.GCSOutput | - | | +| timeout | string | - | | + + + + +### ExportDataRequest.GCSOutput + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| bucket | string | - | | +| serviceaccount_json | string | - | | +| path | string | - | | + + + + +### ExportDataRequest.LocalOutput + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| path | string | - | | + + + + +### ExportDataRequest.S3Output + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| path | string | - | | +| endpoint | string | - | | +| access_key_id | string | - | | +| secret_access_key | string | - | | +| ssl | bool | - | | +| bucket | string | - | | + + + + +### ExportDataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| orgs | repeated DataOrg | - | | + + + + +### FailedEvent + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| database | string | - | | +| view_name | string | - | | +| failed_sequence | uint64 | - | | +| failure_count | uint64 | - | | +| error_message | string | - | | +| last_failed | google.protobuf.Timestamp | - | | + + + + +### GetCustomDomainClaimedMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomDomainClaimedMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomDomainPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomDomainPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.DomainPolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.DomainPolicy | | + + + + +### GetCustomInitMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomInitMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomLoginTextsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomLoginTextsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.LoginCustomText | - | | + + + + +### GetCustomOrgIAMPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomOrgIAMPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.OrgIAMPolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.OrgIAMPolicy | | + + + + +### GetCustomPasswordChangeMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomPasswordChangeMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomPasswordResetMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomPasswordResetMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomPasswordlessRegistrationMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomPasswordlessRegistrationMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomVerifyEmailMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomVerifyEmailMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomVerifyPhoneMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomVerifyPhoneMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultDomainClaimedMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultDomainClaimedMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultInitMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultInitMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultLanguageRequest +This is an empty request + + + + +### GetDefaultLanguageResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | | + + + + +### GetDefaultLoginTextsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultLoginTextsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.LoginCustomText | - | | + + + + +### GetDefaultOrgRequest +This is an empty request + + + + +### GetDefaultOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org | zitadel.org.v1.Org | - | | + + + + +### GetDefaultPasswordChangeMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultPasswordChangeMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultPasswordResetMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultPasswordResetMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultPasswordlessRegistrationMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultPasswordlessRegistrationMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultVerifyEmailMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultVerifyEmailMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultVerifyPhoneMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultVerifyPhoneMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDomainPolicyRequest + + + + + +### GetDomainPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.DomainPolicy | - | | + + + + +### GetFileSystemNotificationProviderRequest +This is an empty request + + + + +### GetFileSystemNotificationProviderResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| provider | zitadel.settings.v1.DebugNotificationProvider | - | | + + + + +### GetIDPByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetIDPByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp | zitadel.idp.v1.IDP | - | | + + + + +### GetLabelPolicyRequest +This is an empty request + + + + +### GetLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LabelPolicy | - | | + + + + +### GetLockoutPolicyRequest +This is an empty request + + + + +### GetLockoutPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LockoutPolicy | - | | + + + + +### GetLogNotificationProviderRequest +This is an empty request + + + + +### GetLogNotificationProviderResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| provider | zitadel.settings.v1.DebugNotificationProvider | - | | + + + + +### GetLoginPolicyRequest +This is an empty request + + + + +### GetLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LoginPolicy | - | | + + + + +### GetMyInstanceRequest +This is an empty request + + + + +### GetMyInstanceResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance | zitadel.instance.v1.InstanceDetail | - | | + + + + +### GetNotificationPolicyRequest +This is an empty request + + + + +### GetNotificationPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.NotificationPolicy | - | | + + + + +### GetOIDCSettingsRequest +This is an empty request + + + + +### GetOIDCSettingsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| settings | zitadel.settings.v1.OIDCSettings | - | | + + + + +### GetOrgByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetOrgByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org | zitadel.org.v1.Org | - | | + + + + +### GetOrgIAMPolicyRequest + + + + + +### GetOrgIAMPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.OrgIAMPolicy | - | | + + + + +### GetPasswordAgePolicyRequest +This is an empty request + + + + +### GetPasswordAgePolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PasswordAgePolicy | - | | + + + + +### GetPasswordComplexityPolicyRequest + + + + + +### GetPasswordComplexityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | | + + + + +### GetPreviewLabelPolicyRequest +This is an empty request + + + + +### GetPreviewLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LabelPolicy | - | | + + + + +### GetPrivacyPolicyRequest +This is an empty request + + + + +### GetPrivacyPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PrivacyPolicy | - | | + + + + +### GetSMSProviderRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 100
| + + + + +### GetSMSProviderResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| config | zitadel.settings.v1.SMSProvider | - | | + + + + +### GetSMTPConfigRequest +This is an empty request + + + + +### GetSMTPConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| smtp_config | zitadel.settings.v1.SMTPConfig | - | | + + + + +### GetSecretGeneratorRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| generator_type | zitadel.settings.v1.SecretGeneratorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### GetSecretGeneratorResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| secret_generator | zitadel.settings.v1.SecretGenerator | - | | + + + + +### GetSecurityPolicyRequest +This is an empty request + + + + +### GetSecurityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.settings.v1.SecurityPolicy | - | | + + + + +### GetSupportedLanguagesRequest +This is an empty request + + + + +### GetSupportedLanguagesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| languages | repeated string | - | | + + + + +### HealthzRequest +This is an empty request + + + + +### HealthzResponse +This is an empty response + + + + +### IDPQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.idp_id_query | zitadel.idp.v1.IDPIDQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.idp_name_query | zitadel.idp.v1.IDPNameQuery | - | | + + + + +### ImportDataError + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | string | - | | +| id | string | - | | +| message | string | - | | + + + + +### ImportDataOrg + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| orgs | repeated DataOrg | - | | + + + + +### ImportDataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgs | ImportDataOrg | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgsv1 | zitadel.v1.v1.ImportDataOrg | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgs_local | ImportDataRequest.LocalInput | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgsv1_local | ImportDataRequest.LocalInput | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgs_s3 | ImportDataRequest.S3Input | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgsv1_s3 | ImportDataRequest.S3Input | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgs_gcs | ImportDataRequest.GCSInput | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) data.data_orgsv1_gcs | ImportDataRequest.GCSInput | - | | +| timeout | string | - | | + + + + +### ImportDataRequest.GCSInput + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| bucket | string | - | | +| serviceaccount_json | string | - | | +| path | string | - | | + + + + +### ImportDataRequest.LocalInput + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| path | string | - | | + + + + +### ImportDataRequest.S3Input + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| path | string | - | | +| endpoint | string | - | | +| access_key_id | string | - | | +| secret_access_key | string | - | | +| ssl | bool | - | | +| bucket | string | - | | + + + + +### ImportDataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| errors | repeated ImportDataError | - | | +| success | ImportDataSuccess | - | | + + + + +### ImportDataSuccess + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| orgs | repeated ImportDataSuccessOrg | - | | + + + + +### ImportDataSuccessOrg + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | | +| project_ids | repeated string | - | | +| project_roles | repeated string | - | | +| oidc_app_ids | repeated string | - | | +| api_app_ids | repeated string | - | | +| human_user_ids | repeated string | - | | +| machine_user_ids | repeated string | - | | +| action_ids | repeated string | - | | +| trigger_actions | repeated zitadel.management.v1.SetTriggerActionsRequest | - | | +| project_grants | repeated ImportDataSuccessProjectGrant | - | | +| user_grants | repeated ImportDataSuccessUserGrant | - | | +| org_members | repeated string | - | | +| project_members | repeated ImportDataSuccessProjectMember | - | | +| project_grant_members | repeated ImportDataSuccessProjectGrantMember | - | | +| oidc_ipds | repeated string | - | | +| jwt_idps | repeated string | - | | +| idp_links | repeated string | - | | +| user_links | repeated ImportDataSuccessUserLinks | - | | +| user_metadata | repeated ImportDataSuccessUserMetadata | - | | +| domains | repeated string | - | | +| app_keys | repeated string | - | | +| machine_keys | repeated string | - | | + + + + +### ImportDataSuccessProjectGrant + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| grant_id | string | - | | +| project_id | string | - | | +| org_id | string | - | | + + + + +### ImportDataSuccessProjectGrantMember + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | | +| grant_id | string | - | | +| user_id | string | - | | + + + + +### ImportDataSuccessProjectMember + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | | +| user_id | string | - | | + + + + +### ImportDataSuccessUserGrant + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | | +| user_id | string | - | | + + + + +### ImportDataSuccessUserLinks + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| external_user_id | string | - | | +| display_name | string | - | | +| idp_id | string | - | | + + + + +### ImportDataSuccessUserMetadata + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| key | string | - | | + + + + +### IsOrgUniqueRequest +if name or domain is already in use, org is not unique +at least one argument has to be provided + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| domain | string | - | string.max_len: 200
| + + + + +### IsOrgUniqueResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| is_unique | bool | - | | + + + + +### ListAggregateTypesRequest + + + + + +### ListAggregateTypesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| aggregate_types | repeated zitadel.event.v1.AggregateType | - | | + + + + +### ListEventTypesRequest + + + + + +### ListEventTypesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| event_types | repeated zitadel.event.v1.EventType | - | | + + + + +### ListEventsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| sequence | uint64 | sequence represents the order of events. It's always upcounting if asc is false sequence is used as less than filter if asc is true sequence is used as greater than filter if sequence is 0 the field is ignored | | +| limit | uint32 | - | | +| asc | bool | - | | +| editor_user_id | string | - | string.min_len: 0
string.max_len: 200
| +| event_types | repeated string | the types are or filtered and must match the type exatly | repeated.max_items: 30
| +| aggregate_id | string | - | string.min_len: 0
string.max_len: 200
| +| aggregate_types | repeated string | - | repeated.max_items: 10
| +| resource_owner | string | - | string.min_len: 0
string.max_len: 200
| +| creation_date | google.protobuf.Timestamp | if asc is false creation_date is used as less than filter if asc is true creation_date is used as greater than filter if creation_date is not set the field is ignored | | + + + + +### ListEventsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| events | repeated zitadel.event.v1.Event | - | | + + + + +### ListFailedEventsRequest +This is an empty request + + + + +### ListFailedEventsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated FailedEvent | TODO: list details | | + + + + +### ListIAMMemberRolesRequest +This is an empty request + + + + +### ListIAMMemberRolesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| roles | repeated string | - | | + + + + +### ListIAMMembersRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for | | + + + + +### ListIAMMembersResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.member.v1.Member | - | | + + + + +### ListIDPsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| sorting_column | zitadel.idp.v1.IDPFieldName | the field the result is sorted | | +| queries | repeated IDPQuery | criterias the client is looking for | | + + + + +### ListIDPsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.idp.v1.IDPFieldName | - | | +| result | repeated zitadel.idp.v1.IDP | - | | + + + + +### ListInstanceDomainsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | - | | +| sorting_column | zitadel.instance.v1.DomainFieldName | the field the result is sorted | | +| queries | repeated zitadel.instance.v1.DomainSearchQuery | criterias the client is looking for | | + + + + +### ListInstanceDomainsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.instance.v1.DomainFieldName | - | | +| result | repeated zitadel.instance.v1.Domain | - | | + + + + +### ListLoginPolicyIDPsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | + + + + +### ListLoginPolicyIDPsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.idp.v1.IDPLoginPolicyLink | - | | + + + + +### ListLoginPolicyMultiFactorsRequest +This is an empty request + + + + +### ListLoginPolicyMultiFactorsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.policy.v1.MultiFactorType | - | | + + + + +### ListLoginPolicySecondFactorsRequest +This is an empty request + + + + +### ListLoginPolicySecondFactorsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.policy.v1.SecondFactorType | - | | + + + + +### ListOrgsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| sorting_column | zitadel.org.v1.OrgFieldName | the field the result is sorted | | +| queries | repeated zitadel.org.v1.OrgQuery | criterias the client is looking for | | + + + + +### ListOrgsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.org.v1.OrgFieldName | - | | +| result | repeated zitadel.org.v1.Org | - | | + + + + +### ListSMSProvidersRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | + + + + +### ListSMSProvidersResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.settings.v1.SMSProvider | - | | + + + + +### ListSecretGeneratorsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.settings.v1.SecretGeneratorQuery | criterias the client is looking for | | + + + + +### ListSecretGeneratorsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.settings.v1.SecretGenerator | - | | + + + + +### ListViewsRequest +This is an empty request + + + + +### ListViewsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated View | TODO: list details | | + + + + +### ReactivateIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ReactivateIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveFailedEventRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| database | string | - | string.min_len: 1
string.max_len: 200
| +| view_name | string | - | string.min_len: 1
string.max_len: 200
| +| failed_sequence | uint64 | - | | + + + + +### RemoveFailedEventResponse +This is an empty response + + + + +### RemoveIAMMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveIAMMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveIDPFromLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveIDPFromLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveLabelPolicyFontRequest +This is an empty request + + + + +### RemoveLabelPolicyFontResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveLabelPolicyIconDarkRequest +This is an empty request + + + + +### RemoveLabelPolicyIconDarkResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveLabelPolicyIconRequest +This is an empty request + + + + +### RemoveLabelPolicyIconResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveLabelPolicyLogoDarkRequest +This is an empty request + + + + +### RemoveLabelPolicyLogoDarkResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveLabelPolicyLogoRequest +This is an empty request + + + + +### RemoveLabelPolicyLogoResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMultiFactorFromLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### RemoveMultiFactorFromLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveOrgRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveSMSProviderRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveSMSProviderResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveSMTPConfigRequest +this is en empty request + + + + +### RemoveSMTPConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveSecondFactorFromLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### RemoveSecondFactorFromLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomDomainClaimedMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomDomainClaimedMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomDomainPolicyToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomDomainPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomInitMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomInitMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomLoginTextsToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomLoginTextsToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomOrgIAMPolicyToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomOrgIAMPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomPasswordChangeMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomPasswordChangeMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomPasswordResetMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomPasswordResetMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomPasswordlessRegistrationMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomPasswordlessRegistrationMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomVerifyEmailMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomVerifyEmailMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomVerifyPhoneMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomVerifyPhoneMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomLoginTextsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| select_account_text | zitadel.text.v1.SelectAccountScreenText | - | | +| login_text | zitadel.text.v1.LoginScreenText | - | | +| password_text | zitadel.text.v1.PasswordScreenText | - | | +| username_change_text | zitadel.text.v1.UsernameChangeScreenText | - | | +| username_change_done_text | zitadel.text.v1.UsernameChangeDoneScreenText | - | | +| init_password_text | zitadel.text.v1.InitPasswordScreenText | - | | +| init_password_done_text | zitadel.text.v1.InitPasswordDoneScreenText | - | | +| email_verification_text | zitadel.text.v1.EmailVerificationScreenText | - | | +| email_verification_done_text | zitadel.text.v1.EmailVerificationDoneScreenText | - | | +| initialize_user_text | zitadel.text.v1.InitializeUserScreenText | - | | +| initialize_done_text | zitadel.text.v1.InitializeUserDoneScreenText | - | | +| init_mfa_prompt_text | zitadel.text.v1.InitMFAPromptScreenText | - | | +| init_mfa_otp_text | zitadel.text.v1.InitMFAOTPScreenText | - | | +| init_mfa_u2f_text | zitadel.text.v1.InitMFAU2FScreenText | - | | +| init_mfa_done_text | zitadel.text.v1.InitMFADoneScreenText | - | | +| mfa_providers_text | zitadel.text.v1.MFAProvidersText | - | | +| verify_mfa_otp_text | zitadel.text.v1.VerifyMFAOTPScreenText | - | | +| verify_mfa_u2f_text | zitadel.text.v1.VerifyMFAU2FScreenText | - | | +| passwordless_text | zitadel.text.v1.PasswordlessScreenText | - | | +| password_change_text | zitadel.text.v1.PasswordChangeScreenText | - | | +| password_change_done_text | zitadel.text.v1.PasswordChangeDoneScreenText | - | | +| password_reset_done_text | zitadel.text.v1.PasswordResetDoneScreenText | - | | +| registration_option_text | zitadel.text.v1.RegistrationOptionScreenText | - | | +| registration_user_text | zitadel.text.v1.RegistrationUserScreenText | - | | +| registration_org_text | zitadel.text.v1.RegistrationOrgScreenText | - | | +| linking_user_done_text | zitadel.text.v1.LinkingUserDoneScreenText | - | | +| external_user_not_found_text | zitadel.text.v1.ExternalUserNotFoundScreenText | - | | +| success_login_text | zitadel.text.v1.SuccessLoginScreenText | - | | +| logout_text | zitadel.text.v1.LogoutDoneScreenText | - | | +| footer_text | zitadel.text.v1.FooterText | - | | +| passwordless_prompt_text | zitadel.text.v1.PasswordlessPromptScreenText | - | | +| passwordless_registration_text | zitadel.text.v1.PasswordlessRegistrationScreenText | - | | +| passwordless_registration_done_text | zitadel.text.v1.PasswordlessRegistrationDoneScreenText | - | | +| external_registration_user_overview_text | zitadel.text.v1.ExternalRegistrationUserOverviewScreenText | - | | + + + + +### SetCustomLoginTextsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultDomainClaimedMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetDefaultDomainClaimedMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultInitMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 1000
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetDefaultInitMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultLanguageRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 10
| + + + + +### SetDefaultLanguageResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultOrgRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### SetDefaultOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultPasswordChangeMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetDefaultPasswordChangeMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultPasswordResetMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetDefaultPasswordResetMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultPasswordlessRegistrationMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetDefaultPasswordlessRegistrationMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultVerifyEmailMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetDefaultVerifyEmailMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetDefaultVerifyPhoneMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetDefaultVerifyPhoneMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetSecurityPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| enable_iframe_embedding | bool | states if iframe embedding is enabled or disabled | | +| allowed_origins | repeated string | origins allowed to load ZITADEL in an iframe if enable_iframe_embedding is true | | + + + + +### SetSecurityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetUpOrgRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org | SetUpOrgRequest.Org | - | message.required: true
| +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) user.human | SetUpOrgRequest.Human | oneof field for the user managing the organisation | | +| roles | repeated string | specify Org Member Roles for the provided user (default is ORG_OWNER if roles are empty) | | + + + + +### SetUpOrgRequest.Human + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.min_len: 1
string.max_len: 200
| +| profile | SetUpOrgRequest.Human.Profile | - | message.required: true
| +| email | SetUpOrgRequest.Human.Email | - | message.required: true
| +| phone | SetUpOrgRequest.Human.Phone | - | | +| password | string | - | | + + + + +### SetUpOrgRequest.Human.Email + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.email: true
| +| is_email_verified | bool | - | | + + + + +### SetUpOrgRequest.Human.Phone + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| phone | string | has to be a global number | string.min_len: 1
string.max_len: 50
string.prefix: +
| +| is_phone_verified | bool | - | | + + + + +### SetUpOrgRequest.Human.Profile + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.min_len: 1
string.max_len: 200
| +| last_name | string | - | string.min_len: 1
string.max_len: 200
| +| nick_name | string | - | string.max_len: 200
| +| display_name | string | - | string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| +| gender | zitadel.user.v1.Gender | - | | + + + + +### SetUpOrgRequest.Org + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| +| domain | string | - | string.max_len: 200
| + + + + +### SetUpOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| org_id | string | - | | +| user_id | string | - | | + + + + +### UpdateCustomDomainPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_login_must_be_domain | bool | - | | +| validate_org_domains | bool | - | | +| smtp_sender_address_matches_instance_domain | bool | - | | + + + + +### UpdateCustomDomainPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomOrgIAMPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_login_must_be_domain | bool | - | | + + + + +### UpdateCustomOrgIAMPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateDomainPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_login_must_be_domain | bool | - | | +| validate_org_domains | bool | - | | +| smtp_sender_address_matches_instance_domain | bool | - | | + + + + +### UpdateDomainPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateIAMMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | if no roles provided the user won't have any rights | | + + + + +### UpdateIAMMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateIDPJWTConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| jwt_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| keys_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| header_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateIDPJWTConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateIDPOIDCConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| client_id | string | - | string.min_len: 1
string.max_len: 200
| +| client_secret | string | - | string.max_len: 200
| +| scopes | repeated string | - | | +| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| +| username_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| + + + + +### UpdateIDPOIDCConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| styling_type | zitadel.idp.v1.IDPStylingType | - | enum.defined_only: true
| +| auto_register | bool | - | | + + + + +### UpdateIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateLabelPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| primary_color | string | - | string.max_len: 50
| +| hide_login_name_suffix | bool | - | | +| warn_color | string | - | string.max_len: 50
| +| background_color | string | - | string.max_len: 50
| +| font_color | string | - | string.max_len: 50
| +| primary_color_dark | string | - | string.max_len: 50
| +| background_color_dark | string | - | string.max_len: 50
| +| warn_color_dark | string | - | string.max_len: 50
| +| font_color_dark | string | - | string.max_len: 50
| +| disable_watermark | bool | - | | + + + + +### UpdateLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateLockoutPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| max_password_attempts | uint32 | failed attempts until a user gets locked | | + + + + +### UpdateLockoutPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| allow_username_password | bool | - | | +| allow_register | bool | - | | +| allow_external_idp | bool | - | | +| force_mfa | bool | - | | +| passwordless_type | zitadel.policy.v1.PasswordlessType | - | enum.defined_only: true
| +| hide_password_reset | bool | - | | +| ignore_unknown_usernames | bool | - | | +| default_redirect_uri | string | - | | +| password_check_lifetime | google.protobuf.Duration | - | | +| external_login_check_lifetime | google.protobuf.Duration | - | | +| mfa_init_skip_lifetime | google.protobuf.Duration | - | | +| second_factor_check_lifetime | google.protobuf.Duration | - | | +| multi_factor_check_lifetime | google.protobuf.Duration | - | | +| allow_domain_discovery | bool | If set to true, the suffix (@domain.com) of an unknown username input on the login screen will be matched against the org domains and will redirect to the registration of that organisation on success. | | +| disable_login_with_email | bool | - | | +| disable_login_with_phone | bool | - | | + + + + +### UpdateLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateNotificationPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| password_change | bool | - | | + + + + +### UpdateNotificationPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOIDCSettingsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| access_token_lifetime | google.protobuf.Duration | - | | +| id_token_lifetime | google.protobuf.Duration | - | | +| refresh_token_idle_expiration | google.protobuf.Duration | - | | +| refresh_token_expiration | google.protobuf.Duration | - | | + + + + +### UpdateOIDCSettingsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOrgIAMPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_login_must_be_domain | bool | - | | + + + + +### UpdateOrgIAMPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdatePasswordAgePolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| max_age_days | uint32 | - | | +| expire_warn_days | uint32 | - | | + + + + +### UpdatePasswordAgePolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdatePasswordComplexityPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| min_length | uint32 | - | | +| has_uppercase | bool | - | | +| has_lowercase | bool | - | | +| has_number | bool | - | | +| has_symbol | bool | - | | + + + + +### UpdatePasswordComplexityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdatePrivacyPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| tos_link | string | - | | +| privacy_link | string | - | | +| help_link | string | - | | + + + + +### UpdatePrivacyPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateSMSProviderTwilioRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| sid | string | - | string.min_len: 1
string.max_len: 200
| +| sender_number | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateSMSProviderTwilioResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateSMSProviderTwilioTokenRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| token | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateSMSProviderTwilioTokenResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateSMTPConfigPasswordRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| password | string | - | | + + + + +### UpdateSMTPConfigPasswordResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateSMTPConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| sender_address | string | - | string.min_len: 1
string.max_len: 200
| +| sender_name | string | - | string.min_len: 1
string.max_len: 200
| +| tls | bool | - | | +| host | string | - | string.min_len: 1
string.max_len: 500
| +| user | string | - | | + + + + +### UpdateSMTPConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateSecretGeneratorRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| generator_type | zitadel.settings.v1.SecretGeneratorType | - | enum.defined_only: true
enum.not_in: [0]
| +| length | uint32 | - | | +| expiry | google.protobuf.Duration | - | | +| include_lower_letters | bool | - | | +| include_upper_letters | bool | - | | +| include_digits | bool | - | | +| include_symbols | bool | - | | + + + + +### UpdateSecretGeneratorResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### View + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| database | string | - | | +| view_name | string | - | | +| processed_sequence | uint64 | - | | +| event_timestamp | google.protobuf.Timestamp | The timestamp the event occurred | | +| last_successful_spooler_run | google.protobuf.Timestamp | - | | + + + + + + diff --git a/docs/docs/apis/proto/app.md b/docs/docs/apis/proto/app.md new file mode 100644 index 0000000000..bc88cf6676 --- /dev/null +++ b/docs/docs/apis/proto/app.md @@ -0,0 +1,201 @@ +--- +title: zitadel/app.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### APIConfig + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| client_id | string | - | | +| auth_method_type | APIAuthMethodType | - | | + + + + +### App + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| state | AppState | - | | +| name | string | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.oidc_config | OIDCConfig | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.api_config | APIConfig | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.saml_config | SAMLConfig | - | | + + + + +### AppNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### AppQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.name_query | AppNameQuery | - | | + + + + +### OIDCConfig + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| redirect_uris | repeated string | - | | +| response_types | repeated OIDCResponseType | - | | +| grant_types | repeated OIDCGrantType | - | | +| app_type | OIDCAppType | - | | +| client_id | string | - | | +| auth_method_type | OIDCAuthMethodType | - | | +| post_logout_redirect_uris | repeated string | - | | +| version | OIDCVersion | - | | +| none_compliant | bool | - | | +| compliance_problems | repeated zitadel.v1.LocalizedMessage | - | | +| dev_mode | bool | - | | +| access_token_type | OIDCTokenType | - | | +| access_token_role_assertion | bool | - | | +| id_token_role_assertion | bool | - | | +| id_token_userinfo_assertion | bool | - | | +| clock_skew | google.protobuf.Duration | - | | +| additional_origins | repeated string | - | | +| allowed_origins | repeated string | - | | + + + + +### SAMLConfig + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) metadata.metadata_xml | bytes | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) metadata.metadata_url | string | - | | + + + + + + +## Enums + + +### APIAuthMethodType {#apiauthmethodtype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| API_AUTH_METHOD_TYPE_BASIC | 0 | - | +| API_AUTH_METHOD_TYPE_PRIVATE_KEY_JWT | 1 | - | + + + + +### AppState {#appstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| APP_STATE_UNSPECIFIED | 0 | - | +| APP_STATE_ACTIVE | 1 | - | +| APP_STATE_INACTIVE | 2 | - | + + + + +### OIDCAppType {#oidcapptype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| OIDC_APP_TYPE_WEB | 0 | - | +| OIDC_APP_TYPE_USER_AGENT | 1 | - | +| OIDC_APP_TYPE_NATIVE | 2 | - | + + + + +### OIDCAuthMethodType {#oidcauthmethodtype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| OIDC_AUTH_METHOD_TYPE_BASIC | 0 | - | +| OIDC_AUTH_METHOD_TYPE_POST | 1 | - | +| OIDC_AUTH_METHOD_TYPE_NONE | 2 | - | +| OIDC_AUTH_METHOD_TYPE_PRIVATE_KEY_JWT | 3 | - | + + + + +### OIDCGrantType {#oidcgranttype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| OIDC_GRANT_TYPE_AUTHORIZATION_CODE | 0 | - | +| OIDC_GRANT_TYPE_IMPLICIT | 1 | - | +| OIDC_GRANT_TYPE_REFRESH_TOKEN | 2 | - | + + + + +### OIDCResponseType {#oidcresponsetype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| OIDC_RESPONSE_TYPE_CODE | 0 | - | +| OIDC_RESPONSE_TYPE_ID_TOKEN | 1 | - | +| OIDC_RESPONSE_TYPE_ID_TOKEN_TOKEN | 2 | - | + + + + +### OIDCTokenType {#oidctokentype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| OIDC_TOKEN_TYPE_BEARER | 0 | - | +| OIDC_TOKEN_TYPE_JWT | 1 | - | + + + + +### OIDCVersion {#oidcversion} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| OIDC_VERSION_1_0 | 0 | - | + + + + diff --git a/docs/docs/apis/proto/auth.md b/docs/docs/apis/proto/auth.md new file mode 100644 index 0000000000..8549fe6584 --- /dev/null +++ b/docs/docs/apis/proto/auth.md @@ -0,0 +1,1691 @@ +--- +title: zitadel/auth.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + +## AuthService {#zitadelauthv1authservice} + + +### Healthz + +> **rpc** Healthz([HealthzRequest](#healthzrequest)) +[HealthzResponse](#healthzresponse) + + + + + + GET: /healthz + + +### GetSupportedLanguages + +> **rpc** GetSupportedLanguages([GetSupportedLanguagesRequest](#getsupportedlanguagesrequest)) +[GetSupportedLanguagesResponse](#getsupportedlanguagesresponse) + +Returns the default languages + + + + GET: /languages + + +### GetMyUser + +> **rpc** GetMyUser([GetMyUserRequest](#getmyuserrequest)) +[GetMyUserResponse](#getmyuserresponse) + +Returns my full blown user + + + + GET: /users/me + + +### RemoveMyUser + +> **rpc** RemoveMyUser([RemoveMyUserRequest](#removemyuserrequest)) +[RemoveMyUserResponse](#removemyuserresponse) + +Changes the user state to deleted + + + + DELETE: /users/me + + +### ListMyUserChanges + +> **rpc** ListMyUserChanges([ListMyUserChangesRequest](#listmyuserchangesrequest)) +[ListMyUserChangesResponse](#listmyuserchangesresponse) + +Returns the history of the authorized user (each event) + + + + POST: /users/me/changes/_search + + +### ListMyUserSessions + +> **rpc** ListMyUserSessions([ListMyUserSessionsRequest](#listmyusersessionsrequest)) +[ListMyUserSessionsResponse](#listmyusersessionsresponse) + +Returns the user sessions of the authorized user of the current useragent + + + + POST: /users/me/sessions/_search + + +### ListMyMetadata + +> **rpc** ListMyMetadata([ListMyMetadataRequest](#listmymetadatarequest)) +[ListMyMetadataResponse](#listmymetadataresponse) + +Returns the user metadata of the authorized user + + + + POST: /users/me/metadata/_search + + +### GetMyMetadata + +> **rpc** GetMyMetadata([GetMyMetadataRequest](#getmymetadatarequest)) +[GetMyMetadataResponse](#getmymetadataresponse) + +Returns the user metadata by key of the authorized user + + + + GET: /users/me/metadata/{key} + + +### ListMyRefreshTokens + +> **rpc** ListMyRefreshTokens([ListMyRefreshTokensRequest](#listmyrefreshtokensrequest)) +[ListMyRefreshTokensResponse](#listmyrefreshtokensresponse) + +Returns the refresh tokens of the authorized user + + + + POST: /users/me/tokens/refresh/_search + + +### RevokeMyRefreshToken + +> **rpc** RevokeMyRefreshToken([RevokeMyRefreshTokenRequest](#revokemyrefreshtokenrequest)) +[RevokeMyRefreshTokenResponse](#revokemyrefreshtokenresponse) + +Revokes a single refresh token of the authorized user by its (token) id + + + + DELETE: /users/me/tokens/refresh/{id} + + +### RevokeAllMyRefreshTokens + +> **rpc** RevokeAllMyRefreshTokens([RevokeAllMyRefreshTokensRequest](#revokeallmyrefreshtokensrequest)) +[RevokeAllMyRefreshTokensResponse](#revokeallmyrefreshtokensresponse) + +Revokes all refresh tokens of the authorized user + + + + POST: /users/me/tokens/refresh/_revoke_all + + +### UpdateMyUserName + +> **rpc** UpdateMyUserName([UpdateMyUserNameRequest](#updatemyusernamerequest)) +[UpdateMyUserNameResponse](#updatemyusernameresponse) + +Change the user name of the authorize user + + + + PUT: /users/me/username + + +### GetMyPasswordComplexityPolicy + +> **rpc** GetMyPasswordComplexityPolicy([GetMyPasswordComplexityPolicyRequest](#getmypasswordcomplexitypolicyrequest)) +[GetMyPasswordComplexityPolicyResponse](#getmypasswordcomplexitypolicyresponse) + +Returns the password complexity policy of my organisation +This policy defines how the password should look + + + + GET: /policies/passwords/complexity + + +### UpdateMyPassword + +> **rpc** UpdateMyPassword([UpdateMyPasswordRequest](#updatemypasswordrequest)) +[UpdateMyPasswordResponse](#updatemypasswordresponse) + +Change the password of the authorized user + + + + PUT: /users/me/password + + +### GetMyProfile + +> **rpc** GetMyProfile([GetMyProfileRequest](#getmyprofilerequest)) +[GetMyProfileResponse](#getmyprofileresponse) + +Returns the profile information of the authorized user + + + + GET: /users/me/profile + + +### UpdateMyProfile + +> **rpc** UpdateMyProfile([UpdateMyProfileRequest](#updatemyprofilerequest)) +[UpdateMyProfileResponse](#updatemyprofileresponse) + +Changes the profile information of the authorized user + + + + PUT: /users/me/profile + + +### GetMyEmail + +> **rpc** GetMyEmail([GetMyEmailRequest](#getmyemailrequest)) +[GetMyEmailResponse](#getmyemailresponse) + +Returns the email address of the authorized user + + + + GET: /users/me/email + + +### SetMyEmail + +> **rpc** SetMyEmail([SetMyEmailRequest](#setmyemailrequest)) +[SetMyEmailResponse](#setmyemailresponse) + +Changes the email address of the authorized user +An email is sent to the given address, to verify it + + + + PUT: /users/me/email + + +### VerifyMyEmail + +> **rpc** VerifyMyEmail([VerifyMyEmailRequest](#verifymyemailrequest)) +[VerifyMyEmailResponse](#verifymyemailresponse) + +Sets the email address to verified + + + + POST: /users/me/email/_verify + + +### ResendMyEmailVerification + +> **rpc** ResendMyEmailVerification([ResendMyEmailVerificationRequest](#resendmyemailverificationrequest)) +[ResendMyEmailVerificationResponse](#resendmyemailverificationresponse) + +Sends a new email to the last given address to verify it + + + + POST: /users/me/email/_resend_verification + + +### GetMyPhone + +> **rpc** GetMyPhone([GetMyPhoneRequest](#getmyphonerequest)) +[GetMyPhoneResponse](#getmyphoneresponse) + +Returns the phone number of the authorized user + + + + GET: /users/me/phone + + +### SetMyPhone + +> **rpc** SetMyPhone([SetMyPhoneRequest](#setmyphonerequest)) +[SetMyPhoneResponse](#setmyphoneresponse) + +Sets the phone number of the authorized user +An sms is sent to the number with a verification code + + + + PUT: /users/me/phone + + +### VerifyMyPhone + +> **rpc** VerifyMyPhone([VerifyMyPhoneRequest](#verifymyphonerequest)) +[VerifyMyPhoneResponse](#verifymyphoneresponse) + +Sets the phone number to verified + + + + POST: /users/me/phone/_verify + + +### ResendMyPhoneVerification + +> **rpc** ResendMyPhoneVerification([ResendMyPhoneVerificationRequest](#resendmyphoneverificationrequest)) +[ResendMyPhoneVerificationResponse](#resendmyphoneverificationresponse) + +Resends a sms to the last given phone number, to verify it + + + + POST: /users/me/phone/_resend_verification + + +### RemoveMyPhone + +> **rpc** RemoveMyPhone([RemoveMyPhoneRequest](#removemyphonerequest)) +[RemoveMyPhoneResponse](#removemyphoneresponse) + +Removed the phone number of the authorized user + + + + DELETE: /users/me/phone + + +### RemoveMyAvatar + +> **rpc** RemoveMyAvatar([RemoveMyAvatarRequest](#removemyavatarrequest)) +[RemoveMyAvatarResponse](#removemyavatarresponse) + +Remove my avatar + + + + DELETE: /users/me/avatar + + +### ListMyLinkedIDPs + +> **rpc** ListMyLinkedIDPs([ListMyLinkedIDPsRequest](#listmylinkedidpsrequest)) +[ListMyLinkedIDPsResponse](#listmylinkedidpsresponse) + +Returns a list of all linked identity providers (social logins, eg. Google, Microsoft, AD, etc.) + + + + POST: /users/me/idps/_search + + +### RemoveMyLinkedIDP + +> **rpc** RemoveMyLinkedIDP([RemoveMyLinkedIDPRequest](#removemylinkedidprequest)) +[RemoveMyLinkedIDPResponse](#removemylinkedidpresponse) + +Removes a linked identity provider (social logins, eg. Google, Microsoft, AD, etc.) + + + + DELETE: /users/me/idps/{idp_id}/{linked_user_id} + + +### ListMyAuthFactors + +> **rpc** ListMyAuthFactors([ListMyAuthFactorsRequest](#listmyauthfactorsrequest)) +[ListMyAuthFactorsResponse](#listmyauthfactorsresponse) + +Returns all configured authentication factors (second and multi) + + + + POST: /users/me/auth_factors/_search + + +### AddMyAuthFactorOTP + +> **rpc** AddMyAuthFactorOTP([AddMyAuthFactorOTPRequest](#addmyauthfactorotprequest)) +[AddMyAuthFactorOTPResponse](#addmyauthfactorotpresponse) + +Adds a new OTP (One Time Password) Second Factor to the authorized user +Only one OTP can be configured per user + + + + POST: /users/me/auth_factors/otp + + +### VerifyMyAuthFactorOTP + +> **rpc** VerifyMyAuthFactorOTP([VerifyMyAuthFactorOTPRequest](#verifymyauthfactorotprequest)) +[VerifyMyAuthFactorOTPResponse](#verifymyauthfactorotpresponse) + +Verify the last added OTP (One Time Password) + + + + POST: /users/me/auth_factors/otp/_verify + + +### RemoveMyAuthFactorOTP + +> **rpc** RemoveMyAuthFactorOTP([RemoveMyAuthFactorOTPRequest](#removemyauthfactorotprequest)) +[RemoveMyAuthFactorOTPResponse](#removemyauthfactorotpresponse) + +Removed the configured OTP (One Time Password) Factor + + + + DELETE: /users/me/auth_factors/otp + + +### AddMyAuthFactorU2F + +> **rpc** AddMyAuthFactorU2F([AddMyAuthFactorU2FRequest](#addmyauthfactoru2frequest)) +[AddMyAuthFactorU2FResponse](#addmyauthfactoru2fresponse) + +Adds a new U2F (Universal Second Factor) to the authorized user +Multiple U2Fs can be configured + + + + POST: /users/me/auth_factors/u2f + + +### VerifyMyAuthFactorU2F + +> **rpc** VerifyMyAuthFactorU2F([VerifyMyAuthFactorU2FRequest](#verifymyauthfactoru2frequest)) +[VerifyMyAuthFactorU2FResponse](#verifymyauthfactoru2fresponse) + +Verifies the last added U2F (Universal Second Factor) of the authorized user + + + + POST: /users/me/auth_factors/u2f/_verify + + +### RemoveMyAuthFactorU2F + +> **rpc** RemoveMyAuthFactorU2F([RemoveMyAuthFactorU2FRequest](#removemyauthfactoru2frequest)) +[RemoveMyAuthFactorU2FResponse](#removemyauthfactoru2fresponse) + +Removes the U2F Authentication from the authorized user + + + + DELETE: /users/me/auth_factors/u2f/{token_id} + + +### ListMyPasswordless + +> **rpc** ListMyPasswordless([ListMyPasswordlessRequest](#listmypasswordlessrequest)) +[ListMyPasswordlessResponse](#listmypasswordlessresponse) + +Returns all configured passwordless authenticators of the authorized user + + + + POST: /users/me/passwordless/_search + + +### AddMyPasswordless + +> **rpc** AddMyPasswordless([AddMyPasswordlessRequest](#addmypasswordlessrequest)) +[AddMyPasswordlessResponse](#addmypasswordlessresponse) + +Adds a new passwordless authenticator to the authorized user +Multiple passwordless authentications can be configured + + + + POST: /users/me/passwordless + + +### AddMyPasswordlessLink + +> **rpc** AddMyPasswordlessLink([AddMyPasswordlessLinkRequest](#addmypasswordlesslinkrequest)) +[AddMyPasswordlessLinkResponse](#addmypasswordlesslinkresponse) + +Adds a new passwordless authenticator link to the authorized user and returns it directly +This link enables the user to register a new device if current passwordless devices are all platform authenticators +e.g. User has already registered Windows Hello and wants to register FaceID on the iPhone + + + + POST: /users/me/passwordless/_link + + +### SendMyPasswordlessLink + +> **rpc** SendMyPasswordlessLink([SendMyPasswordlessLinkRequest](#sendmypasswordlesslinkrequest)) +[SendMyPasswordlessLinkResponse](#sendmypasswordlesslinkresponse) + +Adds a new passwordless authenticator link to the authorized user and sends it to the registered email address +This link enables the user to register a new device if current passwordless devices are all platform authenticators +e.g. User has already registered Windows Hello and wants to register FaceID on the iPhone + + + + POST: /users/me/passwordless/_send_link + + +### VerifyMyPasswordless + +> **rpc** VerifyMyPasswordless([VerifyMyPasswordlessRequest](#verifymypasswordlessrequest)) +[VerifyMyPasswordlessResponse](#verifymypasswordlessresponse) + +Verifies the last added passwordless configuration + + + + POST: /users/me/passwordless/_verify + + +### RemoveMyPasswordless + +> **rpc** RemoveMyPasswordless([RemoveMyPasswordlessRequest](#removemypasswordlessrequest)) +[RemoveMyPasswordlessResponse](#removemypasswordlessresponse) + +Removes the passwordless configuration from the authorized user + + + + DELETE: /users/me/passwordless/{token_id} + + +### ListMyUserGrants + +> **rpc** ListMyUserGrants([ListMyUserGrantsRequest](#listmyusergrantsrequest)) +[ListMyUserGrantsResponse](#listmyusergrantsresponse) + +Returns all user grants (authorizations) of the authorized user + + + + POST: /usergrants/me/_search + + +### ListMyProjectOrgs + +> **rpc** ListMyProjectOrgs([ListMyProjectOrgsRequest](#listmyprojectorgsrequest)) +[ListMyProjectOrgsResponse](#listmyprojectorgsresponse) + +Returns a list of organisations where the authorized user has a user grant (authorization) in the context of the requested project + + + + POST: /global/projectorgs/_search + + +### ListMyZitadelPermissions + +> **rpc** ListMyZitadelPermissions([ListMyZitadelPermissionsRequest](#listmyzitadelpermissionsrequest)) +[ListMyZitadelPermissionsResponse](#listmyzitadelpermissionsresponse) + +Returns the permissions the authorized user has in ZITADEL based on his manager roles (e.g ORG_OWNER) + + + + POST: /permissions/zitadel/me/_search + + +### ListMyProjectPermissions + +> **rpc** ListMyProjectPermissions([ListMyProjectPermissionsRequest](#listmyprojectpermissionsrequest)) +[ListMyProjectPermissionsResponse](#listmyprojectpermissionsresponse) + +Returns a list of roles for the authorized user and project + + + + POST: /permissions/me/_search + + +### ListMyMemberships + +> **rpc** ListMyMemberships([ListMyMembershipsRequest](#listmymembershipsrequest)) +[ListMyMembershipsResponse](#listmymembershipsresponse) + +Show all the permissions my user has in ZITADEL (ZITADEL Manager) +Limit should always be set, there is a default limit set by the service + + + + POST: /memberships/me/_search + + +### GetMyLabelPolicy + +> **rpc** GetMyLabelPolicy([GetMyLabelPolicyRequest](#getmylabelpolicyrequest)) +[GetMyLabelPolicyResponse](#getmylabelpolicyresponse) + +Returns the label policy of the current organisation + + + + GET: /policies/label + + +### GetMyPrivacyPolicy + +> **rpc** GetMyPrivacyPolicy([GetMyPrivacyPolicyRequest](#getmyprivacypolicyrequest)) +[GetMyPrivacyPolicyResponse](#getmyprivacypolicyresponse) + +Returns the privacy policy of the current organisation + + + + GET: /policies/privacy + + +### GetMyLoginPolicy + +> **rpc** GetMyLoginPolicy([GetMyLoginPolicyRequest](#getmyloginpolicyrequest)) +[GetMyLoginPolicyResponse](#getmyloginpolicyresponse) + +Returns the login policy of the current organisation + + + + GET: /policies/login + + + + + + + +## Messages + + +### AddMyAuthFactorOTPRequest +This is an empty request + + + + +### AddMyAuthFactorOTPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| url | string | - | | +| secret | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddMyAuthFactorU2FRequest +This is an empty request + + + + +### AddMyAuthFactorU2FResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | zitadel.user.v1.WebAuthNKey | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddMyPasswordlessLinkRequest +This is an empty request + + + + +### AddMyPasswordlessLinkResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| link | string | - | | +| expiration | google.protobuf.Duration | - | | + + + + +### AddMyPasswordlessRequest +This is an empty request + + + + +### AddMyPasswordlessResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | zitadel.user.v1.WebAuthNKey | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### BulkRemoveMyMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| keys | repeated string | - | repeated.items.string.min_len: 1
repeated.items.string.max_len: 200
| + + + + +### BulkRemoveMyMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### BulkSetMyMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| metadata | repeated BulkSetMyMetadataRequest.Metadata | - | | + + + + +### BulkSetMyMetadataRequest.Metadata + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| +| value | bytes | - | bytes.min_len: 1
bytes.max_len: 500000
| + + + + +### BulkSetMyMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### GetMyEmailRequest +This is an empty request + + + + +### GetMyEmailResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| email | zitadel.user.v1.Email | - | | + + + + +### GetMyLabelPolicyRequest +This is an empty request + + + + +### GetMyLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LabelPolicy | - | | + + + + +### GetMyLoginPolicyRequest +This is an empty request + + + + +### GetMyLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LoginPolicy | - | | + + + + +### GetMyMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetMyMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| metadata | zitadel.metadata.v1.Metadata | - | | + + + + +### GetMyPasswordComplexityPolicyRequest +This is an empty request + + + + +### GetMyPasswordComplexityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | | + + + + +### GetMyPhoneRequest +This is an empty request + + + + +### GetMyPhoneResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| phone | zitadel.user.v1.Phone | - | | + + + + +### GetMyPrivacyPolicyRequest +This is an empty request + + + + +### GetMyPrivacyPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PrivacyPolicy | - | | + + + + +### GetMyProfileRequest +This is an empty request + + + + +### GetMyProfileResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| profile | zitadel.user.v1.Profile | - | | + + + + +### GetMyUserRequest +This is an empty request +the request parameters are read from the token-header + + + + +### GetMyUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user | zitadel.user.v1.User | - | | +| last_login | google.protobuf.Timestamp | - | | + + + + +### GetSupportedLanguagesRequest +This is an empty request + + + + +### GetSupportedLanguagesResponse +This is an empty response + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| languages | repeated string | - | | + + + + +### HealthzRequest +This is an empty request + + + + +### HealthzResponse +This is an empty response + + + + +### ListMyAuthFactorsRequest +This is an empty request + + + + +### ListMyAuthFactorsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.user.v1.AuthFactor | - | | + + + + +### ListMyLinkedIDPsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | + + + + +### ListMyLinkedIDPsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.idp.v1.IDPUserLink | - | | + + + + +### ListMyMembershipsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | the field the result is sorted | | +| queries | repeated zitadel.user.v1.MembershipQuery | criterias the client is looking for | | + + + + +### ListMyMembershipsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.user.v1.Membership | - | | + + + + +### ListMyMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | - | | +| queries | repeated zitadel.metadata.v1.MetadataQuery | - | | + + + + +### ListMyMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.metadata.v1.Metadata | - | | + + + + +### ListMyPasswordlessRequest +This is an empty request + + + + +### ListMyPasswordlessResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.user.v1.WebAuthNToken | - | | + + + + +### ListMyProjectOrgsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.org.v1.OrgQuery | criterias the client is looking for | | + + + + +### ListMyProjectOrgsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.org.v1.Org | - | | + + + + +### ListMyProjectPermissionsRequest +This is an empty request + + + + +### ListMyProjectPermissionsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated string | - | | + + + + +### ListMyRefreshTokensRequest +This is an empty request + + + + +### ListMyRefreshTokensResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.user.v1.RefreshToken | - | | + + + + +### ListMyUserChangesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.change.v1.ChangeQuery | - | | + + + + +### ListMyUserChangesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.change.v1.Change | zitadel.v1.ListDetails details = 1; was always returned empty (as we cannot get the necessary infos) | | + + + + +### ListMyUserGrantsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | + + + + +### ListMyUserGrantsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated UserGrant | - | | + + + + +### ListMyUserSessionsRequest +This is an empty request + + + + +### ListMyUserSessionsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.user.v1.Session | - | | + + + + +### ListMyZitadelPermissionsRequest +This is an empty request + + + + +### ListMyZitadelPermissionsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated string | - | | + + + + +### RemoveMyAuthFactorOTPRequest +This is an empty request + + + + +### RemoveMyAuthFactorOTPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMyAuthFactorU2FRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| token_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveMyAuthFactorU2FResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMyAvatarRequest +This is an empty request + + + + +### RemoveMyAvatarResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMyLinkedIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| linked_user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveMyLinkedIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMyMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveMyMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMyPasswordlessRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| token_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveMyPasswordlessResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMyPhoneRequest +This is an empty request + + + + +### RemoveMyPhoneResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMyUserRequest +This is an empty request +the request parameters are read from the token-header + + + + +### RemoveMyUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResendMyEmailVerificationRequest +This is an empty request + + + + +### ResendMyEmailVerificationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResendMyPhoneVerificationRequest +This is an empty request + + + + +### ResendMyPhoneVerificationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RevokeAllMyRefreshTokensRequest +This is an empty request + + + + +### RevokeAllMyRefreshTokensResponse +This is an empty response + + + + +### RevokeMyRefreshTokenRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RevokeMyRefreshTokenResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SendMyPasswordlessLinkRequest +This is an empty request + + + + +### SendMyPasswordlessLinkResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetMyEmailRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.email: true
| + + + + +### SetMyEmailResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetMyMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| +| value | bytes | - | bytes.min_len: 1
bytes.max_len: 500000
| + + + + +### SetMyMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetMyPhoneRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| phone | string | - | string.min_len: 1
string.max_len: 50
string.prefix: +
| + + + + +### SetMyPhoneResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateMyPasswordRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| old_password | string | - | string.min_len: 1
string.max_bytes: 70
| +| new_password | string | - | string.min_len: 1
string.max_bytes: 70
| + + + + +### UpdateMyPasswordResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateMyProfileRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.min_len: 1
string.max_len: 200
| +| last_name | string | - | string.min_len: 1
string.max_len: 200
| +| nick_name | string | - | string.max_len: 200
| +| display_name | string | - | string.min_len: 1
string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| +| gender | zitadel.user.v1.Gender | - | | + + + + +### UpdateMyProfileResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateMyUserNameRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateMyUserNameResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UserGrant + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | | +| project_id | string | - | | +| user_id | string | - | | +| roles | repeated string | - | | +| org_name | string | - | | +| grant_id | string | - | | + + + + +### VerifyMyAuthFactorOTPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| code | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### VerifyMyAuthFactorOTPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### VerifyMyAuthFactorU2FRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| verification | zitadel.user.v1.WebAuthNVerification | - | message.required: true
| + + + + +### VerifyMyAuthFactorU2FResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### VerifyMyEmailRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| code | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### VerifyMyEmailResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### VerifyMyPasswordlessRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| verification | zitadel.user.v1.WebAuthNVerification | - | message.required: true
| + + + + +### VerifyMyPasswordlessResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### VerifyMyPhoneRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| code | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### VerifyMyPhoneResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + + + diff --git a/docs/docs/apis/proto/auth_n_key.md b/docs/docs/apis/proto/auth_n_key.md new file mode 100644 index 0000000000..cf33cbf9ce --- /dev/null +++ b/docs/docs/apis/proto/auth_n_key.md @@ -0,0 +1,41 @@ +--- +title: zitadel/auth_n_key.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### Key + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| type | KeyType | - | | +| expiration_date | google.protobuf.Timestamp | - | | + + + + + + +## Enums + + +### KeyType {#keytype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| KEY_TYPE_UNSPECIFIED | 0 | - | +| KEY_TYPE_JSON | 1 | - | + + + + diff --git a/docs/docs/apis/proto/change.md b/docs/docs/apis/proto/change.md new file mode 100644 index 0000000000..f7d02a269d --- /dev/null +++ b/docs/docs/apis/proto/change.md @@ -0,0 +1,44 @@ +--- +title: zitadel/change.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### Change + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| change_date | google.protobuf.Timestamp | - | | +| event_type | zitadel.v1.LocalizedMessage | - | | +| sequence | uint64 | - | | +| editor_id | string | - | | +| editor_display_name | string | - | | +| resource_owner_id | string | - | | +| editor_preferred_login_name | string | - | | +| editor_avatar_url | string | - | | + + + + +### ChangeQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| sequence | uint64 | sequence represents the order of events. It's always upcounting | | +| limit | uint32 | - | | +| asc | bool | - | | + + + + + + diff --git a/docs/docs/apis/proto/event.md b/docs/docs/apis/proto/event.md new file mode 100644 index 0000000000..1df23c2dfe --- /dev/null +++ b/docs/docs/apis/proto/event.md @@ -0,0 +1,79 @@ +--- +title: zitadel/event.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### Aggregate + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| type | AggregateType | - | | +| resource_owner | string | - | | + + + + +### AggregateType + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | string | - | | +| localized | zitadel.v1.LocalizedMessage | - | | + + + + +### Editor + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| display_name | string | - | | +| service | string | - | | + + + + +### Event + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| editor | Editor | - | | +| aggregate | Aggregate | - | | +| sequence | uint64 | - | | +| creation_date | google.protobuf.Timestamp | The timestamp the event occurred | | +| payload | google.protobuf.Struct | - | | +| type | EventType | - | | + + + + +### EventType + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | string | - | | +| localized | zitadel.v1.LocalizedMessage | - | | + + + + + + diff --git a/docs/docs/apis/proto/idp.md b/docs/docs/apis/proto/idp.md new file mode 100644 index 0000000000..1181f64e05 --- /dev/null +++ b/docs/docs/apis/proto/idp.md @@ -0,0 +1,197 @@ +--- +title: zitadel/idp.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### IDP + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| state | IDPState | - | | +| name | string | - | | +| styling_type | IDPStylingType | - | | +| owner | IDPOwnerType | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.oidc_config | OIDCConfig | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.jwt_config | JWTConfig | - | | +| auto_register | bool | - | | + + + + +### IDPIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.max_len: 200
| + + + + +### IDPLoginPolicyLink + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | | +| idp_name | string | - | | +| idp_type | IDPType | - | | + + + + +### IDPNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### IDPOwnerTypeQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| owner_type | IDPOwnerType | - | enum.defined_only: true
| + + + + +### IDPUserLink + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| idp_id | string | - | | +| idp_name | string | - | | +| provided_user_id | string | - | | +| provided_user_name | string | - | | +| idp_type | IDPType | - | | + + + + +### JWTConfig + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| jwt_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| keys_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| header_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### OIDCConfig + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| client_id | string | - | | +| issuer | string | - | | +| scopes | repeated string | - | | +| display_name_mapping | OIDCMappingField | - | | +| username_mapping | OIDCMappingField | - | | + + + + + + +## Enums + + +### IDPFieldName {#idpfieldname} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| IDP_FIELD_NAME_UNSPECIFIED | 0 | - | +| IDP_FIELD_NAME_NAME | 1 | - | + + + + +### IDPOwnerType {#idpownertype} +the owner of the identity provider. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| IDP_OWNER_TYPE_UNSPECIFIED | 0 | - | +| IDP_OWNER_TYPE_SYSTEM | 1 | system is managed by the ZITADEL administrators | +| IDP_OWNER_TYPE_ORG | 2 | org is managed by de organisation administrators | + + + + +### IDPState {#idpstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| IDP_STATE_UNSPECIFIED | 0 | - | +| IDP_STATE_ACTIVE | 1 | - | +| IDP_STATE_INACTIVE | 2 | - | + + + + +### IDPStylingType {#idpstylingtype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| STYLING_TYPE_UNSPECIFIED | 0 | - | +| STYLING_TYPE_GOOGLE | 1 | - | + + + + +### IDPType {#idptype} +authorization framework of the identity provider + +| Name | Number | Description | +| ---- | ------ | ----------- | +| IDP_TYPE_UNSPECIFIED | 0 | - | +| IDP_TYPE_OIDC | 1 | - | +| IDP_TYPE_JWT | 3 | PLANNED: IDP_TYPE_SAML | + + + + +### OIDCMappingField {#oidcmappingfield} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| OIDC_MAPPING_FIELD_UNSPECIFIED | 0 | - | +| OIDC_MAPPING_FIELD_PREFERRED_USERNAME | 1 | - | +| OIDC_MAPPING_FIELD_EMAIL | 2 | - | + + + + diff --git a/docs/docs/apis/proto/instance.md b/docs/docs/apis/proto/instance.md new file mode 100644 index 0000000000..d024ed6450 --- /dev/null +++ b/docs/docs/apis/proto/instance.md @@ -0,0 +1,172 @@ +--- +title: zitadel/instance.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### Domain + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| domain | string | - | | +| primary | bool | - | | +| generated | bool | - | | + + + + +### DomainGeneratedQuery +DomainGeneratedQuery is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| generated | bool | - | | + + + + +### DomainPrimaryQuery +DomainPrimaryQuery is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| primary | bool | - | | + + + + +### DomainQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### DomainSearchQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.domain_query | DomainQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.generated_query | DomainGeneratedQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.primary_query | DomainPrimaryQuery | - | | + + + + +### IdsQuery +IdQuery is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| ids | repeated string | - | | + + + + +### Instance + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| state | State | - | | +| name | string | - | | +| version | string | - | | +| domains | repeated Domain | - | | + + + + +### InstanceDetail + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| state | State | - | | +| name | string | - | | +| version | string | - | | +| domains | repeated Domain | - | | + + + + +### Query + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.id_query | IdsQuery | - | | + + + + + + +## Enums + + +### DomainFieldName {#domainfieldname} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| DOMAIN_FIELD_NAME_UNSPECIFIED | 0 | - | +| DOMAIN_FIELD_NAME_DOMAIN | 1 | - | +| DOMAIN_FIELD_NAME_PRIMARY | 2 | - | +| DOMAIN_FIELD_NAME_GENERATED | 3 | - | +| DOMAIN_FIELD_NAME_CREATION_DATE | 4 | - | + + + + +### FieldName {#fieldname} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| FIELD_NAME_UNSPECIFIED | 0 | - | +| FIELD_NAME_ID | 1 | - | +| FIELD_NAME_NAME | 2 | - | +| FIELD_NAME_CREATION_DATE | 3 | - | + + + + +### State {#state} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| STATE_UNSPECIFIED | 0 | - | +| STATE_CREATING | 1 | - | +| STATE_RUNNING | 2 | - | +| STATE_STOPPING | 3 | - | +| STATE_STOPPED | 4 | - | + + + + diff --git a/docs/docs/apis/proto/management.md b/docs/docs/apis/proto/management.md new file mode 100644 index 0000000000..af6f65be69 --- /dev/null +++ b/docs/docs/apis/proto/management.md @@ -0,0 +1,9168 @@ +--- +title: zitadel/management.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + +## ManagementService {#zitadelmanagementv1managementservice} + + +### Healthz + +> **rpc** Healthz([HealthzRequest](#healthzrequest)) +[HealthzResponse](#healthzresponse) + + + + + + GET: /healthz + + +### GetOIDCInformation + +> **rpc** GetOIDCInformation([GetOIDCInformationRequest](#getoidcinformationrequest)) +[GetOIDCInformationResponse](#getoidcinformationresponse) + + + + + + GET: /zitadel/docs + + +### GetIAM + +> **rpc** GetIAM([GetIAMRequest](#getiamrequest)) +[GetIAMResponse](#getiamresponse) + +Returns some needed settings of the IAM (Global Organisation ID, Zitadel Project ID) + + + + GET: /iam + + +### GetSupportedLanguages + +> **rpc** GetSupportedLanguages([GetSupportedLanguagesRequest](#getsupportedlanguagesrequest)) +[GetSupportedLanguagesResponse](#getsupportedlanguagesresponse) + +Returns the default languages + + + + GET: /languages + + +### GetUserByID + +> **rpc** GetUserByID([GetUserByIDRequest](#getuserbyidrequest)) +[GetUserByIDResponse](#getuserbyidresponse) + +Returns the requested full blown user (human or machine) + + + + GET: /users/{id} + + +### GetUserByLoginNameGlobal + +> **rpc** GetUserByLoginNameGlobal([GetUserByLoginNameGlobalRequest](#getuserbyloginnameglobalrequest)) +[GetUserByLoginNameGlobalResponse](#getuserbyloginnameglobalresponse) + +Searches a user over all organisations +the login name has to match exactly + + + + GET: /global/users/_by_login_name + + +### ListUsers + +> **rpc** ListUsers([ListUsersRequest](#listusersrequest)) +[ListUsersResponse](#listusersresponse) + +Return the users matching the query +Limit should always be set, there is a default limit set by the service + + + + POST: /users/_search + + +### ListUserChanges + +> **rpc** ListUserChanges([ListUserChangesRequest](#listuserchangesrequest)) +[ListUserChangesResponse](#listuserchangesresponse) + +Returns the history of the user (each event) +Limit should always be set, there is a default limit set by the service + + + + POST: /users/{user_id}/changes/_search + + +### IsUserUnique + +> **rpc** IsUserUnique([IsUserUniqueRequest](#isuseruniquerequest)) +[IsUserUniqueResponse](#isuseruniqueresponse) + +Returns if a user with the searched email or username is unique + + + + GET: /users/_is_unique + + +### AddHumanUser + +> **rpc** AddHumanUser([AddHumanUserRequest](#addhumanuserrequest)) +[AddHumanUserResponse](#addhumanuserresponse) + +Create a user of the type human +A email will be sent to the user if email is not verified or no password is set +If a password is given, the user has to change on the next login + + + + POST: /users/human + + +### ImportHumanUser + +> **rpc** ImportHumanUser([ImportHumanUserRequest](#importhumanuserrequest)) +[ImportHumanUserResponse](#importhumanuserresponse) + +Create a user of the type human +A email will be sent to the user if email is not verified or no password is set +If a password is given, the user doesn't have to change on the next login + + + + POST: /users/human/_import + + +### AddMachineUser + +> **rpc** AddMachineUser([AddMachineUserRequest](#addmachineuserrequest)) +[AddMachineUserResponse](#addmachineuserresponse) + +Create a user of the type machine + + + + POST: /users/machine + + +### DeactivateUser + +> **rpc** DeactivateUser([DeactivateUserRequest](#deactivateuserrequest)) +[DeactivateUserResponse](#deactivateuserresponse) + +Changes the user state to deactivated +The user will not be able to login +returns an error if user state is already deactivated + + + + POST: /users/{id}/_deactivate + + +### ReactivateUser + +> **rpc** ReactivateUser([ReactivateUserRequest](#reactivateuserrequest)) +[ReactivateUserResponse](#reactivateuserresponse) + +Changes the user state to active +returns an error if user state is not deactivated + + + + POST: /users/{id}/_reactivate + + +### LockUser + +> **rpc** LockUser([LockUserRequest](#lockuserrequest)) +[LockUserResponse](#lockuserresponse) + +Changes the user state to deactivated +The user will not be able to login +returns an error if user state is already locked + + + + POST: /users/{id}/_lock + + +### UnlockUser + +> **rpc** UnlockUser([UnlockUserRequest](#unlockuserrequest)) +[UnlockUserResponse](#unlockuserresponse) + +Changes the user state to active +returns an error if user state is not locked + + + + POST: /users/{id}/_unlock + + +### RemoveUser + +> **rpc** RemoveUser([RemoveUserRequest](#removeuserrequest)) +[RemoveUserResponse](#removeuserresponse) + +Changes the user state to deleted + + + + DELETE: /users/{id} + + +### UpdateUserName + +> **rpc** UpdateUserName([UpdateUserNameRequest](#updateusernamerequest)) +[UpdateUserNameResponse](#updateusernameresponse) + +Changes the username + + + + PUT: /users/{user_id}/username + + +### SetUserMetadata + +> **rpc** SetUserMetadata([SetUserMetadataRequest](#setusermetadatarequest)) +[SetUserMetadataResponse](#setusermetadataresponse) + +Sets a user metadata by key + + + + POST: /users/{id}/metadata/{key} + + +### BulkSetUserMetadata + +> **rpc** BulkSetUserMetadata([BulkSetUserMetadataRequest](#bulksetusermetadatarequest)) +[BulkSetUserMetadataResponse](#bulksetusermetadataresponse) + +Set a list of user metadata + + + + POST: /users/{id}/metadata/_bulk + + +### ListUserMetadata + +> **rpc** ListUserMetadata([ListUserMetadataRequest](#listusermetadatarequest)) +[ListUserMetadataResponse](#listusermetadataresponse) + +Returns the user metadata + + + + POST: /users/{id}/metadata/_search + + +### GetUserMetadata + +> **rpc** GetUserMetadata([GetUserMetadataRequest](#getusermetadatarequest)) +[GetUserMetadataResponse](#getusermetadataresponse) + +Returns the user metadata by key + + + + GET: /users/{id}/metadata/{key} + + +### RemoveUserMetadata + +> **rpc** RemoveUserMetadata([RemoveUserMetadataRequest](#removeusermetadatarequest)) +[RemoveUserMetadataResponse](#removeusermetadataresponse) + +Removes a user metadata by key + + + + DELETE: /users/{id}/metadata/{key} + + +### BulkRemoveUserMetadata + +> **rpc** BulkRemoveUserMetadata([BulkRemoveUserMetadataRequest](#bulkremoveusermetadatarequest)) +[BulkRemoveUserMetadataResponse](#bulkremoveusermetadataresponse) + +Set a list of user metadata + + + + DELETE: /users/{id}/metadata/_bulk + + +### GetHumanProfile + +> **rpc** GetHumanProfile([GetHumanProfileRequest](#gethumanprofilerequest)) +[GetHumanProfileResponse](#gethumanprofileresponse) + +Returns the profile of the human + + + + GET: /users/{user_id}/profile + + +### UpdateHumanProfile + +> **rpc** UpdateHumanProfile([UpdateHumanProfileRequest](#updatehumanprofilerequest)) +[UpdateHumanProfileResponse](#updatehumanprofileresponse) + +Changes the profile of the human + + + + PUT: /users/{user_id}/profile + + +### GetHumanEmail + +> **rpc** GetHumanEmail([GetHumanEmailRequest](#gethumanemailrequest)) +[GetHumanEmailResponse](#gethumanemailresponse) + +GetHumanEmail returns the email and verified state of the human + + + + GET: /users/{user_id}/email + + +### UpdateHumanEmail + +> **rpc** UpdateHumanEmail([UpdateHumanEmailRequest](#updatehumanemailrequest)) +[UpdateHumanEmailResponse](#updatehumanemailresponse) + +Changes the email of the human +If state is not verified, the user will get a verification email + + + + PUT: /users/{user_id}/email + + +### ResendHumanInitialization + +> **rpc** ResendHumanInitialization([ResendHumanInitializationRequest](#resendhumaninitializationrequest)) +[ResendHumanInitializationResponse](#resendhumaninitializationresponse) + +Resends an email to the given email address to finish the initialization process of the user +Changes the email address of the user if it is provided + + + + POST: /users/{user_id}/_resend_initialization + + +### ResendHumanEmailVerification + +> **rpc** ResendHumanEmailVerification([ResendHumanEmailVerificationRequest](#resendhumanemailverificationrequest)) +[ResendHumanEmailVerificationResponse](#resendhumanemailverificationresponse) + +Resends an email to the given email address to finish the email verification process of the user + + + + POST: /users/{user_id}/email/_resend_verification + + +### GetHumanPhone + +> **rpc** GetHumanPhone([GetHumanPhoneRequest](#gethumanphonerequest)) +[GetHumanPhoneResponse](#gethumanphoneresponse) + +Returns the phone and verified state of the human phone + + + + GET: /users/{user_id}/phone + + +### UpdateHumanPhone + +> **rpc** UpdateHumanPhone([UpdateHumanPhoneRequest](#updatehumanphonerequest)) +[UpdateHumanPhoneResponse](#updatehumanphoneresponse) + +Changes the phone number +If verified is not set, the user will get an sms to verify the number + + + + PUT: /users/{user_id}/phone + + +### RemoveHumanPhone + +> **rpc** RemoveHumanPhone([RemoveHumanPhoneRequest](#removehumanphonerequest)) +[RemoveHumanPhoneResponse](#removehumanphoneresponse) + +Removes the phone number of the human + + + + DELETE: /users/{user_id}/phone + + +### ResendHumanPhoneVerification + +> **rpc** ResendHumanPhoneVerification([ResendHumanPhoneVerificationRequest](#resendhumanphoneverificationrequest)) +[ResendHumanPhoneVerificationResponse](#resendhumanphoneverificationresponse) + +An sms will be sent to the given phone number to finish the phone verification process of the user + + + + POST: /users/{user_id}/phone/_resend_verification + + +### RemoveHumanAvatar + +> **rpc** RemoveHumanAvatar([RemoveHumanAvatarRequest](#removehumanavatarrequest)) +[RemoveHumanAvatarResponse](#removehumanavatarresponse) + +Removes the avatar number of the human + + + + DELETE: /users/{user_id}/avatar + + +### SetHumanInitialPassword + +> **rpc** SetHumanInitialPassword([SetHumanInitialPasswordRequest](#sethumaninitialpasswordrequest)) +[SetHumanInitialPasswordResponse](#sethumaninitialpasswordresponse) + +deprecated: use SetHumanPassword + + + + POST: /users/{user_id}/password/_initialize + + +### SetHumanPassword + +> **rpc** SetHumanPassword([SetHumanPasswordRequest](#sethumanpasswordrequest)) +[SetHumanPasswordResponse](#sethumanpasswordresponse) + +Set a new password for a user, on default the user has to change the password on the next login +Set no_change_required to true if the user does not have to change the password on the next login + + + + POST: /users/{user_id}/password + + +### SendHumanResetPasswordNotification + +> **rpc** SendHumanResetPasswordNotification([SendHumanResetPasswordNotificationRequest](#sendhumanresetpasswordnotificationrequest)) +[SendHumanResetPasswordNotificationResponse](#sendhumanresetpasswordnotificationresponse) + +An email will be sent to the given address to reset the password of the user + + + + POST: /users/{user_id}/password/_reset + + +### ListHumanAuthFactors + +> **rpc** ListHumanAuthFactors([ListHumanAuthFactorsRequest](#listhumanauthfactorsrequest)) +[ListHumanAuthFactorsResponse](#listhumanauthfactorsresponse) + +Returns a list of all factors (second and multi) which are configured on the user + + + + POST: /users/{user_id}/auth_factors/_search + + +### RemoveHumanAuthFactorOTP + +> **rpc** RemoveHumanAuthFactorOTP([RemoveHumanAuthFactorOTPRequest](#removehumanauthfactorotprequest)) +[RemoveHumanAuthFactorOTPResponse](#removehumanauthfactorotpresponse) + +The otp second factor will be removed from the user +Because only one otp can be configured per user, the configured one will be removed + + + + DELETE: /users/{user_id}/auth_factors/otp + + +### RemoveHumanAuthFactorU2F + +> **rpc** RemoveHumanAuthFactorU2F([RemoveHumanAuthFactorU2FRequest](#removehumanauthfactoru2frequest)) +[RemoveHumanAuthFactorU2FResponse](#removehumanauthfactoru2fresponse) + +The u2f (universial second factor) will be removed from the user + + + + DELETE: /users/{user_id}/auth_factors/u2f/{token_id} + + +### ListHumanPasswordless + +> **rpc** ListHumanPasswordless([ListHumanPasswordlessRequest](#listhumanpasswordlessrequest)) +[ListHumanPasswordlessResponse](#listhumanpasswordlessresponse) + +Returns all configured passwordless authenticators + + + + POST: /users/{user_id}/passwordless/_search + + +### AddPasswordlessRegistration + +> **rpc** AddPasswordlessRegistration([AddPasswordlessRegistrationRequest](#addpasswordlessregistrationrequest)) +[AddPasswordlessRegistrationResponse](#addpasswordlessregistrationresponse) + +Adds a new passwordless authenticator link to the user and returns it directly +This link enables the user to register a new device if current passwordless devices are all platform authenticators +e.g. User has already registered Windows Hello and wants to register FaceID on the iPhone + + + + POST: /users/{user_id}/passwordless/_link + + +### SendPasswordlessRegistration + +> **rpc** SendPasswordlessRegistration([SendPasswordlessRegistrationRequest](#sendpasswordlessregistrationrequest)) +[SendPasswordlessRegistrationResponse](#sendpasswordlessregistrationresponse) + +Adds a new passwordless authenticator link to the user and sends it to the registered email address +This link enables the user to register a new device if current passwordless devices are all platform authenticators +e.g. User has already registered Windows Hello and wants to register FaceID on the iPhone + + + + POST: /users/{user_id}/passwordless/_send_link + + +### RemoveHumanPasswordless + +> **rpc** RemoveHumanPasswordless([RemoveHumanPasswordlessRequest](#removehumanpasswordlessrequest)) +[RemoveHumanPasswordlessResponse](#removehumanpasswordlessresponse) + +Removed a configured passwordless authenticator + + + + DELETE: /users/{user_id}/passwordless/{token_id} + + +### UpdateMachine + +> **rpc** UpdateMachine([UpdateMachineRequest](#updatemachinerequest)) +[UpdateMachineResponse](#updatemachineresponse) + +Changes a machine user + + + + PUT: /users/{user_id}/machine + + +### GenerateMachineSecret + +> **rpc** GenerateMachineSecret([GenerateMachineSecretRequest](#generatemachinesecretrequest)) +[GenerateMachineSecretResponse](#generatemachinesecretresponse) + +Generates and sets a new machine secret + + + + PUT: /users/{user_id}/secret + + +### RemoveMachineSecret + +> **rpc** RemoveMachineSecret([RemoveMachineSecretRequest](#removemachinesecretrequest)) +[RemoveMachineSecretResponse](#removemachinesecretresponse) + +Removes the machine secret + + + + DELETE: /users/{user_id}/secret + + +### GetMachineKeyByIDs + +> **rpc** GetMachineKeyByIDs([GetMachineKeyByIDsRequest](#getmachinekeybyidsrequest)) +[GetMachineKeyByIDsResponse](#getmachinekeybyidsresponse) + +Returns a machine key of a (machine) user + + + + GET: /users/{user_id}/keys/{key_id} + + +### ListMachineKeys + +> **rpc** ListMachineKeys([ListMachineKeysRequest](#listmachinekeysrequest)) +[ListMachineKeysResponse](#listmachinekeysresponse) + +Returns all machine keys of a (machine) user which match the query +Limit should always be set, there is a default limit set by the service + + + + POST: /users/{user_id}/keys/_search + + +### AddMachineKey + +> **rpc** AddMachineKey([AddMachineKeyRequest](#addmachinekeyrequest)) +[AddMachineKeyResponse](#addmachinekeyresponse) + +Generates a new machine key, details should be stored after return + + + + POST: /users/{user_id}/keys + + +### RemoveMachineKey + +> **rpc** RemoveMachineKey([RemoveMachineKeyRequest](#removemachinekeyrequest)) +[RemoveMachineKeyResponse](#removemachinekeyresponse) + +Removes a machine key + + + + DELETE: /users/{user_id}/keys/{key_id} + + +### GetPersonalAccessTokenByIDs + +> **rpc** GetPersonalAccessTokenByIDs([GetPersonalAccessTokenByIDsRequest](#getpersonalaccesstokenbyidsrequest)) +[GetPersonalAccessTokenByIDsResponse](#getpersonalaccesstokenbyidsresponse) + +Returns a personal access token of a (machine) user + + + + GET: /users/{user_id}/pats/{token_id} + + +### ListPersonalAccessTokens + +> **rpc** ListPersonalAccessTokens([ListPersonalAccessTokensRequest](#listpersonalaccesstokensrequest)) +[ListPersonalAccessTokensResponse](#listpersonalaccesstokensresponse) + +Returns all personal access tokens of a (machine) user which match the query +Limit should always be set, there is a default limit set by the service + + + + POST: /users/{user_id}/pats/_search + + +### AddPersonalAccessToken + +> **rpc** AddPersonalAccessToken([AddPersonalAccessTokenRequest](#addpersonalaccesstokenrequest)) +[AddPersonalAccessTokenResponse](#addpersonalaccesstokenresponse) + +Generates a new personal access token for a machine user, details should be stored after return + + + + POST: /users/{user_id}/pats + + +### RemovePersonalAccessToken + +> **rpc** RemovePersonalAccessToken([RemovePersonalAccessTokenRequest](#removepersonalaccesstokenrequest)) +[RemovePersonalAccessTokenResponse](#removepersonalaccesstokenresponse) + +Removes a personal access token + + + + DELETE: /users/{user_id}/pats/{token_id} + + +### ListHumanLinkedIDPs + +> **rpc** ListHumanLinkedIDPs([ListHumanLinkedIDPsRequest](#listhumanlinkedidpsrequest)) +[ListHumanLinkedIDPsResponse](#listhumanlinkedidpsresponse) + +Lists all identity providers (social logins) which a human has configured (e.g Google, Microsoft, AD, etc..) +Limit should always be set, there is a default limit set by the service + + + + POST: /users/{user_id}/idps/_search + + +### RemoveHumanLinkedIDP + +> **rpc** RemoveHumanLinkedIDP([RemoveHumanLinkedIDPRequest](#removehumanlinkedidprequest)) +[RemoveHumanLinkedIDPResponse](#removehumanlinkedidpresponse) + +Removed a configured identity provider (social login) of a human + + + + DELETE: /users/{user_id}/idps/{idp_id}/{linked_user_id} + + +### ListUserMemberships + +> **rpc** ListUserMemberships([ListUserMembershipsRequest](#listusermembershipsrequest)) +[ListUserMembershipsResponse](#listusermembershipsresponse) + +Show all the permissions a user has iin ZITADEL (ZITADEL Manager) +Limit should always be set, there is a default limit set by the service + + + + POST: /users/{user_id}/memberships/_search + + +### GetMyOrg + +> **rpc** GetMyOrg([GetMyOrgRequest](#getmyorgrequest)) +[GetMyOrgResponse](#getmyorgresponse) + +Returns the org given in the header + + + + GET: /orgs/me + + +### GetOrgByDomainGlobal + +> **rpc** GetOrgByDomainGlobal([GetOrgByDomainGlobalRequest](#getorgbydomainglobalrequest)) +[GetOrgByDomainGlobalResponse](#getorgbydomainglobalresponse) + +Search a org over all organisations +Domain must match exactly + + + + GET: /global/orgs/_by_domain + + +### ListOrgChanges + +> **rpc** ListOrgChanges([ListOrgChangesRequest](#listorgchangesrequest)) +[ListOrgChangesResponse](#listorgchangesresponse) + +Returns the history of my organisation (each event) +Limit should always be set, there is a default limit set by the service + + + + POST: /orgs/me/changes/_search + + +### AddOrg + +> **rpc** AddOrg([AddOrgRequest](#addorgrequest)) +[AddOrgResponse](#addorgresponse) + +Creates a new organisation + + + + POST: /orgs + + +### UpdateOrg + +> **rpc** UpdateOrg([UpdateOrgRequest](#updateorgrequest)) +[UpdateOrgResponse](#updateorgresponse) + +Changes my organisation + + + + PUT: /orgs/me + + +### DeactivateOrg + +> **rpc** DeactivateOrg([DeactivateOrgRequest](#deactivateorgrequest)) +[DeactivateOrgResponse](#deactivateorgresponse) + +Sets the state of my organisation to deactivated +Users of this organisation will not be able login + + + + POST: /orgs/me/_deactivate + + +### ReactivateOrg + +> **rpc** ReactivateOrg([ReactivateOrgRequest](#reactivateorgrequest)) +[ReactivateOrgResponse](#reactivateorgresponse) + +Sets the state of my organisation to active + + + + POST: /orgs/me/_reactivate + + +### RemoveOrg + +> **rpc** RemoveOrg([RemoveOrgRequest](#removeorgrequest)) +[RemoveOrgResponse](#removeorgresponse) + +Sets the state of my organisation and all its resource (Users, Projects, Grants to and from the org) to removed +Users of this organisation will not be able login + + + + DELETE: /orgs/me + + +### SetOrgMetadata + +> **rpc** SetOrgMetadata([SetOrgMetadataRequest](#setorgmetadatarequest)) +[SetOrgMetadataResponse](#setorgmetadataresponse) + +Sets a org metadata by key + + + + POST: /metadata/{key} + + +### BulkSetOrgMetadata + +> **rpc** BulkSetOrgMetadata([BulkSetOrgMetadataRequest](#bulksetorgmetadatarequest)) +[BulkSetOrgMetadataResponse](#bulksetorgmetadataresponse) + +Set a list of org metadata + + + + POST: /metadata/_bulk + + +### ListOrgMetadata + +> **rpc** ListOrgMetadata([ListOrgMetadataRequest](#listorgmetadatarequest)) +[ListOrgMetadataResponse](#listorgmetadataresponse) + +Returns the org metadata + + + + POST: /metadata/_search + + +### GetOrgMetadata + +> **rpc** GetOrgMetadata([GetOrgMetadataRequest](#getorgmetadatarequest)) +[GetOrgMetadataResponse](#getorgmetadataresponse) + +Returns the org metadata by key + + + + GET: /metadata/{key} + + +### RemoveOrgMetadata + +> **rpc** RemoveOrgMetadata([RemoveOrgMetadataRequest](#removeorgmetadatarequest)) +[RemoveOrgMetadataResponse](#removeorgmetadataresponse) + +Removes a org metadata by key + + + + DELETE: /metadata/{key} + + +### BulkRemoveOrgMetadata + +> **rpc** BulkRemoveOrgMetadata([BulkRemoveOrgMetadataRequest](#bulkremoveorgmetadatarequest)) +[BulkRemoveOrgMetadataResponse](#bulkremoveorgmetadataresponse) + +Set a list of org metadata + + + + DELETE: /metadata/_bulk + + +### ListOrgDomains + +> **rpc** ListOrgDomains([ListOrgDomainsRequest](#listorgdomainsrequest)) +[ListOrgDomainsResponse](#listorgdomainsresponse) + +Returns all registered domains of my organisation +Limit should always be set, there is a default limit set by the service + + + + POST: /orgs/me/domains/_search + + +### AddOrgDomain + +> **rpc** AddOrgDomain([AddOrgDomainRequest](#addorgdomainrequest)) +[AddOrgDomainResponse](#addorgdomainresponse) + +Adds a new domain to my organisation + + + + POST: /orgs/me/domains + + +### RemoveOrgDomain + +> **rpc** RemoveOrgDomain([RemoveOrgDomainRequest](#removeorgdomainrequest)) +[RemoveOrgDomainResponse](#removeorgdomainresponse) + +Removed the domain from my organisation + + + + DELETE: /orgs/me/domains/{domain} + + +### GenerateOrgDomainValidation + +> **rpc** GenerateOrgDomainValidation([GenerateOrgDomainValidationRequest](#generateorgdomainvalidationrequest)) +[GenerateOrgDomainValidationResponse](#generateorgdomainvalidationresponse) + +Generates a new file to validate you domain + + + + POST: /orgs/me/domains/{domain}/validation/_generate + + +### ValidateOrgDomain + +> **rpc** ValidateOrgDomain([ValidateOrgDomainRequest](#validateorgdomainrequest)) +[ValidateOrgDomainResponse](#validateorgdomainresponse) + +Validates your domain with the choosen method +Validated domains must be unique + + + + POST: /orgs/me/domains/{domain}/validation/_validate + + +### SetPrimaryOrgDomain + +> **rpc** SetPrimaryOrgDomain([SetPrimaryOrgDomainRequest](#setprimaryorgdomainrequest)) +[SetPrimaryOrgDomainResponse](#setprimaryorgdomainresponse) + +Sets the domain as primary +Primary domain is shown as suffix on the preferred username on the users of the organisation + + + + POST: /orgs/me/domains/{domain}/_set_primary + + +### ListOrgMemberRoles + +> **rpc** ListOrgMemberRoles([ListOrgMemberRolesRequest](#listorgmemberrolesrequest)) +[ListOrgMemberRolesResponse](#listorgmemberrolesresponse) + +Returns all ZITADEL roles which are for organisation managers + + + + POST: /orgs/members/roles/_search + + +### ListOrgMembers + +> **rpc** ListOrgMembers([ListOrgMembersRequest](#listorgmembersrequest)) +[ListOrgMembersResponse](#listorgmembersresponse) + +Returns all ZITADEL managers of this organisation (Project and Project Grant managers not included) +Limit should always be set, there is a default limit set by the service + + + + POST: /orgs/me/members/_search + + +### AddOrgMember + +> **rpc** AddOrgMember([AddOrgMemberRequest](#addorgmemberrequest)) +[AddOrgMemberResponse](#addorgmemberresponse) + +Adds a new organisation manager, which is allowed to administrate ZITADEL + + + + POST: /orgs/me/members + + +### UpdateOrgMember + +> **rpc** UpdateOrgMember([UpdateOrgMemberRequest](#updateorgmemberrequest)) +[UpdateOrgMemberResponse](#updateorgmemberresponse) + +Changes the organisation manager + + + + PUT: /orgs/me/members/{user_id} + + +### RemoveOrgMember + +> **rpc** RemoveOrgMember([RemoveOrgMemberRequest](#removeorgmemberrequest)) +[RemoveOrgMemberResponse](#removeorgmemberresponse) + +Removes an organisation manager + + + + DELETE: /orgs/me/members/{user_id} + + +### GetProjectByID + +> **rpc** GetProjectByID([GetProjectByIDRequest](#getprojectbyidrequest)) +[GetProjectByIDResponse](#getprojectbyidresponse) + +Returns a project from my organisation (no granted projects) + + + + GET: /projects/{id} + + +### GetGrantedProjectByID + +> **rpc** GetGrantedProjectByID([GetGrantedProjectByIDRequest](#getgrantedprojectbyidrequest)) +[GetGrantedProjectByIDResponse](#getgrantedprojectbyidresponse) + +returns a project my organisation got granted from another organisation + + + + GET: /granted_projects/{project_id}/grants/{grant_id} + + +### ListProjects + +> **rpc** ListProjects([ListProjectsRequest](#listprojectsrequest)) +[ListProjectsResponse](#listprojectsresponse) + +Returns all projects my organisation is the owner (no granted projects) +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/_search + + +### ListGrantedProjects + +> **rpc** ListGrantedProjects([ListGrantedProjectsRequest](#listgrantedprojectsrequest)) +[ListGrantedProjectsResponse](#listgrantedprojectsresponse) + +returns all projects my organisation got granted from another organisation +Limit should always be set, there is a default limit set by the service + + + + POST: /granted_projects/_search + + +### ListGrantedProjectRoles + +> **rpc** ListGrantedProjectRoles([ListGrantedProjectRolesRequest](#listgrantedprojectrolesrequest)) +[ListGrantedProjectRolesResponse](#listgrantedprojectrolesresponse) + +returns all roles of a project grant +Limit should always be set, there is a default limit set by the service + + + + GET: /granted_projects/{project_id}/grants/{grant_id}/roles/_search + + +### ListProjectChanges + +> **rpc** ListProjectChanges([ListProjectChangesRequest](#listprojectchangesrequest)) +[ListProjectChangesResponse](#listprojectchangesresponse) + +Returns the history of the project (each event) +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/changes/_search + + +### AddProject + +> **rpc** AddProject([AddProjectRequest](#addprojectrequest)) +[AddProjectResponse](#addprojectresponse) + +Adds an new project to the organisation + + + + POST: /projects + + +### UpdateProject + +> **rpc** UpdateProject([UpdateProjectRequest](#updateprojectrequest)) +[UpdateProjectResponse](#updateprojectresponse) + +Changes a project + + + + PUT: /projects/{id} + + +### DeactivateProject + +> **rpc** DeactivateProject([DeactivateProjectRequest](#deactivateprojectrequest)) +[DeactivateProjectResponse](#deactivateprojectresponse) + +Sets the state of a project to deactivated +Returns an error if project is already deactivated + + + + POST: /projects/{id}/_deactivate + + +### ReactivateProject + +> **rpc** ReactivateProject([ReactivateProjectRequest](#reactivateprojectrequest)) +[ReactivateProjectResponse](#reactivateprojectresponse) + +Sets the state of a project to active +Returns an error if project is not deactivated + + + + POST: /projects/{id}/_reactivate + + +### RemoveProject + +> **rpc** RemoveProject([RemoveProjectRequest](#removeprojectrequest)) +[RemoveProjectResponse](#removeprojectresponse) + +Removes a project +All project grants, applications and user grants for this project will be removed + + + + DELETE: /projects/{id} + + +### ListProjectRoles + +> **rpc** ListProjectRoles([ListProjectRolesRequest](#listprojectrolesrequest)) +[ListProjectRolesResponse](#listprojectrolesresponse) + +Returns all roles of a project matching the search query +If no limit is requested, default limit will be set, if the limit is higher then the default an error will be returned + + + + POST: /projects/{project_id}/roles/_search + + +### AddProjectRole + +> **rpc** AddProjectRole([AddProjectRoleRequest](#addprojectrolerequest)) +[AddProjectRoleResponse](#addprojectroleresponse) + +Adds a role to a project, key must be unique in the project + + + + POST: /projects/{project_id}/roles + + +### BulkAddProjectRoles + +> **rpc** BulkAddProjectRoles([BulkAddProjectRolesRequest](#bulkaddprojectrolesrequest)) +[BulkAddProjectRolesResponse](#bulkaddprojectrolesresponse) + +add a list of project roles in one request + + + + POST: /projects/{project_id}/roles/_bulk + + +### UpdateProjectRole + +> **rpc** UpdateProjectRole([UpdateProjectRoleRequest](#updateprojectrolerequest)) +[UpdateProjectRoleResponse](#updateprojectroleresponse) + +Changes a project role, key is not editable +If a key should change, remove the role and create a new + + + + PUT: /projects/{project_id}/roles/{role_key} + + +### RemoveProjectRole + +> **rpc** RemoveProjectRole([RemoveProjectRoleRequest](#removeprojectrolerequest)) +[RemoveProjectRoleResponse](#removeprojectroleresponse) + +Removes role from UserGrants, ProjectGrants and from Project + + + + DELETE: /projects/{project_id}/roles/{role_key} + + +### ListProjectMemberRoles + +> **rpc** ListProjectMemberRoles([ListProjectMemberRolesRequest](#listprojectmemberrolesrequest)) +[ListProjectMemberRolesResponse](#listprojectmemberrolesresponse) + +Returns all ZITADEL roles which are for project managers + + + + POST: /projects/members/roles/_search + + +### ListProjectMembers + +> **rpc** ListProjectMembers([ListProjectMembersRequest](#listprojectmembersrequest)) +[ListProjectMembersResponse](#listprojectmembersresponse) + +Returns all ZITADEL managers of a projects +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/members/_search + + +### AddProjectMember + +> **rpc** AddProjectMember([AddProjectMemberRequest](#addprojectmemberrequest)) +[AddProjectMemberResponse](#addprojectmemberresponse) + +Adds a new project manager, which is allowed to administrate in ZITADEL + + + + POST: /projects/{project_id}/members + + +### UpdateProjectMember + +> **rpc** UpdateProjectMember([UpdateProjectMemberRequest](#updateprojectmemberrequest)) +[UpdateProjectMemberResponse](#updateprojectmemberresponse) + +Change project manager, which is allowed to administrate in ZITADEL + + + + PUT: /projects/{project_id}/members/{user_id} + + +### RemoveProjectMember + +> **rpc** RemoveProjectMember([RemoveProjectMemberRequest](#removeprojectmemberrequest)) +[RemoveProjectMemberResponse](#removeprojectmemberresponse) + +Remove project manager, which is allowed to administrate in ZITADEL + + + + DELETE: /projects/{project_id}/members/{user_id} + + +### GetAppByID + +> **rpc** GetAppByID([GetAppByIDRequest](#getappbyidrequest)) +[GetAppByIDResponse](#getappbyidresponse) + +Returns an application (oidc or api) + + + + GET: /projects/{project_id}/apps/{app_id} + + +### ListApps + +> **rpc** ListApps([ListAppsRequest](#listappsrequest)) +[ListAppsResponse](#listappsresponse) + +Returns all applications of a project matching the query +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/apps/_search + + +### ListAppChanges + +> **rpc** ListAppChanges([ListAppChangesRequest](#listappchangesrequest)) +[ListAppChangesResponse](#listappchangesresponse) + +Returns the history of the application (each event) +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/apps/{app_id}/changes/_search + + +### AddOIDCApp + +> **rpc** AddOIDCApp([AddOIDCAppRequest](#addoidcapprequest)) +[AddOIDCAppResponse](#addoidcappresponse) + +Adds a new oidc client +Returns a client id +Returns a new generated secret if needed (Depending on the configuration) + + + + POST: /projects/{project_id}/apps/oidc + + +### AddSAMLApp + +> **rpc** AddSAMLApp([AddSAMLAppRequest](#addsamlapprequest)) +[AddSAMLAppResponse](#addsamlappresponse) + +Adds a new saml service provider +Returns a entityID + + + + POST: /projects/{project_id}/apps/saml + + +### AddAPIApp + +> **rpc** AddAPIApp([AddAPIAppRequest](#addapiapprequest)) +[AddAPIAppResponse](#addapiappresponse) + +Adds a new api application +Returns a client id +Returns a new generated secret if needed (Depending on the configuration) + + + + POST: /projects/{project_id}/apps/api + + +### UpdateApp + +> **rpc** UpdateApp([UpdateAppRequest](#updateapprequest)) +[UpdateAppResponse](#updateappresponse) + +Changes application + + + + PUT: /projects/{project_id}/apps/{app_id} + + +### UpdateOIDCAppConfig + +> **rpc** UpdateOIDCAppConfig([UpdateOIDCAppConfigRequest](#updateoidcappconfigrequest)) +[UpdateOIDCAppConfigResponse](#updateoidcappconfigresponse) + +Changes the configuration of the oidc client + + + + PUT: /projects/{project_id}/apps/{app_id}/oidc_config + + +### UpdateSAMLAppConfig + +> **rpc** UpdateSAMLAppConfig([UpdateSAMLAppConfigRequest](#updatesamlappconfigrequest)) +[UpdateSAMLAppConfigResponse](#updatesamlappconfigresponse) + +Changes the configuration of the saml application + + + + PUT: /projects/{project_id}/apps/{app_id}/saml_config + + +### UpdateAPIAppConfig + +> **rpc** UpdateAPIAppConfig([UpdateAPIAppConfigRequest](#updateapiappconfigrequest)) +[UpdateAPIAppConfigResponse](#updateapiappconfigresponse) + +Changes the configuration of the api application + + + + PUT: /projects/{project_id}/apps/{app_id}/api_config + + +### DeactivateApp + +> **rpc** DeactivateApp([DeactivateAppRequest](#deactivateapprequest)) +[DeactivateAppResponse](#deactivateappresponse) + +Set the state to deactivated +Its not possible to request tokens for deactivated apps +Returns an error if already deactivated + + + + POST: /projects/{project_id}/apps/{app_id}/_deactivate + + +### ReactivateApp + +> **rpc** ReactivateApp([ReactivateAppRequest](#reactivateapprequest)) +[ReactivateAppResponse](#reactivateappresponse) + +Set the state to active +Returns an error if not deactivated + + + + POST: /projects/{project_id}/apps/{app_id}/_reactivate + + +### RemoveApp + +> **rpc** RemoveApp([RemoveAppRequest](#removeapprequest)) +[RemoveAppResponse](#removeappresponse) + +Removed the application + + + + DELETE: /projects/{project_id}/apps/{app_id} + + +### RegenerateOIDCClientSecret + +> **rpc** RegenerateOIDCClientSecret([RegenerateOIDCClientSecretRequest](#regenerateoidcclientsecretrequest)) +[RegenerateOIDCClientSecretResponse](#regenerateoidcclientsecretresponse) + +Generates a new client secret for the oidc client, make sure to save the response + + + + POST: /projects/{project_id}/apps/{app_id}/oidc_config/_generate_client_secret + + +### RegenerateAPIClientSecret + +> **rpc** RegenerateAPIClientSecret([RegenerateAPIClientSecretRequest](#regenerateapiclientsecretrequest)) +[RegenerateAPIClientSecretResponse](#regenerateapiclientsecretresponse) + +Generates a new client secret for the api application, make sure to save the response + + + + POST: /projects/{project_id}/apps/{app_id}/api_config/_generate_client_secret + + +### GetAppKey + +> **rpc** GetAppKey([GetAppKeyRequest](#getappkeyrequest)) +[GetAppKeyResponse](#getappkeyresponse) + +Returns an application key + + + + GET: /projects/{project_id}/apps/{app_id}/keys/{key_id} + + +### ListAppKeys + +> **rpc** ListAppKeys([ListAppKeysRequest](#listappkeysrequest)) +[ListAppKeysResponse](#listappkeysresponse) + +Returns all application keys matching the result +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/apps/{app_id}/keys/_search + + +### AddAppKey + +> **rpc** AddAppKey([AddAppKeyRequest](#addappkeyrequest)) +[AddAppKeyResponse](#addappkeyresponse) + +Creates a new app key +Will return key details in result, make sure to save it + + + + POST: /projects/{project_id}/apps/{app_id}/keys + + +### RemoveAppKey + +> **rpc** RemoveAppKey([RemoveAppKeyRequest](#removeappkeyrequest)) +[RemoveAppKeyResponse](#removeappkeyresponse) + +Removes an app key + + + + DELETE: /projects/{project_id}/apps/{app_id}/keys/{key_id} + + +### ListProjectGrantChanges + +> **rpc** ListProjectGrantChanges([ListProjectGrantChangesRequest](#listprojectgrantchangesrequest)) +[ListProjectGrantChangesResponse](#listprojectgrantchangesresponse) + +Returns the history of the project grant (each event) +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/grants/{grant_id}/changes/_search + + +### GetProjectGrantByID + +> **rpc** GetProjectGrantByID([GetProjectGrantByIDRequest](#getprojectgrantbyidrequest)) +[GetProjectGrantByIDResponse](#getprojectgrantbyidresponse) + +Returns a project grant (ProjectGrant = Grant another organisation for my project) + + + + GET: /projects/{project_id}/grants/{grant_id} + + +### ListProjectGrants + +> **rpc** ListProjectGrants([ListProjectGrantsRequest](#listprojectgrantsrequest)) +[ListProjectGrantsResponse](#listprojectgrantsresponse) + +Returns all project grants matching the query, (ProjectGrant = Grant another organisation for my project) +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/grants/_search + + +### ListAllProjectGrants + +> **rpc** ListAllProjectGrants([ListAllProjectGrantsRequest](#listallprojectgrantsrequest)) +[ListAllProjectGrantsResponse](#listallprojectgrantsresponse) + +Returns all project grants matching the query, (ProjectGrant = Grant another organisation for my project) +Limit should always be set, there is a default limit set by the service + + + + POST: /projectgrants/_search + + +### AddProjectGrant + +> **rpc** AddProjectGrant([AddProjectGrantRequest](#addprojectgrantrequest)) +[AddProjectGrantResponse](#addprojectgrantresponse) + +Add a new project grant (ProjectGrant = Grant another organisation for my project) +Project Grant will be listed in granted project of the other organisation + + + + POST: /projects/{project_id}/grants + + +### UpdateProjectGrant + +> **rpc** UpdateProjectGrant([UpdateProjectGrantRequest](#updateprojectgrantrequest)) +[UpdateProjectGrantResponse](#updateprojectgrantresponse) + +Change project grant (ProjectGrant = Grant another organisation for my project) +Project Grant will be listed in granted project of the other organisation + + + + PUT: /projects/{project_id}/grants/{grant_id} + + +### DeactivateProjectGrant + +> **rpc** DeactivateProjectGrant([DeactivateProjectGrantRequest](#deactivateprojectgrantrequest)) +[DeactivateProjectGrantResponse](#deactivateprojectgrantresponse) + +Set state of project grant to deactivated (ProjectGrant = Grant another organisation for my project) +Returns error if project not active + + + + POST: /projects/{project_id}/grants/{grant_id}/_deactivate + + +### ReactivateProjectGrant + +> **rpc** ReactivateProjectGrant([ReactivateProjectGrantRequest](#reactivateprojectgrantrequest)) +[ReactivateProjectGrantResponse](#reactivateprojectgrantresponse) + +Set state of project grant to active (ProjectGrant = Grant another organisation for my project) +Returns error if project not deactivated + + + + POST: /projects/{project_id}/grants/{grant_id}/_reactivate + + +### RemoveProjectGrant + +> **rpc** RemoveProjectGrant([RemoveProjectGrantRequest](#removeprojectgrantrequest)) +[RemoveProjectGrantResponse](#removeprojectgrantresponse) + +Removes project grant and all user grants for this project grant + + + + DELETE: /projects/{project_id}/grants/{grant_id} + + +### ListProjectGrantMemberRoles + +> **rpc** ListProjectGrantMemberRoles([ListProjectGrantMemberRolesRequest](#listprojectgrantmemberrolesrequest)) +[ListProjectGrantMemberRolesResponse](#listprojectgrantmemberrolesresponse) + +Returns all ZITADEL roles which are for project grant managers + + + + POST: /projects/grants/members/roles/_search + + +### ListProjectGrantMembers + +> **rpc** ListProjectGrantMembers([ListProjectGrantMembersRequest](#listprojectgrantmembersrequest)) +[ListProjectGrantMembersResponse](#listprojectgrantmembersresponse) + +Returns all ZITADEL managers of this project grant +Limit should always be set, there is a default limit set by the service + + + + POST: /projects/{project_id}/grants/{grant_id}/members/_search + + +### AddProjectGrantMember + +> **rpc** AddProjectGrantMember([AddProjectGrantMemberRequest](#addprojectgrantmemberrequest)) +[AddProjectGrantMemberResponse](#addprojectgrantmemberresponse) + +Adds a new project grant manager, which is allowed to administrate in ZITADEL + + + + POST: /projects/{project_id}/grants/{grant_id}/members + + +### UpdateProjectGrantMember + +> **rpc** UpdateProjectGrantMember([UpdateProjectGrantMemberRequest](#updateprojectgrantmemberrequest)) +[UpdateProjectGrantMemberResponse](#updateprojectgrantmemberresponse) + +Changes project grant manager, which is allowed to administrate in ZITADEL + + + + PUT: /projects/{project_id}/grants/{grant_id}/members/{user_id} + + +### RemoveProjectGrantMember + +> **rpc** RemoveProjectGrantMember([RemoveProjectGrantMemberRequest](#removeprojectgrantmemberrequest)) +[RemoveProjectGrantMemberResponse](#removeprojectgrantmemberresponse) + +Removed project grant manager + + + + DELETE: /projects/{project_id}/grants/{grant_id}/members/{user_id} + + +### GetUserGrantByID + +> **rpc** GetUserGrantByID([GetUserGrantByIDRequest](#getusergrantbyidrequest)) +[GetUserGrantByIDResponse](#getusergrantbyidresponse) + +Returns a user grant (authorization of a user for a project) + + + + GET: /users/{user_id}/grants/{grant_id} + + +### ListUserGrants + +> **rpc** ListUserGrants([ListUserGrantRequest](#listusergrantrequest)) +[ListUserGrantResponse](#listusergrantresponse) + +Returns al user grant matching the query (authorizations of user for projects) +Limit should always be set, there is a default limit set by the service + + + + POST: /users/grants/_search + + +### AddUserGrant + +> **rpc** AddUserGrant([AddUserGrantRequest](#addusergrantrequest)) +[AddUserGrantResponse](#addusergrantresponse) + +Creates a new user grant (authorization of a user for a project with specified roles) + + + + POST: /users/{user_id}/grants + + +### UpdateUserGrant + +> **rpc** UpdateUserGrant([UpdateUserGrantRequest](#updateusergrantrequest)) +[UpdateUserGrantResponse](#updateusergrantresponse) + +Changes a user grant (authorization of a user for a project with specified roles) + + + + PUT: /users/{user_id}/grants/{grant_id} + + +### DeactivateUserGrant + +> **rpc** DeactivateUserGrant([DeactivateUserGrantRequest](#deactivateusergrantrequest)) +[DeactivateUserGrantResponse](#deactivateusergrantresponse) + +Sets the state of a user grant to deactivated +User will not be able to use the granted project anymore +Returns an error if user grant is already deactivated + + + + POST: /users/{user_id}/grants/{grant_id}/_deactivate + + +### ReactivateUserGrant + +> **rpc** ReactivateUserGrant([ReactivateUserGrantRequest](#reactivateusergrantrequest)) +[ReactivateUserGrantResponse](#reactivateusergrantresponse) + +Sets the state of a user grant to active +Returns an error if user grant is not deactivated + + + + POST: /users/{user_id}/grants/{grant_id}/_reactivate + + +### RemoveUserGrant + +> **rpc** RemoveUserGrant([RemoveUserGrantRequest](#removeusergrantrequest)) +[RemoveUserGrantResponse](#removeusergrantresponse) + +Removes a user grant + + + + DELETE: /users/{user_id}/grants/{grant_id} + + +### BulkRemoveUserGrant + +> **rpc** BulkRemoveUserGrant([BulkRemoveUserGrantRequest](#bulkremoveusergrantrequest)) +[BulkRemoveUserGrantResponse](#bulkremoveusergrantresponse) + +remove a list of user grants in one request + + + + DELETE: /user_grants/_bulk + + +### GetOrgIAMPolicy + +> **rpc** GetOrgIAMPolicy([GetOrgIAMPolicyRequest](#getorgiampolicyrequest)) +[GetOrgIAMPolicyResponse](#getorgiampolicyresponse) + +deprecated: please use DomainPolicy instead +Returns the domain policy (this policy is managed by the iam administrator) + + + + GET: /policies/orgiam + + +### GetDomainPolicy + +> **rpc** GetDomainPolicy([GetDomainPolicyRequest](#getdomainpolicyrequest)) +[GetDomainPolicyResponse](#getdomainpolicyresponse) + +Returns the domain policy (this policy is managed by the iam administrator) + + + + GET: /policies/domain + + +### GetLoginPolicy + +> **rpc** GetLoginPolicy([GetLoginPolicyRequest](#getloginpolicyrequest)) +[GetLoginPolicyResponse](#getloginpolicyresponse) + +Returns the login policy of the organisation +With this policy the login gui can be configured + + + + GET: /policies/login + + +### GetDefaultLoginPolicy + +> **rpc** GetDefaultLoginPolicy([GetDefaultLoginPolicyRequest](#getdefaultloginpolicyrequest)) +[GetDefaultLoginPolicyResponse](#getdefaultloginpolicyresponse) + +Returns the default login policy configured in the IAM + + + + GET: /policies/default/login + + +### AddCustomLoginPolicy + +> **rpc** AddCustomLoginPolicy([AddCustomLoginPolicyRequest](#addcustomloginpolicyrequest)) +[AddCustomLoginPolicyResponse](#addcustomloginpolicyresponse) + +Add a custom login policy for the organisation +With this policy the login gui can be configured + + + + POST: /policies/login + + +### UpdateCustomLoginPolicy + +> **rpc** UpdateCustomLoginPolicy([UpdateCustomLoginPolicyRequest](#updatecustomloginpolicyrequest)) +[UpdateCustomLoginPolicyResponse](#updatecustomloginpolicyresponse) + +Change the custom login policy for the organisation +With this policy the login gui can be configured + + + + PUT: /policies/login + + +### ResetLoginPolicyToDefault + +> **rpc** ResetLoginPolicyToDefault([ResetLoginPolicyToDefaultRequest](#resetloginpolicytodefaultrequest)) +[ResetLoginPolicyToDefaultResponse](#resetloginpolicytodefaultresponse) + +Removes the custom login policy of the organisation +The default policy of the IAM will trigger after + + + + DELETE: /policies/login + + +### ListLoginPolicyIDPs + +> **rpc** ListLoginPolicyIDPs([ListLoginPolicyIDPsRequest](#listloginpolicyidpsrequest)) +[ListLoginPolicyIDPsResponse](#listloginpolicyidpsresponse) + +Lists all possible identity providers configured on the organisation +Limit should always be set, there is a default limit set by the service + + + + POST: /policies/login/idps/_search + + +### AddIDPToLoginPolicy + +> **rpc** AddIDPToLoginPolicy([AddIDPToLoginPolicyRequest](#addidptologinpolicyrequest)) +[AddIDPToLoginPolicyResponse](#addidptologinpolicyresponse) + +Add a (preconfigured) identity provider to the custom login policy + + + + POST: /policies/login/idps + + +### RemoveIDPFromLoginPolicy + +> **rpc** RemoveIDPFromLoginPolicy([RemoveIDPFromLoginPolicyRequest](#removeidpfromloginpolicyrequest)) +[RemoveIDPFromLoginPolicyResponse](#removeidpfromloginpolicyresponse) + +Remove a identity provider from the custom login policy + + + + DELETE: /policies/login/idps/{idp_id} + + +### ListLoginPolicySecondFactors + +> **rpc** ListLoginPolicySecondFactors([ListLoginPolicySecondFactorsRequest](#listloginpolicysecondfactorsrequest)) +[ListLoginPolicySecondFactorsResponse](#listloginpolicysecondfactorsresponse) + +Returns all configured second factors of the custom login policy + + + + POST: /policies/login/second_factors/_search + + +### AddSecondFactorToLoginPolicy + +> **rpc** AddSecondFactorToLoginPolicy([AddSecondFactorToLoginPolicyRequest](#addsecondfactortologinpolicyrequest)) +[AddSecondFactorToLoginPolicyResponse](#addsecondfactortologinpolicyresponse) + +Adds a new second factor to the custom login policy + + + + POST: /policies/login/second_factors + + +### RemoveSecondFactorFromLoginPolicy + +> **rpc** RemoveSecondFactorFromLoginPolicy([RemoveSecondFactorFromLoginPolicyRequest](#removesecondfactorfromloginpolicyrequest)) +[RemoveSecondFactorFromLoginPolicyResponse](#removesecondfactorfromloginpolicyresponse) + +Remove a second factor from the custom login policy + + + + DELETE: /policies/login/second_factors/{type} + + +### ListLoginPolicyMultiFactors + +> **rpc** ListLoginPolicyMultiFactors([ListLoginPolicyMultiFactorsRequest](#listloginpolicymultifactorsrequest)) +[ListLoginPolicyMultiFactorsResponse](#listloginpolicymultifactorsresponse) + +Returns all configured multi factors of the custom login policy + + + + POST: /policies/login/auth_factors/_search + + +### AddMultiFactorToLoginPolicy + +> **rpc** AddMultiFactorToLoginPolicy([AddMultiFactorToLoginPolicyRequest](#addmultifactortologinpolicyrequest)) +[AddMultiFactorToLoginPolicyResponse](#addmultifactortologinpolicyresponse) + +Adds a new multi factor to the custom login policy + + + + POST: /policies/login/multi_factors + + +### RemoveMultiFactorFromLoginPolicy + +> **rpc** RemoveMultiFactorFromLoginPolicy([RemoveMultiFactorFromLoginPolicyRequest](#removemultifactorfromloginpolicyrequest)) +[RemoveMultiFactorFromLoginPolicyResponse](#removemultifactorfromloginpolicyresponse) + +Remove a multi factor from the custom login policy + + + + DELETE: /policies/login/multi_factors/{type} + + +### GetPasswordComplexityPolicy + +> **rpc** GetPasswordComplexityPolicy([GetPasswordComplexityPolicyRequest](#getpasswordcomplexitypolicyrequest)) +[GetPasswordComplexityPolicyResponse](#getpasswordcomplexitypolicyresponse) + +Returns the password complexity policy of the organisation +With this policy the password strength can be configured + + + + GET: /policies/password/complexity + + +### GetDefaultPasswordComplexityPolicy + +> **rpc** GetDefaultPasswordComplexityPolicy([GetDefaultPasswordComplexityPolicyRequest](#getdefaultpasswordcomplexitypolicyrequest)) +[GetDefaultPasswordComplexityPolicyResponse](#getdefaultpasswordcomplexitypolicyresponse) + +Returns the default password complexity policy of the IAM +With this policy the password strength can be configured + + + + GET: /policies/default/password/complexity + + +### AddCustomPasswordComplexityPolicy + +> **rpc** AddCustomPasswordComplexityPolicy([AddCustomPasswordComplexityPolicyRequest](#addcustompasswordcomplexitypolicyrequest)) +[AddCustomPasswordComplexityPolicyResponse](#addcustompasswordcomplexitypolicyresponse) + +Add a custom password complexity policy for the organisation +With this policy the password strength can be configured + + + + POST: /policies/password/complexity + + +### UpdateCustomPasswordComplexityPolicy + +> **rpc** UpdateCustomPasswordComplexityPolicy([UpdateCustomPasswordComplexityPolicyRequest](#updatecustompasswordcomplexitypolicyrequest)) +[UpdateCustomPasswordComplexityPolicyResponse](#updatecustompasswordcomplexitypolicyresponse) + +Update the custom password complexity policy for the organisation +With this policy the password strength can be configured + + + + PUT: /policies/password/complexity + + +### ResetPasswordComplexityPolicyToDefault + +> **rpc** ResetPasswordComplexityPolicyToDefault([ResetPasswordComplexityPolicyToDefaultRequest](#resetpasswordcomplexitypolicytodefaultrequest)) +[ResetPasswordComplexityPolicyToDefaultResponse](#resetpasswordcomplexitypolicytodefaultresponse) + +Removes the custom password complexity policy of the organisation +The default policy of the IAM will trigger after + + + + DELETE: /policies/password/complexity + + +### GetPasswordAgePolicy + +> **rpc** GetPasswordAgePolicy([GetPasswordAgePolicyRequest](#getpasswordagepolicyrequest)) +[GetPasswordAgePolicyResponse](#getpasswordagepolicyresponse) + +The password age policy is not used at the moment + + + + GET: /policies/password/age + + +### GetDefaultPasswordAgePolicy + +> **rpc** GetDefaultPasswordAgePolicy([GetDefaultPasswordAgePolicyRequest](#getdefaultpasswordagepolicyrequest)) +[GetDefaultPasswordAgePolicyResponse](#getdefaultpasswordagepolicyresponse) + +The password age policy is not used at the moment + + + + GET: /policies/default/password/age + + +### AddCustomPasswordAgePolicy + +> **rpc** AddCustomPasswordAgePolicy([AddCustomPasswordAgePolicyRequest](#addcustompasswordagepolicyrequest)) +[AddCustomPasswordAgePolicyResponse](#addcustompasswordagepolicyresponse) + +The password age policy is not used at the moment + + + + POST: /policies/password/age + + +### UpdateCustomPasswordAgePolicy + +> **rpc** UpdateCustomPasswordAgePolicy([UpdateCustomPasswordAgePolicyRequest](#updatecustompasswordagepolicyrequest)) +[UpdateCustomPasswordAgePolicyResponse](#updatecustompasswordagepolicyresponse) + +The password age policy is not used at the moment + + + + PUT: /policies/password/age + + +### ResetPasswordAgePolicyToDefault + +> **rpc** ResetPasswordAgePolicyToDefault([ResetPasswordAgePolicyToDefaultRequest](#resetpasswordagepolicytodefaultrequest)) +[ResetPasswordAgePolicyToDefaultResponse](#resetpasswordagepolicytodefaultresponse) + +The password age policy is not used at the moment + + + + DELETE: /policies/password/age + + +### GetLockoutPolicy + +> **rpc** GetLockoutPolicy([GetLockoutPolicyRequest](#getlockoutpolicyrequest)) +[GetLockoutPolicyResponse](#getlockoutpolicyresponse) + + + + + + GET: /policies/lockout + + +### GetDefaultLockoutPolicy + +> **rpc** GetDefaultLockoutPolicy([GetDefaultLockoutPolicyRequest](#getdefaultlockoutpolicyrequest)) +[GetDefaultLockoutPolicyResponse](#getdefaultlockoutpolicyresponse) + + + + + + GET: /policies/default/lockout + + +### AddCustomLockoutPolicy + +> **rpc** AddCustomLockoutPolicy([AddCustomLockoutPolicyRequest](#addcustomlockoutpolicyrequest)) +[AddCustomLockoutPolicyResponse](#addcustomlockoutpolicyresponse) + + + + + + POST: /policies/lockout + + +### UpdateCustomLockoutPolicy + +> **rpc** UpdateCustomLockoutPolicy([UpdateCustomLockoutPolicyRequest](#updatecustomlockoutpolicyrequest)) +[UpdateCustomLockoutPolicyResponse](#updatecustomlockoutpolicyresponse) + + + + + + PUT: /policies/lockout + + +### ResetLockoutPolicyToDefault + +> **rpc** ResetLockoutPolicyToDefault([ResetLockoutPolicyToDefaultRequest](#resetlockoutpolicytodefaultrequest)) +[ResetLockoutPolicyToDefaultResponse](#resetlockoutpolicytodefaultresponse) + + + + + + DELETE: /policies/lockout + + +### GetPrivacyPolicy + +> **rpc** GetPrivacyPolicy([GetPrivacyPolicyRequest](#getprivacypolicyrequest)) +[GetPrivacyPolicyResponse](#getprivacypolicyresponse) + +Returns the privacy policy of the organisation +With this policy privacy relevant things can be configured (e.g. tos link) + + + + GET: /policies/privacy + + +### GetDefaultPrivacyPolicy + +> **rpc** GetDefaultPrivacyPolicy([GetDefaultPrivacyPolicyRequest](#getdefaultprivacypolicyrequest)) +[GetDefaultPrivacyPolicyResponse](#getdefaultprivacypolicyresponse) + +Returns the default privacy policy of the IAM +With this policy the privacy relevant things can be configured (e.g tos link) + + + + GET: /policies/default/privacy + + +### AddCustomPrivacyPolicy + +> **rpc** AddCustomPrivacyPolicy([AddCustomPrivacyPolicyRequest](#addcustomprivacypolicyrequest)) +[AddCustomPrivacyPolicyResponse](#addcustomprivacypolicyresponse) + +Add a custom privacy policy for the organisation +With this policy privacy relevant things can be configured (e.g. tos link) +Variable {{.Lang}} can be set to have different links based on the language + + + + POST: /policies/privacy + + +### UpdateCustomPrivacyPolicy + +> **rpc** UpdateCustomPrivacyPolicy([UpdateCustomPrivacyPolicyRequest](#updatecustomprivacypolicyrequest)) +[UpdateCustomPrivacyPolicyResponse](#updatecustomprivacypolicyresponse) + +Update the privacy policy for the organisation +With this policy privacy relevant things can be configured (e.g. tos link) +Variable {{.Lang}} can be set to have different links based on the language + + + + PUT: /policies/privacy + + +### ResetPrivacyPolicyToDefault + +> **rpc** ResetPrivacyPolicyToDefault([ResetPrivacyPolicyToDefaultRequest](#resetprivacypolicytodefaultrequest)) +[ResetPrivacyPolicyToDefaultResponse](#resetprivacypolicytodefaultresponse) + +Removes the privacy policy of the organisation +The default policy of the IAM will trigger after + + + + DELETE: /policies/privacy + + +### GetNotificationPolicy + +> **rpc** GetNotificationPolicy([GetNotificationPolicyRequest](#getnotificationpolicyrequest)) +[GetNotificationPolicyResponse](#getnotificationpolicyresponse) + +Returns the notification policy of the organisation +With this notification policy it can be configured how users should be notified + + + + GET: /policies/notification + + +### GetDefaultNotificationPolicy + +> **rpc** GetDefaultNotificationPolicy([GetDefaultNotificationPolicyRequest](#getdefaultnotificationpolicyrequest)) +[GetDefaultNotificationPolicyResponse](#getdefaultnotificationpolicyresponse) + +Returns the default notification policy of the IAM +With this notification privacy it can be configured how users should be notified + + + + GET: /policies/default/notification + + +### AddCustomNotificationPolicy + +> **rpc** AddCustomNotificationPolicy([AddCustomNotificationPolicyRequest](#addcustomnotificationpolicyrequest)) +[AddCustomNotificationPolicyResponse](#addcustomnotificationpolicyresponse) + +Add a custom notification policy for the organisation +With this notification privacy it can be configured how users should be notified + + + + POST: /policies/notification + + +### UpdateCustomNotificationPolicy + +> **rpc** UpdateCustomNotificationPolicy([UpdateCustomNotificationPolicyRequest](#updatecustomnotificationpolicyrequest)) +[UpdateCustomNotificationPolicyResponse](#updatecustomnotificationpolicyresponse) + +Update the notification policy for the organisation +With this notification privacy it can be configured how users should be notified + + + + PUT: /policies/notification + + +### ResetNotificationPolicyToDefault + +> **rpc** ResetNotificationPolicyToDefault([ResetNotificationPolicyToDefaultRequest](#resetnotificationpolicytodefaultrequest)) +[ResetNotificationPolicyToDefaultResponse](#resetnotificationpolicytodefaultresponse) + +Removes the notification policy of the organisation +The default policy of the IAM will trigger after + + + + DELETE: /policies/notification + + +### GetLabelPolicy + +> **rpc** GetLabelPolicy([GetLabelPolicyRequest](#getlabelpolicyrequest)) +[GetLabelPolicyResponse](#getlabelpolicyresponse) + +Returns the active label policy of the organisation +With this policy the private labeling can be configured (colors, etc.) + + + + GET: /policies/label + + +### GetPreviewLabelPolicy + +> **rpc** GetPreviewLabelPolicy([GetPreviewLabelPolicyRequest](#getpreviewlabelpolicyrequest)) +[GetPreviewLabelPolicyResponse](#getpreviewlabelpolicyresponse) + +Returns the preview label policy of the organisation +With this policy the private labeling can be configured (colors, etc.) + + + + GET: /policies/label/_preview + + +### GetDefaultLabelPolicy + +> **rpc** GetDefaultLabelPolicy([GetDefaultLabelPolicyRequest](#getdefaultlabelpolicyrequest)) +[GetDefaultLabelPolicyResponse](#getdefaultlabelpolicyresponse) + +Returns the default label policy of the IAM +With this policy the private labeling can be configured (colors, etc.) + + + + GET: /policies/default/label + + +### AddCustomLabelPolicy + +> **rpc** AddCustomLabelPolicy([AddCustomLabelPolicyRequest](#addcustomlabelpolicyrequest)) +[AddCustomLabelPolicyResponse](#addcustomlabelpolicyresponse) + +Add a custom label policy for the organisation +With this policy the private labeling can be configured (colors, etc.) + + + + POST: /policies/label + + +### UpdateCustomLabelPolicy + +> **rpc** UpdateCustomLabelPolicy([UpdateCustomLabelPolicyRequest](#updatecustomlabelpolicyrequest)) +[UpdateCustomLabelPolicyResponse](#updatecustomlabelpolicyresponse) + +Changes the custom label policy for the organisation +With this policy the private labeling can be configured (colors, etc.) + + + + PUT: /policies/label + + +### ActivateCustomLabelPolicy + +> **rpc** ActivateCustomLabelPolicy([ActivateCustomLabelPolicyRequest](#activatecustomlabelpolicyrequest)) +[ActivateCustomLabelPolicyResponse](#activatecustomlabelpolicyresponse) + +Activates all changes of the label policy + + + + POST: /policies/label/_activate + + +### RemoveCustomLabelPolicyLogo + +> **rpc** RemoveCustomLabelPolicyLogo([RemoveCustomLabelPolicyLogoRequest](#removecustomlabelpolicylogorequest)) +[RemoveCustomLabelPolicyLogoResponse](#removecustomlabelpolicylogoresponse) + +Removes the logo of the label policy + + + + DELETE: /policies/label/logo + + +### RemoveCustomLabelPolicyLogoDark + +> **rpc** RemoveCustomLabelPolicyLogoDark([RemoveCustomLabelPolicyLogoDarkRequest](#removecustomlabelpolicylogodarkrequest)) +[RemoveCustomLabelPolicyLogoDarkResponse](#removecustomlabelpolicylogodarkresponse) + +Removes the logo dark of the label policy + + + + DELETE: /policies/label/logo_dark + + +### RemoveCustomLabelPolicyIcon + +> **rpc** RemoveCustomLabelPolicyIcon([RemoveCustomLabelPolicyIconRequest](#removecustomlabelpolicyiconrequest)) +[RemoveCustomLabelPolicyIconResponse](#removecustomlabelpolicyiconresponse) + +Removes the icon of the label policy + + + + DELETE: /policies/label/icon + + +### RemoveCustomLabelPolicyIconDark + +> **rpc** RemoveCustomLabelPolicyIconDark([RemoveCustomLabelPolicyIconDarkRequest](#removecustomlabelpolicyicondarkrequest)) +[RemoveCustomLabelPolicyIconDarkResponse](#removecustomlabelpolicyicondarkresponse) + +Removes the logo dark of the label policy + + + + DELETE: /policies/label/icon_dark + + +### RemoveCustomLabelPolicyFont + +> **rpc** RemoveCustomLabelPolicyFont([RemoveCustomLabelPolicyFontRequest](#removecustomlabelpolicyfontrequest)) +[RemoveCustomLabelPolicyFontResponse](#removecustomlabelpolicyfontresponse) + +Removes the font of the label policy + + + + DELETE: /policies/label/font + + +### ResetLabelPolicyToDefault + +> **rpc** ResetLabelPolicyToDefault([ResetLabelPolicyToDefaultRequest](#resetlabelpolicytodefaultrequest)) +[ResetLabelPolicyToDefaultResponse](#resetlabelpolicytodefaultresponse) + +Removes the custom label policy of the organisation +The default policy of the IAM will trigger after + + + + DELETE: /policies/label + + +### GetCustomInitMessageText + +> **rpc** GetCustomInitMessageText([GetCustomInitMessageTextRequest](#getcustominitmessagetextrequest)) +[GetCustomInitMessageTextResponse](#getcustominitmessagetextresponse) + +Returns the custom text for initial message + + + + GET: /text/message/init/{language} + + +### GetDefaultInitMessageText + +> **rpc** GetDefaultInitMessageText([GetDefaultInitMessageTextRequest](#getdefaultinitmessagetextrequest)) +[GetDefaultInitMessageTextResponse](#getdefaultinitmessagetextresponse) + +Returns the default text for initial message + + + + GET: /text/default/message/init/{language} + + +### SetCustomInitMessageText + +> **rpc** SetCustomInitMessageText([SetCustomInitMessageTextRequest](#setcustominitmessagetextrequest)) +[SetCustomInitMessageTextResponse](#setcustominitmessagetextresponse) + +Sets the custom text for initial message +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} + + + + PUT: /text/message/init/{language} + + +### ResetCustomInitMessageTextToDefault + +> **rpc** ResetCustomInitMessageTextToDefault([ResetCustomInitMessageTextToDefaultRequest](#resetcustominitmessagetexttodefaultrequest)) +[ResetCustomInitMessageTextToDefaultResponse](#resetcustominitmessagetexttodefaultresponse) + +Removes the custom init message text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/message/init/{language} + + +### GetCustomPasswordResetMessageText + +> **rpc** GetCustomPasswordResetMessageText([GetCustomPasswordResetMessageTextRequest](#getcustompasswordresetmessagetextrequest)) +[GetCustomPasswordResetMessageTextResponse](#getcustompasswordresetmessagetextresponse) + +Returns the custom text for password reset message + + + + GET: /text/message/passwordreset/{language} + + +### GetDefaultPasswordResetMessageText + +> **rpc** GetDefaultPasswordResetMessageText([GetDefaultPasswordResetMessageTextRequest](#getdefaultpasswordresetmessagetextrequest)) +[GetDefaultPasswordResetMessageTextResponse](#getdefaultpasswordresetmessagetextresponse) + +Returns the default text for password reset message + + + + GET: /text/default/message/passwordreset/{language} + + +### SetCustomPasswordResetMessageText + +> **rpc** SetCustomPasswordResetMessageText([SetCustomPasswordResetMessageTextRequest](#setcustompasswordresetmessagetextrequest)) +[SetCustomPasswordResetMessageTextResponse](#setcustompasswordresetmessagetextresponse) + +Sets the custom text for password reset message +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/passwordreset/{language} + + +### ResetCustomPasswordResetMessageTextToDefault + +> **rpc** ResetCustomPasswordResetMessageTextToDefault([ResetCustomPasswordResetMessageTextToDefaultRequest](#resetcustompasswordresetmessagetexttodefaultrequest)) +[ResetCustomPasswordResetMessageTextToDefaultResponse](#resetcustompasswordresetmessagetexttodefaultresponse) + +Removes the custom password reset message text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/message/verifyemail/{language} + + +### GetCustomVerifyEmailMessageText + +> **rpc** GetCustomVerifyEmailMessageText([GetCustomVerifyEmailMessageTextRequest](#getcustomverifyemailmessagetextrequest)) +[GetCustomVerifyEmailMessageTextResponse](#getcustomverifyemailmessagetextresponse) + +Returns the custom text for verify email message + + + + GET: /text/message/verifyemail/{language} + + +### GetDefaultVerifyEmailMessageText + +> **rpc** GetDefaultVerifyEmailMessageText([GetDefaultVerifyEmailMessageTextRequest](#getdefaultverifyemailmessagetextrequest)) +[GetDefaultVerifyEmailMessageTextResponse](#getdefaultverifyemailmessagetextresponse) + +Returns the default text for verify email message + + + + GET: /text/default/message/verifyemail/{language} + + +### SetCustomVerifyEmailMessageText + +> **rpc** SetCustomVerifyEmailMessageText([SetCustomVerifyEmailMessageTextRequest](#setcustomverifyemailmessagetextrequest)) +[SetCustomVerifyEmailMessageTextResponse](#setcustomverifyemailmessagetextresponse) + +Sets the custom text for verify email message +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/verifyemail/{language} + + +### ResetCustomVerifyEmailMessageTextToDefault + +> **rpc** ResetCustomVerifyEmailMessageTextToDefault([ResetCustomVerifyEmailMessageTextToDefaultRequest](#resetcustomverifyemailmessagetexttodefaultrequest)) +[ResetCustomVerifyEmailMessageTextToDefaultResponse](#resetcustomverifyemailmessagetexttodefaultresponse) + +Removes the custom verify email message text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/message/verifyemail/{language} + + +### GetCustomVerifyPhoneMessageText + +> **rpc** GetCustomVerifyPhoneMessageText([GetCustomVerifyPhoneMessageTextRequest](#getcustomverifyphonemessagetextrequest)) +[GetCustomVerifyPhoneMessageTextResponse](#getcustomverifyphonemessagetextresponse) + +Returns the custom text for verify email message + + + + GET: /text/message/verifyphone/{language} + + +### GetDefaultVerifyPhoneMessageText + +> **rpc** GetDefaultVerifyPhoneMessageText([GetDefaultVerifyPhoneMessageTextRequest](#getdefaultverifyphonemessagetextrequest)) +[GetDefaultVerifyPhoneMessageTextResponse](#getdefaultverifyphonemessagetextresponse) + +Returns the custom text for verify email message + + + + GET: /text/default/message/verifyphone/{language} + + +### SetCustomVerifyPhoneMessageText + +> **rpc** SetCustomVerifyPhoneMessageText([SetCustomVerifyPhoneMessageTextRequest](#setcustomverifyphonemessagetextrequest)) +[SetCustomVerifyPhoneMessageTextResponse](#setcustomverifyphonemessagetextresponse) + +Sets the default custom text for verify email message +The Following Variables can be used: +{{.Code}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/verifyphone/{language} + + +### ResetCustomVerifyPhoneMessageTextToDefault + +> **rpc** ResetCustomVerifyPhoneMessageTextToDefault([ResetCustomVerifyPhoneMessageTextToDefaultRequest](#resetcustomverifyphonemessagetexttodefaultrequest)) +[ResetCustomVerifyPhoneMessageTextToDefaultResponse](#resetcustomverifyphonemessagetexttodefaultresponse) + +Removes the custom verify phone text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/message/verifyphone/{language} + + +### GetCustomDomainClaimedMessageText + +> **rpc** GetCustomDomainClaimedMessageText([GetCustomDomainClaimedMessageTextRequest](#getcustomdomainclaimedmessagetextrequest)) +[GetCustomDomainClaimedMessageTextResponse](#getcustomdomainclaimedmessagetextresponse) + +Returns the custom text for domain claimed message + + + + GET: /text/message/domainclaimed/{language} + + +### GetDefaultDomainClaimedMessageText + +> **rpc** GetDefaultDomainClaimedMessageText([GetDefaultDomainClaimedMessageTextRequest](#getdefaultdomainclaimedmessagetextrequest)) +[GetDefaultDomainClaimedMessageTextResponse](#getdefaultdomainclaimedmessagetextresponse) + +Returns the custom text for domain claimed message + + + + GET: /text/default/message/domainclaimed/{language} + + +### SetCustomDomainClaimedMessageCustomText + +> **rpc** SetCustomDomainClaimedMessageCustomText([SetCustomDomainClaimedMessageTextRequest](#setcustomdomainclaimedmessagetextrequest)) +[SetCustomDomainClaimedMessageTextResponse](#setcustomdomainclaimedmessagetextresponse) + +Sets the custom text for domain claimed message +The Following Variables can be used: +{{.Domain}} {{.TempUsername}} {{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/domainclaimed/{language} + + +### ResetCustomDomainClaimedMessageTextToDefault + +> **rpc** ResetCustomDomainClaimedMessageTextToDefault([ResetCustomDomainClaimedMessageTextToDefaultRequest](#resetcustomdomainclaimedmessagetexttodefaultrequest)) +[ResetCustomDomainClaimedMessageTextToDefaultResponse](#resetcustomdomainclaimedmessagetexttodefaultresponse) + +Removes the custom domain claimed message text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/message/domainclaimed/{language} + + +### GetCustomPasswordlessRegistrationMessageText + +> **rpc** GetCustomPasswordlessRegistrationMessageText([GetCustomPasswordlessRegistrationMessageTextRequest](#getcustompasswordlessregistrationmessagetextrequest)) +[GetCustomPasswordlessRegistrationMessageTextResponse](#getcustompasswordlessregistrationmessagetextresponse) + +Returns the custom text for passwordless link message + + + + GET: /text/message/passwordless_registration/{language} + + +### GetDefaultPasswordlessRegistrationMessageText + +> **rpc** GetDefaultPasswordlessRegistrationMessageText([GetDefaultPasswordlessRegistrationMessageTextRequest](#getdefaultpasswordlessregistrationmessagetextrequest)) +[GetDefaultPasswordlessRegistrationMessageTextResponse](#getdefaultpasswordlessregistrationmessagetextresponse) + +Returns the custom text for passwordless link message + + + + GET: /text/default/message/passwordless_registration/{language} + + +### SetCustomPasswordlessRegistrationMessageCustomText + +> **rpc** SetCustomPasswordlessRegistrationMessageCustomText([SetCustomPasswordlessRegistrationMessageTextRequest](#setcustompasswordlessregistrationmessagetextrequest)) +[SetCustomPasswordlessRegistrationMessageTextResponse](#setcustompasswordlessregistrationmessagetextresponse) + +Sets the custom text for passwordless link message +The Following Variables can be used: +{{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/passwordless_registration/{language} + + +### ResetCustomPasswordlessRegistrationMessageTextToDefault + +> **rpc** ResetCustomPasswordlessRegistrationMessageTextToDefault([ResetCustomPasswordlessRegistrationMessageTextToDefaultRequest](#resetcustompasswordlessregistrationmessagetexttodefaultrequest)) +[ResetCustomPasswordlessRegistrationMessageTextToDefaultResponse](#resetcustompasswordlessregistrationmessagetexttodefaultresponse) + +Removes the custom passwordless link message text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/message/passwordless_registration/{language} + + +### GetCustomPasswordChangeMessageText + +> **rpc** GetCustomPasswordChangeMessageText([GetCustomPasswordChangeMessageTextRequest](#getcustompasswordchangemessagetextrequest)) +[GetCustomPasswordChangeMessageTextResponse](#getcustompasswordchangemessagetextresponse) + +Returns the custom text for password change message + + + + GET: /text/message/password_change/{language} + + +### GetDefaultPasswordChangeMessageText + +> **rpc** GetDefaultPasswordChangeMessageText([GetDefaultPasswordChangeMessageTextRequest](#getdefaultpasswordchangemessagetextrequest)) +[GetDefaultPasswordChangeMessageTextResponse](#getdefaultpasswordchangemessagetextresponse) + +Returns the custom text for password change link message + + + + GET: /text/default/message/password_change/{language} + + +### SetCustomPasswordChangeMessageCustomText + +> **rpc** SetCustomPasswordChangeMessageCustomText([SetCustomPasswordChangeMessageTextRequest](#setcustompasswordchangemessagetextrequest)) +[SetCustomPasswordChangeMessageTextResponse](#setcustompasswordchangemessagetextresponse) + +Sets the custom text for password change message +The Following Variables can be used: +{{.UserName}} {{.FirstName}} {{.LastName}} {{.NickName}} {{.DisplayName}} {{.LastEmail}} {{.VerifiedEmail}} {{.LastPhone}} {{.VerifiedPhone}} {{.PreferredLoginName}} {{.LoginNames}} {{.ChangeDate}} {{.CreationDate}} + + + + PUT: /text/message/password_change/{language} + + +### ResetCustomPasswordChangeMessageTextToDefault + +> **rpc** ResetCustomPasswordChangeMessageTextToDefault([ResetCustomPasswordChangeMessageTextToDefaultRequest](#resetcustompasswordchangemessagetexttodefaultrequest)) +[ResetCustomPasswordChangeMessageTextToDefaultResponse](#resetcustompasswordchangemessagetexttodefaultresponse) + +Removes the custom password change message text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/message/password_change/{language} + + +### GetCustomLoginTexts + +> **rpc** GetCustomLoginTexts([GetCustomLoginTextsRequest](#getcustomlogintextsrequest)) +[GetCustomLoginTextsResponse](#getcustomlogintextsresponse) + +Returns the custom texts for login ui + + + + GET: /text/login/{language} + + +### GetDefaultLoginTexts + +> **rpc** GetDefaultLoginTexts([GetDefaultLoginTextsRequest](#getdefaultlogintextsrequest)) +[GetDefaultLoginTextsResponse](#getdefaultlogintextsresponse) + +Returns the custom texts for login ui + + + + GET: /text/default/login/{language} + + +### SetCustomLoginText + +> **rpc** SetCustomLoginText([SetCustomLoginTextsRequest](#setcustomlogintextsrequest)) +[SetCustomLoginTextsResponse](#setcustomlogintextsresponse) + +Sets the default custom text for login ui +it impacts all organisations without customized login ui texts + + + + PUT: /text/login/{language} + + +### ResetCustomLoginTextToDefault + +> **rpc** ResetCustomLoginTextToDefault([ResetCustomLoginTextsToDefaultRequest](#resetcustomlogintextstodefaultrequest)) +[ResetCustomLoginTextsToDefaultResponse](#resetcustomlogintextstodefaultresponse) + +Removes the custom login text of the organisation +The default text of the IAM will trigger after + + + + DELETE: /text/login/{language} + + +### GetOrgIDPByID + +> **rpc** GetOrgIDPByID([GetOrgIDPByIDRequest](#getorgidpbyidrequest)) +[GetOrgIDPByIDResponse](#getorgidpbyidresponse) + +Returns a identity provider configuration of the organisation + + + + GET: /idps/{id} + + +### ListOrgIDPs + +> **rpc** ListOrgIDPs([ListOrgIDPsRequest](#listorgidpsrequest)) +[ListOrgIDPsResponse](#listorgidpsresponse) + +Returns all identity provider configuration in the organisation, which match the query +Limit should always be set, there is a default limit set by the service + + + + POST: /idps/_search + + +### AddOrgOIDCIDP + +> **rpc** AddOrgOIDCIDP([AddOrgOIDCIDPRequest](#addorgoidcidprequest)) +[AddOrgOIDCIDPResponse](#addorgoidcidpresponse) + +Add a new identity provider configuration in the organisation +Provider must be OIDC compliant + + + + POST: /idps/oidc + + +### AddOrgJWTIDP + +> **rpc** AddOrgJWTIDP([AddOrgJWTIDPRequest](#addorgjwtidprequest)) +[AddOrgJWTIDPResponse](#addorgjwtidpresponse) + +Add a new jwt identity provider configuration in the organisation + + + + POST: /idps/jwt + + +### DeactivateOrgIDP + +> **rpc** DeactivateOrgIDP([DeactivateOrgIDPRequest](#deactivateorgidprequest)) +[DeactivateOrgIDPResponse](#deactivateorgidpresponse) + +Deactivate identity provider configuration +Users will not be able to use this provider for login (e.g Google, Microsoft, AD, etc) +Returns error if already deactivated + + + + POST: /idps/{idp_id}/_deactivate + + +### ReactivateOrgIDP + +> **rpc** ReactivateOrgIDP([ReactivateOrgIDPRequest](#reactivateorgidprequest)) +[ReactivateOrgIDPResponse](#reactivateorgidpresponse) + +Activate identity provider configuration +Returns error if not deactivated + + + + POST: /idps/{idp_id}/_reactivate + + +### RemoveOrgIDP + +> **rpc** RemoveOrgIDP([RemoveOrgIDPRequest](#removeorgidprequest)) +[RemoveOrgIDPResponse](#removeorgidpresponse) + +Removes identity provider configuration +Will remove all linked providers of this configuration on the users + + + + DELETE: /idps/{idp_id} + + +### UpdateOrgIDP + +> **rpc** UpdateOrgIDP([UpdateOrgIDPRequest](#updateorgidprequest)) +[UpdateOrgIDPResponse](#updateorgidpresponse) + +Change identity provider configuration of the organisation + + + + PUT: /idps/{idp_id} + + +### UpdateOrgIDPOIDCConfig + +> **rpc** UpdateOrgIDPOIDCConfig([UpdateOrgIDPOIDCConfigRequest](#updateorgidpoidcconfigrequest)) +[UpdateOrgIDPOIDCConfigResponse](#updateorgidpoidcconfigresponse) + +Change OIDC identity provider configuration of the organisation + + + + PUT: /idps/{idp_id}/oidc_config + + +### UpdateOrgIDPJWTConfig + +> **rpc** UpdateOrgIDPJWTConfig([UpdateOrgIDPJWTConfigRequest](#updateorgidpjwtconfigrequest)) +[UpdateOrgIDPJWTConfigResponse](#updateorgidpjwtconfigresponse) + +Change JWT identity provider configuration of the organisation + + + + PUT: /idps/{idp_id}/jwt_config + + +### ListActions + +> **rpc** ListActions([ListActionsRequest](#listactionsrequest)) +[ListActionsResponse](#listactionsresponse) + + + + + + POST: /actions/_search + + +### GetAction + +> **rpc** GetAction([GetActionRequest](#getactionrequest)) +[GetActionResponse](#getactionresponse) + + + + + + GET: /actions/{id} + + +### CreateAction + +> **rpc** CreateAction([CreateActionRequest](#createactionrequest)) +[CreateActionResponse](#createactionresponse) + + + + + + POST: /actions + + +### UpdateAction + +> **rpc** UpdateAction([UpdateActionRequest](#updateactionrequest)) +[UpdateActionResponse](#updateactionresponse) + + + + + + PUT: /actions/{id} + + +### DeactivateAction + +> **rpc** DeactivateAction([DeactivateActionRequest](#deactivateactionrequest)) +[DeactivateActionResponse](#deactivateactionresponse) + + + + + + POST: /actions/{id}/_deactivate + + +### ReactivateAction + +> **rpc** ReactivateAction([ReactivateActionRequest](#reactivateactionrequest)) +[ReactivateActionResponse](#reactivateactionresponse) + + + + + + POST: /actions/{id}/_reactivate + + +### DeleteAction + +> **rpc** DeleteAction([DeleteActionRequest](#deleteactionrequest)) +[DeleteActionResponse](#deleteactionresponse) + + + + + + DELETE: /actions/{id} + + +### ListFlowTypes + +> **rpc** ListFlowTypes([ListFlowTypesRequest](#listflowtypesrequest)) +[ListFlowTypesResponse](#listflowtypesresponse) + + + + + + POST: /flows/types/_search + + +### ListFlowTriggerTypes + +> **rpc** ListFlowTriggerTypes([ListFlowTriggerTypesRequest](#listflowtriggertypesrequest)) +[ListFlowTriggerTypesResponse](#listflowtriggertypesresponse) + + + + + + POST: /flows/{type}/triggers/_search + + +### GetFlow + +> **rpc** GetFlow([GetFlowRequest](#getflowrequest)) +[GetFlowResponse](#getflowresponse) + + + + + + GET: /flows/{type} + + +### ClearFlow + +> **rpc** ClearFlow([ClearFlowRequest](#clearflowrequest)) +[ClearFlowResponse](#clearflowresponse) + + + + + + POST: /flows/{type}/_clear + + +### SetTriggerActions + +> **rpc** SetTriggerActions([SetTriggerActionsRequest](#settriggeractionsrequest)) +[SetTriggerActionsResponse](#settriggeractionsresponse) + + + + + + POST: /flows/{flow_type}/trigger/{trigger_type} + + + + + + + +## Messages + + +### ActionQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.action_id_query | zitadel.action.v1.ActionIDQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.action_name_query | zitadel.action.v1.ActionNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.action_state_query | zitadel.action.v1.ActionStateQuery | - | | + + + + +### ActivateCustomLabelPolicyRequest +This is an empty request + + + + +### ActivateCustomLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddAPIAppRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| auth_method_type | zitadel.app.v1.APIAuthMethodType | - | enum.defined_only: true
| + + + + +### AddAPIAppResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| app_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| client_id | string | - | | +| client_secret | string | - | | + + + + +### AddAppKeyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| type | zitadel.authn.v1.KeyType | - | enum.defined_only: true
enum.not_in: [0]
| +| expiration_date | google.protobuf.Timestamp | - | | + + + + +### AddAppKeyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| key_details | bytes | - | | + + + + +### AddCustomLabelPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| primary_color | string | - | string.max_len: 50
| +| hide_login_name_suffix | bool | hides the org suffix on the login form if the scope \"urn:zitadel:iam:org:domain:primary:{domainname}\" is set | | +| warn_color | string | - | string.max_len: 50
| +| background_color | string | - | string.max_len: 50
| +| font_color | string | - | string.max_len: 50
| +| primary_color_dark | string | - | string.max_len: 50
| +| background_color_dark | string | - | string.max_len: 50
| +| warn_color_dark | string | - | string.max_len: 50
| +| font_color_dark | string | - | string.max_len: 50
| +| disable_watermark | bool | - | | + + + + +### AddCustomLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomLockoutPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| max_password_attempts | uint32 | - | | + + + + +### AddCustomLockoutPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| allow_username_password | bool | - | | +| allow_register | bool | - | | +| allow_external_idp | bool | - | | +| force_mfa | bool | - | | +| passwordless_type | zitadel.policy.v1.PasswordlessType | - | enum.defined_only: true
| +| hide_password_reset | bool | - | | +| ignore_unknown_usernames | bool | - | | +| default_redirect_uri | string | - | | +| password_check_lifetime | google.protobuf.Duration | - | | +| external_login_check_lifetime | google.protobuf.Duration | - | | +| mfa_init_skip_lifetime | google.protobuf.Duration | - | | +| second_factor_check_lifetime | google.protobuf.Duration | - | | +| multi_factor_check_lifetime | google.protobuf.Duration | - | | +| second_factors | repeated zitadel.policy.v1.SecondFactorType | - | | +| multi_factors | repeated zitadel.policy.v1.MultiFactorType | - | | +| idps | repeated AddCustomLoginPolicyRequest.IDP | - | | +| allow_domain_discovery | bool | If set to true, the suffix (@domain.com) of an unknown username input on the login screen will be matched against the org domains and will redirect to the registration of that organisation on success. | | +| disable_login_with_email | bool | - | | +| disable_login_with_phone | bool | - | | + + + + +### AddCustomLoginPolicyRequest.IDP + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| ownerType | zitadel.idp.v1.IDPOwnerType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### AddCustomLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomNotificationPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| password_change | bool | - | | + + + + +### AddCustomNotificationPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomPasswordAgePolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| max_age_days | uint32 | - | | +| expire_warn_days | uint32 | - | | + + + + +### AddCustomPasswordAgePolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomPasswordComplexityPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| min_length | uint64 | - | | +| has_uppercase | bool | - | | +| has_lowercase | bool | - | | +| has_number | bool | - | | +| has_symbol | bool | - | | + + + + +### AddCustomPasswordComplexityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddCustomPrivacyPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| tos_link | string | - | | +| privacy_link | string | - | | +| help_link | string | - | | + + + + +### AddCustomPrivacyPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddHumanUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.min_len: 1
string.max_len: 200
| +| profile | AddHumanUserRequest.Profile | - | message.required: true
| +| email | AddHumanUserRequest.Email | - | message.required: true
| +| phone | AddHumanUserRequest.Phone | - | | +| initial_password | string | - | | + + + + +### AddHumanUserRequest.Email + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.email: true
| +| is_email_verified | bool | - | | + + + + +### AddHumanUserRequest.Phone + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| phone | string | has to be a global number | string.min_len: 1
string.max_len: 50
string.prefix: +
| +| is_phone_verified | bool | - | | + + + + +### AddHumanUserRequest.Profile + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.min_len: 1
string.max_len: 200
| +| last_name | string | - | string.min_len: 1
string.max_len: 200
| +| nick_name | string | - | string.max_len: 200
| +| display_name | string | - | string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| +| gender | zitadel.user.v1.Gender | - | | + + + + +### AddHumanUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddIDPToLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| ownerType | zitadel.idp.v1.IDPOwnerType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### AddIDPToLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddMachineKeyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
| +| type | zitadel.authn.v1.KeyType | - | enum.defined_only: true
enum.not_in: [0]
| +| expiration_date | google.protobuf.Timestamp | - | | + + + + +### AddMachineKeyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key_id | string | - | | +| key_details | bytes | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddMachineUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| access_token_type | zitadel.user.v1.AccessTokenType | - | enum.defined_only: true
| + + + + +### AddMachineUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddMultiFactorToLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### AddMultiFactorToLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddOIDCAppRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| redirect_uris | repeated string | - | | +| response_types | repeated zitadel.app.v1.OIDCResponseType | - | | +| grant_types | repeated zitadel.app.v1.OIDCGrantType | - | | +| app_type | zitadel.app.v1.OIDCAppType | - | enum.defined_only: true
| +| auth_method_type | zitadel.app.v1.OIDCAuthMethodType | - | enum.defined_only: true
| +| post_logout_redirect_uris | repeated string | - | | +| version | zitadel.app.v1.OIDCVersion | - | enum.defined_only: true
| +| dev_mode | bool | - | | +| access_token_type | zitadel.app.v1.OIDCTokenType | - | enum.defined_only: true
| +| access_token_role_assertion | bool | - | | +| id_token_role_assertion | bool | - | | +| id_token_userinfo_assertion | bool | - | | +| clock_skew | google.protobuf.Duration | - | duration.lte.seconds: 5
duration.lte.nanos: 0
duration.gte.seconds: 0
duration.gte.nanos: 0
| +| additional_origins | repeated string | - | | + + + + +### AddOIDCAppResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| app_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| client_id | string | - | | +| client_secret | string | - | | +| none_compliant | bool | - | | +| compliance_problems | repeated zitadel.v1.LocalizedMessage | - | | + + + + +### AddOrgDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### AddOrgDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddOrgJWTIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| +| styling_type | zitadel.idp.v1.IDPStylingType | - | enum.defined_only: true
| +| jwt_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| keys_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| header_name | string | - | string.min_len: 1
string.max_len: 200
| +| auto_register | bool | - | | + + + + +### AddOrgJWTIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| idp_id | string | - | | + + + + +### AddOrgMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | - | | + + + + +### AddOrgMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddOrgOIDCIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| +| styling_type | zitadel.idp.v1.IDPStylingType | - | enum.defined_only: true
| +| client_id | string | - | string.min_len: 1
string.max_len: 200
| +| client_secret | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| scopes | repeated string | - | | +| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| +| username_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| +| auto_register | bool | - | | + + + + +### AddOrgOIDCIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| idp_id | string | - | | + + + + +### AddOrgRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### AddOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddPasswordlessRegistrationRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### AddPasswordlessRegistrationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| link | string | - | | +| expiration | google.protobuf.Duration | - | | + + + + +### AddPersonalAccessTokenRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
| +| expiration_date | google.protobuf.Timestamp | - | | + + + + +### AddPersonalAccessTokenResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| token_id | string | - | | +| token | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddProjectGrantMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | - | | + + + + +### AddProjectGrantMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddProjectGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| granted_org_id | string | - | string.min_len: 1
string.max_len: 200
| +| role_keys | repeated string | - | | + + + + +### AddProjectGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| grant_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddProjectMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | - | | + + + + +### AddProjectMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddProjectRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| +| project_role_assertion | bool | - | | +| project_role_check | bool | - | | +| has_project_check | bool | - | | +| private_labeling_setting | zitadel.project.v1.PrivateLabelingSetting | - | enum.defined_only: true
| + + + + +### AddProjectResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddProjectRoleRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| role_key | string | - | string.min_len: 1
string.max_len: 200
| +| display_name | string | - | string.min_len: 1
string.max_len: 200
| +| group | string | - | string.max_len: 200
| + + + + +### AddProjectRoleResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddSAMLAppRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) metadata.metadata_xml | bytes | - | bytes.max_len: 500000
| +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) metadata.metadata_url | string | - | string.max_len: 200
| + + + + +### AddSAMLAppResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| app_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddSecondFactorToLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### AddSecondFactorToLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddUserGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| project_grant_id | string | - | string.max_len: 200
| +| role_keys | repeated string | - | | + + + + +### AddUserGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_grant_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### BulkAddProjectRolesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated BulkAddProjectRolesRequest.Role | - | | + + + + +### BulkAddProjectRolesRequest.Role + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| +| display_name | string | - | string.min_len: 1
string.max_len: 200
| +| group | string | - | string.max_len: 200
| + + + + +### BulkAddProjectRolesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### BulkRemoveOrgMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| keys | repeated string | - | repeated.items.string.min_len: 1
repeated.items.string.max_len: 200
| + + + + +### BulkRemoveOrgMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### BulkRemoveUserGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| grant_id | repeated string | - | | + + + + +### BulkRemoveUserGrantResponse + + + + + +### BulkRemoveUserMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| keys | repeated string | - | repeated.items.string.min_len: 1
repeated.items.string.max_len: 200
| + + + + +### BulkRemoveUserMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### BulkSetOrgMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| metadata | repeated BulkSetOrgMetadataRequest.Metadata | - | | + + + + +### BulkSetOrgMetadataRequest.Metadata + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| +| value | bytes | - | bytes.min_len: 1
bytes.max_len: 500000
| + + + + +### BulkSetOrgMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### BulkSetUserMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| metadata | repeated BulkSetUserMetadataRequest.Metadata | - | | + + + + +### BulkSetUserMetadataRequest.Metadata + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| +| value | bytes | - | bytes.min_len: 1
bytes.max_len: 500000
| + + + + +### BulkSetUserMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ClearFlowRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | string | id of the flow | | + + + + +### ClearFlowResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### CreateActionRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| +| script | string | - | string.min_len: 1
string.max_len: 2000
| +| timeout | google.protobuf.Duration | - | duration.lte.seconds: 20
duration.lte.nanos: 0
duration.gte.seconds: 0
duration.gte.nanos: 0
| +| allowed_to_fail | bool | - | | + + + + +### CreateActionResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| id | string | - | | + + + + +### DeactivateActionRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | + + + + +### DeactivateActionResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateAppRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateAppResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateOrgIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateOrgIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateOrgRequest +This is an empty request + + + + +### DeactivateOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateProjectGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateProjectGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateProjectRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateProjectResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateUserGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateUserGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeactivateUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### DeactivateUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### DeleteActionRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | + + + + +### DeleteActionResponse + + + + + +### GenerateMachineSecretRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
| + + + + +### GenerateMachineSecretResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| client_id | string | - | | +| client_secret | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### GenerateOrgDomainValidationRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| +| type | zitadel.org.v1.DomainValidationType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### GenerateOrgDomainValidationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| token | string | - | | +| url | string | - | | + + + + +### GetActionRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | + + + + +### GetActionResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| action | zitadel.action.v1.Action | - | | + + + + +### GetAppByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetAppByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| app | zitadel.app.v1.App | - | | + + + + +### GetAppKeyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| key_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetAppKeyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | zitadel.authn.v1.Key | - | | + + + + +### GetCustomDomainClaimedMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomDomainClaimedMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomInitMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomInitMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomLoginTextsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomLoginTextsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.LoginCustomText | - | | + + + + +### GetCustomPasswordChangeMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomPasswordChangeMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomPasswordResetMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomPasswordResetMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomPasswordlessRegistrationMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomPasswordlessRegistrationMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomVerifyEmailMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomVerifyEmailMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetCustomVerifyPhoneMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetCustomVerifyPhoneMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultDomainClaimedMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultDomainClaimedMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultInitMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultInitMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultLabelPolicyRequest +This is an empty request + + + + +### GetDefaultLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LabelPolicy | - | | + + + + +### GetDefaultLockoutPolicyRequest +This is an empty request + + + + +### GetDefaultLockoutPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LockoutPolicy | - | | + + + + +### GetDefaultLoginPolicyRequest + + + + + +### GetDefaultLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LoginPolicy | - | | + + + + +### GetDefaultLoginTextsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultLoginTextsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.LoginCustomText | - | | + + + + +### GetDefaultNotificationPolicyRequest +This is an empty request + + + + +### GetDefaultNotificationPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.NotificationPolicy | - | | + + + + +### GetDefaultPasswordAgePolicyRequest +This is an empty request + + + + +### GetDefaultPasswordAgePolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PasswordAgePolicy | - | | + + + + +### GetDefaultPasswordChangeMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultPasswordChangeMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultPasswordComplexityPolicyRequest +This is an empty request + + + + +### GetDefaultPasswordComplexityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | | + + + + +### GetDefaultPasswordResetMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultPasswordResetMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultPasswordlessRegistrationMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultPasswordlessRegistrationMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultPrivacyPolicyRequest +This is an empty request + + + + +### GetDefaultPrivacyPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PrivacyPolicy | - | | + + + + +### GetDefaultVerifyEmailMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultVerifyEmailMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDefaultVerifyPhoneMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetDefaultVerifyPhoneMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| custom_text | zitadel.text.v1.MessageCustomText | - | | + + + + +### GetDomainPolicyRequest + + + + + +### GetDomainPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.DomainPolicy | - | | + + + + +### GetFlowRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | string | id of the flow | | + + + + +### GetFlowResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| flow | zitadel.action.v1.Flow | - | | + + + + +### GetGrantedProjectByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetGrantedProjectByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| granted_project | zitadel.project.v1.GrantedProject | - | | + + + + +### GetHumanEmailRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetHumanEmailResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| email | zitadel.user.v1.Email | - | | + + + + +### GetHumanPhoneRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetHumanPhoneResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| phone | zitadel.user.v1.Phone | - | | + + + + +### GetHumanProfileRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetHumanProfileResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| profile | zitadel.user.v1.Profile | - | | + + + + +### GetIAMRequest +This is an empty request + + + + +### GetIAMResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| global_org_id | string | deprecated: use default_org_id instead | | +| iam_project_id | string | - | | +| default_org_id | string | - | | + + + + +### GetLabelPolicyRequest +This is an empty request + + + + +### GetLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LabelPolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.LabelPolicy | | + + + + +### GetLockoutPolicyRequest +This is an empty request + + + + +### GetLockoutPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LockoutPolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.LockoutPolicy | | + + + + +### GetLoginPolicyRequest + + + + + +### GetLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LoginPolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.LoginPolicy | | + + + + +### GetMachineKeyByIDsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| key_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetMachineKeyByIDsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | zitadel.authn.v1.Key | - | | + + + + +### GetMyOrgRequest +This is an empty request + + + + +### GetMyOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org | zitadel.org.v1.Org | - | | + + + + +### GetNotificationPolicyRequest +This is an empty request + + + + +### GetNotificationPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.NotificationPolicy | - | | + + + + +### GetOIDCInformationRequest +This is an empty request + + + + +### GetOIDCInformationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| issuer | string | - | | +| discovery_endpoint | string | - | | + + + + +### GetOrgByDomainGlobalRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetOrgByDomainGlobalResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org | zitadel.org.v1.Org | - | | + + + + +### GetOrgIAMPolicyRequest + + + + + +### GetOrgIAMPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.OrgIAMPolicy | - | | + + + + +### GetOrgIDPByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetOrgIDPByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp | zitadel.idp.v1.IDP | - | | + + + + +### GetOrgMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetOrgMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| metadata | zitadel.metadata.v1.Metadata | - | | + + + + +### GetPasswordAgePolicyRequest +This is an empty request + + + + +### GetPasswordAgePolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PasswordAgePolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.PasswordAgePolicy | | + + + + +### GetPasswordComplexityPolicyRequest + + + + + +### GetPasswordComplexityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PasswordComplexityPolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.PasswordComplexityPolicy | | + + + + +### GetPersonalAccessTokenByIDsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| token_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetPersonalAccessTokenByIDsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| token | zitadel.user.v1.PersonalAccessToken | - | | + + + + +### GetPreviewLabelPolicyRequest +This is an empty request + + + + +### GetPreviewLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.LabelPolicy | - | | +| is_default | bool | deprecated: is_default is also defined in zitadel.policy.v1.LabelPolicy | | + + + + +### GetPrivacyPolicyRequest +This is an empty request + + + + +### GetPrivacyPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| policy | zitadel.policy.v1.PrivacyPolicy | - | | + + + + +### GetProjectByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetProjectByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project | zitadel.project.v1.Project | - | | + + + + +### GetProjectGrantByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetProjectGrantByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_grant | zitadel.project.v1.GrantedProject | - | | + + + + +### GetSupportedLanguagesRequest +This is an empty request + + + + +### GetSupportedLanguagesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| languages | repeated string | - | | + + + + +### GetUserByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetUserByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user | zitadel.user.v1.User | - | | + + + + +### GetUserByLoginNameGlobalRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| login_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetUserByLoginNameGlobalResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user | zitadel.user.v1.User | - | | + + + + +### GetUserGrantByIDRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetUserGrantByIDResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_grant | zitadel.user.v1.UserGrant | - | | + + + + +### GetUserMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| key | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetUserMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| metadata | zitadel.metadata.v1.Metadata | - | | + + + + +### HealthzRequest +This is an empty request + + + + +### HealthzResponse +This is an empty response + + + + +### IDPQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.idp_id_query | zitadel.idp.v1.IDPIDQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.idp_name_query | zitadel.idp.v1.IDPNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.owner_type_query | zitadel.idp.v1.IDPOwnerTypeQuery | - | | + + + + +### ImportHumanUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.min_len: 1
string.max_len: 200
| +| profile | ImportHumanUserRequest.Profile | - | message.required: true
| +| email | ImportHumanUserRequest.Email | - | message.required: true
| +| phone | ImportHumanUserRequest.Phone | - | | +| password | string | - | | +| hashed_password | ImportHumanUserRequest.HashedPassword | - | | +| password_change_required | bool | - | | +| request_passwordless_registration | bool | - | | +| otp_code | string | - | | +| idps | repeated ImportHumanUserRequest.IDP | - | | + + + + +### ImportHumanUserRequest.Email + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.email: true
| +| is_email_verified | bool | - | | + + + + +### ImportHumanUserRequest.HashedPassword + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| value | string | - | | +| algorithm | string | - | | + + + + +### ImportHumanUserRequest.IDP + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| config_id | string | internal id of the IDP in ZITADEL | string.min_len: 1
string.max_len: 200
| +| external_user_id | string | id of the user on the IDP | string.min_len: 1
string.max_len: 200
| +| display_name | string | (display) name of the user on the IDP | string.max_len: 200
| + + + + +### ImportHumanUserRequest.Phone + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| phone | string | has to be a global number | string.min_len: 1
string.max_len: 50
string.prefix: +
| +| is_phone_verified | bool | - | | + + + + +### ImportHumanUserRequest.Profile + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.min_len: 1
string.max_len: 200
| +| last_name | string | - | string.min_len: 1
string.max_len: 200
| +| nick_name | string | - | string.max_len: 200
| +| display_name | string | - | string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| +| gender | zitadel.user.v1.Gender | - | | + + + + +### ImportHumanUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| passwordless_registration | ImportHumanUserResponse.PasswordlessRegistration | - | | + + + + +### ImportHumanUserResponse.PasswordlessRegistration + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| link | string | - | | +| lifetime | google.protobuf.Duration | deprecated: use expiration instead | | +| expiration | google.protobuf.Duration | - | | + + + + +### IsUserUniqueRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.max_len: 200
| +| email | string | - | string.max_len: 200
| + + + + +### IsUserUniqueResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| is_unique | bool | - | | + + + + +### ListActionsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| sorting_column | zitadel.action.v1.ActionFieldName | the field the result is sorted | | +| queries | repeated ActionQuery | criteria the client is looking for | | + + + + +### ListActionsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.action.v1.ActionFieldName | - | | +| result | repeated zitadel.action.v1.Action | - | | + + + + +### ListAllProjectGrantsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.project.v1.AllProjectGrantQuery | criterias the client is looking for | | + + + + +### ListAllProjectGrantsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.project.v1.GrantedProject | - | | + + + + +### ListAppChangesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.change.v1.ChangeQuery | list limitations and ordering | | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ListAppChangesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.change.v1.Change | zitadel.v1.ListDetails details = 1; was always returned empty (as we cannot get the necessary infos) | | + + + + +### ListAppKeysRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| project_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ListAppKeysResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.authn.v1.Key | - | | + + + + +### ListAppsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.app.v1.AppQuery | criterias the client is looking for | | + + + + +### ListAppsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.app.v1.App | - | | + + + + +### ListFlowTriggerTypesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | string | - | | + + + + +### ListFlowTriggerTypesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.action.v1.TriggerType | - | | + + + + +### ListFlowTypesRequest + + + + + +### ListFlowTypesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.action.v1.FlowType | - | | + + + + +### ListGrantedProjectRolesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.project.v1.RoleQuery | criterias the client is looking for | | + + + + +### ListGrantedProjectRolesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.project.v1.Role | - | | + + + + +### ListGrantedProjectsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.project.v1.ProjectQuery | criterias the client is looking for | | + + + + +### ListGrantedProjectsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.project.v1.GrantedProject | - | | + + + + +### ListHumanAuthFactorsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ListHumanAuthFactorsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.user.v1.AuthFactor | - | | + + + + +### ListHumanLinkedIDPsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | + + + + +### ListHumanLinkedIDPsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.idp.v1.IDPUserLink | - | | + + + + +### ListHumanPasswordlessRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ListHumanPasswordlessResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.user.v1.WebAuthNToken | - | | + + + + +### ListLoginPolicyIDPsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | - | | + + + + +### ListLoginPolicyIDPsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.idp.v1.IDPLoginPolicyLink | - | | + + + + +### ListLoginPolicyMultiFactorsRequest + + + + + +### ListLoginPolicyMultiFactorsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.policy.v1.MultiFactorType | - | | + + + + +### ListLoginPolicySecondFactorsRequest + + + + + +### ListLoginPolicySecondFactorsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.policy.v1.SecondFactorType | - | | + + + + +### ListMachineKeysRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | + + + + +### ListMachineKeysResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.authn.v1.Key | - | | + + + + +### ListOrgChangesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.change.v1.ChangeQuery | list limitations and ordering | | + + + + +### ListOrgChangesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.change.v1.Change | zitadel.v1.ListDetails details = 1; was always returned empty (as we cannot get the necessary infos) | | + + + + +### ListOrgDomainsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.org.v1.DomainSearchQuery | criterias the client is looking for | | + + + + +### ListOrgDomainsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.org.v1.Domain | - | | + + + + +### ListOrgIDPsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| sorting_column | zitadel.idp.v1.IDPFieldName | the field the result is sorted | | +| queries | repeated IDPQuery | criterias the client is looking for | | + + + + +### ListOrgIDPsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.idp.v1.IDPFieldName | - | | +| result | repeated zitadel.idp.v1.IDP | - | | + + + + +### ListOrgMemberRolesRequest +This is an empty request + + + + +### ListOrgMemberRolesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated string | - | | + + + + +### ListOrgMembersRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for | | + + + + +### ListOrgMembersResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | list limitations and ordering | | +| result | repeated zitadel.member.v1.Member | criterias the client is looking for | | + + + + +### ListOrgMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | - | | +| queries | repeated zitadel.metadata.v1.MetadataQuery | - | | + + + + +### ListOrgMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.metadata.v1.Metadata | - | | + + + + +### ListPersonalAccessTokensRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | + + + + +### ListPersonalAccessTokensResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.user.v1.PersonalAccessToken | - | | + + + + +### ListProjectChangesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.change.v1.ChangeQuery | list limitations and ordering | | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ListProjectChangesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.change.v1.Change | zitadel.v1.ListDetails details = 1; was always returned empty (as we cannot get the necessary infos) | | + + + + +### ListProjectGrantChangesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.change.v1.ChangeQuery | list limitations and ordering | | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ListProjectGrantChangesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.change.v1.Change | zitadel.v1.ListDetails details = 1; was always returned empty (as we cannot get the necessary infos) | | + + + + +### ListProjectGrantMemberRolesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | - | | +| result | repeated string | - | | + + + + +### ListProjectGrantMemberRolesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated string | - | | + + + + +### ListProjectGrantMembersRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for | | + + + + +### ListProjectGrantMembersResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.member.v1.Member | - | | + + + + +### ListProjectGrantsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.project.v1.ProjectGrantQuery | criterias the client is looking for | | + + + + +### ListProjectGrantsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.project.v1.GrantedProject | - | | + + + + +### ListProjectMemberRolesRequest +This is an empty request + + + + +### ListProjectMemberRolesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated string | - | | + + + + +### ListProjectMembersRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.member.v1.SearchQuery | criterias the client is looking for | | + + + + +### ListProjectMembersResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.member.v1.Member | - | | + + + + +### ListProjectRolesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.project.v1.RoleQuery | criterias the client is looking for | | + + + + +### ListProjectRolesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.project.v1.Role | - | | + + + + +### ListProjectsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.project.v1.ProjectQuery | criterias the client is looking for | | + + + + +### ListProjectsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.project.v1.Project | - | | + + + + +### ListUserChangesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.change.v1.ChangeQuery | list limitations and ordering | | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ListUserChangesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated zitadel.change.v1.Change | zitadel.v1.ListDetails details = 1; was always returned empty (as we cannot get the necessary infos) | | + + + + +### ListUserGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| queries | repeated zitadel.user.v1.UserGrantQuery | criterias the client is looking for | | + + + + +### ListUserGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.user.v1.UserGrant | - | | + + + + +### ListUserMembershipsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | list limitations and ordering | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | the field the result is sorted | | +| queries | repeated zitadel.user.v1.MembershipQuery | criterias the client is looking for | | + + + + +### ListUserMembershipsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.user.v1.Membership | - | | + + + + +### ListUserMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | - | | +| queries | repeated zitadel.metadata.v1.MetadataQuery | - | | + + + + +### ListUserMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.metadata.v1.Metadata | - | | + + + + +### ListUsersRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| sorting_column | zitadel.user.v1.UserFieldName | the field the result is sorted | | +| queries | repeated zitadel.user.v1.SearchQuery | criterias the client is looking for | | + + + + +### ListUsersResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.user.v1.UserFieldName | - | | +| result | repeated zitadel.user.v1.User | - | | + + + + +### LockUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### LockUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateActionRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | + + + + +### ReactivateActionResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateAppRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ReactivateAppResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateOrgIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ReactivateOrgIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateOrgRequest +This is an empty request + + + + +### ReactivateOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateProjectGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ReactivateProjectGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateProjectRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ReactivateProjectResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateUserGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ReactivateUserGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ReactivateUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ReactivateUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RegenerateAPIClientSecretRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RegenerateAPIClientSecretResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| client_secret | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RegenerateOIDCClientSecretRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RegenerateOIDCClientSecretResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| client_secret | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveAppKeyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| key_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveAppKeyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveAppRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveAppResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveCustomLabelPolicyFontRequest +This is an empty request + + + + +### RemoveCustomLabelPolicyFontResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveCustomLabelPolicyIconDarkRequest +This is an empty request + + + + +### RemoveCustomLabelPolicyIconDarkResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveCustomLabelPolicyIconRequest +This is an empty request + + + + +### RemoveCustomLabelPolicyIconResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveCustomLabelPolicyLogoDarkRequest +This is an empty request + + + + +### RemoveCustomLabelPolicyLogoDarkResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveCustomLabelPolicyLogoRequest +This is an empty request + + + + +### RemoveCustomLabelPolicyLogoResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveHumanAuthFactorOTPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveHumanAuthFactorOTPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveHumanAuthFactorU2FRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| token_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveHumanAuthFactorU2FResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveHumanAvatarRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveHumanAvatarResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveHumanLinkedIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| linked_user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveHumanLinkedIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveHumanPasswordlessRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| token_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveHumanPasswordlessResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveHumanPhoneRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveHumanPhoneResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveIDPFromLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveIDPFromLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMachineKeyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| key_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveMachineKeyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMachineSecretRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveMachineSecretResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveMultiFactorFromLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.MultiFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### RemoveMultiFactorFromLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveOrgDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveOrgDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveOrgIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveOrgIDPResponse +This is an empty response + + + + +### RemoveOrgMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveOrgMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveOrgMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveOrgMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveOrgRequest + + + + + +### RemoveOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemovePersonalAccessTokenRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| token_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemovePersonalAccessTokenResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveProjectGrantMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveProjectGrantMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveProjectGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveProjectGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveProjectMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveProjectMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveProjectRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveProjectResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveProjectRoleRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| role_key | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveProjectRoleResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveSecondFactorFromLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.policy.v1.SecondFactorType | - | enum.defined_only: true
enum.not_in: [0]
| + + + + +### RemoveSecondFactorFromLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveUserGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveUserGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveUserMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| key | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveUserMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResendHumanEmailVerificationRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResendHumanEmailVerificationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResendHumanInitializationRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| email | string | - | string.email: true
string.ignore_empty: true
| + + + + +### ResendHumanInitializationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResendHumanPhoneVerificationRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResendHumanPhoneVerificationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomDomainClaimedMessageTextToDefaultRequest +This is an empty request + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomDomainClaimedMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomInitMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomInitMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomLoginTextsToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomLoginTextsToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomPasswordChangeMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomPasswordChangeMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomPasswordResetMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomPasswordResetMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomPasswordlessRegistrationMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomPasswordlessRegistrationMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomVerifyEmailMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomVerifyEmailMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetCustomVerifyPhoneMessageTextToDefaultRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ResetCustomVerifyPhoneMessageTextToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetLabelPolicyToDefaultRequest +This is an empty request + + + + +### ResetLabelPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetLockoutPolicyToDefaultRequest +This is an empty request + + + + +### ResetLockoutPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetLoginPolicyToDefaultRequest + + + + + +### ResetLoginPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetNotificationPolicyToDefaultRequest +This is an empty request + + + + +### ResetNotificationPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetPasswordAgePolicyToDefaultRequest +This is an empty request + + + + +### ResetPasswordAgePolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetPasswordComplexityPolicyToDefaultRequest +This is an empty request + + + + +### ResetPasswordComplexityPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ResetPrivacyPolicyToDefaultRequest +This is an empty request + + + + +### ResetPrivacyPolicyToDefaultResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SendHumanResetPasswordNotificationRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| type | SendHumanResetPasswordNotificationRequest.Type | - | enum.defined_only: true
| + + + + +### SendHumanResetPasswordNotificationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SendPasswordlessRegistrationRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### SendPasswordlessRegistrationResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomDomainClaimedMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetCustomDomainClaimedMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomInitMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetCustomInitMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomLoginTextsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| select_account_text | zitadel.text.v1.SelectAccountScreenText | - | | +| login_text | zitadel.text.v1.LoginScreenText | - | | +| password_text | zitadel.text.v1.PasswordScreenText | - | | +| username_change_text | zitadel.text.v1.UsernameChangeScreenText | - | | +| username_change_done_text | zitadel.text.v1.UsernameChangeDoneScreenText | - | | +| init_password_text | zitadel.text.v1.InitPasswordScreenText | - | | +| init_password_done_text | zitadel.text.v1.InitPasswordDoneScreenText | - | | +| email_verification_text | zitadel.text.v1.EmailVerificationScreenText | - | | +| email_verification_done_text | zitadel.text.v1.EmailVerificationDoneScreenText | - | | +| initialize_user_text | zitadel.text.v1.InitializeUserScreenText | - | | +| initialize_done_text | zitadel.text.v1.InitializeUserDoneScreenText | - | | +| init_mfa_prompt_text | zitadel.text.v1.InitMFAPromptScreenText | - | | +| init_mfa_otp_text | zitadel.text.v1.InitMFAOTPScreenText | - | | +| init_mfa_u2f_text | zitadel.text.v1.InitMFAU2FScreenText | - | | +| init_mfa_done_text | zitadel.text.v1.InitMFADoneScreenText | - | | +| mfa_providers_text | zitadel.text.v1.MFAProvidersText | - | | +| verify_mfa_otp_text | zitadel.text.v1.VerifyMFAOTPScreenText | - | | +| verify_mfa_u2f_text | zitadel.text.v1.VerifyMFAU2FScreenText | - | | +| passwordless_text | zitadel.text.v1.PasswordlessScreenText | - | | +| password_change_text | zitadel.text.v1.PasswordChangeScreenText | - | | +| password_change_done_text | zitadel.text.v1.PasswordChangeDoneScreenText | - | | +| password_reset_done_text | zitadel.text.v1.PasswordResetDoneScreenText | - | | +| registration_option_text | zitadel.text.v1.RegistrationOptionScreenText | - | | +| registration_user_text | zitadel.text.v1.RegistrationUserScreenText | - | | +| registration_org_text | zitadel.text.v1.RegistrationOrgScreenText | - | | +| linking_user_done_text | zitadel.text.v1.LinkingUserDoneScreenText | - | | +| external_user_not_found_text | zitadel.text.v1.ExternalUserNotFoundScreenText | - | | +| success_login_text | zitadel.text.v1.SuccessLoginScreenText | - | | +| logout_text | zitadel.text.v1.LogoutDoneScreenText | - | | +| footer_text | zitadel.text.v1.FooterText | - | | +| passwordless_prompt_text | zitadel.text.v1.PasswordlessPromptScreenText | - | | +| passwordless_registration_text | zitadel.text.v1.PasswordlessRegistrationScreenText | - | | +| passwordless_registration_done_text | zitadel.text.v1.PasswordlessRegistrationDoneScreenText | - | | +| external_registration_user_overview_text | zitadel.text.v1.ExternalRegistrationUserOverviewScreenText | - | | + + + + +### SetCustomLoginTextsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomPasswordChangeMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetCustomPasswordChangeMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomPasswordResetMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetCustomPasswordResetMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomPasswordlessRegistrationMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetCustomPasswordlessRegistrationMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomVerifyEmailMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetCustomVerifyEmailMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetCustomVerifyPhoneMessageTextRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| language | string | - | string.min_len: 1
string.max_len: 200
| +| title | string | - | string.max_len: 200
| +| pre_header | string | - | string.max_len: 200
| +| subject | string | - | string.max_len: 200
| +| greeting | string | - | string.max_len: 200
| +| text | string | - | string.max_len: 800
| +| button_text | string | - | string.max_len: 200
| +| footer_text | string | - | string.max_len: 200
| + + + + +### SetCustomVerifyPhoneMessageTextResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetHumanInitialPasswordRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
| +| password | string | - | string.min_len: 1
string.max_len: 72
| + + + + +### SetHumanInitialPasswordResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetHumanPasswordRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
| +| password | string | - | string.min_len: 1
string.max_len: 72
| +| no_change_required | bool | - | | + + + + +### SetHumanPasswordResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetOrgMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.min_len: 1
string.max_len: 200
| +| value | bytes | - | bytes.min_len: 1
bytes.max_len: 500000
| + + + + +### SetOrgMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetPrimaryOrgDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### SetPrimaryOrgDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetTriggerActionsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| flow_type | string | id of the flow type | | +| trigger_type | string | id of the trigger type | | +| action_ids | repeated string | - | | + + + + +### SetTriggerActionsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetUserMetadataRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| key | string | - | string.min_len: 1
string.max_len: 200
| +| value | bytes | - | bytes.min_len: 1
bytes.max_len: 500000
| + + + + +### SetUserMetadataResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UnlockUserRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UnlockUserResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateAPIAppConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| auth_method_type | zitadel.app.v1.APIAuthMethodType | - | enum.defined_only: true
| + + + + +### UpdateAPIAppConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateActionRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| script | string | - | string.min_len: 1
string.max_len: 2000
| +| timeout | google.protobuf.Duration | - | duration.lte.seconds: 20
duration.lte.nanos: 0
duration.gte.seconds: 0
duration.gte.nanos: 0
| +| allowed_to_fail | bool | - | | + + + + +### UpdateActionResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateAppRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateAppResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomLabelPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| primary_color | string | - | string.max_len: 50
| +| hide_login_name_suffix | bool | - | | +| warn_color | string | - | string.max_len: 50
| +| background_color | string | - | string.max_len: 50
| +| font_color | string | - | string.max_len: 50
| +| primary_color_dark | string | - | string.max_len: 50
| +| background_color_dark | string | - | string.max_len: 50
| +| warn_color_dark | string | - | string.max_len: 50
| +| font_color_dark | string | - | string.max_len: 50
| +| disable_watermark | bool | - | | + + + + +### UpdateCustomLabelPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomLockoutPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| max_password_attempts | uint32 | - | | + + + + +### UpdateCustomLockoutPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomLoginPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| allow_username_password | bool | - | | +| allow_register | bool | - | | +| allow_external_idp | bool | - | | +| force_mfa | bool | - | | +| passwordless_type | zitadel.policy.v1.PasswordlessType | - | enum.defined_only: true
| +| hide_password_reset | bool | - | | +| ignore_unknown_usernames | bool | - | | +| default_redirect_uri | string | - | | +| password_check_lifetime | google.protobuf.Duration | - | | +| external_login_check_lifetime | google.protobuf.Duration | - | | +| mfa_init_skip_lifetime | google.protobuf.Duration | - | | +| second_factor_check_lifetime | google.protobuf.Duration | - | | +| multi_factor_check_lifetime | google.protobuf.Duration | - | | +| allow_domain_discovery | bool | If set to true, the suffix (@domain.com) of an unknown username input on the login screen will be matched against the org domains and will redirect to the registration of that organisation on success. | | +| disable_login_with_email | bool | - | | +| disable_login_with_phone | bool | - | | + + + + +### UpdateCustomLoginPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomNotificationPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| password_change | bool | - | | + + + + +### UpdateCustomNotificationPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomPasswordAgePolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| max_age_days | uint32 | - | | +| expire_warn_days | uint32 | - | | + + + + +### UpdateCustomPasswordAgePolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomPasswordComplexityPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| min_length | uint64 | - | | +| has_uppercase | bool | - | | +| has_lowercase | bool | - | | +| has_number | bool | - | | +| has_symbol | bool | - | | + + + + +### UpdateCustomPasswordComplexityPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateCustomPrivacyPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| tos_link | string | - | | +| privacy_link | string | - | | +| help_link | string | - | | + + + + +### UpdateCustomPrivacyPolicyResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateHumanEmailRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| email | string | - | string.email: true
| +| is_email_verified | bool | - | | + + + + +### UpdateHumanEmailResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateHumanPhoneRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| phone | string | - | string.min_len: 1
string.max_len: 50
string.prefix: +
| +| is_phone_verified | bool | - | | + + + + +### UpdateHumanPhoneResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateHumanProfileRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| first_name | string | - | string.min_len: 1
string.max_len: 200
| +| last_name | string | - | string.min_len: 1
string.max_len: 200
| +| nick_name | string | - | string.max_len: 200
| +| display_name | string | - | string.min_len: 1
string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| +| gender | zitadel.user.v1.Gender | - | | + + + + +### UpdateHumanProfileResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateMachineRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| access_token_type | zitadel.user.v1.AccessTokenType | - | enum.defined_only: true
| + + + + +### UpdateMachineResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOIDCAppConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| redirect_uris | repeated string | - | | +| response_types | repeated zitadel.app.v1.OIDCResponseType | - | | +| grant_types | repeated zitadel.app.v1.OIDCGrantType | - | | +| app_type | zitadel.app.v1.OIDCAppType | - | enum.defined_only: true
| +| auth_method_type | zitadel.app.v1.OIDCAuthMethodType | - | enum.defined_only: true
| +| post_logout_redirect_uris | repeated string | - | | +| dev_mode | bool | - | | +| access_token_type | zitadel.app.v1.OIDCTokenType | - | enum.defined_only: true
| +| access_token_role_assertion | bool | - | | +| id_token_role_assertion | bool | - | | +| id_token_userinfo_assertion | bool | - | | +| clock_skew | google.protobuf.Duration | - | duration.lte.seconds: 5
duration.lte.nanos: 0
duration.gte.seconds: 0
duration.gte.nanos: 0
| +| additional_origins | repeated string | - | | + + + + +### UpdateOIDCAppConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOrgIDPJWTConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| jwt_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| keys_endpoint | string | - | string.min_len: 1
string.max_len: 200
| +| header_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateOrgIDPJWTConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOrgIDPOIDCConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| client_id | string | - | string.min_len: 1
string.max_len: 200
| +| client_secret | string | - | string.max_len: 200
| +| issuer | string | - | string.min_len: 1
string.max_len: 200
| +| scopes | repeated string | - | | +| display_name_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| +| username_mapping | zitadel.idp.v1.OIDCMappingField | - | enum.defined_only: true
| + + + + +### UpdateOrgIDPOIDCConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOrgIDPRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| styling_type | zitadel.idp.v1.IDPStylingType | - | enum.defined_only: true
| +| auto_register | bool | - | | + + + + +### UpdateOrgIDPResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOrgMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | - | | + + + + +### UpdateOrgMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateOrgRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateOrgResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateProjectGrantMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | - | | + + + + +### UpdateProjectGrantMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateProjectGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| +| role_keys | repeated string | - | | + + + + +### UpdateProjectGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateProjectMemberRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| roles | repeated string | - | | + + + + +### UpdateProjectMemberResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateProjectRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | string.min_len: 1
string.max_len: 200
| +| name | string | - | string.min_len: 1
string.max_len: 200
| +| project_role_assertion | bool | - | | +| project_role_check | bool | - | | +| has_project_check | bool | - | | +| private_labeling_setting | zitadel.project.v1.PrivateLabelingSetting | - | enum.defined_only: true
| + + + + +### UpdateProjectResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateProjectRoleRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| role_key | string | - | string.min_len: 1
string.max_len: 200
| +| display_name | string | - | string.min_len: 1
string.max_len: 200
| +| group | string | - | string.max_len: 200
| + + + + +### UpdateProjectRoleResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateSAMLAppConfigRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.min_len: 1
string.max_len: 200
| +| app_id | string | - | string.min_len: 1
string.max_len: 200
| +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) metadata.metadata_xml | bytes | - | bytes.max_len: 500000
| +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) metadata.metadata_url | string | - | string.max_len: 200
| + + + + +### UpdateSAMLAppConfigResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateUserGrantRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| grant_id | string | - | string.min_len: 1
string.max_len: 200
| +| role_keys | repeated string | - | | + + + + +### UpdateUserGrantResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateUserNameRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateUserNameResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ValidateOrgDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ValidateOrgDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + + + diff --git a/docs/docs/apis/proto/member.md b/docs/docs/apis/proto/member.md new file mode 100644 index 0000000000..3d5bfe5ea8 --- /dev/null +++ b/docs/docs/apis/proto/member.md @@ -0,0 +1,93 @@ +--- +title: zitadel/member.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### EmailQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### FirstNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### LastNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| last_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### Member + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| roles | repeated string | - | | +| preferred_login_name | string | - | | +| email | string | - | | +| first_name | string | - | | +| last_name | string | - | | +| display_name | string | - | | +| avatar_url | string | - | | + + + + +### SearchQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.first_name_query | FirstNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.last_name_query | LastNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.email_query | EmailQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_id_query | UserIDQuery | - | | + + + + +### UserIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.max_len: 200
| + + + + + + diff --git a/docs/docs/apis/proto/message.md b/docs/docs/apis/proto/message.md new file mode 100644 index 0000000000..98909286e2 --- /dev/null +++ b/docs/docs/apis/proto/message.md @@ -0,0 +1,37 @@ +--- +title: zitadel/message.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### ErrorDetail + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| message | string | - | | + + + + +### LocalizedMessage + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | | +| localized_message | string | - | | + + + + + + diff --git a/docs/docs/apis/proto/metadata.md b/docs/docs/apis/proto/metadata.md new file mode 100644 index 0000000000..d982161621 --- /dev/null +++ b/docs/docs/apis/proto/metadata.md @@ -0,0 +1,49 @@ +--- +title: zitadel/metadata.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### Metadata + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| key | string | - | | +| value | bytes | - | | + + + + +### MetadataKeyQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### MetadataQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.key_query | MetadataKeyQuery | - | | + + + + + + diff --git a/docs/docs/apis/proto/object.md b/docs/docs/apis/proto/object.md new file mode 100644 index 0000000000..1f925fe375 --- /dev/null +++ b/docs/docs/apis/proto/object.md @@ -0,0 +1,95 @@ +--- +title: zitadel/object.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### ListDetails + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| total_result | uint64 | - | | +| processed_sequence | uint64 | - | | +| view_timestamp | google.protobuf.Timestamp | - | | + + + + +### ListQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| offset | uint64 | - | | +| limit | uint32 | - | | +| asc | bool | - | | + + + + +### ObjectDetails + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| sequence | uint64 | sequence represents the order of events. It's always upcounting + +on read: the sequence of the last event reduced by the projection + +on manipulation: the timestamp of the event(s) added by the manipulation | | +| creation_date | google.protobuf.Timestamp | creation_date is the timestamp where the first operation on the object was made + +on read: the timestamp of the first event of the object + +on create: the timestamp of the event(s) added by the manipulation | | +| change_date | google.protobuf.Timestamp | change_date is the timestamp when the object was changed + +on read: the timestamp of the last event reduced by the projection + +on manipulation: the | | +| resource_owner | string | resource_owner is the organisation an object belongs to | | + + + + + + +## Enums + + +### ListQueryMethod {#listquerymethod} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| LIST_QUERY_METHOD_IN | 0 | - | + + + + +### TextQueryMethod {#textquerymethod} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| TEXT_QUERY_METHOD_EQUALS | 0 | - | +| TEXT_QUERY_METHOD_EQUALS_IGNORE_CASE | 1 | - | +| TEXT_QUERY_METHOD_STARTS_WITH | 2 | - | +| TEXT_QUERY_METHOD_STARTS_WITH_IGNORE_CASE | 3 | - | +| TEXT_QUERY_METHOD_CONTAINS | 4 | - | +| TEXT_QUERY_METHOD_CONTAINS_IGNORE_CASE | 5 | - | +| TEXT_QUERY_METHOD_ENDS_WITH | 6 | - | +| TEXT_QUERY_METHOD_ENDS_WITH_IGNORE_CASE | 7 | - | + + + + diff --git a/docs/docs/apis/proto/options.md b/docs/docs/apis/proto/options.md new file mode 100644 index 0000000000..4270bc94d1 --- /dev/null +++ b/docs/docs/apis/proto/options.md @@ -0,0 +1,25 @@ +--- +title: zitadel/options.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### AuthOption + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| permission | string | - | | +| check_field_name | string | - | | + + + + + + diff --git a/docs/docs/apis/proto/org.md b/docs/docs/apis/proto/org.md new file mode 100644 index 0000000000..ba28470deb --- /dev/null +++ b/docs/docs/apis/proto/org.md @@ -0,0 +1,154 @@ +--- +title: zitadel/org.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### Domain + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| domain_name | string | - | | +| is_verified | bool | - | | +| is_primary | bool | - | | +| validation_type | DomainValidationType | - | | + + + + +### DomainNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### DomainSearchQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.domain_name_query | DomainNameQuery | - | | + + + + +### Org + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| state | OrgState | - | | +| name | string | - | | +| primary_domain | string | - | | + + + + +### OrgDomainQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### OrgNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### OrgQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.name_query | OrgNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.domain_query | OrgDomainQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.state_query | OrgStateQuery | - | | + + + + +### OrgStateQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| state | OrgState | - | enum.defined_only: true
| + + + + + + +## Enums + + +### DomainValidationType {#domainvalidationtype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| DOMAIN_VALIDATION_TYPE_UNSPECIFIED | 0 | - | +| DOMAIN_VALIDATION_TYPE_HTTP | 1 | - | +| DOMAIN_VALIDATION_TYPE_DNS | 2 | - | + + + + +### OrgFieldName {#orgfieldname} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| ORG_FIELD_NAME_UNSPECIFIED | 0 | - | +| ORG_FIELD_NAME_NAME | 1 | - | + + + + +### OrgState {#orgstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| ORG_STATE_UNSPECIFIED | 0 | - | +| ORG_STATE_ACTIVE | 1 | - | +| ORG_STATE_INACTIVE | 2 | - | +| ORG_STATE_REMOVED | 3 | - | + + + + diff --git a/docs/docs/apis/proto/policy.md b/docs/docs/apis/proto/policy.md new file mode 100644 index 0000000000..ff5b6fb044 --- /dev/null +++ b/docs/docs/apis/proto/policy.md @@ -0,0 +1,208 @@ +--- +title: zitadel/policy.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### DomainPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| user_login_must_be_domain | bool | - | | +| is_default | bool | - | | +| validate_org_domains | bool | - | | +| smtp_sender_address_matches_instance_domain | bool | - | | + + + + +### LabelPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| primary_color | string | hex value for primary color | | +| is_default | bool | defines if the organisation's admin changed the policy | | +| hide_login_name_suffix | bool | hides the org suffix on the login form if the scope \"urn:zitadel:iam:org:domain:primary:{domainname}\" is set | | +| warn_color | string | hex value for secondary color | | +| background_color | string | hex value for background color | | +| font_color | string | hex value for font color | | +| primary_color_dark | string | hex value for primary color dark theme | | +| background_color_dark | string | hex value for background color dark theme | | +| warn_color_dark | string | hex value for warn color dark theme | | +| font_color_dark | string | hex value for font color dark theme | | +| disable_watermark | bool | - | | +| logo_url | string | - | | +| icon_url | string | - | | +| logo_url_dark | string | - | | +| icon_url_dark | string | - | | +| font_url | string | - | | + + + + +### LockoutPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| max_password_attempts | uint64 | - | | +| is_default | bool | - | | + + + + +### LoginPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| allow_username_password | bool | - | | +| allow_register | bool | - | | +| allow_external_idp | bool | - | | +| force_mfa | bool | - | | +| passwordless_type | PasswordlessType | - | | +| is_default | bool | - | | +| hide_password_reset | bool | - | | +| ignore_unknown_usernames | bool | - | | +| default_redirect_uri | string | - | | +| password_check_lifetime | google.protobuf.Duration | - | | +| external_login_check_lifetime | google.protobuf.Duration | - | | +| mfa_init_skip_lifetime | google.protobuf.Duration | - | | +| second_factor_check_lifetime | google.protobuf.Duration | - | | +| multi_factor_check_lifetime | google.protobuf.Duration | - | | +| second_factors | repeated SecondFactorType | - | | +| multi_factors | repeated MultiFactorType | - | | +| idps | repeated zitadel.idp.v1.IDPLoginPolicyLink | - | | +| allow_domain_discovery | bool | If set to true, the suffix (@domain.com) of an unknown username input on the login screen will be matched against the org domains and will redirect to the registration of that organisation on success. | | +| disable_login_with_email | bool | - | | +| disable_login_with_phone | bool | - | | + + + + +### NotificationPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| is_default | bool | - | | +| password_change | bool | - | | + + + + +### OrgIAMPolicy +deprecated: please use DomainPolicy instead + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| user_login_must_be_domain | bool | - | | +| is_default | bool | - | | + + + + +### PasswordAgePolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| max_age_days | uint64 | - | | +| expire_warn_days | uint64 | - | | +| is_default | bool | - | | + + + + +### PasswordComplexityPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| min_length | uint64 | - | | +| has_uppercase | bool | - | | +| has_lowercase | bool | - | | +| has_number | bool | - | | +| has_symbol | bool | - | | +| is_default | bool | - | | + + + + +### PrivacyPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| tos_link | string | - | | +| privacy_link | string | - | | +| is_default | bool | - | | +| help_link | string | - | | + + + + + + +## Enums + + +### MultiFactorType {#multifactortype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| MULTI_FACTOR_TYPE_UNSPECIFIED | 0 | - | +| MULTI_FACTOR_TYPE_U2F_WITH_VERIFICATION | 1 | - | + + + + +### PasswordlessType {#passwordlesstype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| PASSWORDLESS_TYPE_NOT_ALLOWED | 0 | - | +| PASSWORDLESS_TYPE_ALLOWED | 1 | PLANNED: PASSWORDLESS_TYPE_WITH_CERT | + + + + +### SecondFactorType {#secondfactortype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| SECOND_FACTOR_TYPE_UNSPECIFIED | 0 | - | +| SECOND_FACTOR_TYPE_OTP | 1 | - | +| SECOND_FACTOR_TYPE_U2F | 2 | - | + + + + diff --git a/docs/docs/apis/proto/project.md b/docs/docs/apis/proto/project.md new file mode 100644 index 0000000000..c5d89e0729 --- /dev/null +++ b/docs/docs/apis/proto/project.md @@ -0,0 +1,247 @@ +--- +title: zitadel/project.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### AllProjectGrantQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_name_query | GrantProjectNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.role_key_query | GrantRoleKeyQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_id_query | ProjectIDQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.granted_org_id_query | GrantedOrgIDQuery | - | | + + + + +### GrantProjectNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### GrantRoleKeyQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| role_key | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### GrantedOrgIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| granted_org_id | string | - | string.max_len: 200
| + + + + +### GrantedProject + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| grant_id | string | - | | +| granted_org_id | string | - | | +| granted_org_name | string | - | | +| granted_role_keys | repeated string | - | | +| state | ProjectGrantState | - | | +| project_id | string | - | | +| project_name | string | - | | +| project_owner_id | string | - | | +| project_owner_name | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### Project + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| name | string | - | | +| state | ProjectState | - | | +| project_role_assertion | bool | describes if roles of user should be added in token | | +| project_role_check | bool | ZITADEL checks if the user has at least one on this project | | +| has_project_check | bool | ZITADEL checks if the org of the user has permission to this project | | +| private_labeling_setting | PrivateLabelingSetting | Defines from where the private labeling should be triggered | | + + + + +### ProjectGrantQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_name_query | GrantProjectNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.role_key_query | GrantRoleKeyQuery | - | | + + + + +### ProjectIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.max_len: 200
| + + + + +### ProjectNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### ProjectQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.name_query | ProjectNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_resource_owner_query | ProjectResourceOwnerQuery | - | | + + + + +### ProjectResourceOwnerQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| resource_owner | string | - | string.max_len: 200
| + + + + +### Role + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| display_name | string | - | | +| group | string | - | | + + + + +### RoleDisplayNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| display_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### RoleKeyQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### RoleQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.key_query | RoleKeyQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.display_name_query | RoleDisplayNameQuery | - | | + + + + + + +## Enums + + +### PrivateLabelingSetting {#privatelabelingsetting} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| PRIVATE_LABELING_SETTING_UNSPECIFIED | 0 | - | +| PRIVATE_LABELING_SETTING_ENFORCE_PROJECT_RESOURCE_OWNER_POLICY | 1 | - | +| PRIVATE_LABELING_SETTING_ALLOW_LOGIN_USER_RESOURCE_OWNER_POLICY | 2 | - | + + + + +### ProjectGrantState {#projectgrantstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| PROJECT_GRANT_STATE_UNSPECIFIED | 0 | - | +| PROJECT_GRANT_STATE_ACTIVE | 1 | - | +| PROJECT_GRANT_STATE_INACTIVE | 2 | - | + + + + +### ProjectState {#projectstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| PROJECT_STATE_UNSPECIFIED | 0 | - | +| PROJECT_STATE_ACTIVE | 1 | - | +| PROJECT_STATE_INACTIVE | 2 | - | + + + + diff --git a/docs/docs/apis/proto/settings.md b/docs/docs/apis/proto/settings.md new file mode 100644 index 0000000000..c4aa2962c3 --- /dev/null +++ b/docs/docs/apis/proto/settings.md @@ -0,0 +1,166 @@ +--- +title: zitadel/settings.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### DebugNotificationProvider + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| compact | bool | - | | + + + + +### OIDCSettings + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| access_token_lifetime | google.protobuf.Duration | - | | +| id_token_lifetime | google.protobuf.Duration | - | | +| refresh_token_idle_expiration | google.protobuf.Duration | - | | +| refresh_token_expiration | google.protobuf.Duration | - | | + + + + +### SMSProvider + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| id | string | - | | +| state | SMSProviderConfigState | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) config.twilio | TwilioConfig | - | | + + + + +### SMTPConfig + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| sender_address | string | - | | +| sender_name | string | - | | +| tls | bool | - | | +| host | string | - | | +| user | string | - | | + + + + +### SecretGenerator + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| generator_type | SecretGeneratorType | - | | +| details | zitadel.v1.ObjectDetails | - | | +| length | uint32 | - | | +| expiry | google.protobuf.Duration | - | | +| include_lower_letters | bool | - | | +| include_upper_letters | bool | - | | +| include_digits | bool | - | | +| include_symbols | bool | - | | + + + + +### SecretGeneratorQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.type_query | SecretGeneratorTypeQuery | - | | + + + + +### SecretGeneratorTypeQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| generator_type | SecretGeneratorType | - | | + + + + +### SecurityPolicy + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| enable_iframe_embedding | bool | states if iframe embedding is enabled or disabled | | +| allowed_origins | repeated string | origins allowed to load ZITADEL in an iframe if enable_iframe_embedding is true | | + + + + +### TwilioConfig + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| sid | string | - | | +| sender_number | string | - | | + + + + + + +## Enums + + +### SMSProviderConfigState {#smsproviderconfigstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| SMS_PROVIDER_CONFIG_STATE_UNSPECIFIED | 0 | - | +| SMS_PROVIDER_CONFIG_ACTIVE | 1 | - | +| SMS_PROVIDER_CONFIG_INACTIVE | 2 | - | + + + + +### SecretGeneratorType {#secretgeneratortype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| SECRET_GENERATOR_TYPE_UNSPECIFIED | 0 | - | +| SECRET_GENERATOR_TYPE_INIT_CODE | 1 | - | +| SECRET_GENERATOR_TYPE_VERIFY_EMAIL_CODE | 2 | - | +| SECRET_GENERATOR_TYPE_VERIFY_PHONE_CODE | 3 | - | +| SECRET_GENERATOR_TYPE_PASSWORD_RESET_CODE | 4 | - | +| SECRET_GENERATOR_TYPE_PASSWORDLESS_INIT_CODE | 5 | - | +| SECRET_GENERATOR_TYPE_APP_SECRET | 6 | - | + + + + diff --git a/docs/docs/apis/proto/system.md b/docs/docs/apis/proto/system.md new file mode 100644 index 0000000000..4005408460 --- /dev/null +++ b/docs/docs/apis/proto/system.md @@ -0,0 +1,826 @@ +--- +title: zitadel/system.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + +## SystemService {#zitadelsystemv1systemservice} + + +### Healthz + +> **rpc** Healthz([HealthzRequest](#healthzrequest)) +[HealthzResponse](#healthzresponse) + +Indicates if ZITADEL is running. +It respondes as soon as ZITADEL started + + + + GET: /healthz + + +### ListInstances + +> **rpc** ListInstances([ListInstancesRequest](#listinstancesrequest)) +[ListInstancesResponse](#listinstancesresponse) + +Returns a list of ZITADEL instances + + + + POST: /instances/_search + + +### GetInstance + +> **rpc** GetInstance([GetInstanceRequest](#getinstancerequest)) +[GetInstanceResponse](#getinstanceresponse) + +Returns the detail of an instance + + + + GET: /instances/{instance_id} + + +### AddInstance + +> **rpc** AddInstance([AddInstanceRequest](#addinstancerequest)) +[AddInstanceResponse](#addinstanceresponse) + +Deprecated: Use CreateInstance instead +Creates a new instance with all needed setup data +This might take some time + + + + POST: /instances + + +### UpdateInstance + +> **rpc** UpdateInstance([UpdateInstanceRequest](#updateinstancerequest)) +[UpdateInstanceResponse](#updateinstanceresponse) + +Updates name of an existing instance + + + + PUT: /instances/{instance_id} + + +### CreateInstance + +> **rpc** CreateInstance([CreateInstanceRequest](#createinstancerequest)) +[CreateInstanceResponse](#createinstanceresponse) + +Creates a new instance with all needed setup data +This might take some time + + + + POST: /instances/_create + + +### RemoveInstance + +> **rpc** RemoveInstance([RemoveInstanceRequest](#removeinstancerequest)) +[RemoveInstanceResponse](#removeinstanceresponse) + +Removes a instances +This might take some time + + + + DELETE: /instances/{instance_id} + + +### ListIAMMembers + +> **rpc** ListIAMMembers([ListIAMMembersRequest](#listiammembersrequest)) +[ListIAMMembersResponse](#listiammembersresponse) + +Returns all instance members matching the request +all queries need to match (ANDed) + + + + POST: /instances/{instance_id}/members/_search + + +### ExistsDomain + +> **rpc** ExistsDomain([ExistsDomainRequest](#existsdomainrequest)) +[ExistsDomainResponse](#existsdomainresponse) + +Checks if a domain exists + + + + POST: /domains/{domain}/_exists + + +### ListDomains + +> **rpc** ListDomains([ListDomainsRequest](#listdomainsrequest)) +[ListDomainsResponse](#listdomainsresponse) + +Returns the custom domains of an instance + + + + POST: /instances/{instance_id}/domains/_search + + +### AddDomain + +> **rpc** AddDomain([AddDomainRequest](#adddomainrequest)) +[AddDomainResponse](#adddomainresponse) + +Returns the domain of an instance + + + + POST: /instances/{instance_id}/domains + + +### RemoveDomain + +> **rpc** RemoveDomain([RemoveDomainRequest](#removedomainrequest)) +[RemoveDomainResponse](#removedomainresponse) + +Returns the domain of an instance + + + + DELETE: /instances/{instance_id}/domains/{domain} + + +### SetPrimaryDomain + +> **rpc** SetPrimaryDomain([SetPrimaryDomainRequest](#setprimarydomainrequest)) +[SetPrimaryDomainResponse](#setprimarydomainresponse) + +Returns the domain of an instance + + + + POST: /instances/{instance_id}/domains/_set_primary + + +### ListViews + +> **rpc** ListViews([ListViewsRequest](#listviewsrequest)) +[ListViewsResponse](#listviewsresponse) + +Returns all stored read models of ZITADEL +views are used for search optimisation and optimise request latencies +they represent the delta of the event happend on the objects + + + + POST: /views/_search + + +### ClearView + +> **rpc** ClearView([ClearViewRequest](#clearviewrequest)) +[ClearViewResponse](#clearviewresponse) + +Truncates the delta of the change stream +be carefull with this function because ZITADEL has to +recompute the deltas after they got cleared. +Search requests will return wrong results until all deltas are recomputed + + + + POST: /views/{database}/{view_name} + + +### ListFailedEvents + +> **rpc** ListFailedEvents([ListFailedEventsRequest](#listfailedeventsrequest)) +[ListFailedEventsResponse](#listfailedeventsresponse) + +Returns event descriptions which cannot be processed. +It's possible that some events need some retries. +For example if the SMTP-API wasn't able to send an email at the first time + + + + POST: /failedevents/_search + + +### RemoveFailedEvent + +> **rpc** RemoveFailedEvent([RemoveFailedEventRequest](#removefailedeventrequest)) +[RemoveFailedEventResponse](#removefailedeventresponse) + +Deletes the event from failed events view. +the event is not removed from the change stream +This call is usefull if the system was able to process the event later. +e.g. if the second try of sending an email was successful. the first try produced a +failed event. You can find out if it worked on the `failure_count` + + + + DELETE: /failedevents/{database}/{view_name}/{failed_sequence} + + + + + + + +## Messages + + +### AddDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | string.min_len: 1
string.max_len: 200
| +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### AddDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### AddInstanceRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_name | string | - | string.min_len: 1
string.max_len: 200
| +| first_org_name | string | - | string.max_len: 200
| +| custom_domain | string | - | string.max_len: 200
| +| owner_user_name | string | - | string.max_len: 200
| +| owner_email | AddInstanceRequest.Email | - | message.required: true
| +| owner_profile | AddInstanceRequest.Profile | - | message.required: false
| +| owner_password | AddInstanceRequest.Password | - | message.required: false
| +| default_language | string | - | string.max_len: 10
| + + + + +### AddInstanceRequest.Email + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.min_len: 1
string.max_len: 200
| +| is_email_verified | bool | - | | + + + + +### AddInstanceRequest.Password + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| password | string | - | string.max_len: 200
| +| password_change_required | bool | - | | + + + + +### AddInstanceRequest.Profile + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.max_len: 200
| +| last_name | string | - | string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| + + + + +### AddInstanceResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ChangeSubscriptionRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| +| subscription_name | string | - | string.min_len: 1
string.max_len: 200
| +| request_limit | uint64 | - | | +| action_mins_limit | uint64 | - | | + + + + +### ChangeSubscriptionResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### ClearViewRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| database | string | - | string.min_len: 1
string.max_len: 200
| +| view_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ClearViewResponse +This is an empty response + + + + +### CreateInstanceRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_name | string | - | string.min_len: 1
string.max_len: 200
| +| first_org_name | string | - | string.max_len: 200
| +| custom_domain | string | - | string.max_len: 200
| +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) owner.human | CreateInstanceRequest.Human | oneof field for the user managing the instance | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) owner.machine | CreateInstanceRequest.Machine | - | | +| default_language | string | - | string.max_len: 10
| + + + + +### CreateInstanceRequest.Email + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.min_len: 1
string.max_len: 200
string.email: true
| +| is_email_verified | bool | - | | + + + + +### CreateInstanceRequest.Human + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.max_len: 200
| +| email | CreateInstanceRequest.Email | - | message.required: true
| +| profile | CreateInstanceRequest.Profile | - | message.required: false
| +| password | CreateInstanceRequest.Password | - | message.required: false
| + + + + +### CreateInstanceRequest.Machine + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.max_len: 200
| +| name | string | - | string.max_len: 200
| +| personal_access_token | CreateInstanceRequest.PersonalAccessToken | - | | +| machine_key | CreateInstanceRequest.MachineKey | - | | + + + + +### CreateInstanceRequest.MachineKey + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | zitadel.authn.v1.KeyType | - | enum.defined_only: true
enum.not_in: [0]
| +| expiration_date | google.protobuf.Timestamp | - | | + + + + +### CreateInstanceRequest.Password + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| password | string | - | string.max_len: 200
| +| password_change_required | bool | - | | + + + + +### CreateInstanceRequest.PersonalAccessToken + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| expiration_date | google.protobuf.Timestamp | - | | + + + + +### CreateInstanceRequest.Profile + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.max_len: 200
| +| last_name | string | - | string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| + + + + +### CreateInstanceResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| pat | string | - | | +| machine_key | bytes | - | | + + + + +### ExistsDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### ExistsDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| exists | bool | - | | + + + + +### FailedEvent + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| database | string | - | | +| view_name | string | - | | +| failed_sequence | uint64 | - | | +| failure_count | uint64 | - | | +| error_message | string | - | | +| last_failed | google.protobuf.Timestamp | - | | + + + + +### GetInstanceRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetInstanceResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance | zitadel.instance.v1.InstanceDetail | - | | + + + + +### GetUsageRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### GetUsageResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| executed_requests | uint64 | - | | +| executed_action_mins | uint64 | - | | + + + + +### HealthzRequest +This is an empty request + + + + +### HealthzResponse +This is an empty response + + + + +### ListDomainsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | list limitations and ordering | string.min_len: 1
string.max_len: 200
| +| query | zitadel.v1.ListQuery | - | | +| sorting_column | zitadel.instance.v1.DomainFieldName | the field the result is sorted | | +| queries | repeated zitadel.instance.v1.DomainSearchQuery | criterias the client is looking for | | + + + + +### ListDomainsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.instance.v1.DomainFieldName | - | | +| result | repeated zitadel.instance.v1.Domain | - | | + + + + +### ListFailedEventsRequest +This is an empty request + + + + +### ListFailedEventsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated FailedEvent | TODO: list details | | + + + + +### ListIAMMembersRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | - | | +| instance_id | string | - | | +| queries | repeated zitadel.member.v1.SearchQuery | - | | + + + + +### ListIAMMembersResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| result | repeated zitadel.member.v1.Member | - | | + + + + +### ListInstancesRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| query | zitadel.v1.ListQuery | list limitations and ordering | | +| sorting_column | zitadel.instance.v1.FieldName | the field the result is sorted | | +| queries | repeated zitadel.instance.v1.Query | criterias the client is looking for | | + + + + +### ListInstancesResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ListDetails | - | | +| sorting_column | zitadel.instance.v1.FieldName | - | | +| result | repeated zitadel.instance.v1.Instance | - | | + + + + +### ListViewsRequest +This is an empty request + + + + +### ListViewsResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| result | repeated View | TODO: list details | | + + + + +### RemoveDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | string.min_len: 1
string.max_len: 200
| +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### RemoveFailedEventRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| database | string | - | string.min_len: 1
string.max_len: 200
| +| view_name | string | - | string.min_len: 1
string.max_len: 200
| +| failed_sequence | uint64 | - | | +| instance_id | string | - | | + + + + +### RemoveFailedEventResponse +This is an empty response + + + + +### RemoveInstanceRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### RemoveInstanceResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### SetPrimaryDomainRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | string.min_len: 1
string.max_len: 200
| +| domain | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### SetPrimaryDomainResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### UpdateInstanceRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| instance_id | string | - | | +| instance_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + +### UpdateInstanceResponse + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | + + + + +### View + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| database | string | - | | +| view_name | string | - | | +| processed_sequence | uint64 | - | | +| event_timestamp | google.protobuf.Timestamp | The timestamp the event occured | | +| last_successful_spooler_run | google.protobuf.Timestamp | - | | +| instance | string | - | | + + + + + + diff --git a/docs/docs/apis/proto/text.md b/docs/docs/apis/proto/text.md new file mode 100644 index 0000000000..6c71218813 --- /dev/null +++ b/docs/docs/apis/proto/text.md @@ -0,0 +1,637 @@ +--- +title: zitadel/text.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### EmailVerificationDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| next_button_text | string | - | string.max_len: 100
| +| cancel_button_text | string | - | string.max_len: 100
| +| login_button_text | string | - | string.max_len: 100
| + + + + +### EmailVerificationScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| code_label | string | - | string.max_len: 200
| +| next_button_text | string | - | string.max_len: 100
| +| resend_button_text | string | - | string.max_len: 100
| + + + + +### ExternalRegistrationUserOverviewScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| email_label | string | - | string.max_len: 200
| +| username_label | string | - | string.max_len: 200
| +| firstname_label | string | - | string.max_len: 200
| +| lastname_label | string | - | string.max_len: 200
| +| nickname_label | string | - | string.max_len: 200
| +| language_label | string | - | string.max_len: 200
| +| phone_label | string | - | string.max_len: 200
| +| tos_and_privacy_label | string | - | string.max_len: 200
| +| tos_confirm | string | - | string.max_len: 200
| +| tos_link_text | string | - | string.max_len: 200
| +| privacy_link_text | string | - | string.max_len: 200
| +| back_button_text | string | - | string.max_len: 200
| +| next_button_text | string | - | string.max_len: 200
| +| privacy_confirm | string | - | string.max_len: 200
| + + + + +### ExternalUserNotFoundScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| link_button_text | string | - | string.max_len: 100
| +| auto_register_button_text | string | - | string.max_len: 100
| +| tos_and_privacy_label | string | - | string.max_len: 200
| +| tos_confirm | string | - | string.max_len: 200
| +| tos_link_text | string | - | string.max_len: 200
| +| privacy_link_text | string | - | string.max_len: 200
| +| privacy_confirm | string | - | string.max_len: 200
| + + + + +### FooterText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| tos | string | - | string.max_len: 200
| +| privacy_policy | string | - | string.max_len: 200
| +| help | string | - | string.max_len: 200
| + + + + +### InitMFADoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| cancel_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### InitMFAOTPScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| description_otp | string | - | string.max_len: 500
| +| secret_label | string | - | string.max_len: 200
| +| code_label | string | - | string.max_len: 200
| +| next_button_text | string | - | string.max_len: 100
| +| cancel_button_text | string | - | string.max_len: 100
| + + + + +### InitMFAPromptScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| otp_option | string | - | string.max_len: 200
| +| u2f_option | string | - | string.max_len: 200
| +| skip_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### InitMFAU2FScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| token_name_label | string | - | string.max_len: 200
| +| not_supported | string | - | string.max_len: 500
| +| register_token_button_text | string | - | string.max_len: 100
| +| error_retry | string | - | string.max_len: 500
| + + + + +### InitPasswordDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| next_button_text | string | - | string.max_len: 100
| +| cancel_button_text | string | - | string.max_len: 100
| + + + + +### InitPasswordScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| code_label | string | - | string.max_len: 200
| +| new_password_label | string | - | string.max_len: 200
| +| new_password_confirm_label | string | - | string.max_len: 200
| +| next_button_text | string | - | string.max_len: 100
| +| resend_button_text | string | - | string.max_len: 100
| + + + + +### InitializeUserDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| cancel_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### InitializeUserScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| code_label | string | - | string.max_len: 200
| +| new_password_label | string | - | string.max_len: 200
| +| new_password_confirm_label | string | - | string.max_len: 200
| +| resend_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### LinkingUserDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| cancel_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### LoginCustomText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| select_account_text | SelectAccountScreenText | - | | +| login_text | LoginScreenText | - | | +| password_text | PasswordScreenText | - | | +| username_change_text | UsernameChangeScreenText | - | | +| username_change_done_text | UsernameChangeDoneScreenText | - | | +| init_password_text | InitPasswordScreenText | - | | +| init_password_done_text | InitPasswordDoneScreenText | - | | +| email_verification_text | EmailVerificationScreenText | - | | +| email_verification_done_text | EmailVerificationDoneScreenText | - | | +| initialize_user_text | InitializeUserScreenText | - | | +| initialize_done_text | InitializeUserDoneScreenText | - | | +| init_mfa_prompt_text | InitMFAPromptScreenText | - | | +| init_mfa_otp_text | InitMFAOTPScreenText | - | | +| init_mfa_u2f_text | InitMFAU2FScreenText | - | | +| init_mfa_done_text | InitMFADoneScreenText | - | | +| mfa_providers_text | MFAProvidersText | - | | +| verify_mfa_otp_text | VerifyMFAOTPScreenText | - | | +| verify_mfa_u2f_text | VerifyMFAU2FScreenText | - | | +| passwordless_text | PasswordlessScreenText | - | | +| password_change_text | PasswordChangeScreenText | - | | +| password_change_done_text | PasswordChangeDoneScreenText | - | | +| password_reset_done_text | PasswordResetDoneScreenText | - | | +| registration_option_text | RegistrationOptionScreenText | - | | +| registration_user_text | RegistrationUserScreenText | - | | +| registration_org_text | RegistrationOrgScreenText | - | | +| linking_user_done_text | LinkingUserDoneScreenText | - | | +| external_user_not_found_text | ExternalUserNotFoundScreenText | - | | +| success_login_text | SuccessLoginScreenText | - | | +| logout_text | LogoutDoneScreenText | - | | +| footer_text | FooterText | - | | +| passwordless_prompt_text | PasswordlessPromptScreenText | - | | +| passwordless_registration_text | PasswordlessRegistrationScreenText | - | | +| passwordless_registration_done_text | PasswordlessRegistrationDoneScreenText | - | | +| external_registration_user_overview_text | ExternalRegistrationUserOverviewScreenText | - | | +| is_default | bool | - | | + + + + +### LoginScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| title_linking_process | string | - | string.max_len: 200
| +| description_linking_process | string | - | string.max_len: 500
| +| user_must_be_member_of_org | string | - | string.max_len: 500
| +| login_name_label | string | - | string.max_len: 200
| +| register_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| +| external_user_description | string | - | string.max_len: 500
| +| user_name_placeholder | string | - | string.max_len: 200
| +| login_name_placeholder | string | - | string.max_len: 200
| + + + + +### LogoutDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| login_button_text | string | - | string.max_len: 200
| + + + + +### MFAProvidersText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| choose_other | string | - | string.max_len: 500
| +| otp | string | - | string.max_len: 200
| +| u2f | string | - | string.max_len: 200
| + + + + +### MessageCustomText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| details | zitadel.v1.ObjectDetails | - | | +| title | string | - | | +| pre_header | string | - | | +| subject | string | - | | +| greeting | string | - | | +| text | string | - | | +| button_text | string | - | | +| footer_text | string | - | | +| is_default | bool | - | | + + + + +### PasswordChangeDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### PasswordChangeScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| old_password_label | string | - | string.max_len: 200
| +| new_password_label | string | - | string.max_len: 200
| +| new_password_confirm_label | string | - | string.max_len: 200
| +| cancel_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### PasswordResetDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### PasswordScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| password_label | string | - | string.max_len: 200
| +| reset_link_text | string | - | string.max_len: 100
| +| back_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| +| min_length | string | - | string.max_len: 100
| +| has_uppercase | string | - | string.max_len: 100
| +| has_lowercase | string | - | string.max_len: 100
| +| has_number | string | - | string.max_len: 100
| +| has_symbol | string | - | string.max_len: 100
| +| confirmation | string | - | string.max_len: 100
| + + + + +### PasswordlessPromptScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| description_init | string | - | string.max_len: 500
| +| passwordless_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| +| skip_button_text | string | - | string.max_len: 100
| + + + + +### PasswordlessRegistrationDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| next_button_text | string | - | string.max_len: 100
| +| cancel_button_text | string | - | string.max_len: 100
| +| description_close | string | - | string.max_len: 100
| + + + + +### PasswordlessRegistrationScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| token_name_label | string | - | string.max_len: 200
| +| not_supported | string | - | string.max_len: 500
| +| register_token_button_text | string | - | string.max_len: 100
| +| error_retry | string | - | string.max_len: 500
| + + + + +### PasswordlessScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| login_with_pw_button_text | string | - | string.max_len: 100
| +| validate_token_button_text | string | - | string.max_len: 200
| +| not_supported | string | - | string.max_len: 500
| +| error_retry | string | - | string.max_len: 500
| + + + + +### RegistrationOptionScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| user_name_button_text | string | - | string.max_len: 200
| +| external_login_description | string | - | string.max_len: 500
| +| login_button_text | string | - | string.max_len: 200
| + + + + +### RegistrationOrgScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| orgname_label | string | - | string.max_len: 200
| +| firstname_label | string | - | string.max_len: 200
| +| lastname_label | string | - | string.max_len: 200
| +| username_label | string | - | string.max_len: 200
| +| email_label | string | - | string.max_len: 200
| +| password_label | string | - | string.max_len: 200
| +| password_confirm_label | string | - | string.max_len: 200
| +| tos_and_privacy_label | string | - | string.max_len: 200
| +| tos_confirm | string | - | string.max_len: 200
| +| tos_link_text | string | - | string.max_len: 200
| +| privacy_confirm | string | - | string.max_len: 200
| +| privacy_link_text | string | - | string.max_len: 200
| +| save_button_text | string | - | string.max_len: 200
| + + + + +### RegistrationUserScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| description_org_register | string | - | string.max_len: 500
| +| firstname_label | string | - | string.max_len: 200
| +| lastname_label | string | - | string.max_len: 200
| +| email_label | string | - | string.max_len: 200
| +| username_label | string | - | string.max_len: 200
| +| language_label | string | - | string.max_len: 200
| +| gender_label | string | - | string.max_len: 200
| +| password_label | string | - | string.max_len: 200
| +| password_confirm_label | string | - | string.max_len: 200
| +| tos_and_privacy_label | string | - | string.max_len: 200
| +| tos_confirm | string | - | string.max_len: 200
| +| tos_link_text | string | - | string.max_len: 200
| +| privacy_confirm | string | - | string.max_len: 200
| +| privacy_link_text | string | - | string.max_len: 200
| +| next_button_text | string | - | string.max_len: 200
| +| back_button_text | string | - | string.max_len: 200
| + + + + +### SelectAccountScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| title_linking_process | string | - | string.max_len: 200
| +| description_linking_process | string | - | string.max_len: 500
| +| other_user | string | - | string.max_len: 500
| +| session_state_active | string | - | string.max_len: 100
| +| session_state_inactive | string | - | string.max_len: 100
| +| user_must_be_member_of_org | string | - | string.max_len: 500
| + + + + +### SuccessLoginScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| auto_redirect_description | string | Text to describe that auto redirect should happen after successful login | string.max_len: 500
| +| redirected_description | string | Text to describe that the window can be closed after redirect | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 200
| + + + + +### UsernameChangeDoneScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### UsernameChangeScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| username_label | string | - | string.max_len: 200
| +| cancel_button_text | string | - | string.max_len: 100
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### VerifyMFAOTPScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| code_label | string | - | string.max_len: 200
| +| next_button_text | string | - | string.max_len: 100
| + + + + +### VerifyMFAU2FScreenText + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| title | string | - | string.max_len: 200
| +| description | string | - | string.max_len: 500
| +| validate_token_text | string | - | string.max_len: 500
| +| not_supported | string | - | string.max_len: 500
| +| error_retry | string | - | string.max_len: 500
| + + + + + + diff --git a/docs/docs/apis/proto/user.md b/docs/docs/apis/proto/user.md new file mode 100644 index 0000000000..82b663bc3a --- /dev/null +++ b/docs/docs/apis/proto/user.md @@ -0,0 +1,743 @@ +--- +title: zitadel/user.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### AuthFactor + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| state | AuthFactorState | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.otp | AuthFactorOTP | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.u2f | AuthFactorU2F | - | | + + + + +### AuthFactorOTP + + + + + +### AuthFactorU2F + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| name | string | - | | + + + + +### DisplayNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| display_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### Email + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | | +| is_email_verified | bool | - | | + + + + +### EmailQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email_address | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### FirstNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### Human + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| profile | Profile | - | | +| email | Email | - | | +| phone | Phone | - | | + + + + +### LastNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| last_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### LoginNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| login_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### Machine + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| name | string | - | | +| description | string | - | | +| has_secret | bool | - | | +| access_token_typ | AccessTokenType | - | | + + + + +### Membership + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| roles | repeated string | - | | +| display_name | string | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.iam | bool | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.org_id | string | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.project_id | string | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.project_grant_id | string | - | | + + + + +### MembershipIAMQuery +this query is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| iam | bool | - | | + + + + +### MembershipOrgQuery +this query is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.max_len: 200
| + + + + +### MembershipProjectGrantQuery +this query is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_grant_id | string | - | string.max_len: 200
| + + + + +### MembershipProjectQuery +this query is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.max_len: 200
| + + + + +### MembershipQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.org_query | MembershipOrgQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_query | MembershipProjectQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_grant_query | MembershipProjectGrantQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.iam_query | MembershipIAMQuery | - | | + + + + +### NickNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| nick_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### PersonalAccessToken + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| expiration_date | google.protobuf.Timestamp | - | | +| scopes | repeated string | - | | + + + + +### Phone + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| phone | string | - | | +| is_phone_verified | bool | - | | + + + + +### Profile + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | | +| last_name | string | - | | +| nick_name | string | - | | +| display_name | string | - | | +| preferred_language | string | - | | +| gender | Gender | - | | +| avatar_url | string | - | | + + + + +### RefreshToken + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| client_id | string | - | | +| auth_time | google.protobuf.Timestamp | - | | +| idle_expiration | google.protobuf.Timestamp | - | | +| expiration | google.protobuf.Timestamp | - | | +| scopes | repeated string | - | | +| audience | repeated string | - | | + + + + +### SearchQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_name_query | UserNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.first_name_query | FirstNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.last_name_query | LastNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.nick_name_query | NickNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.display_name_query | DisplayNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.email_query | EmailQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.state_query | StateQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.type_query | TypeQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.login_name_query | LoginNameQuery | - | | + + + + +### Session + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| session_id | string | - | | +| agent_id | string | - | | +| auth_state | SessionState | - | | +| user_id | string | - | | +| user_name | string | - | | +| login_name | string | - | | +| display_name | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| avatar_url | string | - | | + + + + +### StateQuery +UserStateQuery is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| state | UserState | - | enum.defined_only: true
| + + + + +### TypeQuery +UserTypeQuery is always equals + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | Type | - | enum.defined_only: true
| + + + + +### User + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| state | UserState | - | | +| user_name | string | - | | +| login_names | repeated string | - | | +| preferred_login_name | string | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.human | Human | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) type.machine | Machine | - | | + + + + +### UserGrant + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| details | zitadel.v1.ObjectDetails | - | | +| role_keys | repeated string | - | | +| state | UserGrantState | - | | +| user_id | string | - | | +| user_name | string | - | | +| first_name | string | - | | +| last_name | string | - | | +| email | string | - | string.email: true
| +| display_name | string | - | string.max_len: 200
| +| org_id | string | - | | +| org_name | string | - | | +| org_domain | string | - | | +| project_id | string | - | | +| project_name | string | - | | +| project_grant_id | string | - | | +| avatar_url | string | - | | +| preferred_login_name | string | - | | + + + + +### UserGrantDisplayNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| display_name | string | - | | +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantEmailQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantFirstNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantLastNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| last_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantOrgDomainQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_domain | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantOrgNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantProjectGrantIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_grant_id | string | - | string.max_len: 200
| + + + + +### UserGrantProjectIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | string.max_len: 200
| + + + + +### UserGrantProjectNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_id_query | UserGrantProjectIDQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_id_query | UserGrantUserIDQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.with_granted_query | UserGrantWithGrantedQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.role_key_query | UserGrantRoleKeyQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_grant_id_query | UserGrantProjectGrantIDQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_name_query | UserGrantUserNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.first_name_query | UserGrantFirstNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.last_name_query | UserGrantLastNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.email_query | UserGrantEmailQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.org_name_query | UserGrantOrgNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.org_domain_query | UserGrantOrgDomainQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.project_name_query | UserGrantProjectNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.display_name_query | UserGrantDisplayNameQuery | - | | +| [**oneof**](https://developers.google.com/protocol-buffers/docs/proto3#oneof) query.user_type_query | UserGrantUserTypeQuery | - | | + + + + +### UserGrantRoleKeyQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| role_key | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantUserIDQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | string.max_len: 200
| + + + + +### UserGrantUserNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### UserGrantUserTypeQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| type | Type | - | | + + + + +### UserGrantWithGrantedQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| with_granted | bool | - | | + + + + +### UserNameQuery + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.max_len: 200
| +| method | zitadel.v1.TextQueryMethod | - | enum.defined_only: true
| + + + + +### WebAuthNKey + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| public_key | bytes | - | | + + + + +### WebAuthNToken + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| state | AuthFactorState | - | | +| name | string | - | | + + + + +### WebAuthNVerification + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| public_key_credential | bytes | - | bytes.min_len: 55
| +| token_name | string | - | string.min_len: 1
string.max_len: 200
| + + + + + + +## Enums + + +### AccessTokenType {#accesstokentype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| ACCESS_TOKEN_TYPE_BEARER | 0 | - | +| ACCESS_TOKEN_TYPE_JWT | 1 | - | + + + + +### AuthFactorState {#authfactorstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| AUTH_FACTOR_STATE_UNSPECIFIED | 0 | - | +| AUTH_FACTOR_STATE_NOT_READY | 1 | - | +| AUTH_FACTOR_STATE_READY | 2 | - | +| AUTH_FACTOR_STATE_REMOVED | 3 | - | + + + + +### Gender {#gender} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| GENDER_UNSPECIFIED | 0 | - | +| GENDER_FEMALE | 1 | - | +| GENDER_MALE | 2 | - | +| GENDER_DIVERSE | 3 | - | + + + + +### SessionState {#sessionstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| SESSION_STATE_UNSPECIFIED | 0 | - | +| SESSION_STATE_ACTIVE | 1 | - | +| SESSION_STATE_TERMINATED | 2 | - | + + + + +### Type {#type} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| TYPE_UNSPECIFIED | 0 | - | +| TYPE_HUMAN | 1 | - | +| TYPE_MACHINE | 2 | - | + + + + +### UserFieldName {#userfieldname} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| USER_FIELD_NAME_UNSPECIFIED | 0 | - | +| USER_FIELD_NAME_USER_NAME | 1 | - | +| USER_FIELD_NAME_FIRST_NAME | 2 | - | +| USER_FIELD_NAME_LAST_NAME | 3 | - | +| USER_FIELD_NAME_NICK_NAME | 4 | - | +| USER_FIELD_NAME_DISPLAY_NAME | 5 | - | +| USER_FIELD_NAME_EMAIL | 6 | - | +| USER_FIELD_NAME_STATE | 7 | - | +| USER_FIELD_NAME_TYPE | 8 | - | + + + + +### UserGrantState {#usergrantstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| USER_GRANT_STATE_UNSPECIFIED | 0 | - | +| USER_GRANT_STATE_ACTIVE | 1 | - | +| USER_GRANT_STATE_INACTIVE | 2 | - | + + + + +### UserState {#userstate} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| USER_STATE_UNSPECIFIED | 0 | - | +| USER_STATE_ACTIVE | 1 | - | +| USER_STATE_INACTIVE | 2 | - | +| USER_STATE_DELETED | 3 | - | +| USER_STATE_LOCKED | 4 | - | +| USER_STATE_SUSPEND | 5 | - | +| USER_STATE_INITIAL | 6 | - | + + + + diff --git a/docs/docs/apis/proto/v1.md b/docs/docs/apis/proto/v1.md new file mode 100644 index 0000000000..b50f994b79 --- /dev/null +++ b/docs/docs/apis/proto/v1.md @@ -0,0 +1,335 @@ +--- +title: zitadel/v1.proto +--- +> This document reflects the state from API 1.0 (available from 20.04.2021) + + + + +## Messages + + +### AddCustomOrgIAMPolicyRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | string.min_len: 1
string.max_len: 200
| +| user_login_must_be_domain | bool | the username has to end with the domain of it's organisation (uniqueness is organisation based) | | + + + + +### DataAPIApplication + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| app_id | string | - | | +| app | zitadel.management.v1.AddAPIAppRequest | - | | + + + + +### DataAction + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| action_id | string | - | | +| action | zitadel.management.v1.CreateActionRequest | - | | + + + + +### DataAppKey + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| id | string | - | | +| project_id | string | - | | +| app_id | string | - | | +| client_id | string | - | | +| type | zitadel.authn.v1.KeyType | - | | +| expiration_date | google.protobuf.Timestamp | - | | +| public_key | bytes | - | | + + + + +### DataHumanUser + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| user | zitadel.management.v1.ImportHumanUserRequest | - | | + + + + +### DataJWTIDP + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | | +| idp | zitadel.management.v1.AddOrgJWTIDPRequest | - | | + + + + +### DataMachineKey + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| key_id | string | - | | +| user_id | string | - | | +| type | zitadel.authn.v1.KeyType | - | | +| expiration_date | google.protobuf.Timestamp | - | | +| public_key | bytes | - | | + + + + +### DataMachineUser + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_id | string | - | | +| user | zitadel.management.v1.AddMachineUserRequest | - | | + + + + +### DataOIDCApplication + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| app_id | string | - | | +| app | zitadel.management.v1.AddOIDCAppRequest | - | | + + + + +### DataOIDCIDP + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| idp_id | string | - | | +| idp | zitadel.management.v1.AddOrgOIDCIDPRequest | - | | + + + + +### DataOrg + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| org_id | string | - | | +| org | zitadel.management.v1.AddOrgRequest | - | | +| iam_policy | AddCustomOrgIAMPolicyRequest | - | | +| label_policy | zitadel.management.v1.AddCustomLabelPolicyRequest | - | | +| lockout_policy | zitadel.management.v1.AddCustomLockoutPolicyRequest | - | | +| login_policy | zitadel.management.v1.AddCustomLoginPolicyRequest | - | | +| password_complexity_policy | zitadel.management.v1.AddCustomPasswordComplexityPolicyRequest | - | | +| privacy_policy | zitadel.management.v1.AddCustomPrivacyPolicyRequest | - | | +| projects | repeated DataProject | - | | +| project_roles | repeated zitadel.management.v1.AddProjectRoleRequest | - | | +| api_apps | repeated DataAPIApplication | - | | +| oidc_apps | repeated DataOIDCApplication | - | | +| human_users | repeated DataHumanUser | - | | +| machine_users | repeated DataMachineUser | - | | +| trigger_actions | repeated SetTriggerActionsRequest | - | | +| actions | repeated DataAction | - | | +| project_grants | repeated DataProjectGrant | - | | +| user_grants | repeated zitadel.management.v1.AddUserGrantRequest | - | | +| org_members | repeated zitadel.management.v1.AddOrgMemberRequest | - | | +| project_members | repeated zitadel.management.v1.AddProjectMemberRequest | - | | +| project_grant_members | repeated zitadel.management.v1.AddProjectGrantMemberRequest | - | | +| user_metadata | repeated zitadel.management.v1.SetUserMetadataRequest | - | | +| login_texts | repeated zitadel.management.v1.SetCustomLoginTextsRequest | - | | +| init_messages | repeated zitadel.management.v1.SetCustomInitMessageTextRequest | - | | +| password_reset_messages | repeated zitadel.management.v1.SetCustomPasswordResetMessageTextRequest | - | | +| verify_email_messages | repeated zitadel.management.v1.SetCustomVerifyEmailMessageTextRequest | - | | +| verify_phone_messages | repeated zitadel.management.v1.SetCustomVerifyPhoneMessageTextRequest | - | | +| domain_claimed_messages | repeated zitadel.management.v1.SetCustomDomainClaimedMessageTextRequest | - | | +| passwordless_registration_messages | repeated zitadel.management.v1.SetCustomPasswordlessRegistrationMessageTextRequest | - | | +| oidc_idps | repeated DataOIDCIDP | - | | +| jwt_idps | repeated DataJWTIDP | - | | +| second_factors | repeated zitadel.management.v1.AddSecondFactorToLoginPolicyRequest | - | | +| multi_factors | repeated zitadel.management.v1.AddMultiFactorToLoginPolicyRequest | - | | +| idps | repeated zitadel.management.v1.AddIDPToLoginPolicyRequest | - | | +| user_links | repeated zitadel.idp.v1.IDPUserLink | - | | +| domains | repeated zitadel.org.v1.Domain | - | | +| app_keys | repeated DataAppKey | - | | +| machine_keys | repeated DataMachineKey | - | | + + + + +### DataProject + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| project_id | string | - | | +| project | zitadel.management.v1.AddProjectRequest | - | | + + + + +### DataProjectGrant + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| grant_id | string | - | | +| project_grant | zitadel.management.v1.AddProjectGrantRequest | - | | + + + + +### ExportHumanUser + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| user_name | string | - | string.min_len: 1
string.max_len: 200
| +| profile | ExportHumanUser.Profile | - | message.required: true
| +| email | ExportHumanUser.Email | - | message.required: true
| +| phone | ExportHumanUser.Phone | - | | +| password | string | - | | +| hashed_password | ExportHumanUser.HashedPassword | - | | +| password_change_required | bool | - | | +| request_passwordless_registration | bool | - | | +| otp_code | string | - | | + + + + +### ExportHumanUser.Email + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| email | string | TODO: check if no value is allowed | string.email: true
| +| is_email_verified | bool | - | | + + + + +### ExportHumanUser.HashedPassword + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| value | string | - | | +| algorithm | string | - | | + + + + +### ExportHumanUser.Phone + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| phone | string | has to be a global number | string.min_len: 1
string.max_len: 50
string.prefix: +
| +| is_phone_verified | bool | - | | + + + + +### ExportHumanUser.Profile + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| first_name | string | - | string.min_len: 1
string.max_len: 200
| +| last_name | string | - | string.min_len: 1
string.max_len: 200
| +| nick_name | string | - | string.max_len: 200
| +| display_name | string | - | string.max_len: 200
| +| preferred_language | string | - | string.max_len: 10
| +| gender | zitadel.user.v1.Gender | - | | + + + + +### ImportDataOrg + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| orgs | repeated DataOrg | - | | + + + + +### SetTriggerActionsRequest + + + +| Field | Type | Description | Validation | +| ----- | ---- | ----------- | ----------- | +| flow_type | FlowType | - | | +| trigger_type | TriggerType | - | | +| action_ids | repeated string | - | | + + + + + + +## Enums + + +### FlowType {#flowtype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| FLOW_TYPE_UNSPECIFIED | 0 | - | +| FLOW_TYPE_EXTERNAL_AUTHENTICATION | 1 | - | + + + + +### TriggerType {#triggertype} + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| TRIGGER_TYPE_UNSPECIFIED | 0 | - | +| TRIGGER_TYPE_POST_AUTHENTICATION | 1 | - | +| TRIGGER_TYPE_PRE_CREATION | 2 | - | +| TRIGGER_TYPE_POST_CREATION | 3 | - | + + + + diff --git a/e2e/config/host.docker.internal/zitadel.yaml b/e2e/config/host.docker.internal/zitadel.yaml index ff3ecc76e4..88080e1de1 100644 --- a/e2e/config/host.docker.internal/zitadel.yaml +++ b/e2e/config/host.docker.internal/zitadel.yaml @@ -1,6 +1,11 @@ Log: Level: info +Telemetry: + Enabled: true + Endpoints: + - https://httpbin.org/post + ExternalDomain: host.docker.internal ExternalSecure: false @@ -42,6 +47,8 @@ Projections: Customizations: NotificationsQuotas: RequeueEvery: 1s + Telemetry: + RequeueEvery: 1s DefaultInstance: LoginPolicy: diff --git a/e2e/config/localhost/zitadel.yaml b/e2e/config/localhost/zitadel.yaml index e53061218d..e241c5e8a9 100644 --- a/e2e/config/localhost/zitadel.yaml +++ b/e2e/config/localhost/zitadel.yaml @@ -1,6 +1,11 @@ Log: Level: info +Telemetry: + Enabled: true + Endpoints: + - https://httpbin.org/post + ExternalDomain: localhost ExternalSecure: false @@ -42,6 +47,8 @@ Projections: Customizations: NotificationsQuotas: RequeueEvery: 1s + Telemetry: + RequeueEvery: 1s DefaultInstance: LoginPolicy: diff --git a/internal/command/command.go b/internal/command/command.go index 3c804576be..7fe660bc80 100644 --- a/internal/command/command.go +++ b/internal/command/command.go @@ -5,6 +5,8 @@ import ( "net/http" "time" + "github.com/zitadel/zitadel/internal/repository/milestone" + "github.com/zitadel/zitadel/internal/api/authz" api_http "github.com/zitadel/zitadel/internal/api/http" "github.com/zitadel/zitadel/internal/command/preparation" @@ -124,6 +126,7 @@ func StartCommands( quota.RegisterEventMappers(repo.eventstore) session.RegisterEventMappers(repo.eventstore) idpintent.RegisterEventMappers(repo.eventstore) + milestone.RegisterEventMappers(repo.eventstore) repo.userPasswordAlg = crypto.NewBCrypt(defaults.SecretGenerators.PasswordSaltCost) repo.machineKeySize = int(defaults.SecretGenerators.MachineKeySize) diff --git a/internal/command/telemetry.go b/internal/command/telemetry.go index b8e22fb0a6..467c252f4c 100644 --- a/internal/command/telemetry.go +++ b/internal/command/telemetry.go @@ -3,25 +3,23 @@ package command import ( "context" - "github.com/zitadel/zitadel/internal/repository/milestone" - "github.com/zitadel/zitadel/internal/eventstore" + + "github.com/zitadel/zitadel/internal/repository/milestone" ) -// ReportTelemetryUsage writes one or many *telemetry.PushDueEvent directly to the eventstore -func (c *Commands) ReportTelemetryUsage(ctx context.Context, dueEvent ...*milestone.ReachedEvent) error { - cmds := make([]eventstore.Command, len(dueEvent)) - for idx, notification := range dueEvent { - cmds[idx] = notification +// ReportMilestoneReached writes each *milestone.ReachedEvent directly to the event store +func (c *Commands) ReportMilestoneReached(ctx context.Context, triggeringEvent eventstore.Event, customContext interface{}) error { + aggregateId, err := c.idGenerator.Next() + if err != nil { + return err } - _, err := c.eventstore.Push(ctx, cmds...) + _, err = c.eventstore.Push(ctx, milestone.NewReachedEvent(ctx, aggregateId, triggeringEvent, customContext)) return err } -func (c *Commands) TelemetryPushed(ctx context.Context, dueEvent *milestone.ReachedEvent, endpoints []string) error { - _, err := c.eventstore.Push( - ctx, - milestone.NewPushedEvent(ctx, dueEvent, endpoints), - ) +// ReportMilestonePushed defers a milestone.PushedEvent for each *milestone.ReachedEvent and writes it directly to the event store. +func (c *Commands) ReportMilestonePushed(ctx context.Context, endpoints []string, reachedEvent *milestone.ReachedEvent) error { + _, err := c.eventstore.Push(ctx, milestone.NewPushedEvent(ctx, reachedEvent, endpoints)) return err } diff --git a/internal/notification/handlers/telemetrypusher.go b/internal/notification/handlers/telemetrypusher.go index 5e87158482..dc87382fe6 100644 --- a/internal/notification/handlers/telemetrypusher.go +++ b/internal/notification/handlers/telemetrypusher.go @@ -27,12 +27,12 @@ type TelemetryPusherConfig struct { } type telemetryPusher struct { - cfg TelemetryPusherConfig crdb.StatementHandler commands *command.Commands queries *NotificationQueries metricSuccessfulDeliveriesJSON string metricFailedDeliveriesJSON string + endpoints []string } func NewTelemetryPusher( @@ -46,8 +46,11 @@ func NewTelemetryPusher( ) *telemetryPusher { p := new(telemetryPusher) handlerCfg.ProjectionName = TelemetryProjectionTable - handlerCfg.Reducers = p.reducers() - p.cfg = telemetryCfg + handlerCfg.Reducers = []handler.AggregateReducer{{}} + if telemetryCfg.Enabled { + handlerCfg.Reducers = p.reducers() + } + p.endpoints = telemetryCfg.Endpoints p.StatementHandler = crdb.NewStatementHandler(ctx, handlerCfg) p.commands = commands p.queries = queries @@ -58,23 +61,20 @@ func NewTelemetryPusher( } func (t *telemetryPusher) reducers() []handler.AggregateReducer { - if !t.cfg.Enabled { - return nil - } return []handler.AggregateReducer{ { Aggregate: milestone.AggregateType, EventRedusers: []handler.EventReducer{ { Event: milestone.ReachedEventType, - Reduce: t.reduceTelemetryPushDue, + Reduce: t.reduceMilestoneReached, }, }, }, } } -func (t *telemetryPusher) reduceTelemetryPushDue(event eventstore.Event) (*handler.Statement, error) { +func (t *telemetryPusher) reduceMilestoneReached(event eventstore.Event) (*handler.Statement, error) { e, ok := event.(*milestone.ReachedEvent) if !ok { return nil, errors.ThrowInvalidArgumentf(nil, "HANDL-UjA3E", "reduce.wrong.event.type %s", milestone.ReachedEventType) @@ -87,7 +87,7 @@ func (t *telemetryPusher) reduceTelemetryPushDue(event eventstore.Event) (*handl if alreadyHandled { return crdb.NewNoOpStatement(e), nil } - for _, endpoint := range t.cfg.Endpoints { + for _, endpoint := range t.endpoints { if err = types.SendJSON( ctx, webhook.Config{ @@ -105,7 +105,7 @@ func (t *telemetryPusher) reduceTelemetryPushDue(event eventstore.Event) (*handl } } - err = t.commands.TelemetryPushed(ctx, e, t.cfg.Endpoints) + err = t.commands.ReportMilestonePushed(ctx, t.endpoints, e) if err != nil { return nil, err } diff --git a/internal/notification/handlers/usernotifier.go b/internal/notification/handlers/usernotifier.go index fd912a4d44..f07288149e 100644 --- a/internal/notification/handlers/usernotifier.go +++ b/internal/notification/handlers/usernotifier.go @@ -2,13 +2,8 @@ package handlers import ( "context" - "fmt" "time" - "github.com/zitadel/zitadel/internal/repository/project" - - "github.com/zitadel/zitadel/internal/repository/instance" - "github.com/zitadel/zitadel/internal/command" "github.com/zitadel/zitadel/internal/crypto" "github.com/zitadel/zitadel/internal/domain" @@ -111,67 +106,11 @@ func (u *userNotifier) reducers() []handler.AggregateReducer { Event: user.HumanPasswordChangedType, Reduce: u.reducePasswordChanged, }, - { - Event: user.UserTokenAddedType, - Reduce: u.reduceUserTokenAdded, - }, - }, - }, - { - Aggregate: instance.AggregateType, - EventRedusers: []handler.EventReducer{ - { - Event: instance.InstanceAddedEventType, - Reduce: u.reduceInstanceAdded, - }, - { - Event: instance.InstanceRemovedEventType, - Reduce: u.reduceInstanceRemoved, - }, - }, - }, - { - Aggregate: project.AggregateType, - EventRedusers: []handler.EventReducer{ - { - Event: project.ProjectAddedType, - Reduce: u.reduceProjectAdded, - }, - { - Event: project.ApplicationAddedType, - Reduce: u.reduceApplicationAdded, - }, }, }, } } -func (u *userNotifier) reduceInstanceAdded(event eventstore.Event) (*handler.Statement, error) { - fmt.Println("reduceInstanceAdded") - return crdb.NewNoOpStatement(event), nil -} - -func (u *userNotifier) reduceProjectAdded(event eventstore.Event) (*handler.Statement, error) { - // ignore instance.ProjectSetEventType - fmt.Println("reduceProjectAdded") - return crdb.NewNoOpStatement(event), nil -} - -func (u *userNotifier) reduceApplicationAdded(event eventstore.Event) (*handler.Statement, error) { - fmt.Println("reduceApplicationAdded") - return crdb.NewNoOpStatement(event), nil -} - -func (u *userNotifier) reduceUserTokenAdded(event eventstore.Event) (*handler.Statement, error) { - fmt.Println("reduceUserTokenAdded") - return crdb.NewNoOpStatement(event), nil -} - -func (u *userNotifier) reduceInstanceRemoved(event eventstore.Event) (*handler.Statement, error) { - fmt.Println("reduceInstanceRemoved") - return crdb.NewNoOpStatement(event), nil -} - func (u *userNotifier) reduceInitCodeAdded(event eventstore.Event) (*handler.Statement, error) { e, ok := event.(*user.HumanInitialCodeAddedEvent) if !ok { diff --git a/internal/query/projection/milestones.go b/internal/query/projection/milestones.go new file mode 100644 index 0000000000..0491db27cc --- /dev/null +++ b/internal/query/projection/milestones.go @@ -0,0 +1,169 @@ +package projection + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + + "github.com/zitadel/zitadel/internal/repository/project" + "github.com/zitadel/zitadel/internal/repository/user" + + "github.com/zitadel/zitadel/internal/repository/milestone" + + "github.com/zitadel/zitadel/internal/errors" + "github.com/zitadel/zitadel/internal/eventstore" + "github.com/zitadel/zitadel/internal/eventstore/handler" + "github.com/zitadel/zitadel/internal/eventstore/handler/crdb" + "github.com/zitadel/zitadel/internal/repository/instance" +) + +const ( + MilestonesProjectionTable = "projections.milestones" + + MilestoneColumnInstanceID = "instance_id" + MilestoneColumnMilestoneType = "milestone_type" + MilestoneColumnReachedAt = "reached_at" + MilestoneColumnPushedAt = "pushed_at" + MilestoneColumnPrimaryDomain = "primary_domain" +) + +type milestoneProjection struct { + crdb.StatementHandler +} + +func newMilestoneInstanceProjection(ctx context.Context, config crdb.StatementHandlerConfig) *milestoneProjection { + p := new(milestoneProjection) + config.ProjectionName = MilestonesProjectionTable + config.Reducers = p.reducers() + config.InitCheck = crdb.NewMultiTableCheck( + crdb.NewTable([]*crdb.Column{ + crdb.NewColumn(MilestoneColumnInstanceID, crdb.ColumnTypeText), + crdb.NewColumn(MilestoneColumnMilestoneType, crdb.ColumnTypeEnum), + crdb.NewColumn(MilestoneColumnReachedAt, crdb.ColumnTypeTimestamp, crdb.Nullable()), + crdb.NewColumn(MilestoneColumnPushedAt, crdb.ColumnTypeTimestamp, crdb.Nullable()), + crdb.NewColumn(MilestoneColumnPrimaryDomain, crdb.ColumnTypeText, crdb.Nullable()), + }, + crdb.NewPrimaryKey(MilestoneColumnInstanceID, MilestoneColumnMilestoneType), + ), + ) + p.StatementHandler = crdb.NewStatementHandler(ctx, config) + return p +} + +func (p *milestoneProjection) reducers() []handler.AggregateReducer { + return []handler.AggregateReducer{ + { + Aggregate: instance.AggregateType, + EventRedusers: []handler.EventReducer{ + { + Event: instance.InstanceAddedEventType, + Reduce: p.reduceInstanceAdded, + }, + { + Event: instance.InstanceDomainPrimarySetEventType, + Reduce: p.reduceInstanceDomainPrimarySet, + }, + { + Event: instance.InstanceRemovedEventType, + Reduce: p.reduceInstanceRemoved, + }, + }, + }, + { + Aggregate: project.AggregateType, + EventRedusers: []handler.EventReducer{ + { + Event: project.ProjectAddedType, + Reduce: p.reduceProjectAdded, + }, + { + Event: project.ApplicationAddedType, + Reduce: p.reduceApplicationAdded, + }, + }, + }, + { + Aggregate: user.AggregateType, + EventRedusers: []handler.EventReducer{ + { + Event: user.UserTokenAddedType, + Reduce: p.reduceUserTokenAdded, + }, + }, + }, + { + Aggregate: milestone.AggregateType, + EventRedusers: []handler.EventReducer{ + { + Event: milestone.PushedEventType, + Reduce: p.milestonePushed, + }, + }, + }, + } +} + +func (p *milestoneProjection) reduceInstanceDomainPrimarySet(event eventstore.Event) (*handler.Statement, error) { + e, ok := event.(*instance.DomainPrimarySetEvent) + if !ok { + return nil, errors.ThrowInvalidArgumentf(nil, "HANDL-Sfrgf", "reduce.wrong.event.type %s", instance.InstanceDomainPrimarySetEventType) + } + + var statements []func(eventstore.Event) crdb.Exec + for _, ms := range milestone.All() { + statements = append(statements, crdb.AddUpsertStatement( + []handler.Column{ + handler.NewCol(MilestoneColumnInstanceID, nil), + handler.NewCol(MilestoneColumnMilestoneType, nil), + }, + []handler.Column{ + handler.NewCol(MilestoneColumnInstanceID, e.Aggregate().InstanceID), + handler.NewCol(MilestoneColumnMilestoneType, ms), + handler.NewCol(MilestoneColumnPrimaryDomain, e.Domain), + }, + )) + } + + return crdb.NewMultiStatement(e, statements...), nil +} + +func (p *milestoneProjection) reduceInstanceAdded(event eventstore.Event) (*handler.Statement, error) { + printEvent(event) + + return crdb.NewNoOpStatement(event), nil +} + +func (p *milestoneProjection) reduceProjectAdded(event eventstore.Event) (*handler.Statement, error) { + printEvent(event) + // ignore instance.ProjectSetEventType + return crdb.NewNoOpStatement(event), nil +} + +func (p *milestoneProjection) reduceApplicationAdded(event eventstore.Event) (*handler.Statement, error) { + printEvent(event) + return crdb.NewNoOpStatement(event), nil +} + +func (p *milestoneProjection) reduceUserTokenAdded(event eventstore.Event) (*handler.Statement, error) { + printEvent(event) + return crdb.NewNoOpStatement(event), nil +} + +func (p *milestoneProjection) reduceInstanceRemoved(event eventstore.Event) (*handler.Statement, error) { + printEvent(event) + return crdb.NewNoOpStatement(event), nil +} + +func (p *milestoneProjection) milestonePushed(event eventstore.Event) (*handler.Statement, error) { + printEvent(event) + return crdb.NewNoOpStatement(event), nil +} + +func printEvent(event eventstore.Event) { + var pretty bytes.Buffer + if err := json.Indent(&pretty, event.DataAsBytes(), "", " "); err != nil { + panic(err) + } + fmt.Println(event.Type(), pretty.String()) +} diff --git a/internal/repository/milestone/events.go b/internal/repository/milestone/events.go index f6018eae8a..44ef15b19d 100644 --- a/internal/repository/milestone/events.go +++ b/internal/repository/milestone/events.go @@ -1,8 +1,11 @@ +//go: + package milestone import ( "context" "encoding/json" + "time" "github.com/zitadel/zitadel/internal/errors" "github.com/zitadel/zitadel/internal/eventstore" @@ -10,57 +13,16 @@ import ( ) const ( - eventTypePrefix = eventstore.EventType("milestone.") - ReachedEventType = eventTypePrefix + "reached" - PushedEventType = eventTypePrefix + "pushed" + eventTypePrefix = eventstore.EventType("milestone.") + PushedEventType = eventTypePrefix + "pushed" ) -type ReachedEvent struct { - eventstore.BaseEvent `json:"-"` - MilestoneEvent SerializableEvent `json:"milestoneEvent"` -} - -func (n *ReachedEvent) Data() interface{} { - return n -} - -func (n *ReachedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint { - return nil -} - -func NewReachedEvent( - ctx context.Context, - newAggregateID string, - milestoneEvent eventstore.BaseEvent, -) *ReachedEvent { - triggeringEventsAggregate := milestoneEvent.Aggregate() - return &ReachedEvent{ - BaseEvent: *eventstore.NewBaseEventForPush( - ctx, - &newAggregate(newAggregateID, triggeringEventsAggregate.InstanceID, triggeringEventsAggregate.ResourceOwner).Aggregate, - ReachedEventType, - ), - MilestoneEvent: newSerializableEvent(milestoneEvent), - } -} - -func ReachedEventMapper(event *repository.Event) (eventstore.Event, error) { - e := &ReachedEvent{ - BaseEvent: *eventstore.BaseEventFromRepo(event), - } - - err := json.Unmarshal(event.Data, e) - if err != nil { - return nil, errors.ThrowInternal(err, "QUOTA-k56rT", "unable to unmarshal milestone reached") - } - - return e, nil -} - type PushedEvent struct { eventstore.BaseEvent `json:"-"` - ReachedEventSequence uint64 `json:"reachedEventSequence"` - Endpoints []string `json:"endpoints"` + Milestone Milestone `json:"milestone"` + Reached time.Time `json:"reached"` + Endpoints []string `json:"endpoints"` + PrimaryDomain string `json:"primaryDomain"` } func (e *PushedEvent) Data() interface{} { @@ -73,18 +35,22 @@ func (e *PushedEvent) UniqueConstraints() []*eventstore.EventUniqueConstraint { func NewPushedEvent( ctx context.Context, - reachedEvent *ReachedEvent, + newAggregate *Aggregate, + milestone Milestone, + reached time.Time, endpoints []string, + primaryDomain string, ) *PushedEvent { - aggregate := reachedEvent.Aggregate() return &PushedEvent{ BaseEvent: *eventstore.NewBaseEventForPush( ctx, - &aggregate, + &newAggregate.Aggregate, PushedEventType, ), - ReachedEventSequence: reachedEvent.Sequence(), - Endpoints: endpoints, + Milestone: milestone, + Reached: reached, + Endpoints: endpoints, + PrimaryDomain: primaryDomain, } } @@ -92,11 +58,9 @@ func PushedEventMapper(event *repository.Event) (eventstore.Event, error) { e := &PushedEvent{ BaseEvent: *eventstore.BaseEventFromRepo(event), } - err := json.Unmarshal(event.Data, e) if err != nil { return nil, errors.ThrowInternal(err, "QUOTA-4n8vs", "unable to unmarshal milestone pushed") } - return e, nil } diff --git a/internal/repository/milestone/milestone_string.go b/internal/repository/milestone/milestone_string.go new file mode 100644 index 0000000000..7511151970 --- /dev/null +++ b/internal/repository/milestone/milestone_string.go @@ -0,0 +1,30 @@ +// Code generated by "stringer -type=Milestone"; DO NOT EDIT. + +package milestone + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[unknown-0] + _ = x[InstanceCreated-1] + _ = x[AuthenticationSucceededOnInstance-2] + _ = x[ProjectCreated-3] + _ = x[ApplicationCreated-4] + _ = x[AuthenticationSucceededOnApplication-5] + _ = x[InstanceDeleted-6] + _ = x[milestonesCount-7] +} + +const _Milestone_name = "unknownInstanceCreatedAuthenticationSucceededOnInstanceProjectCreatedApplicationCreatedAuthenticationSucceededOnApplicationInstanceDeletedmilestonesCount" + +var _Milestone_index = [...]uint8{0, 7, 22, 55, 69, 87, 123, 138, 153} + +func (i Milestone) String() string { + if i < 0 || i >= Milestone(len(_Milestone_index)-1) { + return "Milestone(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Milestone_name[_Milestone_index[i]:_Milestone_index[i+1]] +} diff --git a/internal/repository/milestone/milestones.go b/internal/repository/milestone/milestones.go new file mode 100644 index 0000000000..f05227a1f4 --- /dev/null +++ b/internal/repository/milestone/milestones.go @@ -0,0 +1,25 @@ +//go:generate stringer -type=Milestone + +package milestone + +type Milestone int + +const ( + unknown Milestone = iota + InstanceCreated + AuthenticationSucceededOnInstance + ProjectCreated + ApplicationCreated + AuthenticationSucceededOnApplication + InstanceDeleted + + milestonesCount +) + +func All() []Milestone { + milestones := make([]Milestone, milestonesCount-1) + for i := 1; i < int(milestonesCount); i++ { + milestones[i] = Milestone(i) + } + return milestones +} diff --git a/internal/repository/milestone/serializable_event.go b/internal/repository/milestone/serializable_event.go deleted file mode 100644 index 535af16fbc..0000000000 --- a/internal/repository/milestone/serializable_event.go +++ /dev/null @@ -1,15 +0,0 @@ -package milestone - -import "github.com/zitadel/zitadel/internal/eventstore" - -type SerializableEvent struct { - eventstore.BaseEvent `json:",inline"` - Data []byte `json:"data"` -} - -func newSerializableEvent(triggeringEvent eventstore.BaseEvent) SerializableEvent { - return SerializableEvent{ - BaseEvent: triggeringEvent, - Data: triggeringEvent.DataAsBytes(), - } -}